ruflo 3.5.2 → 3.5.4

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.
Files changed (521) hide show
  1. package/dist/rvf.manifest.json +295 -0
  2. package/package.json +16 -2
  3. package/src/chat-ui/Dockerfile +25 -0
  4. package/src/chat-ui/patch-mcp-url-safety.sh +28 -0
  5. package/src/chat-ui/static/chatui/icon-144x144.png +0 -0
  6. package/src/chat-ui/static/chatui/omni-welcome.gif +0 -0
  7. package/src/config/config.example.json +76 -0
  8. package/src/mcp-bridge/Dockerfile +45 -0
  9. package/src/mcp-bridge/index.js +1668 -0
  10. package/src/mcp-bridge/mcp-stdio-kernel.js +159 -0
  11. package/src/mcp-bridge/package.json +17 -0
  12. package/src/mcp-bridge/test-harness.js +470 -0
  13. package/src/nginx/Dockerfile +10 -0
  14. package/src/nginx/nginx.conf +67 -0
  15. package/src/nginx/static/favicon-dark.svg +4 -0
  16. package/src/nginx/static/favicon.svg +4 -0
  17. package/src/nginx/static/icon.svg +5 -0
  18. package/src/nginx/static/logo.svg +9 -0
  19. package/src/nginx/static/manifest.json +22 -0
  20. package/src/nginx/static/welcome.js +184 -0
  21. package/src/ruvocal/.claude/skills/add-model-descriptions/SKILL.md +73 -0
  22. package/src/ruvocal/.devcontainer/Dockerfile +9 -0
  23. package/src/ruvocal/.devcontainer/devcontainer.json +36 -0
  24. package/src/ruvocal/.dockerignore +13 -0
  25. package/src/ruvocal/.env +194 -0
  26. package/src/ruvocal/.env.ci +1 -0
  27. package/src/ruvocal/.eslintignore +13 -0
  28. package/src/ruvocal/.eslintrc.cjs +45 -0
  29. package/src/ruvocal/.github/ISSUE_TEMPLATE/bug-report--chat-ui-.md +43 -0
  30. package/src/ruvocal/.github/ISSUE_TEMPLATE/config-support.md +9 -0
  31. package/src/ruvocal/.github/ISSUE_TEMPLATE/feature-request--chat-ui-.md +17 -0
  32. package/src/ruvocal/.github/ISSUE_TEMPLATE/huggingchat.md +11 -0
  33. package/src/ruvocal/.github/release.yml +16 -0
  34. package/src/ruvocal/.github/workflows/build-docs.yml +18 -0
  35. package/src/ruvocal/.github/workflows/build-image.yml +142 -0
  36. package/src/ruvocal/.github/workflows/build-pr-docs.yml +20 -0
  37. package/src/ruvocal/.github/workflows/deploy-dev.yml +63 -0
  38. package/src/ruvocal/.github/workflows/deploy-prod.yml +78 -0
  39. package/src/ruvocal/.github/workflows/lint-and-test.yml +84 -0
  40. package/src/ruvocal/.github/workflows/slugify.yaml +72 -0
  41. package/src/ruvocal/.github/workflows/trufflehog.yml +17 -0
  42. package/src/ruvocal/.github/workflows/upload-pr-documentation.yml +16 -0
  43. package/src/ruvocal/.husky/lint-stage-config.js +4 -0
  44. package/src/ruvocal/.husky/pre-commit +2 -0
  45. package/src/ruvocal/.prettierignore +14 -0
  46. package/src/ruvocal/.prettierrc +7 -0
  47. package/src/ruvocal/.vscode/launch.json +11 -0
  48. package/src/ruvocal/.vscode/settings.json +14 -0
  49. package/src/ruvocal/CLAUDE.md +126 -0
  50. package/src/ruvocal/Dockerfile +93 -0
  51. package/src/ruvocal/LICENSE +203 -0
  52. package/src/ruvocal/PRIVACY.md +41 -0
  53. package/src/ruvocal/README.md +190 -0
  54. package/src/ruvocal/chart/Chart.yaml +5 -0
  55. package/src/ruvocal/chart/env/dev.yaml +260 -0
  56. package/src/ruvocal/chart/env/prod.yaml +273 -0
  57. package/src/ruvocal/chart/templates/_helpers.tpl +22 -0
  58. package/src/ruvocal/chart/templates/config.yaml +10 -0
  59. package/src/ruvocal/chart/templates/deployment.yaml +81 -0
  60. package/src/ruvocal/chart/templates/hpa.yaml +45 -0
  61. package/src/ruvocal/chart/templates/infisical.yaml +24 -0
  62. package/src/ruvocal/chart/templates/ingress-internal.yaml +32 -0
  63. package/src/ruvocal/chart/templates/ingress.yaml +32 -0
  64. package/src/ruvocal/chart/templates/network-policy.yaml +36 -0
  65. package/src/ruvocal/chart/templates/service-account.yaml +13 -0
  66. package/src/ruvocal/chart/templates/service-monitor.yaml +17 -0
  67. package/src/ruvocal/chart/templates/service.yaml +21 -0
  68. package/src/ruvocal/chart/values.yaml +73 -0
  69. package/src/ruvocal/docker-compose.yml +21 -0
  70. package/src/ruvocal/docs/adr/ADR-029-HUGGINGFACE-CHAT-UI-CLOUD-RUN.md +1236 -0
  71. package/src/ruvocal/docs/adr/ADR-033-RUVECTOR-RUFLO-MCP-INTEGRATION.md +111 -0
  72. package/src/ruvocal/docs/adr/ADR-034-OPTIONAL-MCP-BACKENDS.md +117 -0
  73. package/src/ruvocal/docs/adr/ADR-035-MCP-TOOL-GROUPS.md +186 -0
  74. package/src/ruvocal/docs/adr/ADR-037-AUTOPILOT-CHAT-MODE.md +1500 -0
  75. package/src/ruvocal/docs/adr/ADR-038-RUVOCAL-FORK.md +286 -0
  76. package/src/ruvocal/docs/source/_toctree.yml +30 -0
  77. package/src/ruvocal/docs/source/configuration/common-issues.md +38 -0
  78. package/src/ruvocal/docs/source/configuration/llm-router.md +105 -0
  79. package/src/ruvocal/docs/source/configuration/mcp-tools.md +84 -0
  80. package/src/ruvocal/docs/source/configuration/metrics.md +9 -0
  81. package/src/ruvocal/docs/source/configuration/open-id.md +57 -0
  82. package/src/ruvocal/docs/source/configuration/overview.md +89 -0
  83. package/src/ruvocal/docs/source/configuration/theming.md +20 -0
  84. package/src/ruvocal/docs/source/developing/architecture.md +48 -0
  85. package/src/ruvocal/docs/source/index.md +53 -0
  86. package/src/ruvocal/docs/source/installation/docker.md +43 -0
  87. package/src/ruvocal/docs/source/installation/helm.md +43 -0
  88. package/src/ruvocal/docs/source/installation/local.md +62 -0
  89. package/src/ruvocal/entrypoint.sh +19 -0
  90. package/src/ruvocal/mcp-bridge/.claude-flow/agents/store.json +27 -0
  91. package/src/ruvocal/mcp-bridge/.claude-flow/daemon-state.json +130 -0
  92. package/src/ruvocal/mcp-bridge/.claude-flow/daemon.log +0 -0
  93. package/src/ruvocal/mcp-bridge/.claude-flow/daemon.pid +1 -0
  94. package/src/ruvocal/mcp-bridge/.claude-flow/tasks/store.json +21 -0
  95. package/src/ruvocal/mcp-bridge/.swarm/hnsw.index +0 -0
  96. package/src/ruvocal/mcp-bridge/.swarm/hnsw.metadata.json +1 -0
  97. package/src/ruvocal/mcp-bridge/.swarm/memory.db +0 -0
  98. package/src/ruvocal/mcp-bridge/.swarm/model-router-state.json +14 -0
  99. package/src/ruvocal/mcp-bridge/.swarm/schema.sql +305 -0
  100. package/src/ruvocal/mcp-bridge/Dockerfile +45 -0
  101. package/src/ruvocal/mcp-bridge/cloudbuild.yaml +49 -0
  102. package/src/ruvocal/mcp-bridge/index.js +1864 -0
  103. package/src/ruvocal/mcp-bridge/mcp-stdio-kernel.js +159 -0
  104. package/src/ruvocal/mcp-bridge/package-lock.json +762 -0
  105. package/src/ruvocal/mcp-bridge/package.json +17 -0
  106. package/src/ruvocal/mcp-bridge/test-harness.js +470 -0
  107. package/src/ruvocal/models/add-your-models-here.txt +1 -0
  108. package/src/ruvocal/package-lock.json +11741 -0
  109. package/src/ruvocal/package.json +121 -0
  110. package/src/ruvocal/postcss.config.js +6 -0
  111. package/src/ruvocal/rvf.manifest.json +204 -0
  112. package/src/ruvocal/scripts/config.ts +64 -0
  113. package/src/ruvocal/scripts/generate-welcome.mjs +181 -0
  114. package/src/ruvocal/scripts/populate.ts +288 -0
  115. package/src/ruvocal/scripts/samples.txt +194 -0
  116. package/src/ruvocal/scripts/setups/vitest-setup-client.ts +0 -0
  117. package/src/ruvocal/scripts/setups/vitest-setup-server.ts +44 -0
  118. package/src/ruvocal/scripts/updateLocalEnv.ts +48 -0
  119. package/src/ruvocal/src/ambient.d.ts +7 -0
  120. package/src/ruvocal/src/app.d.ts +29 -0
  121. package/src/ruvocal/src/app.html +53 -0
  122. package/src/ruvocal/src/hooks.server.ts +32 -0
  123. package/src/ruvocal/src/hooks.ts +6 -0
  124. package/src/ruvocal/src/lib/APIClient.ts +148 -0
  125. package/src/ruvocal/src/lib/actions/clickOutside.ts +18 -0
  126. package/src/ruvocal/src/lib/actions/snapScrollToBottom.ts +346 -0
  127. package/src/ruvocal/src/lib/buildPrompt.ts +33 -0
  128. package/src/ruvocal/src/lib/components/AnnouncementBanner.svelte +20 -0
  129. package/src/ruvocal/src/lib/components/BackgroundGenerationPoller.svelte +168 -0
  130. package/src/ruvocal/src/lib/components/CodeBlock.svelte +73 -0
  131. package/src/ruvocal/src/lib/components/CopyToClipBoardBtn.svelte +92 -0
  132. package/src/ruvocal/src/lib/components/DeleteConversationModal.svelte +75 -0
  133. package/src/ruvocal/src/lib/components/EditConversationModal.svelte +100 -0
  134. package/src/ruvocal/src/lib/components/ExpandNavigation.svelte +22 -0
  135. package/src/ruvocal/src/lib/components/HoverTooltip.svelte +44 -0
  136. package/src/ruvocal/src/lib/components/HtmlPreviewModal.svelte +143 -0
  137. package/src/ruvocal/src/lib/components/InfiniteScroll.svelte +50 -0
  138. package/src/ruvocal/src/lib/components/MobileNav.svelte +300 -0
  139. package/src/ruvocal/src/lib/components/Modal.svelte +115 -0
  140. package/src/ruvocal/src/lib/components/ModelCardMetadata.svelte +71 -0
  141. package/src/ruvocal/src/lib/components/NavConversationItem.svelte +151 -0
  142. package/src/ruvocal/src/lib/components/NavMenu.svelte +295 -0
  143. package/src/ruvocal/src/lib/components/Pagination.svelte +97 -0
  144. package/src/ruvocal/src/lib/components/PaginationArrow.svelte +27 -0
  145. package/src/ruvocal/src/lib/components/Portal.svelte +24 -0
  146. package/src/ruvocal/src/lib/components/RetryBtn.svelte +18 -0
  147. package/src/ruvocal/src/lib/components/RuFloUniverse.svelte +185 -0
  148. package/src/ruvocal/src/lib/components/ScrollToBottomBtn.svelte +47 -0
  149. package/src/ruvocal/src/lib/components/ScrollToPreviousBtn.svelte +77 -0
  150. package/src/ruvocal/src/lib/components/ShareConversationModal.svelte +182 -0
  151. package/src/ruvocal/src/lib/components/StopGeneratingBtn.svelte +69 -0
  152. package/src/ruvocal/src/lib/components/SubscribeModal.svelte +87 -0
  153. package/src/ruvocal/src/lib/components/Switch.svelte +36 -0
  154. package/src/ruvocal/src/lib/components/SystemPromptModal.svelte +44 -0
  155. package/src/ruvocal/src/lib/components/Toast.svelte +27 -0
  156. package/src/ruvocal/src/lib/components/Tooltip.svelte +30 -0
  157. package/src/ruvocal/src/lib/components/WelcomeModal.svelte +46 -0
  158. package/src/ruvocal/src/lib/components/chat/Alternatives.svelte +77 -0
  159. package/src/ruvocal/src/lib/components/chat/BlockWrapper.svelte +72 -0
  160. package/src/ruvocal/src/lib/components/chat/ChatInput.svelte +490 -0
  161. package/src/ruvocal/src/lib/components/chat/ChatIntroduction.svelte +123 -0
  162. package/src/ruvocal/src/lib/components/chat/ChatMessage.svelte +548 -0
  163. package/src/ruvocal/src/lib/components/chat/ChatWindow.svelte +939 -0
  164. package/src/ruvocal/src/lib/components/chat/FileDropzone.svelte +92 -0
  165. package/src/ruvocal/src/lib/components/chat/ImageLightbox.svelte +66 -0
  166. package/src/ruvocal/src/lib/components/chat/MarkdownBlock.svelte +23 -0
  167. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte +69 -0
  168. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts +58 -0
  169. package/src/ruvocal/src/lib/components/chat/MessageAvatar.svelte +103 -0
  170. package/src/ruvocal/src/lib/components/chat/ModelSwitch.svelte +64 -0
  171. package/src/ruvocal/src/lib/components/chat/OpenReasoningResults.svelte +81 -0
  172. package/src/ruvocal/src/lib/components/chat/TaskGroup.svelte +88 -0
  173. package/src/ruvocal/src/lib/components/chat/ToolUpdate.svelte +273 -0
  174. package/src/ruvocal/src/lib/components/chat/UploadedFile.svelte +253 -0
  175. package/src/ruvocal/src/lib/components/chat/UrlFetchModal.svelte +203 -0
  176. package/src/ruvocal/src/lib/components/chat/VoiceRecorder.svelte +214 -0
  177. package/src/ruvocal/src/lib/components/icons/IconBurger.svelte +20 -0
  178. package/src/ruvocal/src/lib/components/icons/IconCheap.svelte +20 -0
  179. package/src/ruvocal/src/lib/components/icons/IconChevron.svelte +24 -0
  180. package/src/ruvocal/src/lib/components/icons/IconDazzled.svelte +40 -0
  181. package/src/ruvocal/src/lib/components/icons/IconFast.svelte +20 -0
  182. package/src/ruvocal/src/lib/components/icons/IconLoading.svelte +22 -0
  183. package/src/ruvocal/src/lib/components/icons/IconMCP.svelte +28 -0
  184. package/src/ruvocal/src/lib/components/icons/IconMoon.svelte +21 -0
  185. package/src/ruvocal/src/lib/components/icons/IconNew.svelte +20 -0
  186. package/src/ruvocal/src/lib/components/icons/IconOmni.svelte +90 -0
  187. package/src/ruvocal/src/lib/components/icons/IconPaperclip.svelte +24 -0
  188. package/src/ruvocal/src/lib/components/icons/IconPro.svelte +37 -0
  189. package/src/ruvocal/src/lib/components/icons/IconShare.svelte +21 -0
  190. package/src/ruvocal/src/lib/components/icons/IconSun.svelte +93 -0
  191. package/src/ruvocal/src/lib/components/icons/Logo.svelte +68 -0
  192. package/src/ruvocal/src/lib/components/icons/LogoHuggingFaceBorderless.svelte +54 -0
  193. package/src/ruvocal/src/lib/components/mcp/AddServerForm.svelte +250 -0
  194. package/src/ruvocal/src/lib/components/mcp/MCPServerManager.svelte +185 -0
  195. package/src/ruvocal/src/lib/components/mcp/ServerCard.svelte +203 -0
  196. package/src/ruvocal/src/lib/components/players/AudioPlayer.svelte +82 -0
  197. package/src/ruvocal/src/lib/components/voice/AudioWaveform.svelte +96 -0
  198. package/src/ruvocal/src/lib/constants/mcpExamples.ts +135 -0
  199. package/src/ruvocal/src/lib/constants/mime.ts +11 -0
  200. package/src/ruvocal/src/lib/constants/pagination.ts +1 -0
  201. package/src/ruvocal/src/lib/constants/publicSepToken.ts +1 -0
  202. package/src/ruvocal/src/lib/constants/routerExamples.ts +209 -0
  203. package/src/ruvocal/src/lib/createShareLink.ts +27 -0
  204. package/src/ruvocal/src/lib/jobs/refresh-conversation-stats.ts +297 -0
  205. package/src/ruvocal/src/lib/migrations/lock.ts +56 -0
  206. package/src/ruvocal/src/lib/migrations/migrations.spec.ts +74 -0
  207. package/src/ruvocal/src/lib/migrations/migrations.ts +109 -0
  208. package/src/ruvocal/src/lib/migrations/routines/01-update-search-assistants.ts +50 -0
  209. package/src/ruvocal/src/lib/migrations/routines/02-update-assistants-models.ts +48 -0
  210. package/src/ruvocal/src/lib/migrations/routines/04-update-message-updates.ts +151 -0
  211. package/src/ruvocal/src/lib/migrations/routines/05-update-message-files.ts +56 -0
  212. package/src/ruvocal/src/lib/migrations/routines/06-trim-message-updates.ts +56 -0
  213. package/src/ruvocal/src/lib/migrations/routines/08-update-featured-to-review.ts +32 -0
  214. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts +214 -0
  215. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.ts +88 -0
  216. package/src/ruvocal/src/lib/migrations/routines/10-update-reports-assistantid.ts +29 -0
  217. package/src/ruvocal/src/lib/migrations/routines/index.ts +15 -0
  218. package/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts +103 -0
  219. package/src/ruvocal/src/lib/server/abortRegistry.ts +57 -0
  220. package/src/ruvocal/src/lib/server/abortedGenerations.ts +43 -0
  221. package/src/ruvocal/src/lib/server/adminToken.ts +62 -0
  222. package/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts +296 -0
  223. package/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts +216 -0
  224. package/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts +235 -0
  225. package/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts +72 -0
  226. package/src/ruvocal/src/lib/server/api/__tests__/testHelpers.ts +86 -0
  227. package/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts +78 -0
  228. package/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts +239 -0
  229. package/src/ruvocal/src/lib/server/api/types.ts +37 -0
  230. package/src/ruvocal/src/lib/server/api/utils/requireAuth.ts +22 -0
  231. package/src/ruvocal/src/lib/server/api/utils/resolveConversation.ts +69 -0
  232. package/src/ruvocal/src/lib/server/api/utils/resolveModel.ts +27 -0
  233. package/src/ruvocal/src/lib/server/api/utils/superjsonResponse.ts +15 -0
  234. package/src/ruvocal/src/lib/server/apiToken.ts +11 -0
  235. package/src/ruvocal/src/lib/server/auth.ts +554 -0
  236. package/src/ruvocal/src/lib/server/config.ts +187 -0
  237. package/src/ruvocal/src/lib/server/conversation.ts +83 -0
  238. package/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts +709 -0
  239. package/src/ruvocal/src/lib/server/database/postgres.ts +700 -0
  240. package/src/ruvocal/src/lib/server/database/rvf.ts +1078 -0
  241. package/src/ruvocal/src/lib/server/database.ts +145 -0
  242. package/src/ruvocal/src/lib/server/endpoints/document.ts +68 -0
  243. package/src/ruvocal/src/lib/server/endpoints/endpoints.ts +43 -0
  244. package/src/ruvocal/src/lib/server/endpoints/images.ts +211 -0
  245. package/src/ruvocal/src/lib/server/endpoints/openai/endpointOai.ts +266 -0
  246. package/src/ruvocal/src/lib/server/endpoints/openai/openAIChatToTextGenerationStream.ts +212 -0
  247. package/src/ruvocal/src/lib/server/endpoints/openai/openAICompletionToTextGenerationStream.ts +32 -0
  248. package/src/ruvocal/src/lib/server/endpoints/preprocessMessages.ts +61 -0
  249. package/src/ruvocal/src/lib/server/exitHandler.ts +59 -0
  250. package/src/ruvocal/src/lib/server/files/downloadFile.ts +34 -0
  251. package/src/ruvocal/src/lib/server/files/uploadFile.ts +29 -0
  252. package/src/ruvocal/src/lib/server/findRepoRoot.ts +13 -0
  253. package/src/ruvocal/src/lib/server/fonts/Inter-Black.ttf +0 -0
  254. package/src/ruvocal/src/lib/server/fonts/Inter-Bold.ttf +0 -0
  255. package/src/ruvocal/src/lib/server/fonts/Inter-ExtraBold.ttf +0 -0
  256. package/src/ruvocal/src/lib/server/fonts/Inter-ExtraLight.ttf +0 -0
  257. package/src/ruvocal/src/lib/server/fonts/Inter-Light.ttf +0 -0
  258. package/src/ruvocal/src/lib/server/fonts/Inter-Medium.ttf +0 -0
  259. package/src/ruvocal/src/lib/server/fonts/Inter-Regular.ttf +0 -0
  260. package/src/ruvocal/src/lib/server/fonts/Inter-SemiBold.ttf +0 -0
  261. package/src/ruvocal/src/lib/server/fonts/Inter-Thin.ttf +0 -0
  262. package/src/ruvocal/src/lib/server/generateFromDefaultEndpoint.ts +46 -0
  263. package/src/ruvocal/src/lib/server/hooks/error.ts +37 -0
  264. package/src/ruvocal/src/lib/server/hooks/fetch.ts +22 -0
  265. package/src/ruvocal/src/lib/server/hooks/handle.ts +250 -0
  266. package/src/ruvocal/src/lib/server/hooks/init.ts +51 -0
  267. package/src/ruvocal/src/lib/server/isURLLocal.spec.ts +31 -0
  268. package/src/ruvocal/src/lib/server/isURLLocal.ts +74 -0
  269. package/src/ruvocal/src/lib/server/logger.ts +42 -0
  270. package/src/ruvocal/src/lib/server/mcp/clientPool.ts +70 -0
  271. package/src/ruvocal/src/lib/server/mcp/hf.ts +32 -0
  272. package/src/ruvocal/src/lib/server/mcp/httpClient.ts +122 -0
  273. package/src/ruvocal/src/lib/server/mcp/registry.ts +76 -0
  274. package/src/ruvocal/src/lib/server/mcp/tools.ts +196 -0
  275. package/src/ruvocal/src/lib/server/metrics.ts +255 -0
  276. package/src/ruvocal/src/lib/server/models.ts +518 -0
  277. package/src/ruvocal/src/lib/server/requestContext.ts +55 -0
  278. package/src/ruvocal/src/lib/server/router/arch.ts +230 -0
  279. package/src/ruvocal/src/lib/server/router/endpoint.ts +316 -0
  280. package/src/ruvocal/src/lib/server/router/multimodal.ts +28 -0
  281. package/src/ruvocal/src/lib/server/router/policy.ts +49 -0
  282. package/src/ruvocal/src/lib/server/router/toolsRoute.ts +51 -0
  283. package/src/ruvocal/src/lib/server/router/types.ts +21 -0
  284. package/src/ruvocal/src/lib/server/sendSlack.ts +23 -0
  285. package/src/ruvocal/src/lib/server/textGeneration/generate.ts +258 -0
  286. package/src/ruvocal/src/lib/server/textGeneration/index.ts +95 -0
  287. package/src/ruvocal/src/lib/server/textGeneration/mcp/fileRefs.ts +155 -0
  288. package/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts +108 -0
  289. package/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts +822 -0
  290. package/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts +349 -0
  291. package/src/ruvocal/src/lib/server/textGeneration/reasoning.ts +23 -0
  292. package/src/ruvocal/src/lib/server/textGeneration/title.ts +83 -0
  293. package/src/ruvocal/src/lib/server/textGeneration/types.ts +26 -0
  294. package/src/ruvocal/src/lib/server/textGeneration/utils/prepareFiles.ts +88 -0
  295. package/src/ruvocal/src/lib/server/textGeneration/utils/routing.ts +21 -0
  296. package/src/ruvocal/src/lib/server/textGeneration/utils/toolPrompt.ts +49 -0
  297. package/src/ruvocal/src/lib/server/urlSafety.ts +72 -0
  298. package/src/ruvocal/src/lib/server/usageLimits.ts +30 -0
  299. package/src/ruvocal/src/lib/stores/autopilotStore.svelte.ts +175 -0
  300. package/src/ruvocal/src/lib/stores/backgroundGenerations.svelte.ts +32 -0
  301. package/src/ruvocal/src/lib/stores/backgroundGenerations.ts +1 -0
  302. package/src/ruvocal/src/lib/stores/errors.ts +9 -0
  303. package/src/ruvocal/src/lib/stores/isAborted.ts +3 -0
  304. package/src/ruvocal/src/lib/stores/isPro.ts +4 -0
  305. package/src/ruvocal/src/lib/stores/loading.ts +3 -0
  306. package/src/ruvocal/src/lib/stores/mcpServers.ts +345 -0
  307. package/src/ruvocal/src/lib/stores/pendingChatInput.ts +3 -0
  308. package/src/ruvocal/src/lib/stores/pendingMessage.ts +9 -0
  309. package/src/ruvocal/src/lib/stores/settings.ts +182 -0
  310. package/src/ruvocal/src/lib/stores/shareModal.ts +13 -0
  311. package/src/ruvocal/src/lib/stores/titleUpdate.ts +8 -0
  312. package/src/ruvocal/src/lib/switchTheme.ts +124 -0
  313. package/src/ruvocal/src/lib/types/AbortedGeneration.ts +8 -0
  314. package/src/ruvocal/src/lib/types/Assistant.ts +31 -0
  315. package/src/ruvocal/src/lib/types/AssistantStats.ts +11 -0
  316. package/src/ruvocal/src/lib/types/ConfigKey.ts +4 -0
  317. package/src/ruvocal/src/lib/types/ConvSidebar.ts +9 -0
  318. package/src/ruvocal/src/lib/types/Conversation.ts +27 -0
  319. package/src/ruvocal/src/lib/types/ConversationStats.ts +13 -0
  320. package/src/ruvocal/src/lib/types/Message.ts +41 -0
  321. package/src/ruvocal/src/lib/types/MessageEvent.ts +10 -0
  322. package/src/ruvocal/src/lib/types/MessageUpdate.ts +139 -0
  323. package/src/ruvocal/src/lib/types/MigrationResult.ts +7 -0
  324. package/src/ruvocal/src/lib/types/Model.ts +23 -0
  325. package/src/ruvocal/src/lib/types/Report.ts +12 -0
  326. package/src/ruvocal/src/lib/types/Review.ts +6 -0
  327. package/src/ruvocal/src/lib/types/Semaphore.ts +19 -0
  328. package/src/ruvocal/src/lib/types/Session.ts +22 -0
  329. package/src/ruvocal/src/lib/types/Settings.ts +86 -0
  330. package/src/ruvocal/src/lib/types/SharedConversation.ts +9 -0
  331. package/src/ruvocal/src/lib/types/Template.ts +6 -0
  332. package/src/ruvocal/src/lib/types/Timestamps.ts +4 -0
  333. package/src/ruvocal/src/lib/types/TokenCache.ts +6 -0
  334. package/src/ruvocal/src/lib/types/Tool.ts +74 -0
  335. package/src/ruvocal/src/lib/types/UrlDependency.ts +5 -0
  336. package/src/ruvocal/src/lib/types/User.ts +14 -0
  337. package/src/ruvocal/src/lib/utils/PublicConfig.svelte.ts +75 -0
  338. package/src/ruvocal/src/lib/utils/auth.ts +17 -0
  339. package/src/ruvocal/src/lib/utils/chunk.ts +33 -0
  340. package/src/ruvocal/src/lib/utils/cookiesAreEnabled.ts +13 -0
  341. package/src/ruvocal/src/lib/utils/debounce.ts +17 -0
  342. package/src/ruvocal/src/lib/utils/deepestChild.ts +6 -0
  343. package/src/ruvocal/src/lib/utils/favicon.ts +21 -0
  344. package/src/ruvocal/src/lib/utils/fetchJSON.ts +23 -0
  345. package/src/ruvocal/src/lib/utils/file2base64.ts +14 -0
  346. package/src/ruvocal/src/lib/utils/formatUserCount.ts +37 -0
  347. package/src/ruvocal/src/lib/utils/generationState.spec.ts +75 -0
  348. package/src/ruvocal/src/lib/utils/generationState.ts +26 -0
  349. package/src/ruvocal/src/lib/utils/getHref.ts +41 -0
  350. package/src/ruvocal/src/lib/utils/getReturnFromGenerator.ts +7 -0
  351. package/src/ruvocal/src/lib/utils/haptics.ts +64 -0
  352. package/src/ruvocal/src/lib/utils/hashConv.ts +12 -0
  353. package/src/ruvocal/src/lib/utils/hf.ts +17 -0
  354. package/src/ruvocal/src/lib/utils/isDesktop.ts +7 -0
  355. package/src/ruvocal/src/lib/utils/isUrl.ts +8 -0
  356. package/src/ruvocal/src/lib/utils/isVirtualKeyboard.ts +16 -0
  357. package/src/ruvocal/src/lib/utils/loadAttachmentsFromUrls.ts +115 -0
  358. package/src/ruvocal/src/lib/utils/marked.spec.ts +96 -0
  359. package/src/ruvocal/src/lib/utils/marked.ts +531 -0
  360. package/src/ruvocal/src/lib/utils/mcpValidation.ts +147 -0
  361. package/src/ruvocal/src/lib/utils/mergeAsyncGenerators.ts +38 -0
  362. package/src/ruvocal/src/lib/utils/messageUpdates.spec.ts +262 -0
  363. package/src/ruvocal/src/lib/utils/messageUpdates.ts +324 -0
  364. package/src/ruvocal/src/lib/utils/mime.ts +56 -0
  365. package/src/ruvocal/src/lib/utils/models.ts +14 -0
  366. package/src/ruvocal/src/lib/utils/parseBlocks.ts +120 -0
  367. package/src/ruvocal/src/lib/utils/parseIncompleteMarkdown.ts +644 -0
  368. package/src/ruvocal/src/lib/utils/parseStringToList.ts +10 -0
  369. package/src/ruvocal/src/lib/utils/randomUuid.ts +14 -0
  370. package/src/ruvocal/src/lib/utils/searchTokens.ts +33 -0
  371. package/src/ruvocal/src/lib/utils/sha256.ts +7 -0
  372. package/src/ruvocal/src/lib/utils/stringifyError.ts +12 -0
  373. package/src/ruvocal/src/lib/utils/sum.ts +3 -0
  374. package/src/ruvocal/src/lib/utils/template.spec.ts +59 -0
  375. package/src/ruvocal/src/lib/utils/template.ts +53 -0
  376. package/src/ruvocal/src/lib/utils/timeout.ts +9 -0
  377. package/src/ruvocal/src/lib/utils/toolProgress.spec.ts +46 -0
  378. package/src/ruvocal/src/lib/utils/toolProgress.ts +11 -0
  379. package/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts +102 -0
  380. package/src/ruvocal/src/lib/utils/tree/addChildren.ts +48 -0
  381. package/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts +81 -0
  382. package/src/ruvocal/src/lib/utils/tree/addSibling.ts +41 -0
  383. package/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts +110 -0
  384. package/src/ruvocal/src/lib/utils/tree/buildSubtree.ts +24 -0
  385. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts +31 -0
  386. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.ts +36 -0
  387. package/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts +15 -0
  388. package/src/ruvocal/src/lib/utils/tree/isMessageId.ts +5 -0
  389. package/src/ruvocal/src/lib/utils/tree/tree.d.ts +14 -0
  390. package/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts +167 -0
  391. package/src/ruvocal/src/lib/utils/updates.ts +39 -0
  392. package/src/ruvocal/src/lib/utils/urlParams.ts +13 -0
  393. package/src/ruvocal/src/lib/workers/autopilotWorker.ts +221 -0
  394. package/src/ruvocal/src/lib/workers/detailFetchWorker.ts +100 -0
  395. package/src/ruvocal/src/lib/workers/markdownWorker.ts +61 -0
  396. package/src/ruvocal/src/routes/+error.svelte +20 -0
  397. package/src/ruvocal/src/routes/+layout.svelte +324 -0
  398. package/src/ruvocal/src/routes/+layout.ts +91 -0
  399. package/src/ruvocal/src/routes/+page.svelte +168 -0
  400. package/src/ruvocal/src/routes/.well-known/oauth-cimd/+server.ts +37 -0
  401. package/src/ruvocal/src/routes/__debug/openai/+server.ts +21 -0
  402. package/src/ruvocal/src/routes/admin/export/+server.ts +159 -0
  403. package/src/ruvocal/src/routes/admin/stats/compute/+server.ts +16 -0
  404. package/src/ruvocal/src/routes/api/conversation/[id]/+server.ts +40 -0
  405. package/src/ruvocal/src/routes/api/conversation/[id]/message/[messageId]/+server.ts +42 -0
  406. package/src/ruvocal/src/routes/api/conversations/+server.ts +48 -0
  407. package/src/ruvocal/src/routes/api/fetch-url/+server.ts +147 -0
  408. package/src/ruvocal/src/routes/api/mcp/health/+server.ts +292 -0
  409. package/src/ruvocal/src/routes/api/mcp/servers/+server.ts +32 -0
  410. package/src/ruvocal/src/routes/api/models/+server.ts +25 -0
  411. package/src/ruvocal/src/routes/api/transcribe/+server.ts +104 -0
  412. package/src/ruvocal/src/routes/api/user/+server.ts +15 -0
  413. package/src/ruvocal/src/routes/api/user/validate-token/+server.ts +20 -0
  414. package/src/ruvocal/src/routes/api/v2/conversations/+server.ts +48 -0
  415. package/src/ruvocal/src/routes/api/v2/conversations/[id]/+server.ts +94 -0
  416. package/src/ruvocal/src/routes/api/v2/conversations/[id]/message/[messageId]/+server.ts +43 -0
  417. package/src/ruvocal/src/routes/api/v2/conversations/import-share/+server.ts +23 -0
  418. package/src/ruvocal/src/routes/api/v2/debug/config/+server.ts +16 -0
  419. package/src/ruvocal/src/routes/api/v2/debug/refresh/+server.ts +30 -0
  420. package/src/ruvocal/src/routes/api/v2/export/+server.ts +196 -0
  421. package/src/ruvocal/src/routes/api/v2/feature-flags/+server.ts +14 -0
  422. package/src/ruvocal/src/routes/api/v2/models/+server.ts +38 -0
  423. package/src/ruvocal/src/routes/api/v2/models/[namespace]/+server.ts +8 -0
  424. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/+server.ts +8 -0
  425. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/subscribe/+server.ts +28 -0
  426. package/src/ruvocal/src/routes/api/v2/models/[namespace]/subscribe/+server.ts +28 -0
  427. package/src/ruvocal/src/routes/api/v2/models/old/+server.ts +7 -0
  428. package/src/ruvocal/src/routes/api/v2/models/refresh/+server.ts +33 -0
  429. package/src/ruvocal/src/routes/api/v2/public-config/+server.ts +7 -0
  430. package/src/ruvocal/src/routes/api/v2/user/+server.ts +17 -0
  431. package/src/ruvocal/src/routes/api/v2/user/billing-orgs/+server.ts +73 -0
  432. package/src/ruvocal/src/routes/api/v2/user/reports/+server.ts +17 -0
  433. package/src/ruvocal/src/routes/api/v2/user/settings/+server.ts +103 -0
  434. package/src/ruvocal/src/routes/conversation/+server.ts +115 -0
  435. package/src/ruvocal/src/routes/conversation/[id]/+page.svelte +582 -0
  436. package/src/ruvocal/src/routes/conversation/[id]/+page.ts +60 -0
  437. package/src/ruvocal/src/routes/conversation/[id]/+server.ts +736 -0
  438. package/src/ruvocal/src/routes/conversation/[id]/message/[messageId]/prompt/+server.ts +66 -0
  439. package/src/ruvocal/src/routes/conversation/[id]/output/[sha256]/+server.ts +58 -0
  440. package/src/ruvocal/src/routes/conversation/[id]/share/+server.ts +69 -0
  441. package/src/ruvocal/src/routes/conversation/[id]/stop-generating/+server.ts +35 -0
  442. package/src/ruvocal/src/routes/healthcheck/+server.ts +3 -0
  443. package/src/ruvocal/src/routes/login/+server.ts +5 -0
  444. package/src/ruvocal/src/routes/login/callback/+server.ts +103 -0
  445. package/src/ruvocal/src/routes/login/callback/updateUser.spec.ts +157 -0
  446. package/src/ruvocal/src/routes/login/callback/updateUser.ts +215 -0
  447. package/src/ruvocal/src/routes/logout/+server.ts +18 -0
  448. package/src/ruvocal/src/routes/metrics/+server.ts +18 -0
  449. package/src/ruvocal/src/routes/models/+page.svelte +233 -0
  450. package/src/ruvocal/src/routes/models/[...model]/+page.svelte +161 -0
  451. package/src/ruvocal/src/routes/models/[...model]/+page.ts +14 -0
  452. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/+server.ts +64 -0
  453. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/ModelThumbnail.svelte +28 -0
  454. package/src/ruvocal/src/routes/privacy/+page.svelte +11 -0
  455. package/src/ruvocal/src/routes/r/[id]/+page.ts +34 -0
  456. package/src/ruvocal/src/routes/settings/(nav)/+layout.svelte +282 -0
  457. package/src/ruvocal/src/routes/settings/(nav)/+layout.ts +1 -0
  458. package/src/ruvocal/src/routes/settings/(nav)/+page.svelte +0 -0
  459. package/src/ruvocal/src/routes/settings/(nav)/+server.ts +53 -0
  460. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.svelte +464 -0
  461. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.ts +14 -0
  462. package/src/ruvocal/src/routes/settings/(nav)/application/+page.svelte +362 -0
  463. package/src/ruvocal/src/routes/settings/+layout.svelte +40 -0
  464. package/src/ruvocal/src/styles/highlight-js.css +195 -0
  465. package/src/ruvocal/src/styles/main.css +144 -0
  466. package/src/ruvocal/static/chatui/apple-touch-icon.png +0 -0
  467. package/src/ruvocal/static/chatui/favicon-dark.svg +3 -0
  468. package/src/ruvocal/static/chatui/favicon-dev.svg +3 -0
  469. package/src/ruvocal/static/chatui/favicon.ico +0 -0
  470. package/src/ruvocal/static/chatui/favicon.svg +3 -0
  471. package/src/ruvocal/static/chatui/icon-128x128.png +0 -0
  472. package/src/ruvocal/static/chatui/icon-144x144.png +0 -0
  473. package/src/ruvocal/static/chatui/icon-192x192.png +0 -0
  474. package/src/ruvocal/static/chatui/icon-256x256.png +0 -0
  475. package/src/ruvocal/static/chatui/icon-36x36.png +0 -0
  476. package/src/ruvocal/static/chatui/icon-48x48.png +0 -0
  477. package/src/ruvocal/static/chatui/icon-512x512.png +0 -0
  478. package/src/ruvocal/static/chatui/icon-72x72.png +0 -0
  479. package/src/ruvocal/static/chatui/icon-96x96.png +0 -0
  480. package/src/ruvocal/static/chatui/icon.svg +3 -0
  481. package/src/ruvocal/static/chatui/logo.svg +7 -0
  482. package/src/ruvocal/static/chatui/manifest.json +54 -0
  483. package/src/ruvocal/static/chatui/omni-welcome.gif +0 -0
  484. package/src/ruvocal/static/chatui/omni-welcome.png +0 -0
  485. package/src/ruvocal/static/chatui/welcome.js +184 -0
  486. package/src/ruvocal/static/chatui/welcome.svg +1 -0
  487. package/src/ruvocal/static/huggingchat/apple-touch-icon.png +0 -0
  488. package/src/ruvocal/static/huggingchat/assistants-thumbnail.png +0 -0
  489. package/src/ruvocal/static/huggingchat/castle-example.jpg +0 -0
  490. package/src/ruvocal/static/huggingchat/favicon-dark.svg +4 -0
  491. package/src/ruvocal/static/huggingchat/favicon-dev.svg +4 -0
  492. package/src/ruvocal/static/huggingchat/favicon.ico +0 -0
  493. package/src/ruvocal/static/huggingchat/favicon.svg +4 -0
  494. package/src/ruvocal/static/huggingchat/fulltext-logo.svg +2 -0
  495. package/src/ruvocal/static/huggingchat/icon-128x128.png +0 -0
  496. package/src/ruvocal/static/huggingchat/icon-144x144.png +0 -0
  497. package/src/ruvocal/static/huggingchat/icon-192x192.png +0 -0
  498. package/src/ruvocal/static/huggingchat/icon-256x256.png +0 -0
  499. package/src/ruvocal/static/huggingchat/icon-36x36.png +0 -0
  500. package/src/ruvocal/static/huggingchat/icon-48x48.png +0 -0
  501. package/src/ruvocal/static/huggingchat/icon-512x512.png +0 -0
  502. package/src/ruvocal/static/huggingchat/icon-72x72.png +0 -0
  503. package/src/ruvocal/static/huggingchat/icon-96x96.png +0 -0
  504. package/src/ruvocal/static/huggingchat/icon.svg +4 -0
  505. package/src/ruvocal/static/huggingchat/logo.svg +4 -0
  506. package/src/ruvocal/static/huggingchat/manifest.json +54 -0
  507. package/src/ruvocal/static/huggingchat/omni-welcome.gif +0 -0
  508. package/src/ruvocal/static/huggingchat/routes.chat.json +226 -0
  509. package/src/ruvocal/static/huggingchat/thumbnail.png +0 -0
  510. package/src/ruvocal/static/huggingchat/tools-thumbnail.png +0 -0
  511. package/src/ruvocal/static/robots.txt +10 -0
  512. package/src/ruvocal/stub/@reflink/reflink/index.js +0 -0
  513. package/src/ruvocal/stub/@reflink/reflink/package.json +5 -0
  514. package/src/ruvocal/svelte.config.js +53 -0
  515. package/src/ruvocal/tailwind.config.cjs +30 -0
  516. package/src/ruvocal/tsconfig.json +19 -0
  517. package/src/ruvocal/vite.config.ts +87 -0
  518. package/src/scripts/deploy.sh +116 -0
  519. package/src/scripts/generate-config.js +245 -0
  520. package/src/scripts/generate-welcome.js +187 -0
  521. package/src/scripts/package-rvf.sh +116 -0
