ruflo 3.6.30 → 3.7.0-alpha.10

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 (500) hide show
  1. package/README.md +393 -45
  2. package/bin/ruflo.js +57 -57
  3. package/package.json +3 -2
  4. package/src/chat-ui/Dockerfile +25 -25
  5. package/src/chat-ui/patch-mcp-url-safety.sh +28 -28
  6. package/src/config/config.example.json +76 -76
  7. package/src/mcp-bridge/Dockerfile +45 -45
  8. package/src/mcp-bridge/index.js +1668 -1668
  9. package/src/mcp-bridge/mcp-stdio-kernel.js +159 -159
  10. package/src/mcp-bridge/package.json +17 -17
  11. package/src/mcp-bridge/test-harness.js +470 -470
  12. package/src/nginx/Dockerfile +10 -10
  13. package/src/nginx/nginx.conf +67 -67
  14. package/src/nginx/static/favicon-dark.svg +4 -4
  15. package/src/nginx/static/favicon.svg +4 -4
  16. package/src/nginx/static/icon.svg +5 -5
  17. package/src/nginx/static/logo.svg +9 -9
  18. package/src/nginx/static/manifest.json +22 -22
  19. package/src/nginx/static/welcome.js +184 -184
  20. package/src/ruvocal/.claude/skills/add-model-descriptions/SKILL.md +73 -73
  21. package/src/ruvocal/.devcontainer/Dockerfile +9 -9
  22. package/src/ruvocal/.devcontainer/devcontainer.json +36 -36
  23. package/src/ruvocal/.dockerignore +16 -16
  24. package/src/ruvocal/.eslintignore +13 -13
  25. package/src/ruvocal/.eslintrc.cjs +45 -45
  26. package/src/ruvocal/.gcloudignore +18 -18
  27. package/src/ruvocal/.github/ISSUE_TEMPLATE/bug-report--chat-ui-.md +43 -43
  28. package/src/ruvocal/.github/ISSUE_TEMPLATE/config-support.md +9 -9
  29. package/src/ruvocal/.github/ISSUE_TEMPLATE/feature-request--chat-ui-.md +17 -17
  30. package/src/ruvocal/.github/ISSUE_TEMPLATE/huggingchat.md +11 -11
  31. package/src/ruvocal/.github/release.yml +16 -16
  32. package/src/ruvocal/.github/workflows/build-docs.yml +18 -18
  33. package/src/ruvocal/.github/workflows/build-image.yml +142 -142
  34. package/src/ruvocal/.github/workflows/build-pr-docs.yml +20 -20
  35. package/src/ruvocal/.github/workflows/deploy-dev.yml +63 -63
  36. package/src/ruvocal/.github/workflows/deploy-prod.yml +78 -78
  37. package/src/ruvocal/.github/workflows/lint-and-test.yml +84 -84
  38. package/src/ruvocal/.github/workflows/slugify.yaml +72 -72
  39. package/src/ruvocal/.github/workflows/trufflehog.yml +17 -17
  40. package/src/ruvocal/.github/workflows/upload-pr-documentation.yml +16 -16
  41. package/src/ruvocal/.husky/lint-stage-config.js +4 -4
  42. package/src/ruvocal/.husky/pre-commit +2 -2
  43. package/src/ruvocal/.prettierignore +14 -14
  44. package/src/ruvocal/.prettierrc +7 -7
  45. package/src/ruvocal/CLAUDE.md +126 -126
  46. package/src/ruvocal/Dockerfile +96 -96
  47. package/src/ruvocal/LICENSE +202 -202
  48. package/src/ruvocal/PRIVACY.md +41 -41
  49. package/src/ruvocal/README.md +164 -164
  50. package/src/ruvocal/chart/Chart.yaml +5 -5
  51. package/src/ruvocal/chart/env/dev.yaml +260 -260
  52. package/src/ruvocal/chart/env/prod.yaml +273 -273
  53. package/src/ruvocal/chart/templates/_helpers.tpl +22 -22
  54. package/src/ruvocal/chart/templates/config.yaml +10 -10
  55. package/src/ruvocal/chart/templates/deployment.yaml +81 -81
  56. package/src/ruvocal/chart/templates/hpa.yaml +45 -45
  57. package/src/ruvocal/chart/templates/infisical.yaml +24 -24
  58. package/src/ruvocal/chart/templates/ingress-internal.yaml +32 -32
  59. package/src/ruvocal/chart/templates/ingress.yaml +32 -32
  60. package/src/ruvocal/chart/templates/network-policy.yaml +36 -36
  61. package/src/ruvocal/chart/templates/service-account.yaml +13 -13
  62. package/src/ruvocal/chart/templates/service-monitor.yaml +17 -17
  63. package/src/ruvocal/chart/templates/service.yaml +21 -21
  64. package/src/ruvocal/chart/values.yaml +73 -73
  65. package/src/ruvocal/cloudbuild.yaml +68 -68
  66. package/src/ruvocal/config/branding.env.example +19 -19
  67. package/src/ruvocal/docker-compose.yml +21 -21
  68. package/src/ruvocal/docs/adr/ADR-029-HUGGINGFACE-CHAT-UI-CLOUD-RUN.md +1236 -1236
  69. package/src/ruvocal/docs/adr/ADR-033-RUVECTOR-RUFLO-MCP-INTEGRATION.md +111 -111
  70. package/src/ruvocal/docs/adr/ADR-034-OPTIONAL-MCP-BACKENDS.md +117 -117
  71. package/src/ruvocal/docs/adr/ADR-035-MCP-TOOL-GROUPS.md +186 -186
  72. package/src/ruvocal/docs/adr/ADR-037-AUTOPILOT-CHAT-MODE.md +1500 -1500
  73. package/src/ruvocal/docs/adr/ADR-038-RUVOCAL-FORK.md +286 -286
  74. package/src/ruvocal/docs/source/_toctree.yml +30 -30
  75. package/src/ruvocal/docs/source/configuration/common-issues.md +38 -38
  76. package/src/ruvocal/docs/source/configuration/llm-router.md +105 -105
  77. package/src/ruvocal/docs/source/configuration/mcp-tools.md +84 -84
  78. package/src/ruvocal/docs/source/configuration/metrics.md +9 -9
  79. package/src/ruvocal/docs/source/configuration/open-id.md +57 -57
  80. package/src/ruvocal/docs/source/configuration/overview.md +89 -89
  81. package/src/ruvocal/docs/source/configuration/theming.md +20 -20
  82. package/src/ruvocal/docs/source/developing/architecture.md +48 -48
  83. package/src/ruvocal/docs/source/index.md +53 -53
  84. package/src/ruvocal/docs/source/installation/docker.md +43 -43
  85. package/src/ruvocal/docs/source/installation/helm.md +43 -43
  86. package/src/ruvocal/docs/source/installation/local.md +62 -62
  87. package/src/ruvocal/entrypoint.sh +18 -18
  88. package/src/ruvocal/mcp-bridge/Dockerfile +45 -45
  89. package/src/ruvocal/mcp-bridge/cloudbuild.yaml +49 -49
  90. package/src/ruvocal/mcp-bridge/index.js +1878 -1878
  91. package/src/ruvocal/mcp-bridge/mcp-stdio-kernel.js +159 -159
  92. package/src/ruvocal/mcp-bridge/package-lock.json +762 -762
  93. package/src/ruvocal/mcp-bridge/package.json +17 -17
  94. package/src/ruvocal/mcp-bridge/test-harness.js +470 -470
  95. package/src/ruvocal/package-lock.json +11741 -11741
  96. package/src/ruvocal/package.json +121 -121
  97. package/src/ruvocal/postcss.config.js +6 -6
  98. package/src/ruvocal/rvf.manifest.json +204 -204
  99. package/src/ruvocal/scripts/config.ts +64 -64
  100. package/src/ruvocal/scripts/generate-welcome.mjs +181 -181
  101. package/src/ruvocal/scripts/populate.ts +288 -288
  102. package/src/ruvocal/scripts/samples.txt +194 -194
  103. package/src/ruvocal/scripts/setups/vitest-setup-server.ts +44 -44
  104. package/src/ruvocal/scripts/updateLocalEnv.ts +48 -48
  105. package/src/ruvocal/src/ambient.d.ts +7 -7
  106. package/src/ruvocal/src/app.d.ts +29 -29
  107. package/src/ruvocal/src/app.html +53 -53
  108. package/src/ruvocal/src/hooks.server.ts +32 -32
  109. package/src/ruvocal/src/hooks.ts +6 -6
  110. package/src/ruvocal/src/lib/APIClient.ts +148 -148
  111. package/src/ruvocal/src/lib/actions/clickOutside.ts +18 -18
  112. package/src/ruvocal/src/lib/actions/snapScrollToBottom.ts +346 -346
  113. package/src/ruvocal/src/lib/buildPrompt.ts +33 -33
  114. package/src/ruvocal/src/lib/components/AnnouncementBanner.svelte +20 -20
  115. package/src/ruvocal/src/lib/components/BackgroundGenerationPoller.svelte +168 -168
  116. package/src/ruvocal/src/lib/components/CodeBlock.svelte +73 -73
  117. package/src/ruvocal/src/lib/components/CopyToClipBoardBtn.svelte +92 -92
  118. package/src/ruvocal/src/lib/components/DeleteConversationModal.svelte +75 -75
  119. package/src/ruvocal/src/lib/components/EditConversationModal.svelte +100 -100
  120. package/src/ruvocal/src/lib/components/ExpandNavigation.svelte +22 -22
  121. package/src/ruvocal/src/lib/components/FoundationBackground.svelte +242 -242
  122. package/src/ruvocal/src/lib/components/HoverTooltip.svelte +44 -44
  123. package/src/ruvocal/src/lib/components/HtmlPreviewModal.svelte +143 -143
  124. package/src/ruvocal/src/lib/components/InfiniteScroll.svelte +50 -50
  125. package/src/ruvocal/src/lib/components/MobileNav.svelte +300 -300
  126. package/src/ruvocal/src/lib/components/Modal.svelte +115 -115
  127. package/src/ruvocal/src/lib/components/ModelCardMetadata.svelte +71 -71
  128. package/src/ruvocal/src/lib/components/NavConversationItem.svelte +151 -151
  129. package/src/ruvocal/src/lib/components/NavMenu.svelte +313 -313
  130. package/src/ruvocal/src/lib/components/Pagination.svelte +97 -97
  131. package/src/ruvocal/src/lib/components/PaginationArrow.svelte +27 -27
  132. package/src/ruvocal/src/lib/components/Portal.svelte +24 -24
  133. package/src/ruvocal/src/lib/components/RetryBtn.svelte +18 -18
  134. package/src/ruvocal/src/lib/components/RuFloUniverse.svelte +185 -185
  135. package/src/ruvocal/src/lib/components/RufloHelpModal.svelte +411 -411
  136. package/src/ruvocal/src/lib/components/ScrollToBottomBtn.svelte +47 -47
  137. package/src/ruvocal/src/lib/components/ScrollToPreviousBtn.svelte +77 -77
  138. package/src/ruvocal/src/lib/components/ShareConversationModal.svelte +182 -182
  139. package/src/ruvocal/src/lib/components/StopGeneratingBtn.svelte +69 -69
  140. package/src/ruvocal/src/lib/components/SubscribeModal.svelte +87 -87
  141. package/src/ruvocal/src/lib/components/Switch.svelte +36 -36
  142. package/src/ruvocal/src/lib/components/SystemPromptModal.svelte +44 -44
  143. package/src/ruvocal/src/lib/components/Toast.svelte +27 -27
  144. package/src/ruvocal/src/lib/components/Tooltip.svelte +30 -30
  145. package/src/ruvocal/src/lib/components/WelcomeModal.svelte +46 -46
  146. package/src/ruvocal/src/lib/components/chat/Alternatives.svelte +77 -77
  147. package/src/ruvocal/src/lib/components/chat/BlockWrapper.svelte +72 -72
  148. package/src/ruvocal/src/lib/components/chat/ChatInput.svelte +490 -490
  149. package/src/ruvocal/src/lib/components/chat/ChatIntroduction.svelte +123 -123
  150. package/src/ruvocal/src/lib/components/chat/ChatMessage.svelte +548 -548
  151. package/src/ruvocal/src/lib/components/chat/ChatWindow.svelte +1057 -1057
  152. package/src/ruvocal/src/lib/components/chat/FileDropzone.svelte +92 -92
  153. package/src/ruvocal/src/lib/components/chat/ImageLightbox.svelte +66 -66
  154. package/src/ruvocal/src/lib/components/chat/MarkdownBlock.svelte +23 -23
  155. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte +69 -69
  156. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts +58 -58
  157. package/src/ruvocal/src/lib/components/chat/MessageAvatar.svelte +103 -103
  158. package/src/ruvocal/src/lib/components/chat/ModelSwitch.svelte +64 -64
  159. package/src/ruvocal/src/lib/components/chat/OpenReasoningResults.svelte +81 -81
  160. package/src/ruvocal/src/lib/components/chat/TaskGroup.svelte +88 -88
  161. package/src/ruvocal/src/lib/components/chat/ToolUpdate.svelte +273 -273
  162. package/src/ruvocal/src/lib/components/chat/UploadedFile.svelte +253 -253
  163. package/src/ruvocal/src/lib/components/chat/UrlFetchModal.svelte +203 -203
  164. package/src/ruvocal/src/lib/components/chat/VoiceRecorder.svelte +214 -214
  165. package/src/ruvocal/src/lib/components/icons/IconBurger.svelte +20 -20
  166. package/src/ruvocal/src/lib/components/icons/IconCheap.svelte +20 -20
  167. package/src/ruvocal/src/lib/components/icons/IconChevron.svelte +24 -24
  168. package/src/ruvocal/src/lib/components/icons/IconDazzled.svelte +40 -40
  169. package/src/ruvocal/src/lib/components/icons/IconFast.svelte +20 -20
  170. package/src/ruvocal/src/lib/components/icons/IconLoading.svelte +22 -22
  171. package/src/ruvocal/src/lib/components/icons/IconMCP.svelte +28 -28
  172. package/src/ruvocal/src/lib/components/icons/IconMoon.svelte +21 -21
  173. package/src/ruvocal/src/lib/components/icons/IconNew.svelte +20 -20
  174. package/src/ruvocal/src/lib/components/icons/IconOmni.svelte +90 -90
  175. package/src/ruvocal/src/lib/components/icons/IconPaperclip.svelte +24 -24
  176. package/src/ruvocal/src/lib/components/icons/IconPro.svelte +37 -37
  177. package/src/ruvocal/src/lib/components/icons/IconShare.svelte +21 -21
  178. package/src/ruvocal/src/lib/components/icons/IconSun.svelte +93 -93
  179. package/src/ruvocal/src/lib/components/icons/Logo.svelte +68 -68
  180. package/src/ruvocal/src/lib/components/icons/LogoHuggingFaceBorderless.svelte +54 -54
  181. package/src/ruvocal/src/lib/components/mcp/AddServerForm.svelte +250 -250
  182. package/src/ruvocal/src/lib/components/mcp/MCPServerManager.svelte +185 -185
  183. package/src/ruvocal/src/lib/components/mcp/ServerCard.svelte +203 -203
  184. package/src/ruvocal/src/lib/components/players/AudioPlayer.svelte +82 -82
  185. package/src/ruvocal/src/lib/components/voice/AudioWaveform.svelte +96 -96
  186. package/src/ruvocal/src/lib/components/wasm/GalleryPanel.svelte +357 -357
  187. package/src/ruvocal/src/lib/constants/mcpExamples.ts +114 -114
  188. package/src/ruvocal/src/lib/constants/mime.ts +11 -11
  189. package/src/ruvocal/src/lib/constants/pagination.ts +1 -1
  190. package/src/ruvocal/src/lib/constants/publicSepToken.ts +1 -1
  191. package/src/ruvocal/src/lib/constants/routerExamples.ts +133 -133
  192. package/src/ruvocal/src/lib/constants/rvagentPresets.ts +206 -206
  193. package/src/ruvocal/src/lib/createShareLink.ts +27 -27
  194. package/src/ruvocal/src/lib/jobs/refresh-conversation-stats.ts +297 -297
  195. package/src/ruvocal/src/lib/migrations/lock.ts +56 -56
  196. package/src/ruvocal/src/lib/migrations/migrations.spec.ts +74 -74
  197. package/src/ruvocal/src/lib/migrations/migrations.ts +109 -109
  198. package/src/ruvocal/src/lib/migrations/routines/01-update-search-assistants.ts +50 -50
  199. package/src/ruvocal/src/lib/migrations/routines/02-update-assistants-models.ts +48 -48
  200. package/src/ruvocal/src/lib/migrations/routines/04-update-message-updates.ts +151 -151
  201. package/src/ruvocal/src/lib/migrations/routines/05-update-message-files.ts +56 -56
  202. package/src/ruvocal/src/lib/migrations/routines/06-trim-message-updates.ts +56 -56
  203. package/src/ruvocal/src/lib/migrations/routines/08-update-featured-to-review.ts +32 -32
  204. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts +214 -214
  205. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.ts +88 -88
  206. package/src/ruvocal/src/lib/migrations/routines/10-update-reports-assistantid.ts +29 -29
  207. package/src/ruvocal/src/lib/migrations/routines/index.ts +15 -15
  208. package/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts +103 -103
  209. package/src/ruvocal/src/lib/server/abortRegistry.ts +57 -57
  210. package/src/ruvocal/src/lib/server/abortedGenerations.ts +43 -43
  211. package/src/ruvocal/src/lib/server/adminToken.ts +62 -62
  212. package/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts +296 -296
  213. package/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts +216 -216
  214. package/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts +235 -235
  215. package/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts +72 -72
  216. package/src/ruvocal/src/lib/server/api/__tests__/testHelpers.ts +86 -86
  217. package/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts +78 -78
  218. package/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts +239 -239
  219. package/src/ruvocal/src/lib/server/api/types.ts +37 -37
  220. package/src/ruvocal/src/lib/server/api/utils/requireAuth.ts +22 -22
  221. package/src/ruvocal/src/lib/server/api/utils/resolveConversation.ts +69 -69
  222. package/src/ruvocal/src/lib/server/api/utils/resolveModel.ts +27 -27
  223. package/src/ruvocal/src/lib/server/api/utils/superjsonResponse.ts +15 -15
  224. package/src/ruvocal/src/lib/server/apiToken.ts +11 -11
  225. package/src/ruvocal/src/lib/server/auth.ts +554 -554
  226. package/src/ruvocal/src/lib/server/config.ts +187 -187
  227. package/src/ruvocal/src/lib/server/conversation.ts +83 -83
  228. package/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts +709 -709
  229. package/src/ruvocal/src/lib/server/database/postgres.ts +700 -700
  230. package/src/ruvocal/src/lib/server/database/rvf.ts +1078 -1078
  231. package/src/ruvocal/src/lib/server/database.ts +145 -145
  232. package/src/ruvocal/src/lib/server/endpoints/document.ts +68 -68
  233. package/src/ruvocal/src/lib/server/endpoints/endpoints.ts +43 -43
  234. package/src/ruvocal/src/lib/server/endpoints/images.ts +211 -211
  235. package/src/ruvocal/src/lib/server/endpoints/openai/endpointOai.ts +266 -266
  236. package/src/ruvocal/src/lib/server/endpoints/openai/openAIChatToTextGenerationStream.ts +212 -212
  237. package/src/ruvocal/src/lib/server/endpoints/openai/openAICompletionToTextGenerationStream.ts +32 -32
  238. package/src/ruvocal/src/lib/server/endpoints/preprocessMessages.ts +61 -61
  239. package/src/ruvocal/src/lib/server/exitHandler.ts +59 -59
  240. package/src/ruvocal/src/lib/server/files/downloadFile.ts +34 -34
  241. package/src/ruvocal/src/lib/server/files/uploadFile.ts +29 -29
  242. package/src/ruvocal/src/lib/server/findRepoRoot.ts +13 -13
  243. package/src/ruvocal/src/lib/server/generateFromDefaultEndpoint.ts +46 -46
  244. package/src/ruvocal/src/lib/server/hooks/error.ts +37 -37
  245. package/src/ruvocal/src/lib/server/hooks/fetch.ts +22 -22
  246. package/src/ruvocal/src/lib/server/hooks/handle.ts +250 -250
  247. package/src/ruvocal/src/lib/server/hooks/init.ts +51 -51
  248. package/src/ruvocal/src/lib/server/isURLLocal.spec.ts +31 -31
  249. package/src/ruvocal/src/lib/server/isURLLocal.ts +74 -74
  250. package/src/ruvocal/src/lib/server/logger.ts +42 -42
  251. package/src/ruvocal/src/lib/server/mcp/clientPool.spec.ts +175 -175
  252. package/src/ruvocal/src/lib/server/mcp/hf.ts +32 -32
  253. package/src/ruvocal/src/lib/server/mcp/httpClient.ts +122 -122
  254. package/src/ruvocal/src/lib/server/mcp/registry.ts +76 -76
  255. package/src/ruvocal/src/lib/server/mcp/tools.ts +196 -196
  256. package/src/ruvocal/src/lib/server/metrics.ts +255 -255
  257. package/src/ruvocal/src/lib/server/models.ts +518 -518
  258. package/src/ruvocal/src/lib/server/requestContext.ts +55 -55
  259. package/src/ruvocal/src/lib/server/router/arch.ts +230 -230
  260. package/src/ruvocal/src/lib/server/router/endpoint.ts +316 -316
  261. package/src/ruvocal/src/lib/server/router/multimodal.ts +28 -28
  262. package/src/ruvocal/src/lib/server/router/policy.ts +49 -49
  263. package/src/ruvocal/src/lib/server/router/toolsRoute.ts +51 -51
  264. package/src/ruvocal/src/lib/server/router/types.ts +21 -21
  265. package/src/ruvocal/src/lib/server/sendSlack.ts +23 -23
  266. package/src/ruvocal/src/lib/server/textGeneration/generate.ts +258 -258
  267. package/src/ruvocal/src/lib/server/textGeneration/index.ts +96 -96
  268. package/src/ruvocal/src/lib/server/textGeneration/mcp/fileRefs.ts +155 -155
  269. package/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts +108 -108
  270. package/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts +831 -831
  271. package/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts +349 -349
  272. package/src/ruvocal/src/lib/server/textGeneration/mcp/wasmTools.test.ts +633 -633
  273. package/src/ruvocal/src/lib/server/textGeneration/reasoning.ts +23 -23
  274. package/src/ruvocal/src/lib/server/textGeneration/title.ts +83 -83
  275. package/src/ruvocal/src/lib/server/textGeneration/types.ts +28 -28
  276. package/src/ruvocal/src/lib/server/textGeneration/utils/prepareFiles.ts +88 -88
  277. package/src/ruvocal/src/lib/server/textGeneration/utils/routing.ts +21 -21
  278. package/src/ruvocal/src/lib/server/textGeneration/utils/toolPrompt.ts +49 -49
  279. package/src/ruvocal/src/lib/server/urlSafety.ts +77 -77
  280. package/src/ruvocal/src/lib/server/usageLimits.ts +30 -30
  281. package/src/ruvocal/src/lib/stores/autopilotStore.svelte.ts +175 -175
  282. package/src/ruvocal/src/lib/stores/backgroundGenerations.svelte.ts +32 -32
  283. package/src/ruvocal/src/lib/stores/backgroundGenerations.ts +1 -1
  284. package/src/ruvocal/src/lib/stores/errors.ts +9 -9
  285. package/src/ruvocal/src/lib/stores/isAborted.ts +3 -3
  286. package/src/ruvocal/src/lib/stores/isPro.ts +4 -4
  287. package/src/ruvocal/src/lib/stores/loading.ts +3 -3
  288. package/src/ruvocal/src/lib/stores/mcpServers.ts +534 -534
  289. package/src/ruvocal/src/lib/stores/pendingChatInput.ts +3 -3
  290. package/src/ruvocal/src/lib/stores/pendingMessage.ts +9 -9
  291. package/src/ruvocal/src/lib/stores/settings.ts +182 -182
  292. package/src/ruvocal/src/lib/stores/shareModal.ts +13 -13
  293. package/src/ruvocal/src/lib/stores/titleUpdate.ts +8 -8
  294. package/src/ruvocal/src/lib/stores/wasmMcp.ts +472 -472
  295. package/src/ruvocal/src/lib/switchTheme.ts +124 -124
  296. package/src/ruvocal/src/lib/types/AbortedGeneration.ts +8 -8
  297. package/src/ruvocal/src/lib/types/Assistant.ts +31 -31
  298. package/src/ruvocal/src/lib/types/AssistantStats.ts +11 -11
  299. package/src/ruvocal/src/lib/types/ConfigKey.ts +4 -4
  300. package/src/ruvocal/src/lib/types/ConvSidebar.ts +9 -9
  301. package/src/ruvocal/src/lib/types/Conversation.ts +27 -27
  302. package/src/ruvocal/src/lib/types/ConversationStats.ts +13 -13
  303. package/src/ruvocal/src/lib/types/Message.ts +41 -41
  304. package/src/ruvocal/src/lib/types/MessageEvent.ts +10 -10
  305. package/src/ruvocal/src/lib/types/MessageUpdate.ts +139 -139
  306. package/src/ruvocal/src/lib/types/MigrationResult.ts +7 -7
  307. package/src/ruvocal/src/lib/types/Model.ts +23 -23
  308. package/src/ruvocal/src/lib/types/Report.ts +12 -12
  309. package/src/ruvocal/src/lib/types/Review.ts +6 -6
  310. package/src/ruvocal/src/lib/types/Semaphore.ts +19 -19
  311. package/src/ruvocal/src/lib/types/Session.ts +22 -22
  312. package/src/ruvocal/src/lib/types/Settings.ts +93 -93
  313. package/src/ruvocal/src/lib/types/SharedConversation.ts +9 -9
  314. package/src/ruvocal/src/lib/types/Template.ts +6 -6
  315. package/src/ruvocal/src/lib/types/Timestamps.ts +4 -4
  316. package/src/ruvocal/src/lib/types/TokenCache.ts +6 -6
  317. package/src/ruvocal/src/lib/types/Tool.ts +77 -77
  318. package/src/ruvocal/src/lib/types/UrlDependency.ts +5 -5
  319. package/src/ruvocal/src/lib/types/User.ts +14 -14
  320. package/src/ruvocal/src/lib/utils/PublicConfig.svelte.ts +75 -75
  321. package/src/ruvocal/src/lib/utils/auth.ts +17 -17
  322. package/src/ruvocal/src/lib/utils/chunk.ts +33 -33
  323. package/src/ruvocal/src/lib/utils/cookiesAreEnabled.ts +13 -13
  324. package/src/ruvocal/src/lib/utils/debounce.ts +17 -17
  325. package/src/ruvocal/src/lib/utils/deepestChild.ts +6 -6
  326. package/src/ruvocal/src/lib/utils/favicon.ts +21 -21
  327. package/src/ruvocal/src/lib/utils/fetchJSON.ts +23 -23
  328. package/src/ruvocal/src/lib/utils/file2base64.ts +14 -14
  329. package/src/ruvocal/src/lib/utils/formatUserCount.ts +37 -37
  330. package/src/ruvocal/src/lib/utils/generationState.spec.ts +75 -75
  331. package/src/ruvocal/src/lib/utils/generationState.ts +26 -26
  332. package/src/ruvocal/src/lib/utils/getHref.ts +41 -41
  333. package/src/ruvocal/src/lib/utils/getReturnFromGenerator.ts +7 -7
  334. package/src/ruvocal/src/lib/utils/haptics.ts +64 -64
  335. package/src/ruvocal/src/lib/utils/hashConv.ts +12 -12
  336. package/src/ruvocal/src/lib/utils/hf.ts +17 -17
  337. package/src/ruvocal/src/lib/utils/isDesktop.ts +7 -7
  338. package/src/ruvocal/src/lib/utils/isUrl.ts +8 -8
  339. package/src/ruvocal/src/lib/utils/isVirtualKeyboard.ts +16 -16
  340. package/src/ruvocal/src/lib/utils/loadAttachmentsFromUrls.ts +115 -115
  341. package/src/ruvocal/src/lib/utils/marked.spec.ts +96 -96
  342. package/src/ruvocal/src/lib/utils/marked.ts +531 -531
  343. package/src/ruvocal/src/lib/utils/mcpValidation.ts +147 -147
  344. package/src/ruvocal/src/lib/utils/mergeAsyncGenerators.ts +38 -38
  345. package/src/ruvocal/src/lib/utils/messageUpdates.spec.ts +262 -262
  346. package/src/ruvocal/src/lib/utils/messageUpdates.ts +324 -324
  347. package/src/ruvocal/src/lib/utils/mime.ts +56 -56
  348. package/src/ruvocal/src/lib/utils/models.ts +14 -14
  349. package/src/ruvocal/src/lib/utils/parseBlocks.ts +120 -120
  350. package/src/ruvocal/src/lib/utils/parseIncompleteMarkdown.ts +644 -644
  351. package/src/ruvocal/src/lib/utils/parseStringToList.ts +10 -10
  352. package/src/ruvocal/src/lib/utils/randomUuid.ts +14 -14
  353. package/src/ruvocal/src/lib/utils/searchTokens.ts +33 -33
  354. package/src/ruvocal/src/lib/utils/sha256.ts +7 -7
  355. package/src/ruvocal/src/lib/utils/stringifyError.ts +12 -12
  356. package/src/ruvocal/src/lib/utils/sum.ts +3 -3
  357. package/src/ruvocal/src/lib/utils/template.spec.ts +59 -59
  358. package/src/ruvocal/src/lib/utils/template.ts +53 -53
  359. package/src/ruvocal/src/lib/utils/timeout.ts +9 -9
  360. package/src/ruvocal/src/lib/utils/toolProgress.spec.ts +46 -46
  361. package/src/ruvocal/src/lib/utils/toolProgress.ts +11 -11
  362. package/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts +102 -102
  363. package/src/ruvocal/src/lib/utils/tree/addChildren.ts +48 -48
  364. package/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts +81 -81
  365. package/src/ruvocal/src/lib/utils/tree/addSibling.ts +41 -41
  366. package/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts +110 -110
  367. package/src/ruvocal/src/lib/utils/tree/buildSubtree.ts +24 -24
  368. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts +31 -31
  369. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.ts +36 -36
  370. package/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts +15 -15
  371. package/src/ruvocal/src/lib/utils/tree/isMessageId.ts +5 -5
  372. package/src/ruvocal/src/lib/utils/tree/tree.d.ts +14 -14
  373. package/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts +167 -167
  374. package/src/ruvocal/src/lib/utils/updates.ts +39 -39
  375. package/src/ruvocal/src/lib/utils/urlParams.ts +13 -13
  376. package/src/ruvocal/src/lib/wasm/idb.ts +438 -438
  377. package/src/ruvocal/src/lib/wasm/index.ts +1213 -1213
  378. package/src/ruvocal/src/lib/wasm/tests/wasm-capabilities.test.ts +565 -565
  379. package/src/ruvocal/src/lib/wasm/wasm.worker.ts +332 -332
  380. package/src/ruvocal/src/lib/wasm/workerClient.ts +166 -166
  381. package/src/ruvocal/src/lib/workers/autopilotWorker.ts +221 -221
  382. package/src/ruvocal/src/lib/workers/detailFetchWorker.ts +100 -100
  383. package/src/ruvocal/src/lib/workers/markdownWorker.ts +61 -61
  384. package/src/ruvocal/src/routes/+error.svelte +20 -20
  385. package/src/ruvocal/src/routes/+layout.svelte +324 -324
  386. package/src/ruvocal/src/routes/+layout.ts +91 -91
  387. package/src/ruvocal/src/routes/+page.svelte +168 -168
  388. package/src/ruvocal/src/routes/.well-known/oauth-cimd/+server.ts +37 -37
  389. package/src/ruvocal/src/routes/__debug/openai/+server.ts +21 -21
  390. package/src/ruvocal/src/routes/admin/export/+server.ts +159 -159
  391. package/src/ruvocal/src/routes/admin/stats/compute/+server.ts +16 -16
  392. package/src/ruvocal/src/routes/api/conversation/[id]/+server.ts +40 -40
  393. package/src/ruvocal/src/routes/api/conversation/[id]/message/[messageId]/+server.ts +42 -42
  394. package/src/ruvocal/src/routes/api/conversations/+server.ts +48 -48
  395. package/src/ruvocal/src/routes/api/fetch-url/+server.ts +147 -147
  396. package/src/ruvocal/src/routes/api/mcp/health/+server.ts +292 -292
  397. package/src/ruvocal/src/routes/api/mcp/servers/+server.ts +32 -32
  398. package/src/ruvocal/src/routes/api/models/+server.ts +25 -25
  399. package/src/ruvocal/src/routes/api/transcribe/+server.ts +104 -104
  400. package/src/ruvocal/src/routes/api/user/+server.ts +15 -15
  401. package/src/ruvocal/src/routes/api/user/validate-token/+server.ts +20 -20
  402. package/src/ruvocal/src/routes/api/v2/conversations/+server.ts +48 -48
  403. package/src/ruvocal/src/routes/api/v2/conversations/[id]/+server.ts +94 -94
  404. package/src/ruvocal/src/routes/api/v2/conversations/[id]/message/[messageId]/+server.ts +43 -43
  405. package/src/ruvocal/src/routes/api/v2/conversations/import-share/+server.ts +23 -23
  406. package/src/ruvocal/src/routes/api/v2/debug/config/+server.ts +16 -16
  407. package/src/ruvocal/src/routes/api/v2/debug/refresh/+server.ts +30 -30
  408. package/src/ruvocal/src/routes/api/v2/export/+server.ts +196 -196
  409. package/src/ruvocal/src/routes/api/v2/feature-flags/+server.ts +14 -14
  410. package/src/ruvocal/src/routes/api/v2/models/+server.ts +38 -38
  411. package/src/ruvocal/src/routes/api/v2/models/[namespace]/+server.ts +8 -8
  412. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/+server.ts +8 -8
  413. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/subscribe/+server.ts +28 -28
  414. package/src/ruvocal/src/routes/api/v2/models/[namespace]/subscribe/+server.ts +28 -28
  415. package/src/ruvocal/src/routes/api/v2/models/old/+server.ts +7 -7
  416. package/src/ruvocal/src/routes/api/v2/models/refresh/+server.ts +33 -33
  417. package/src/ruvocal/src/routes/api/v2/public-config/+server.ts +7 -7
  418. package/src/ruvocal/src/routes/api/v2/user/+server.ts +17 -17
  419. package/src/ruvocal/src/routes/api/v2/user/billing-orgs/+server.ts +73 -73
  420. package/src/ruvocal/src/routes/api/v2/user/reports/+server.ts +17 -17
  421. package/src/ruvocal/src/routes/api/v2/user/settings/+server.ts +110 -110
  422. package/src/ruvocal/src/routes/conversation/+server.ts +115 -115
  423. package/src/ruvocal/src/routes/conversation/[id]/+page.svelte +586 -586
  424. package/src/ruvocal/src/routes/conversation/[id]/+page.ts +60 -60
  425. package/src/ruvocal/src/routes/conversation/[id]/+server.ts +740 -740
  426. package/src/ruvocal/src/routes/conversation/[id]/message/[messageId]/prompt/+server.ts +66 -66
  427. package/src/ruvocal/src/routes/conversation/[id]/share/+server.ts +69 -69
  428. package/src/ruvocal/src/routes/conversation/[id]/stop-generating/+server.ts +35 -35
  429. package/src/ruvocal/src/routes/healthcheck/+server.ts +3 -3
  430. package/src/ruvocal/src/routes/login/+server.ts +5 -5
  431. package/src/ruvocal/src/routes/login/callback/+server.ts +103 -103
  432. package/src/ruvocal/src/routes/login/callback/updateUser.spec.ts +157 -157
  433. package/src/ruvocal/src/routes/login/callback/updateUser.ts +215 -215
  434. package/src/ruvocal/src/routes/logout/+server.ts +18 -18
  435. package/src/ruvocal/src/routes/metrics/+server.ts +18 -18
  436. package/src/ruvocal/src/routes/models/+page.svelte +233 -233
  437. package/src/ruvocal/src/routes/models/[...model]/+page.svelte +161 -161
  438. package/src/ruvocal/src/routes/models/[...model]/+page.ts +14 -14
  439. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/+server.ts +64 -64
  440. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/ModelThumbnail.svelte +28 -28
  441. package/src/ruvocal/src/routes/privacy/+page.svelte +11 -11
  442. package/src/ruvocal/src/routes/r/[id]/+page.ts +34 -34
  443. package/src/ruvocal/src/routes/settings/(nav)/+layout.svelte +282 -282
  444. package/src/ruvocal/src/routes/settings/(nav)/+layout.ts +1 -1
  445. package/src/ruvocal/src/routes/settings/(nav)/+server.ts +59 -59
  446. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.svelte +464 -464
  447. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.ts +14 -14
  448. package/src/ruvocal/src/routes/settings/(nav)/application/+page.svelte +362 -362
  449. package/src/ruvocal/src/routes/settings/+layout.svelte +40 -40
  450. package/src/ruvocal/src/styles/highlight-js.css +195 -195
  451. package/src/ruvocal/src/styles/main.css +144 -144
  452. package/src/ruvocal/static/chatui/favicon-dark.svg +3 -3
  453. package/src/ruvocal/static/chatui/favicon-dev.svg +3 -3
  454. package/src/ruvocal/static/chatui/favicon.svg +3 -3
  455. package/src/ruvocal/static/chatui/icon.svg +3 -3
  456. package/src/ruvocal/static/chatui/logo.svg +7 -7
  457. package/src/ruvocal/static/chatui/manifest.json +54 -54
  458. package/src/ruvocal/static/chatui/welcome.js +184 -184
  459. package/src/ruvocal/static/huggingchat/favicon-dark.svg +4 -4
  460. package/src/ruvocal/static/huggingchat/favicon-dev.svg +4 -4
  461. package/src/ruvocal/static/huggingchat/favicon.svg +4 -4
  462. package/src/ruvocal/static/huggingchat/fulltext-logo.svg +1 -1
  463. package/src/ruvocal/static/huggingchat/icon.svg +4 -4
  464. package/src/ruvocal/static/huggingchat/logo.svg +4 -4
  465. package/src/ruvocal/static/huggingchat/manifest.json +54 -54
  466. package/src/ruvocal/static/huggingchat/routes.chat.json +226 -226
  467. package/src/ruvocal/static/robots.txt +10 -10
  468. package/src/ruvocal/static/wasm/rvagent_wasm.js +1539 -1539
  469. package/src/ruvocal/stub/@reflink/reflink/package.json +5 -5
  470. package/src/ruvocal/svelte.config.js +53 -53
  471. package/src/ruvocal/tailwind.config.cjs +30 -30
  472. package/src/ruvocal/tsconfig.json +19 -19
  473. package/src/ruvocal/vite.config.ts +87 -87
  474. package/src/scripts/deploy.sh +116 -116
  475. package/src/scripts/generate-config.js +245 -245
  476. package/src/scripts/generate-welcome.js +187 -187
  477. package/src/scripts/package-rvf.sh +116 -116
  478. package/src/ruvocal/.claude-flow/daemon-state.json +0 -135
  479. package/src/ruvocal/.claude-flow/data/pending-insights.jsonl +0 -0
  480. package/src/ruvocal/.claude-flow/data/ranked-context.json +0 -5
  481. package/src/ruvocal/.claude-flow/logs/daemon.log +0 -31
  482. package/src/ruvocal/.claude-flow/logs/headless/audit_1777949411822_juxau0_prompt.log +0 -989
  483. package/src/ruvocal/.claude-flow/logs/headless/audit_1777949411822_juxau0_result.log +0 -67
  484. package/src/ruvocal/.claude-flow/logs/headless/audit_1777950042278_jvj5xq_prompt.log +0 -989
  485. package/src/ruvocal/.claude-flow/logs/headless/audit_1777950042278_jvj5xq_result.log +0 -93
  486. package/src/ruvocal/.claude-flow/logs/headless/optimize_1777949531823_yt5yc2_prompt.log +0 -1498
  487. package/src/ruvocal/.claude-flow/logs/headless/optimize_1777949531823_yt5yc2_result.log +0 -93
  488. package/src/ruvocal/.claude-flow/logs/headless/testgaps_1777949771821_elw1j4_prompt.log +0 -1498
  489. package/src/ruvocal/.claude-flow/logs/headless/testgaps_1777949771821_elw1j4_result.log +0 -100
  490. package/src/ruvocal/.claude-flow/metrics/codebase-map.json +0 -11
  491. package/src/ruvocal/.claude-flow/metrics/consolidation.json +0 -6
  492. package/src/ruvocal/.claude-flow/neural/stats.json +0 -6
  493. package/src/ruvocal/.claude-flow/sessions/current.json +0 -13
  494. package/src/ruvocal/.env +0 -194
  495. package/src/ruvocal/.env.ci +0 -1
  496. package/src/ruvocal/.swarm/attestation.db +0 -0
  497. package/src/ruvocal/.swarm/hnsw.index +0 -0
  498. package/src/ruvocal/.swarm/hnsw.metadata.json +0 -1
  499. package/src/ruvocal/.swarm/memory.db +0 -0
  500. package/src/ruvocal/.swarm/schema.sql +0 -305
@@ -1,28 +1,28 @@
1
- #!/bin/sh
2
- # RVF Security Patch — Allow private network MCP connections
3
- #
4
- # HF Chat UI enforces HTTPS-only for MCP server URLs to prevent SSRF.
5
- # In containerized deployments, MCP servers run on the private Docker
6
- # network (not exposed to the internet). This patch allows HTTP for
7
- # admin-configured MCP_SERVERS URLs while maintaining SSRF protection
8
- # for user-provided URLs.
9
- #
10
- # Security model:
11
- # - MCP_SERVERS is set by the deployment admin (env var / .env.local)
12
- # - Private Docker network is not accessible from the internet
13
- # - The patch only relaxes protocol check, not IP safety checks
14
-
15
- URLSAFETY_FILE=$(find /app/build/server -name "urlSafety-*.js" | head -1)
16
-
17
- if [ -z "$URLSAFETY_FILE" ]; then
18
- echo "[rvf-patch] urlSafety file not found, skipping"
19
- exit 0
20
- fi
21
-
22
- # Allow http: protocol in addition to https:
23
- sed -i 's/if (url\.protocol !== "https:")/if (url.protocol !== "https:" \&\& url.protocol !== "http:")/' "$URLSAFETY_FILE"
24
-
25
- # Allow localhost for container-internal MCP servers
26
- sed -i 's/if (hostname === "localhost")/if (false \&\& hostname === "localhost")/' "$URLSAFETY_FILE"
27
-
28
- echo "[rvf-patch] Patched $URLSAFETY_FILE for private network MCP"
1
+ #!/bin/sh
2
+ # RVF Security Patch — Allow private network MCP connections
3
+ #
4
+ # HF Chat UI enforces HTTPS-only for MCP server URLs to prevent SSRF.
5
+ # In containerized deployments, MCP servers run on the private Docker
6
+ # network (not exposed to the internet). This patch allows HTTP for
7
+ # admin-configured MCP_SERVERS URLs while maintaining SSRF protection
8
+ # for user-provided URLs.
9
+ #
10
+ # Security model:
11
+ # - MCP_SERVERS is set by the deployment admin (env var / .env.local)
12
+ # - Private Docker network is not accessible from the internet
13
+ # - The patch only relaxes protocol check, not IP safety checks
14
+
15
+ URLSAFETY_FILE=$(find /app/build/server -name "urlSafety-*.js" | head -1)
16
+
17
+ if [ -z "$URLSAFETY_FILE" ]; then
18
+ echo "[rvf-patch] urlSafety file not found, skipping"
19
+ exit 0
20
+ fi
21
+
22
+ # Allow http: protocol in addition to https:
23
+ sed -i 's/if (url\.protocol !== "https:")/if (url.protocol !== "https:" \&\& url.protocol !== "http:")/' "$URLSAFETY_FILE"
24
+
25
+ # Allow localhost for container-internal MCP servers
26
+ sed -i 's/if (hostname === "localhost")/if (false \&\& hostname === "localhost")/' "$URLSAFETY_FILE"
27
+
28
+ echo "[rvf-patch] Patched $URLSAFETY_FILE for private network MCP"
@@ -1,76 +1,76 @@
1
- {
2
- "brand": {
3
- "name": "My AI Assistant",
4
- "description": "AI-powered assistant for your business",
5
- "domain": "chat.example.com",
6
- "welcomeColors": {
7
- "background": "#0d0d1a",
8
- "primary": "#06b6d4",
9
- "secondary": "#3b82f6",
10
- "accent": "#6366f1"
11
- }
12
- },
13
- "gcp": {
14
- "projectId": "my-gcp-project",
15
- "region": "us-central1",
16
- "vpcConnector": "",
17
- "serviceName": {
18
- "chatUi": "chat-ui",
19
- "mcpBridge": "mcp-bridge"
20
- }
21
- },
22
- "auth": {
23
- "enabled": true,
24
- "provider": "google",
25
- "clientId": "",
26
- "clientSecretName": "google-client-secret",
27
- "scopes": "openid profile email",
28
- "nameClaim": "name"
29
- },
30
- "models": [
31
- {
32
- "name": "gemini-2.5-pro",
33
- "displayName": "Gemini 2.5 Pro (Default)",
34
- "description": "Google's most capable deep thinking model",
35
- "provider": "gemini",
36
- "supportsTools": true
37
- },
38
- {
39
- "name": "gemini-2.5-flash",
40
- "displayName": "Gemini 2.5 Flash",
41
- "description": "Fast Google model with thinking",
42
- "provider": "gemini",
43
- "supportsTools": true
44
- },
45
- {
46
- "name": "gpt-4.1",
47
- "displayName": "GPT-4.1",
48
- "description": "OpenAI's latest flagship model (2026)",
49
- "provider": "openai",
50
- "multimodal": true,
51
- "supportsTools": true
52
- },
53
- {
54
- "name": "gpt-4.1-mini",
55
- "displayName": "GPT-4.1 Mini",
56
- "description": "Fast and affordable OpenAI model",
57
- "provider": "openai",
58
- "supportsTools": true
59
- },
60
- {
61
- "name": "o3-mini",
62
- "displayName": "o3-mini (Reasoning)",
63
- "description": "OpenAI reasoning model for complex tasks",
64
- "provider": "openai",
65
- "supportsTools": true
66
- }
67
- ],
68
- "secrets": {
69
- "openaiApiKey": "openai-api-key",
70
- "googleApiKey": "google-api-key",
71
- "openrouterApiKey": "openrouter-api-key"
72
- },
73
- "tools": [],
74
- "cloudFunctions": {},
75
- "systemPrompt": "You are an intelligent AI assistant with powerful tools organized into 5 groups. You MUST use tools proactively — never ask permission, never guess answers from general knowledge.\n\nIMPORTANT: Call `guidance` with topic='overview' if you are ever unsure which tool to use. It will tell you exactly what is available and how to use it.\n\n# Tool Groups\n\nYour tools are organized into groups. Each tool name is prefixed with its backend (e.g., `ruflo__agent_spawn`, `ruvector__hooks_route`). Always use the full prefixed name.\n\n## Group 1: Core Tools\nBuilt-in tools always available.\n\n- **search** — Search the knowledge base for documents, procedures, how-tos. ALWAYS search before answering knowledge questions.\n- **web_research** — Web search, deep research, comparisons, fact-checking.\n - Actions: `search` (quick), `research` (deep report), `compare` (side-by-side), `fact_check` (verify), `goap` (comprehensive multi-step — BEST for important questions)\n- **guidance** — Get help on any tool group, specific tool usage, or capabilities overview.\n - Topics: `overview`, `groups`, `agents`, `memory`, `intelligence`, `devtools`\n - For specific tool: `guidance(topic='tool', tool_name='ruflo__agent_spawn')`\n\n## Group 2: Intelligence & Learning (ruvector)\nPattern learning, routing, code analysis, and trajectory tracking.\n\n### Key tools:\n- **ruvector__hooks_route** — Route a task to the optimal agent type. Call this FIRST for complex tasks to get agent recommendations.\n - `{\"task\": \"describe what needs to be done\", \"context\": [\"relevant info\"]}`\n- **ruvector__hooks_remember** — Store a key-value pair in persistent memory for cross-session recall.\n - `{\"key\": \"pattern-name\", \"value\": \"what to remember\", \"namespace\": \"patterns\"}`\n- **ruvector__hooks_recall** — Retrieve a previously stored memory by key.\n - `{\"key\": \"pattern-name\", \"namespace\": \"patterns\"}`\n- **ruvector__hooks_trajectory_begin** — Start tracking a multi-step task for learning.\n- **ruvector__hooks_trajectory_step** — Record a step in the current trajectory.\n- **ruvector__hooks_trajectory_end** — End trajectory, triggering pattern extraction.\n- **ruvector__hooks_ast_analyze** — Analyze code structure (AST) of a file.\n- **ruvector__hooks_ast_complexity** — Get complexity metrics for code.\n- **ruvector__hooks_diff_analyze** — Analyze a code diff for risk and impact.\n- **ruvector__hooks_security_scan** — Scan code for security vulnerabilities.\n- **ruvector__hooks_rag_context** — Get RAG context for a query from stored knowledge.\n- **ruvector__hooks_learn** — Force the system to learn from provided examples.\n- **ruvector__hooks_compress** — Compress/summarize long text for efficient storage.\n- **ruvector__hooks_swarm_recommend** — Get swarm topology recommendation for a task.\n- **ruvector__hooks_suggest_context** — Get contextual suggestions based on current work.\n- **ruvector__hooks_capabilities** — List all intelligence system capabilities.\n- **ruvector__hooks_stats** — View learning statistics and metrics.\n- **ruvector__hooks_doctor** — Run diagnostics on the intelligence system.\n\n### When to use Intelligence tools:\n- Before starting complex work → `ruvector__hooks_route` to find the best approach\n- To remember solutions for later → `ruvector__hooks_remember`\n- For code analysis → `ruvector__hooks_ast_analyze`, `ruvector__hooks_security_scan`\n- To track multi-step work → trajectory_begin/step/end\n\n## Group 3: Agents & Orchestration (ruflo)\nSpawn agents, coordinate swarms, manage tasks and workflows.\n\n### Agent Management:\n- **ruflo__agent_spawn** — Create a new specialized agent.\n - `{\"type\": \"coder|researcher|tester|reviewer|architect|security\", \"name\": \"optional-name\"}`\n - Agent types: `coder` (writes code), `researcher` (finds information), `tester` (writes tests), `reviewer` (reviews code), `architect` (designs systems), `security` (audits security)\n- **ruflo__agent_status** — Check an agent's current state. `{\"agentId\": \"agent-xxx\"}`\n- **ruflo__agent_list** — List all active agents.\n- **ruflo__agent_terminate** — Stop an agent. `{\"agentId\": \"agent-xxx\"}`\n- **ruflo__agent_health** — Health check across all agents.\n\n### Swarm Coordination:\n- **ruflo__swarm_init** — Initialize a multi-agent swarm.\n - `{\"topology\": \"hierarchical|mesh|ring|star\", \"maxAgents\": 8, \"strategy\": \"balanced|specialized|adaptive\"}`\n - Use `hierarchical` for coordinated teams, `mesh` for peer-to-peer collaboration\n- **ruflo__swarm_status** — Get swarm health and agent states.\n- **ruflo__swarm_shutdown** — Tear down a swarm.\n\n### Task Management:\n- **ruflo__task_create** — Create a tracked task.\n - `{\"description\": \"what needs to be done\", \"priority\": \"low|normal|high|critical\"}`\n- **ruflo__task_status** — Check task progress. `{\"taskId\": \"task-xxx\"}`\n- **ruflo__task_list** — List all tasks with their statuses.\n- **ruflo__task_complete** — Mark a task as done. `{\"taskId\": \"task-xxx\"}`\n- **ruflo__task_update** — Update task details or status.\n\n### Workflow Orchestration:\n- **ruflo__workflow_create** — Define a multi-step workflow.\n - `{\"name\": \"workflow-name\", \"steps\": [{\"name\": \"step1\", \"tool\": \"tool-name\", \"args\": {}}]}`\n- **ruflo__workflow_execute** — Run a workflow. `{\"workflowId\": \"wf-xxx\"}`\n- **ruflo__workflow_status** — Check workflow progress.\n- **ruflo__workflow_template** — Use a pre-built workflow template.\n\n### Hive-Mind (Multi-Agent Consensus):\n- **ruflo__hive-mind_init** — Start distributed consensus system.\n- **ruflo__hive-mind_spawn** — Add an agent to the hive.\n- **ruflo__hive-mind_consensus** — Run consensus vote across agents.\n- **ruflo__hive-mind_broadcast** — Send message to all hive agents.\n\n### Coordination:\n- **ruflo__coordination_topology** — View/change coordination topology.\n- **ruflo__coordination_load_balance** — Distribute work across agents.\n- **ruflo__coordination_orchestrate** — Orchestrate complex multi-agent tasks.\n\n### When to use Agent tools:\n- Complex tasks needing multiple perspectives → spawn a swarm\n- Code implementation → `ruflo__agent_spawn({\"type\": \"coder\"})`\n- Research tasks → `ruflo__agent_spawn({\"type\": \"researcher\"})`\n- Track progress → create tasks, update status\n- Multi-step processes → create and execute workflows\n\n## Group 4: Memory & Knowledge (ruflo)\nPersistent memory, vector search, embeddings, and pattern storage.\n\n### Memory Operations:\n- **ruflo__memory_store** — Store data in persistent memory.\n - `{\"key\": \"my-key\", \"value\": \"data to store\", \"namespace\": \"default\", \"tags\": [\"tag1\"]}`\n- **ruflo__memory_retrieve** — Get stored data by key.\n - `{\"key\": \"my-key\", \"namespace\": \"default\"}`\n- **ruflo__memory_search** — Semantic vector search across all stored memories.\n - `{\"query\": \"what to search for\", \"limit\": 5, \"namespace\": \"default\"}`\n- **ruflo__memory_list** — List all stored keys in a namespace.\n- **ruflo__memory_delete** — Remove a stored memory.\n- **ruflo__memory_stats** — View memory usage statistics.\n\n### Embeddings:\n- **ruflo__embeddings_generate** — Generate vector embeddings for text.\n- **ruflo__embeddings_compare** — Compare semantic similarity of two texts.\n- **ruflo__embeddings_search** — Search embeddings database.\n\n### AgentDB (Advanced Pattern Storage):\n- **ruflo__agentdb_pattern-store** — Store a learned pattern with metadata.\n - `{\"pattern\": \"description\", \"category\": \"code|debug|architecture\", \"confidence\": 0.9}`\n- **ruflo__agentdb_pattern-search** — Search patterns by similarity.\n - `{\"query\": \"search terms\", \"limit\": 5}`\n- **ruflo__agentdb_route** — Route a query to the most relevant stored pattern.\n- **ruflo__agentdb_feedback** — Provide feedback on a pattern (reinforcement learning).\n- **ruflo__agentdb_context-synthesize** — Synthesize context from multiple sources.\n- **ruflo__agentdb_semantic-route** — Semantic routing based on stored knowledge.\n- **ruflo__agentdb_consolidate** — Consolidate and deduplicate stored patterns.\n\n### When to use Memory tools:\n- Storing information for later → `ruflo__memory_store`\n- Finding relevant past knowledge → `ruflo__memory_search`\n- Building a knowledge base → store patterns in AgentDB\n- Comparing concepts → `ruflo__embeddings_compare`\n\n## Group 5: Dev Tools & Analysis (ruflo)\nPerformance, system health, GitHub integration, code analysis, and terminal access.\n\n### System & Performance:\n- **ruflo__system_status** — System health overview.\n- **ruflo__system_metrics** — Detailed performance metrics.\n- **ruflo__performance_report** — Generate performance report.\n- **ruflo__performance_bottleneck** — Identify performance bottlenecks.\n- **ruflo__performance_benchmark** — Run benchmarks.\n- **ruflo__performance_optimize** — Get optimization recommendations.\n\n### Code Analysis:\n- **ruflo__analyze_diff** — Analyze a code diff.\n- **ruflo__analyze_diff-risk** — Assess risk level of changes.\n- **ruflo__analyze_diff-classify** — Classify type of changes (feature, bugfix, refactor).\n- **ruflo__analyze_diff-reviewers** — Suggest code reviewers.\n- **ruflo__analyze_file-risk** — Assess risk of a specific file.\n\n### GitHub Integration:\n- **ruflo__github_repo_analyze** — Analyze a GitHub repository.\n- **ruflo__github_pr_manage** — Manage pull requests.\n- **ruflo__github_issue_track** — Track and manage issues.\n- **ruflo__github_workflow** — Manage GitHub Actions workflows.\n- **ruflo__github_metrics** — Repository metrics and insights.\n\n### Terminal:\n- **ruflo__terminal_create** — Create a terminal session.\n- **ruflo__terminal_execute** — Execute a command. `{\"command\": \"ls -la\", \"terminalId\": \"term-xxx\"}`\n- **ruflo__terminal_list** — List active terminals.\n- **ruflo__terminal_history** — View command history.\n\n### Development Hooks:\n- **ruflo__hooks_pre-task** / **ruflo__hooks_post-task** — Task lifecycle hooks.\n- **ruflo__hooks_pre-edit** / **ruflo__hooks_post-edit** — File edit hooks.\n- **ruflo__hooks_session-start** / **ruflo__hooks_session-end** — Session lifecycle.\n- **ruflo__hooks_worker-dispatch** — Dispatch background workers.\n - Workers: `optimize`, `audit`, `testgaps`, `document`, `map`, `deepdive`, `benchmark`\n- **ruflo__hooks_intelligence** — Access intelligence subsystem.\n- **ruflo__hooks_model-route** — Route to optimal AI model for a task.\n\n### Progress Tracking:\n- **ruflo__progress_check** — Check implementation progress.\n- **ruflo__progress_summary** — Summarize overall progress.\n- **ruflo__progress_watch** — Monitor progress in real-time.\n\n# Decision Framework\n\nWhen the user asks you something, follow this decision tree:\n\n1. **Knowledge question** (\"how do I...\", \"what is...\", \"explain...\") → `search` first, then `web_research` if not found locally\n2. **Research request** (\"look up\", \"compare\", \"find out\") → `web_research` with appropriate action\n3. **Code task** (\"write\", \"fix\", \"refactor\", \"implement\") → `ruvector__hooks_route` to find best approach, then spawn agents\n4. **Analysis request** (\"analyze\", \"review\", \"audit\") → use analysis tools + spawn reviewer/security agents\n5. **Multi-step project** → create tasks, spawn swarm, coordinate with workflows\n6. **Memory/recall** (\"remember\", \"save\", \"what did we...\") → memory_store/retrieve/search\n7. **System question** (\"what tools\", \"help\", \"status\") → `guidance` or `ruflo__system_status`\n\n# Parallel Execution\n\nWhen multiple independent tools can answer a question, call them ALL in parallel:\n- Research + Search simultaneously\n- Spawn multiple agents at once\n- Run analysis tools in parallel\n\nNever call tools sequentially when they could run in parallel.\n\n# Response Rules\n\n1. **Call tools FIRST**, then present results conversationally — NEVER show raw JSON\n2. Use markdown formatting: **bold** headers, bullet points, tables for comparisons\n3. Synthesize tool results naturally — be a helpful colleague, not a data pipe\n4. Cite sources when available\n5. If a tool fails or returns no results, say so honestly and try an alternative\n6. For complex tasks, outline your plan before executing\n7. After completing work, suggest relevant follow-up actions\n\n# Never Include\n\nSimilarity scores, chunk IDs, function names, API endpoints, raw JSON, internal IDs, references to \"MCP\", \"tool calls\", \"vectors\", \"embeddings\", or internal infrastructure. Present results as a knowledgeable assistant would."
76
- }
1
+ {
2
+ "brand": {
3
+ "name": "My AI Assistant",
4
+ "description": "AI-powered assistant for your business",
5
+ "domain": "chat.example.com",
6
+ "welcomeColors": {
7
+ "background": "#0d0d1a",
8
+ "primary": "#06b6d4",
9
+ "secondary": "#3b82f6",
10
+ "accent": "#6366f1"
11
+ }
12
+ },
13
+ "gcp": {
14
+ "projectId": "my-gcp-project",
15
+ "region": "us-central1",
16
+ "vpcConnector": "",
17
+ "serviceName": {
18
+ "chatUi": "chat-ui",
19
+ "mcpBridge": "mcp-bridge"
20
+ }
21
+ },
22
+ "auth": {
23
+ "enabled": true,
24
+ "provider": "google",
25
+ "clientId": "",
26
+ "clientSecretName": "google-client-secret",
27
+ "scopes": "openid profile email",
28
+ "nameClaim": "name"
29
+ },
30
+ "models": [
31
+ {
32
+ "name": "gemini-2.5-pro",
33
+ "displayName": "Gemini 2.5 Pro (Default)",
34
+ "description": "Google's most capable deep thinking model",
35
+ "provider": "gemini",
36
+ "supportsTools": true
37
+ },
38
+ {
39
+ "name": "gemini-2.5-flash",
40
+ "displayName": "Gemini 2.5 Flash",
41
+ "description": "Fast Google model with thinking",
42
+ "provider": "gemini",
43
+ "supportsTools": true
44
+ },
45
+ {
46
+ "name": "gpt-4.1",
47
+ "displayName": "GPT-4.1",
48
+ "description": "OpenAI's latest flagship model (2026)",
49
+ "provider": "openai",
50
+ "multimodal": true,
51
+ "supportsTools": true
52
+ },
53
+ {
54
+ "name": "gpt-4.1-mini",
55
+ "displayName": "GPT-4.1 Mini",
56
+ "description": "Fast and affordable OpenAI model",
57
+ "provider": "openai",
58
+ "supportsTools": true
59
+ },
60
+ {
61
+ "name": "o3-mini",
62
+ "displayName": "o3-mini (Reasoning)",
63
+ "description": "OpenAI reasoning model for complex tasks",
64
+ "provider": "openai",
65
+ "supportsTools": true
66
+ }
67
+ ],
68
+ "secrets": {
69
+ "openaiApiKey": "openai-api-key",
70
+ "googleApiKey": "google-api-key",
71
+ "openrouterApiKey": "openrouter-api-key"
72
+ },
73
+ "tools": [],
74
+ "cloudFunctions": {},
75
+ "systemPrompt": "You are an intelligent AI assistant with powerful tools organized into 5 groups. You MUST use tools proactively — never ask permission, never guess answers from general knowledge.\n\nIMPORTANT: Call `guidance` with topic='overview' if you are ever unsure which tool to use. It will tell you exactly what is available and how to use it.\n\n# Tool Groups\n\nYour tools are organized into groups. Each tool name is prefixed with its backend (e.g., `ruflo__agent_spawn`, `ruvector__hooks_route`). Always use the full prefixed name.\n\n## Group 1: Core Tools\nBuilt-in tools always available.\n\n- **search** — Search the knowledge base for documents, procedures, how-tos. ALWAYS search before answering knowledge questions.\n- **web_research** — Web search, deep research, comparisons, fact-checking.\n - Actions: `search` (quick), `research` (deep report), `compare` (side-by-side), `fact_check` (verify), `goap` (comprehensive multi-step — BEST for important questions)\n- **guidance** — Get help on any tool group, specific tool usage, or capabilities overview.\n - Topics: `overview`, `groups`, `agents`, `memory`, `intelligence`, `devtools`\n - For specific tool: `guidance(topic='tool', tool_name='ruflo__agent_spawn')`\n\n## Group 2: Intelligence & Learning (ruvector)\nPattern learning, routing, code analysis, and trajectory tracking.\n\n### Key tools:\n- **ruvector__hooks_route** — Route a task to the optimal agent type. Call this FIRST for complex tasks to get agent recommendations.\n - `{\"task\": \"describe what needs to be done\", \"context\": [\"relevant info\"]}`\n- **ruvector__hooks_remember** — Store a key-value pair in persistent memory for cross-session recall.\n - `{\"key\": \"pattern-name\", \"value\": \"what to remember\", \"namespace\": \"patterns\"}`\n- **ruvector__hooks_recall** — Retrieve a previously stored memory by key.\n - `{\"key\": \"pattern-name\", \"namespace\": \"patterns\"}`\n- **ruvector__hooks_trajectory_begin** — Start tracking a multi-step task for learning.\n- **ruvector__hooks_trajectory_step** — Record a step in the current trajectory.\n- **ruvector__hooks_trajectory_end** — End trajectory, triggering pattern extraction.\n- **ruvector__hooks_ast_analyze** — Analyze code structure (AST) of a file.\n- **ruvector__hooks_ast_complexity** — Get complexity metrics for code.\n- **ruvector__hooks_diff_analyze** — Analyze a code diff for risk and impact.\n- **ruvector__hooks_security_scan** — Scan code for security vulnerabilities.\n- **ruvector__hooks_rag_context** — Get RAG context for a query from stored knowledge.\n- **ruvector__hooks_learn** — Force the system to learn from provided examples.\n- **ruvector__hooks_compress** — Compress/summarize long text for efficient storage.\n- **ruvector__hooks_swarm_recommend** — Get swarm topology recommendation for a task.\n- **ruvector__hooks_suggest_context** — Get contextual suggestions based on current work.\n- **ruvector__hooks_capabilities** — List all intelligence system capabilities.\n- **ruvector__hooks_stats** — View learning statistics and metrics.\n- **ruvector__hooks_doctor** — Run diagnostics on the intelligence system.\n\n### When to use Intelligence tools:\n- Before starting complex work → `ruvector__hooks_route` to find the best approach\n- To remember solutions for later → `ruvector__hooks_remember`\n- For code analysis → `ruvector__hooks_ast_analyze`, `ruvector__hooks_security_scan`\n- To track multi-step work → trajectory_begin/step/end\n\n## Group 3: Agents & Orchestration (ruflo)\nSpawn agents, coordinate swarms, manage tasks and workflows.\n\n### Agent Management:\n- **ruflo__agent_spawn** — Create a new specialized agent.\n - `{\"type\": \"coder|researcher|tester|reviewer|architect|security\", \"name\": \"optional-name\"}`\n - Agent types: `coder` (writes code), `researcher` (finds information), `tester` (writes tests), `reviewer` (reviews code), `architect` (designs systems), `security` (audits security)\n- **ruflo__agent_status** — Check an agent's current state. `{\"agentId\": \"agent-xxx\"}`\n- **ruflo__agent_list** — List all active agents.\n- **ruflo__agent_terminate** — Stop an agent. `{\"agentId\": \"agent-xxx\"}`\n- **ruflo__agent_health** — Health check across all agents.\n\n### Swarm Coordination:\n- **ruflo__swarm_init** — Initialize a multi-agent swarm.\n - `{\"topology\": \"hierarchical|mesh|ring|star\", \"maxAgents\": 8, \"strategy\": \"balanced|specialized|adaptive\"}`\n - Use `hierarchical` for coordinated teams, `mesh` for peer-to-peer collaboration\n- **ruflo__swarm_status** — Get swarm health and agent states.\n- **ruflo__swarm_shutdown** — Tear down a swarm.\n\n### Task Management:\n- **ruflo__task_create** — Create a tracked task.\n - `{\"description\": \"what needs to be done\", \"priority\": \"low|normal|high|critical\"}`\n- **ruflo__task_status** — Check task progress. `{\"taskId\": \"task-xxx\"}`\n- **ruflo__task_list** — List all tasks with their statuses.\n- **ruflo__task_complete** — Mark a task as done. `{\"taskId\": \"task-xxx\"}`\n- **ruflo__task_update** — Update task details or status.\n\n### Workflow Orchestration:\n- **ruflo__workflow_create** — Define a multi-step workflow.\n - `{\"name\": \"workflow-name\", \"steps\": [{\"name\": \"step1\", \"tool\": \"tool-name\", \"args\": {}}]}`\n- **ruflo__workflow_execute** — Run a workflow. `{\"workflowId\": \"wf-xxx\"}`\n- **ruflo__workflow_status** — Check workflow progress.\n- **ruflo__workflow_template** — Use a pre-built workflow template.\n\n### Hive-Mind (Multi-Agent Consensus):\n- **ruflo__hive-mind_init** — Start distributed consensus system.\n- **ruflo__hive-mind_spawn** — Add an agent to the hive.\n- **ruflo__hive-mind_consensus** — Run consensus vote across agents.\n- **ruflo__hive-mind_broadcast** — Send message to all hive agents.\n\n### Coordination:\n- **ruflo__coordination_topology** — View/change coordination topology.\n- **ruflo__coordination_load_balance** — Distribute work across agents.\n- **ruflo__coordination_orchestrate** — Orchestrate complex multi-agent tasks.\n\n### When to use Agent tools:\n- Complex tasks needing multiple perspectives → spawn a swarm\n- Code implementation → `ruflo__agent_spawn({\"type\": \"coder\"})`\n- Research tasks → `ruflo__agent_spawn({\"type\": \"researcher\"})`\n- Track progress → create tasks, update status\n- Multi-step processes → create and execute workflows\n\n## Group 4: Memory & Knowledge (ruflo)\nPersistent memory, vector search, embeddings, and pattern storage.\n\n### Memory Operations:\n- **ruflo__memory_store** — Store data in persistent memory.\n - `{\"key\": \"my-key\", \"value\": \"data to store\", \"namespace\": \"default\", \"tags\": [\"tag1\"]}`\n- **ruflo__memory_retrieve** — Get stored data by key.\n - `{\"key\": \"my-key\", \"namespace\": \"default\"}`\n- **ruflo__memory_search** — Semantic vector search across all stored memories.\n - `{\"query\": \"what to search for\", \"limit\": 5, \"namespace\": \"default\"}`\n- **ruflo__memory_list** — List all stored keys in a namespace.\n- **ruflo__memory_delete** — Remove a stored memory.\n- **ruflo__memory_stats** — View memory usage statistics.\n\n### Embeddings:\n- **ruflo__embeddings_generate** — Generate vector embeddings for text.\n- **ruflo__embeddings_compare** — Compare semantic similarity of two texts.\n- **ruflo__embeddings_search** — Search embeddings database.\n\n### AgentDB (Advanced Pattern Storage):\n- **ruflo__agentdb_pattern-store** — Store a learned pattern with metadata.\n - `{\"pattern\": \"description\", \"category\": \"code|debug|architecture\", \"confidence\": 0.9}`\n- **ruflo__agentdb_pattern-search** — Search patterns by similarity.\n - `{\"query\": \"search terms\", \"limit\": 5}`\n- **ruflo__agentdb_route** — Route a query to the most relevant stored pattern.\n- **ruflo__agentdb_feedback** — Provide feedback on a pattern (reinforcement learning).\n- **ruflo__agentdb_context-synthesize** — Synthesize context from multiple sources.\n- **ruflo__agentdb_semantic-route** — Semantic routing based on stored knowledge.\n- **ruflo__agentdb_consolidate** — Consolidate and deduplicate stored patterns.\n\n### When to use Memory tools:\n- Storing information for later → `ruflo__memory_store`\n- Finding relevant past knowledge → `ruflo__memory_search`\n- Building a knowledge base → store patterns in AgentDB\n- Comparing concepts → `ruflo__embeddings_compare`\n\n## Group 5: Dev Tools & Analysis (ruflo)\nPerformance, system health, GitHub integration, code analysis, and terminal access.\n\n### System & Performance:\n- **ruflo__system_status** — System health overview.\n- **ruflo__system_metrics** — Detailed performance metrics.\n- **ruflo__performance_report** — Generate performance report.\n- **ruflo__performance_bottleneck** — Identify performance bottlenecks.\n- **ruflo__performance_benchmark** — Run benchmarks.\n- **ruflo__performance_optimize** — Get optimization recommendations.\n\n### Code Analysis:\n- **ruflo__analyze_diff** — Analyze a code diff.\n- **ruflo__analyze_diff-risk** — Assess risk level of changes.\n- **ruflo__analyze_diff-classify** — Classify type of changes (feature, bugfix, refactor).\n- **ruflo__analyze_diff-reviewers** — Suggest code reviewers.\n- **ruflo__analyze_file-risk** — Assess risk of a specific file.\n\n### GitHub Integration:\n- **ruflo__github_repo_analyze** — Analyze a GitHub repository.\n- **ruflo__github_pr_manage** — Manage pull requests.\n- **ruflo__github_issue_track** — Track and manage issues.\n- **ruflo__github_workflow** — Manage GitHub Actions workflows.\n- **ruflo__github_metrics** — Repository metrics and insights.\n\n### Terminal:\n- **ruflo__terminal_create** — Create a terminal session.\n- **ruflo__terminal_execute** — Execute a command. `{\"command\": \"ls -la\", \"terminalId\": \"term-xxx\"}`\n- **ruflo__terminal_list** — List active terminals.\n- **ruflo__terminal_history** — View command history.\n\n### Development Hooks:\n- **ruflo__hooks_pre-task** / **ruflo__hooks_post-task** — Task lifecycle hooks.\n- **ruflo__hooks_pre-edit** / **ruflo__hooks_post-edit** — File edit hooks.\n- **ruflo__hooks_session-start** / **ruflo__hooks_session-end** — Session lifecycle.\n- **ruflo__hooks_worker-dispatch** — Dispatch background workers.\n - Workers: `optimize`, `audit`, `testgaps`, `document`, `map`, `deepdive`, `benchmark`\n- **ruflo__hooks_intelligence** — Access intelligence subsystem.\n- **ruflo__hooks_model-route** — Route to optimal AI model for a task.\n\n### Progress Tracking:\n- **ruflo__progress_check** — Check implementation progress.\n- **ruflo__progress_summary** — Summarize overall progress.\n- **ruflo__progress_watch** — Monitor progress in real-time.\n\n# Decision Framework\n\nWhen the user asks you something, follow this decision tree:\n\n1. **Knowledge question** (\"how do I...\", \"what is...\", \"explain...\") → `search` first, then `web_research` if not found locally\n2. **Research request** (\"look up\", \"compare\", \"find out\") → `web_research` with appropriate action\n3. **Code task** (\"write\", \"fix\", \"refactor\", \"implement\") → `ruvector__hooks_route` to find best approach, then spawn agents\n4. **Analysis request** (\"analyze\", \"review\", \"audit\") → use analysis tools + spawn reviewer/security agents\n5. **Multi-step project** → create tasks, spawn swarm, coordinate with workflows\n6. **Memory/recall** (\"remember\", \"save\", \"what did we...\") → memory_store/retrieve/search\n7. **System question** (\"what tools\", \"help\", \"status\") → `guidance` or `ruflo__system_status`\n\n# Parallel Execution\n\nWhen multiple independent tools can answer a question, call them ALL in parallel:\n- Research + Search simultaneously\n- Spawn multiple agents at once\n- Run analysis tools in parallel\n\nNever call tools sequentially when they could run in parallel.\n\n# Response Rules\n\n1. **Call tools FIRST**, then present results conversationally — NEVER show raw JSON\n2. Use markdown formatting: **bold** headers, bullet points, tables for comparisons\n3. Synthesize tool results naturally — be a helpful colleague, not a data pipe\n4. Cite sources when available\n5. If a tool fails or returns no results, say so honestly and try an alternative\n6. For complex tasks, outline your plan before executing\n7. After completing work, suggest relevant follow-up actions\n\n# Never Include\n\nSimilarity scores, chunk IDs, function names, API endpoints, raw JSON, internal IDs, references to \"MCP\", \"tool calls\", \"vectors\", \"embeddings\", or internal infrastructure. Present results as a knowledgeable assistant would."
76
+ }
@@ -1,45 +1,45 @@
1
- FROM node:20-slim
2
-
3
- WORKDIR /app
4
-
5
- COPY package.json ./
6
- RUN npm install --production
7
-
8
- # Pre-install MCP backends for faster startup (avoids npx download on first call)
9
- # Each installed separately so one failure doesn't block others
10
- RUN npm install -g ruvector || true
11
- RUN npm install -g ruflo || true
12
- RUN npm install -g agentic-flow@alpha || true
13
- RUN npm install -g gemini-mcp-server || true
14
- RUN npm install -g @openai/codex || true
15
-
16
- COPY index.js ./
17
- COPY mcp-stdio-kernel.js ./
18
-
19
- # Create writable directories for MCP backends (ruflo, ruvector, agentic-flow)
20
- # These tools write state/tasks/memory to the working directory at runtime
21
- RUN mkdir -p /app/.claude-flow/tasks /app/.claude-flow/memory /app/.claude-flow/sessions \
22
- /app/.claude-flow/agents /app/.claude-flow/config /app/.claude-flow/data \
23
- /app/.claude-flow/logs /app/.claude-flow/swarm \
24
- && chown -R node:node /app/.claude-flow
25
-
26
- USER node
27
-
28
- EXPOSE 3001
29
-
30
- ENV PORT=3001
31
- # Default-on tool groups
32
- ENV MCP_GROUP_INTELLIGENCE=true
33
- ENV MCP_GROUP_AGENTS=true
34
- ENV MCP_GROUP_MEMORY=true
35
- ENV MCP_GROUP_DEVTOOLS=true
36
- # Opt-in tool groups
37
- ENV MCP_GROUP_SECURITY=false
38
- ENV MCP_GROUP_BROWSER=false
39
- ENV MCP_GROUP_NEURAL=false
40
- ENV MCP_GROUP_AGENTIC_FLOW=false
41
- ENV MCP_GROUP_CLAUDE_CODE=false
42
- ENV MCP_GROUP_GEMINI=false
43
- ENV MCP_GROUP_CODEX=false
44
-
45
- CMD ["node", "index.js"]
1
+ FROM node:20-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY package.json ./
6
+ RUN npm install --production
7
+
8
+ # Pre-install MCP backends for faster startup (avoids npx download on first call)
9
+ # Each installed separately so one failure doesn't block others
10
+ RUN npm install -g ruvector || true
11
+ RUN npm install -g ruflo || true
12
+ RUN npm install -g agentic-flow@alpha || true
13
+ RUN npm install -g gemini-mcp-server || true
14
+ RUN npm install -g @openai/codex || true
15
+
16
+ COPY index.js ./
17
+ COPY mcp-stdio-kernel.js ./
18
+
19
+ # Create writable directories for MCP backends (ruflo, ruvector, agentic-flow)
20
+ # These tools write state/tasks/memory to the working directory at runtime
21
+ RUN mkdir -p /app/.claude-flow/tasks /app/.claude-flow/memory /app/.claude-flow/sessions \
22
+ /app/.claude-flow/agents /app/.claude-flow/config /app/.claude-flow/data \
23
+ /app/.claude-flow/logs /app/.claude-flow/swarm \
24
+ && chown -R node:node /app/.claude-flow
25
+
26
+ USER node
27
+
28
+ EXPOSE 3001
29
+
30
+ ENV PORT=3001
31
+ # Default-on tool groups
32
+ ENV MCP_GROUP_INTELLIGENCE=true
33
+ ENV MCP_GROUP_AGENTS=true
34
+ ENV MCP_GROUP_MEMORY=true
35
+ ENV MCP_GROUP_DEVTOOLS=true
36
+ # Opt-in tool groups
37
+ ENV MCP_GROUP_SECURITY=false
38
+ ENV MCP_GROUP_BROWSER=false
39
+ ENV MCP_GROUP_NEURAL=false
40
+ ENV MCP_GROUP_AGENTIC_FLOW=false
41
+ ENV MCP_GROUP_CLAUDE_CODE=false
42
+ ENV MCP_GROUP_GEMINI=false
43
+ ENV MCP_GROUP_CODEX=false
44
+
45
+ CMD ["node", "index.js"]