@@ -0,0 +1,67 @@
1
+ worker_processes auto;
2
+
3
+ events {
4
+ worker_connections 1024;
5
+ }
6
+
7
+ http {
8
+ include /etc/nginx/mime.types;
9
+ default_type application/octet-stream;
10
+
11
+ sendfile on;
12
+ keepalive_timeout 65;
13
+ gzip off; # required for sub_filter to work
14
+
15
+ server {
16
+ listen 3000;
17
+ server_name _;
18
+
19
+ # --- CORS headers on all responses ---
20
+ add_header Access-Control-Allow-Origin "*" always;
21
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
22
+ add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
23
+
24
+ # Preflight
25
+ if ($request_method = OPTIONS) {
26
+ return 204;
27
+ }
28
+
29
+ # --- RuFlo brand assets (logo, favicons, manifest) ---
30
+ location /chatui/ {
31
+ alias /etc/nginx/static/;
32
+ expires 1h;
33
+ add_header Cache-Control "public";
34
+ add_header Access-Control-Allow-Origin "*" always;
35
+ }
36
+
37
+ # --- RuFlo static JS/CSS ---
38
+ location /ruflo/ {
39
+ alias /etc/nginx/static/;
40
+ expires 1h;
41
+ add_header Cache-Control "public";
42
+ add_header Access-Control-Allow-Origin "*" always;
43
+ }
44
+
45
+ # --- Proxy to Chat UI with script injection + URL rewriting ---
46
+ location / {
47
+ proxy_pass http://chat-ui:3000;
48
+ proxy_http_version 1.1;
49
+ proxy_set_header Host $host;
50
+ proxy_set_header X-Real-IP $remote_addr;
51
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
52
+ proxy_set_header X-Forwarded-Proto $scheme;
53
+ proxy_set_header Upgrade $http_upgrade;
54
+ proxy_set_header Connection "upgrade";
55
+
56
+ # Disable gzip from upstream so sub_filter works
57
+ proxy_set_header Accept-Encoding "";
58
+
59
+ # Rewrite absolute PUBLIC_ORIGIN URLs to relative paths
60
+ # (fixes CORS when accessed via codespace port-forward)
61
+ sub_filter 'http://localhost:3000' '';
62
+ sub_filter '</head>' '<script src="/ruflo/welcome.js" defer></script></head>';
63
+ sub_filter_once off;
64
+ sub_filter_types text/html application/json;
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
2
+ <path d="M16 2L30 10v12L16 30 2 22V10z" stroke="#00d4ff" stroke-width="2" fill="#0a0a1a"/>
3
+ <circle cx="16" cy="16" r="5" fill="#7c3aed"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
2
+ <path d="M16 2L30 10v12L16 30 2 22V10z" stroke="#7c3aed" stroke-width="2" fill="#ffffff"/>
3
+ <circle cx="16" cy="16" r="5" fill="#00d4ff"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <rect width="64" height="64" rx="12" fill="#0a0a1a"/>
3
+ <path d="M32 8L56 22v20L32 56 8 42V22z" stroke="#00d4ff" stroke-width="2.5" fill="none"/>
4
+ <circle cx="32" cy="32" r="8" fill="#7c3aed"/>
5
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 48" fill="none">
2
+ <!-- Hexagon icon -->
3
+ <path d="M20 4L36 13v18L20 40 4 31V13z" stroke="#00d4ff" stroke-width="2" fill="none"/>
4
+ <circle cx="20" cy="22" r="4" fill="#7c3aed"/>
5
+ <!-- "Ru" in cyan -->
6
+ <text x="48" y="34" font-family="system-ui, -apple-system, sans-serif" font-weight="700" font-size="28" fill="#00d4ff">Ru</text>
7
+ <!-- "Flo" in violet -->
8
+ <text x="88" y="34" font-family="system-ui, -apple-system, sans-serif" font-weight="700" font-size="28" fill="#7c3aed">Flo</text>
9
+ </svg>
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "RuFlo",
3
+ "short_name": "RuFlo",
4
+ "description": "Enterprise AI Agent Orchestration Platform",
5
+ "start_url": "/",
6
+ "display": "standalone",
7
+ "theme_color": "#00d4ff",
8
+ "background_color": "#0a0a1a",
9
+ "icons": [
10
+ {
11
+ "src": "/chatui/icon.svg",
12
+ "sizes": "any",
13
+ "type": "image/svg+xml"
14
+ },
15
+ {
16
+ "src": "/chatui/favicon-dark.svg",
17
+ "sizes": "any",
18
+ "type": "image/svg+xml",
19
+ "purpose": "monochrome"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,184 @@
1
+ (function () {
2
+ "use strict";
3
+
4
+ const THREE_CDN = "https://cdn.jsdelivr.net/npm/three@0.169.0/build/three.module.js";
5
+ const BG_COLOR = 0x0a0a1a;
6
+ const CYAN = 0x00d4ff;
7
+ const VIOLET = 0x7c3aed;
8
+ const AMBER = 0xf59e0b;
9
+ const PARTICLE_COUNT = 200;
10
+
11
+ let scene, camera, renderer, frameId;
12
+ let icosahedron, octahedron, torus, particles;
13
+ let textSprite;
14
+
15
+ function createTextTexture(text, w, h) {
16
+ const canvas = document.createElement("canvas");
17
+ canvas.width = w;
18
+ canvas.height = h;
19
+ const ctx = canvas.getContext("2d");
20
+ const grad = ctx.createLinearGradient(0, 0, w, 0);
21
+ grad.addColorStop(0, "#00d4ff");
22
+ grad.addColorStop(1, "#7c3aed");
23
+ ctx.fillStyle = grad;
24
+ ctx.font = "bold 72px system-ui, -apple-system, sans-serif";
25
+ ctx.textAlign = "center";
26
+ ctx.textBaseline = "middle";
27
+ ctx.fillText(text, w / 2, h / 2);
28
+ return canvas;
29
+ }
30
+
31
+ async function initScene(container) {
32
+ const THREE = await import(THREE_CDN);
33
+
34
+ const rect = container.getBoundingClientRect();
35
+ const width = rect.width || 400;
36
+ const height = rect.height || 300;
37
+
38
+ scene = new THREE.Scene();
39
+ scene.background = new THREE.Color(BG_COLOR);
40
+
41
+ camera = new THREE.PerspectiveCamera(50, width / height, 0.1, 100);
42
+ camera.position.z = 5;
43
+
44
+ renderer = new THREE.WebGLRenderer({ antialias: true, alpha: false });
45
+ renderer.setSize(width, height);
46
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
47
+
48
+ const canvas = renderer.domElement;
49
+ canvas.style.width = "100%";
50
+ canvas.style.height = "100%";
51
+ canvas.style.display = "block";
52
+ canvas.style.borderRadius = "12px";
53
+ container.appendChild(canvas);
54
+
55
+ // Wireframe icosahedron (cyan, slow rotation)
56
+ const icoGeo = new THREE.IcosahedronGeometry(1.4, 1);
57
+ const icoMat = new THREE.MeshBasicMaterial({ color: CYAN, wireframe: true, transparent: true, opacity: 0.6 });
58
+ icosahedron = new THREE.Mesh(icoGeo, icoMat);
59
+ scene.add(icosahedron);
60
+
61
+ // Wireframe octahedron (violet, counter-rotation)
62
+ const octGeo = new THREE.OctahedronGeometry(1.0, 0);
63
+ const octMat = new THREE.MeshBasicMaterial({ color: VIOLET, wireframe: true, transparent: true, opacity: 0.7 });
64
+ octahedron = new THREE.Mesh(octGeo, octMat);
65
+ scene.add(octahedron);
66
+
67
+ // Pulse torus ring (cyan, breathing)
68
+ const torGeo = new THREE.TorusGeometry(2.0, 0.02, 8, 64);
69
+ const torMat = new THREE.MeshBasicMaterial({ color: CYAN, transparent: true, opacity: 0.4 });
70
+ torus = new THREE.Mesh(torGeo, torMat);
71
+ torus.rotation.x = Math.PI / 2;
72
+ scene.add(torus);
73
+
74
+ // Particle field (~200 amber dots in a sphere)
75
+ const pGeo = new THREE.BufferGeometry();
76
+ const positions = new Float32Array(PARTICLE_COUNT * 3);
77
+ for (let i = 0; i < PARTICLE_COUNT; i++) {
78
+ const r = 1.2 + Math.random() * 1.0;
79
+ const theta = Math.random() * Math.PI * 2;
80
+ const phi = Math.acos(2 * Math.random() - 1);
81
+ positions[i * 3] = r * Math.sin(phi) * Math.cos(theta);
82
+ positions[i * 3 + 1] = r * Math.sin(phi) * Math.sin(theta);
83
+ positions[i * 3 + 2] = r * Math.cos(phi);
84
+ }
85
+ pGeo.setAttribute("position", new THREE.BufferAttribute(positions, 3));
86
+ const pMat = new THREE.PointsMaterial({ color: AMBER, size: 0.04, sizeAttenuation: true });
87
+ particles = new THREE.Points(pGeo, pMat);
88
+ scene.add(particles);
89
+
90
+ // "RuFlo" text sprite
91
+ const textCanvas = createTextTexture("RuFlo", 512, 128);
92
+ const tex = new THREE.CanvasTexture(textCanvas);
93
+ const spriteMat = new THREE.SpriteMaterial({ map: tex, transparent: true, opacity: 0.9 });
94
+ textSprite = new THREE.Sprite(spriteMat);
95
+ textSprite.scale.set(2.5, 0.625, 1);
96
+ textSprite.position.y = -2.2;
97
+ scene.add(textSprite);
98
+
99
+ // Responsive resize
100
+ const ro = new ResizeObserver(function () {
101
+ const r2 = container.getBoundingClientRect();
102
+ const w = r2.width || 400;
103
+ const h = r2.height || 300;
104
+ camera.aspect = w / h;
105
+ camera.updateProjectionMatrix();
106
+ renderer.setSize(w, h);
107
+ });
108
+ ro.observe(container);
109
+
110
+ // Animate
111
+ function animate() {
112
+ frameId = requestAnimationFrame(animate);
113
+ const t = performance.now() * 0.001;
114
+
115
+ icosahedron.rotation.y = t * 0.3;
116
+ icosahedron.rotation.x = t * 0.15;
117
+
118
+ octahedron.rotation.y = -t * 0.4;
119
+ octahedron.rotation.z = t * 0.2;
120
+
121
+ // Breathing torus
122
+ const s = 1 + 0.15 * Math.sin(t * 1.5);
123
+ torus.scale.set(s, s, s);
124
+
125
+ // Slow particle rotation
126
+ particles.rotation.y = t * 0.05;
127
+ particles.rotation.x = t * 0.02;
128
+
129
+ renderer.render(scene, camera);
130
+ }
131
+ animate();
132
+
133
+ return { ro: ro };
134
+ }
135
+
136
+ function cleanup(refs) {
137
+ if (frameId) cancelAnimationFrame(frameId);
138
+ if (refs && refs.ro) refs.ro.disconnect();
139
+ if (renderer) {
140
+ renderer.dispose();
141
+ renderer.forceContextLoss();
142
+ }
143
+ scene = camera = renderer = frameId = null;
144
+ }
145
+
146
+ // Watch for the welcome modal's image and replace it
147
+ let refs = null;
148
+ const observer = new MutationObserver(function (mutations) {
149
+ for (const m of mutations) {
150
+ for (const node of m.addedNodes) {
151
+ if (!(node instanceof HTMLElement)) continue;
152
+ const img = node.querySelector
153
+ ? node.querySelector('img[src*="omni-welcome"], img[src*="huggingchat"]')
154
+ : null;
155
+ if (img) {
156
+ const container = document.createElement("div");
157
+ container.style.width = "100%";
158
+ container.style.height = "320px";
159
+ container.style.position = "relative";
160
+ container.style.overflow = "hidden";
161
+ container.style.borderRadius = "12px";
162
+ img.parentNode.replaceChild(container, img);
163
+ initScene(container).then(function (r) { refs = r; });
164
+ }
165
+ }
166
+ // Detect modal removal → cleanup
167
+ for (const node of m.removedNodes) {
168
+ if (!(node instanceof HTMLElement)) continue;
169
+ if (node.querySelector && node.querySelector("canvas")) {
170
+ cleanup(refs);
171
+ refs = null;
172
+ }
173
+ }
174
+ }
175
+ });
176
+
177
+ if (document.body) {
178
+ observer.observe(document.body, { childList: true, subtree: true });
179
+ } else {
180
+ document.addEventListener("DOMContentLoaded", function () {
181
+ observer.observe(document.body, { childList: true, subtree: true });
182
+ });
183
+ }
184
+ })();
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: add-model-descriptions
3
+ description: Add descriptions for new models from the HuggingFace router to chat-ui configuration. Use when new models are released on the router and need descriptions added to prod.yaml and dev.yaml. Triggers on requests like "add new model descriptions", "update models from router", "sync models", or when explicitly invoking /add-model-descriptions.
4
+ ---
5
+
6
+ # Add Model Descriptions
7
+
8
+ Add descriptions for new models available in the HuggingFace router to chat-ui's prod.yaml and dev.yaml.
9
+
10
+ ## Workflow
11
+
12
+ 1. **Fetch models from router**
13
+
14
+ ```
15
+ WebFetch https://router.huggingface.co/v1/models
16
+ ```
17
+
18
+ Extract all model IDs from the response.
19
+
20
+ 2. **Read current configuration**
21
+
22
+ - Read `chart/env/prod.yaml`
23
+ - Extract model IDs from the `MODELS` JSON array in `envVars`
24
+
25
+ 3. **Identify missing models**
26
+ Compare router models with prod.yaml. Missing = in router but not in prod.yaml.
27
+
28
+ 4. **Research each missing model**
29
+ For each missing model, search the web for its specifications:
30
+
31
+ - Model architecture (dense, MoE, parameters)
32
+ - Key capabilities (coding, reasoning, vision, multilingual, etc.)
33
+ - Target use cases
34
+
35
+ 5. **Write descriptions**
36
+ Match existing style:
37
+
38
+ - 8-12 words
39
+ - Sentence fragments (no period needed)
40
+ - No articles ("a", "the") unless necessary
41
+ - Focus on: architecture, specialization, key capability
42
+
43
+ Examples:
44
+
45
+ - `"Flagship GLM MoE for coding, reasoning, and agentic tool use."`
46
+ - `"MoE agent model with multilingual coding and fast outputs."`
47
+ - `"Vision-language Qwen for documents, GUI agents, and visual reasoning."`
48
+ - `"Mobile agent for multilingual Android device automation."`
49
+
50
+ 6. **Update both files**
51
+ Add new models at the TOP of the MODELS array in:
52
+
53
+ - `chart/env/prod.yaml`
54
+ - `chart/env/dev.yaml`
55
+
56
+ Format:
57
+
58
+ ```json
59
+ { "id": "org/model-name", "description": "Description here." }
60
+ ```
61
+
62
+ 7. **Commit changes**
63
+ ```
64
+ git add chart/env/prod.yaml chart/env/dev.yaml
65
+ git commit -m "feat: add descriptions for N new models from router"
66
+ ```
67
+
68
+ ## Notes
69
+
70
+ - FP8 variants: describe as "FP8 [base model] for efficient inference with [key capability]"
71
+ - Vision models: mention "vision-language" and key visual tasks
72
+ - Agent models: mention "agent" and automation capabilities
73
+ - Regional models: mention language focus (e.g., "European multilingual", "Southeast Asian")
@@ -0,0 +1,9 @@
1
+ FROM mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm
2
+
3
+ # Install MongoDB tools (mongosh, mongorestore, mongodump) directly from MongoDB repository
4
+ RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg && \
5
+ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | tee /etc/apt/sources.list.d/mongodb-org-8.0.list && \
6
+ apt-get update && \
7
+ apt-get install -y mongodb-mongosh mongodb-database-tools vim && \
8
+ apt-get autoremove -y && \
9
+ rm -rf /var/lib/apt/lists/*
@@ -0,0 +1,36 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
3
+ {
4
+ "name": "Node.js & TypeScript",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "build": {
7
+ "dockerfile": "Dockerfile"
8
+ },
9
+
10
+ "customizations": {
11
+ "vscode": {
12
+ "extensions": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint", "svelte.svelte-vscode"]
13
+ }
14
+ },
15
+
16
+ "features": {
17
+ // Install docker in container
18
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {
19
+ // Use proprietary docker engine. I get a timeout error when using the default moby engine and loading
20
+ // microsoft's PGP keys
21
+ "moby": false
22
+ }
23
+ }
24
+
25
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
26
+ // "forwardPorts": [],
27
+
28
+ // Use 'postCreateCommand' to run commands after the container is created.
29
+ // "postCreateCommand": "yarn install",
30
+
31
+ // Configure tool-specific properties.
32
+ // "customizations": {},
33
+
34
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
35
+ // "remoteUser": "root"
36
+ }
@@ -0,0 +1,13 @@
1
+ Dockerfile
2
+ .vscode/
3
+ .idea
4
+ .gitignore
5
+ LICENSE
6
+ README.md
7
+ node_modules/
8
+ .svelte-kit/
9
+ .env*
10
+ !.env
11
+ .env.local
12
+ db
13
+ models/**
@@ -0,0 +1,194 @@
1
+ # Use .env.local to change these variables
2
+ # DO NOT EDIT THIS FILE WITH SENSITIVE DATA
3
+
4
+ ### Models ###
5
+ # Models are sourced exclusively from an OpenAI-compatible base URL.
6
+ # Example: https://router.huggingface.co/v1
7
+ OPENAI_BASE_URL=https://router.huggingface.co/v1
8
+
9
+ # Canonical auth token for any OpenAI-compatible provider
10
+ OPENAI_API_KEY=#your provider API key (works for HF router, OpenAI, LM Studio, etc.).
11
+ # When set to true, user token will be used for inference calls
12
+ USE_USER_TOKEN=false
13
+ # Automatically redirect to oauth login page if user is not logged in, when set to "true"
14
+ AUTOMATIC_LOGIN=false
15
+
16
+ ### PostgreSQL (RuVector) ###
17
+ DATABASE_URL=#postgresql://ruvocal:password@localhost:5432/ruvocal
18
+ # Legacy MongoDB vars (unused — kept for reference)
19
+ # MONGODB_URL=
20
+ # MONGODB_DB_NAME=chat-ui
21
+ # MONGODB_DIRECT_CONNECTION=false
22
+
23
+
24
+ ## Public app configuration ##
25
+ PUBLIC_APP_NAME=ChatUI # name used as title throughout the app
26
+ PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
27
+ PUBLIC_APP_DESCRIPTION="Making the community's best AI chat models available to everyone."# description used throughout the app
28
+ PUBLIC_ORIGIN=
29
+ PUBLIC_SHARE_PREFIX=
30
+ PUBLIC_GOOGLE_ANALYTICS_ID=
31
+ PUBLIC_PLAUSIBLE_SCRIPT_URL=
32
+ PUBLIC_APPLE_APP_ID=
33
+
34
+ COUPLE_SESSION_WITH_COOKIE_NAME=
35
+ # when OPEN_ID is configured, users are required to login after the welcome modal
36
+ OPENID_CLIENT_ID="" # You can set to "__CIMD__" for automatic oauth app creation when deployed, see https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/
37
+ OPENID_CLIENT_SECRET=
38
+ OPENID_SCOPES="openid profile inference-api read-mcp read-billing"
39
+ USE_USER_TOKEN=
40
+ AUTOMATIC_LOGIN=# if true authentication is required on all routes
41
+
42
+ ### Local Storage ###
43
+ MONGO_STORAGE_PATH= # where is the db folder stored
44
+
45
+ ## Models overrides
46
+ MODELS=
47
+
48
+ ## Task model
49
+ # Optional: set to the model id/name from the `${OPENAI_BASE_URL}/models` list
50
+ # to use for internal tasks (title summarization, etc). If not set, the current model will be used
51
+ TASK_MODEL=
52
+
53
+ # Arch router (OpenAI-compatible) endpoint base URL used for route selection
54
+ # Example: https://api.openai.com/v1 or your hosted Arch endpoint
55
+ LLM_ROUTER_ARCH_BASE_URL=
56
+
57
+ ## LLM Router Configuration
58
+ # Path to routes policy (JSON array). Required when the router is enabled; must point to a valid JSON file.
59
+ LLM_ROUTER_ROUTES_PATH=
60
+
61
+ # Model used at the Arch router endpoint for selection
62
+ LLM_ROUTER_ARCH_MODEL=
63
+
64
+ # Fallback behavior
65
+ # Route to map "other" to (must exist in routes file)
66
+ LLM_ROUTER_OTHER_ROUTE=casual_conversation
67
+ # Model to call if the Arch selection fails entirely
68
+ LLM_ROUTER_FALLBACK_MODEL=
69
+ # Arch selection timeout in milliseconds (default 10000)
70
+ LLM_ROUTER_ARCH_TIMEOUT_MS=10000
71
+ # Maximum length (in characters) for assistant messages sent to router for route selection (default 500)
72
+ LLM_ROUTER_MAX_ASSISTANT_LENGTH=500
73
+ # Maximum length (in characters) for previous user messages sent to router (latest user message not trimmed, default 400)
74
+ LLM_ROUTER_MAX_PREV_USER_LENGTH=400
75
+
76
+ # Enable router multimodal handling (set to true to allow image inputs via router)
77
+ LLM_ROUTER_ENABLE_MULTIMODAL=
78
+ # Required when LLM_ROUTER_ENABLE_MULTIMODAL=true: id or name of the multimodal model to use for image requests
79
+ LLM_ROUTER_MULTIMODAL_MODEL=
80
+
81
+ # Enable router tool support (set to true to allow tool calling via router)
82
+ LLM_ROUTER_ENABLE_TOOLS=
83
+ # Required when tools are active: id or name of the model to use for MCP tool calls.
84
+ LLM_ROUTER_TOOLS_MODEL=
85
+
86
+ # Router UI overrides (client-visible)
87
+ # Public display name for the router entry in the model list. Defaults to "Omni".
88
+ PUBLIC_LLM_ROUTER_DISPLAY_NAME=Omni
89
+ # Optional: public logo URL for the router entry. If unset, the UI shows a Carbon icon.
90
+ PUBLIC_LLM_ROUTER_LOGO_URL=
91
+ # Public alias id used for the virtual router model (Omni). Defaults to "omni".
92
+ PUBLIC_LLM_ROUTER_ALIAS_ID=omni
93
+
94
+ ### Transcription ###
95
+ # Voice-to-text transcription using Whisper models
96
+ # If set, enables the microphone button in the chat input
97
+ # Example: openai/whisper-large-v3-turbo
98
+ TRANSCRIPTION_MODEL=
99
+ # Optional: Base URL for transcription API (defaults to HF inference)
100
+ # Default: https://router.huggingface.co/hf-inference/models
101
+ TRANSCRIPTION_BASE_URL=
102
+
103
+ ### Authentication ###
104
+ # Parameters to enable open id login
105
+ OPENID_CONFIG=
106
+ # if it's defined, only these emails will be allowed to use login
107
+ ALLOWED_USER_EMAILS=[]
108
+ # If it's defined, users with emails matching these domains will also be allowed to use login
109
+ ALLOWED_USER_DOMAINS=[]
110
+ # valid alternative redirect URLs for OAuth, used for HuggingChat apps
111
+ ALTERNATIVE_REDIRECT_URLS=[]
112
+ ### Cookies
113
+ # name of the cookie used to store the session
114
+ COOKIE_NAME=hf-chat
115
+ # If the value of this cookie changes, the session is destroyed. Useful if chat-ui is deployed on a subpath
116
+ # of your domain, and you want chat ui sessions to reset if the user's auth changes
117
+ COUPLE_SESSION_WITH_COOKIE_NAME=
118
+ # specify secure behaviour for cookies
119
+ COOKIE_SAMESITE=# can be "lax", "strict", "none" or left empty
120
+ COOKIE_SECURE=# set to true to only allow cookies over https
121
+ TRUSTED_EMAIL_HEADER=# header to use to get the user email, only use if you know what you are doing
122
+
123
+ ### Admin stuff ###
124
+ ADMIN_CLI_LOGIN=true # set to false to disable the CLI login
125
+ ADMIN_TOKEN=#We recommend leaving this empty, you can get the token from the terminal.
126
+
127
+ ### Feature Flags ###
128
+ LLM_SUMMARIZATION=true # generate conversation titles with LLMs
129
+
130
+ ALLOW_IFRAME=true # Allow the app to be embedded in an iframe
131
+
132
+ # Base servers list (JSON array). Example: MCP_SERVERS=[{"name": "Web Search (Exa)", "url": "https://mcp.exa.ai/mcp"}, {"name": "Hugging Face", "url": "https://hf.co/mcp"}]
133
+ MCP_SERVERS=
134
+ # When true, forward the logged-in user's Hugging Face access token
135
+ MCP_FORWARD_HF_USER_TOKEN=
136
+ # Exa API key (injected at runtime into mcp.exa.ai URLs as ?exaApiKey=)
137
+ EXA_API_KEY=
138
+ # Timeout in milliseconds for MCP tool calls (default: 120000 = 2 minutes)
139
+ MCP_TOOL_TIMEOUT_MS=
140
+ ENABLE_DATA_EXPORT=true
141
+
142
+ ### Rate limits ###
143
+ # See `src/lib/server/usageLimits.ts`
144
+ # {
145
+ # conversations: number, # how many conversations
146
+ # messages: number, # how many messages in a conversation
147
+ # assistants: number, # how many assistants
148
+ # messageLength: number, # how long can a message be before we cut it off
149
+ # messagesPerMinute: number, # how many messages per minute
150
+ # tools: number # how many tools
151
+ # }
152
+ USAGE_LIMITS={}
153
+
154
+ ### HuggingFace specific ###
155
+ ## Feature flag & admin settings
156
+ # Used for setting early access & admin flags to users
157
+ HF_ORG_ADMIN=
158
+ HF_ORG_EARLY_ACCESS=
159
+ WEBHOOK_URL_REPORT_ASSISTANT=#provide slack webhook url to get notified for reports/feature requests
160
+
161
+
162
+ ### Metrics ###
163
+ METRICS_ENABLED=false
164
+ METRICS_PORT=5565
165
+ LOG_LEVEL=info
166
+
167
+
168
+ ### Parquet export ###
169
+ # Not in use anymore but useful to export conversations to a parquet file as a HuggingFace dataset
170
+ PARQUET_EXPORT_DATASET=
171
+ PARQUET_EXPORT_HF_TOKEN=
172
+ ADMIN_API_SECRET=# secret to admin API calls, like computing usage stats or exporting parquet data
173
+
174
+ ### Config ###
175
+ ENABLE_CONFIG_MANAGER=true
176
+
177
+ ### Docker build variables ###
178
+ # These values cannot be updated at runtime
179
+ # They need to be passed when building the docker image
180
+ # See https://github.com/huggingface/chat-ui/main/.github/workflows/deploy-prod.yml#L44-L47
181
+ APP_BASE="" # base path of the app, e.g. /chat, left blank as default
182
+ ### Body size limit for SvelteKit https://svelte.dev/docs/kit/adapter-node#Environment-variables-BODY_SIZE_LIMIT
183
+ BODY_SIZE_LIMIT=15728640
184
+ PUBLIC_COMMIT_SHA=
185
+
186
+ ### LEGACY parameters
187
+ ALLOW_INSECURE_COOKIES=false # LEGACY! Use COOKIE_SECURE and COOKIE_SAMESITE instead
188
+ PARQUET_EXPORT_SECRET=#DEPRECATED, use ADMIN_API_SECRET instead
189
+ RATE_LIMIT= # /!\ DEPRECATED definition of messages per minute. Use USAGE_LIMITS.messagesPerMinute instead
190
+ OPENID_NAME_CLAIM="name" # Change to "username" for some providers that do not provide name
191
+ OPENID_PROVIDER_URL=https://huggingface.co # for Google, use https://accounts.google.com
192
+ OPENID_TOLERANCE=
193
+ OPENID_RESOURCE=
194
+ EXPOSE_API=# deprecated, API is now always exposed
@@ -0,0 +1 @@
1
+ MONGODB_URL=mongodb://localhost:27017/
@@ -0,0 +1,13 @@
1
+ .DS_Store
2
+ node_modules
3
+ /build
4
+ /.svelte-kit
5
+ /package
6
+ .env
7
+ .env.*
8
+ !.env.example
9
+
10
+ # Ignore files for PNPM, NPM and YARN
11
+ pnpm-lock.yaml
12
+ package-lock.json
13
+ yarn.lock