ruflo 3.42.3 → 3.42.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 (479) hide show
  1. package/README.md +422 -422
  2. package/bin/ruflo.js +77 -77
  3. package/package.json +117 -117
  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 +47 -47
  8. package/src/mcp-bridge/index.js +1780 -1780
  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/mcp-bridge/test-runtime-security.mjs +208 -208
  13. package/src/mcp-bridge/test-security-lock.js +121 -121
  14. package/src/nginx/Dockerfile +10 -10
  15. package/src/nginx/nginx.conf +67 -67
  16. package/src/nginx/static/favicon-dark.svg +4 -4
  17. package/src/nginx/static/favicon.svg +4 -4
  18. package/src/nginx/static/icon.svg +5 -5
  19. package/src/nginx/static/logo.svg +9 -9
  20. package/src/nginx/static/manifest.json +22 -22
  21. package/src/nginx/static/welcome.js +184 -184
  22. package/src/ruvocal/.claude/skills/add-model-descriptions/SKILL.md +73 -73
  23. package/src/ruvocal/.devcontainer/Dockerfile +9 -9
  24. package/src/ruvocal/.devcontainer/devcontainer.json +36 -36
  25. package/src/ruvocal/.dockerignore +16 -16
  26. package/src/ruvocal/.eslintignore +13 -13
  27. package/src/ruvocal/.eslintrc.cjs +45 -45
  28. package/src/ruvocal/.gcloudignore +18 -18
  29. package/src/ruvocal/.github/ISSUE_TEMPLATE/bug-report--chat-ui-.md +43 -43
  30. package/src/ruvocal/.github/ISSUE_TEMPLATE/config-support.md +9 -9
  31. package/src/ruvocal/.github/ISSUE_TEMPLATE/feature-request--chat-ui-.md +17 -17
  32. package/src/ruvocal/.github/ISSUE_TEMPLATE/huggingchat.md +11 -11
  33. package/src/ruvocal/.github/release.yml +16 -16
  34. package/src/ruvocal/.github/workflows/build-docs.yml +18 -18
  35. package/src/ruvocal/.github/workflows/build-image.yml +142 -142
  36. package/src/ruvocal/.github/workflows/build-pr-docs.yml +20 -20
  37. package/src/ruvocal/.github/workflows/deploy-dev.yml +63 -63
  38. package/src/ruvocal/.github/workflows/deploy-prod.yml +78 -78
  39. package/src/ruvocal/.github/workflows/lint-and-test.yml +84 -84
  40. package/src/ruvocal/.github/workflows/slugify.yaml +72 -72
  41. package/src/ruvocal/.github/workflows/trufflehog.yml +17 -17
  42. package/src/ruvocal/.github/workflows/upload-pr-documentation.yml +16 -16
  43. package/src/ruvocal/.husky/lint-stage-config.js +4 -4
  44. package/src/ruvocal/.husky/pre-commit +2 -2
  45. package/src/ruvocal/.prettierignore +14 -14
  46. package/src/ruvocal/.prettierrc +7 -7
  47. package/src/ruvocal/CLAUDE.md +126 -126
  48. package/src/ruvocal/Dockerfile +96 -96
  49. package/src/ruvocal/LICENSE +202 -202
  50. package/src/ruvocal/PRIVACY.md +41 -41
  51. package/src/ruvocal/README.md +164 -164
  52. package/src/ruvocal/chart/Chart.yaml +5 -5
  53. package/src/ruvocal/chart/env/dev.yaml +260 -260
  54. package/src/ruvocal/chart/env/prod.yaml +273 -273
  55. package/src/ruvocal/chart/templates/_helpers.tpl +22 -22
  56. package/src/ruvocal/chart/templates/config.yaml +10 -10
  57. package/src/ruvocal/chart/templates/deployment.yaml +81 -81
  58. package/src/ruvocal/chart/templates/hpa.yaml +45 -45
  59. package/src/ruvocal/chart/templates/infisical.yaml +24 -24
  60. package/src/ruvocal/chart/templates/ingress-internal.yaml +32 -32
  61. package/src/ruvocal/chart/templates/ingress.yaml +32 -32
  62. package/src/ruvocal/chart/templates/network-policy.yaml +36 -36
  63. package/src/ruvocal/chart/templates/service-account.yaml +13 -13
  64. package/src/ruvocal/chart/templates/service-monitor.yaml +17 -17
  65. package/src/ruvocal/chart/templates/service.yaml +21 -21
  66. package/src/ruvocal/chart/values.yaml +73 -73
  67. package/src/ruvocal/cloudbuild.yaml +68 -68
  68. package/src/ruvocal/config/branding.env.example +19 -19
  69. package/src/ruvocal/docker-compose.yml +21 -21
  70. package/src/ruvocal/docs/adr/ADR-029-HUGGINGFACE-CHAT-UI-CLOUD-RUN.md +1236 -1236
  71. package/src/ruvocal/docs/adr/ADR-033-RUVECTOR-RUFLO-MCP-INTEGRATION.md +111 -111
  72. package/src/ruvocal/docs/adr/ADR-034-OPTIONAL-MCP-BACKENDS.md +117 -117
  73. package/src/ruvocal/docs/adr/ADR-035-MCP-TOOL-GROUPS.md +186 -186
  74. package/src/ruvocal/docs/adr/ADR-037-AUTOPILOT-CHAT-MODE.md +1500 -1500
  75. package/src/ruvocal/docs/adr/ADR-038-RUVOCAL-FORK.md +286 -286
  76. package/src/ruvocal/docs/source/_toctree.yml +30 -30
  77. package/src/ruvocal/docs/source/configuration/common-issues.md +38 -38
  78. package/src/ruvocal/docs/source/configuration/llm-router.md +105 -105
  79. package/src/ruvocal/docs/source/configuration/mcp-tools.md +84 -84
  80. package/src/ruvocal/docs/source/configuration/metrics.md +9 -9
  81. package/src/ruvocal/docs/source/configuration/open-id.md +57 -57
  82. package/src/ruvocal/docs/source/configuration/overview.md +89 -89
  83. package/src/ruvocal/docs/source/configuration/theming.md +20 -20
  84. package/src/ruvocal/docs/source/developing/architecture.md +48 -48
  85. package/src/ruvocal/docs/source/index.md +53 -53
  86. package/src/ruvocal/docs/source/installation/docker.md +43 -43
  87. package/src/ruvocal/docs/source/installation/helm.md +43 -43
  88. package/src/ruvocal/docs/source/installation/local.md +62 -62
  89. package/src/ruvocal/entrypoint.sh +18 -18
  90. package/src/ruvocal/mcp-bridge/Dockerfile +47 -47
  91. package/src/ruvocal/mcp-bridge/cloudbuild.yaml +49 -49
  92. package/src/ruvocal/mcp-bridge/index.js +1995 -1995
  93. package/src/ruvocal/mcp-bridge/mcp-stdio-kernel.js +159 -159
  94. package/src/ruvocal/mcp-bridge/package-lock.json +762 -762
  95. package/src/ruvocal/mcp-bridge/package.json +17 -17
  96. package/src/ruvocal/mcp-bridge/test-harness.js +470 -470
  97. package/src/ruvocal/package-lock.json +11741 -11741
  98. package/src/ruvocal/package.json +121 -121
  99. package/src/ruvocal/postcss.config.js +6 -6
  100. package/src/ruvocal/rvf.manifest.json +204 -204
  101. package/src/ruvocal/scripts/config.ts +64 -64
  102. package/src/ruvocal/scripts/generate-welcome.mjs +181 -181
  103. package/src/ruvocal/scripts/populate.ts +288 -288
  104. package/src/ruvocal/scripts/samples.txt +194 -194
  105. package/src/ruvocal/scripts/setups/vitest-setup-server.ts +44 -44
  106. package/src/ruvocal/scripts/updateLocalEnv.ts +48 -48
  107. package/src/ruvocal/src/ambient.d.ts +7 -7
  108. package/src/ruvocal/src/app.d.ts +29 -29
  109. package/src/ruvocal/src/app.html +53 -53
  110. package/src/ruvocal/src/hooks.server.ts +32 -32
  111. package/src/ruvocal/src/hooks.ts +6 -6
  112. package/src/ruvocal/src/lib/APIClient.ts +148 -148
  113. package/src/ruvocal/src/lib/actions/clickOutside.ts +18 -18
  114. package/src/ruvocal/src/lib/actions/snapScrollToBottom.ts +346 -346
  115. package/src/ruvocal/src/lib/buildPrompt.ts +33 -33
  116. package/src/ruvocal/src/lib/components/AnnouncementBanner.svelte +20 -20
  117. package/src/ruvocal/src/lib/components/BackgroundGenerationPoller.svelte +168 -168
  118. package/src/ruvocal/src/lib/components/CodeBlock.svelte +73 -73
  119. package/src/ruvocal/src/lib/components/CopyToClipBoardBtn.svelte +92 -92
  120. package/src/ruvocal/src/lib/components/DeleteConversationModal.svelte +75 -75
  121. package/src/ruvocal/src/lib/components/EditConversationModal.svelte +100 -100
  122. package/src/ruvocal/src/lib/components/ExpandNavigation.svelte +22 -22
  123. package/src/ruvocal/src/lib/components/FoundationBackground.svelte +242 -242
  124. package/src/ruvocal/src/lib/components/HoverTooltip.svelte +44 -44
  125. package/src/ruvocal/src/lib/components/HtmlPreviewModal.svelte +143 -143
  126. package/src/ruvocal/src/lib/components/InfiniteScroll.svelte +50 -50
  127. package/src/ruvocal/src/lib/components/MobileNav.svelte +300 -300
  128. package/src/ruvocal/src/lib/components/Modal.svelte +115 -115
  129. package/src/ruvocal/src/lib/components/ModelCardMetadata.svelte +71 -71
  130. package/src/ruvocal/src/lib/components/NavConversationItem.svelte +151 -151
  131. package/src/ruvocal/src/lib/components/NavMenu.svelte +313 -313
  132. package/src/ruvocal/src/lib/components/Pagination.svelte +97 -97
  133. package/src/ruvocal/src/lib/components/PaginationArrow.svelte +27 -27
  134. package/src/ruvocal/src/lib/components/Portal.svelte +24 -24
  135. package/src/ruvocal/src/lib/components/RetryBtn.svelte +18 -18
  136. package/src/ruvocal/src/lib/components/RuFloUniverse.svelte +185 -185
  137. package/src/ruvocal/src/lib/components/RufloHelpModal.svelte +411 -411
  138. package/src/ruvocal/src/lib/components/ScrollToBottomBtn.svelte +47 -47
  139. package/src/ruvocal/src/lib/components/ScrollToPreviousBtn.svelte +77 -77
  140. package/src/ruvocal/src/lib/components/ShareConversationModal.svelte +182 -182
  141. package/src/ruvocal/src/lib/components/StopGeneratingBtn.svelte +69 -69
  142. package/src/ruvocal/src/lib/components/SubscribeModal.svelte +87 -87
  143. package/src/ruvocal/src/lib/components/Switch.svelte +36 -36
  144. package/src/ruvocal/src/lib/components/SystemPromptModal.svelte +44 -44
  145. package/src/ruvocal/src/lib/components/Toast.svelte +27 -27
  146. package/src/ruvocal/src/lib/components/Tooltip.svelte +30 -30
  147. package/src/ruvocal/src/lib/components/WelcomeModal.svelte +46 -46
  148. package/src/ruvocal/src/lib/components/chat/Alternatives.svelte +77 -77
  149. package/src/ruvocal/src/lib/components/chat/BlockWrapper.svelte +72 -72
  150. package/src/ruvocal/src/lib/components/chat/ChatInput.svelte +490 -490
  151. package/src/ruvocal/src/lib/components/chat/ChatIntroduction.svelte +123 -123
  152. package/src/ruvocal/src/lib/components/chat/ChatMessage.svelte +548 -548
  153. package/src/ruvocal/src/lib/components/chat/ChatWindow.svelte +1057 -1057
  154. package/src/ruvocal/src/lib/components/chat/FileDropzone.svelte +92 -92
  155. package/src/ruvocal/src/lib/components/chat/ImageLightbox.svelte +66 -66
  156. package/src/ruvocal/src/lib/components/chat/MarkdownBlock.svelte +23 -23
  157. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte +69 -69
  158. package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts +58 -58
  159. package/src/ruvocal/src/lib/components/chat/MessageAvatar.svelte +103 -103
  160. package/src/ruvocal/src/lib/components/chat/ModelSwitch.svelte +64 -64
  161. package/src/ruvocal/src/lib/components/chat/OpenReasoningResults.svelte +81 -81
  162. package/src/ruvocal/src/lib/components/chat/TaskGroup.svelte +88 -88
  163. package/src/ruvocal/src/lib/components/chat/ToolUpdate.svelte +273 -273
  164. package/src/ruvocal/src/lib/components/chat/UploadedFile.svelte +253 -253
  165. package/src/ruvocal/src/lib/components/chat/UrlFetchModal.svelte +203 -203
  166. package/src/ruvocal/src/lib/components/chat/VoiceRecorder.svelte +214 -214
  167. package/src/ruvocal/src/lib/components/icons/IconBurger.svelte +20 -20
  168. package/src/ruvocal/src/lib/components/icons/IconCheap.svelte +20 -20
  169. package/src/ruvocal/src/lib/components/icons/IconChevron.svelte +24 -24
  170. package/src/ruvocal/src/lib/components/icons/IconDazzled.svelte +40 -40
  171. package/src/ruvocal/src/lib/components/icons/IconFast.svelte +20 -20
  172. package/src/ruvocal/src/lib/components/icons/IconLoading.svelte +22 -22
  173. package/src/ruvocal/src/lib/components/icons/IconMCP.svelte +28 -28
  174. package/src/ruvocal/src/lib/components/icons/IconMoon.svelte +21 -21
  175. package/src/ruvocal/src/lib/components/icons/IconNew.svelte +20 -20
  176. package/src/ruvocal/src/lib/components/icons/IconOmni.svelte +90 -90
  177. package/src/ruvocal/src/lib/components/icons/IconPaperclip.svelte +24 -24
  178. package/src/ruvocal/src/lib/components/icons/IconPro.svelte +37 -37
  179. package/src/ruvocal/src/lib/components/icons/IconShare.svelte +21 -21
  180. package/src/ruvocal/src/lib/components/icons/IconSun.svelte +93 -93
  181. package/src/ruvocal/src/lib/components/icons/Logo.svelte +68 -68
  182. package/src/ruvocal/src/lib/components/icons/LogoHuggingFaceBorderless.svelte +54 -54
  183. package/src/ruvocal/src/lib/components/mcp/AddServerForm.svelte +250 -250
  184. package/src/ruvocal/src/lib/components/mcp/MCPServerManager.svelte +185 -185
  185. package/src/ruvocal/src/lib/components/mcp/ServerCard.svelte +203 -203
  186. package/src/ruvocal/src/lib/components/players/AudioPlayer.svelte +82 -82
  187. package/src/ruvocal/src/lib/components/voice/AudioWaveform.svelte +96 -96
  188. package/src/ruvocal/src/lib/components/wasm/GalleryPanel.svelte +357 -357
  189. package/src/ruvocal/src/lib/constants/mcpExamples.ts +114 -114
  190. package/src/ruvocal/src/lib/constants/mime.ts +11 -11
  191. package/src/ruvocal/src/lib/constants/pagination.ts +1 -1
  192. package/src/ruvocal/src/lib/constants/publicSepToken.ts +1 -1
  193. package/src/ruvocal/src/lib/constants/routerExamples.ts +133 -133
  194. package/src/ruvocal/src/lib/constants/rvagentPresets.ts +206 -206
  195. package/src/ruvocal/src/lib/createShareLink.ts +27 -27
  196. package/src/ruvocal/src/lib/jobs/refresh-conversation-stats.ts +297 -297
  197. package/src/ruvocal/src/lib/migrations/lock.ts +56 -56
  198. package/src/ruvocal/src/lib/migrations/migrations.spec.ts +74 -74
  199. package/src/ruvocal/src/lib/migrations/migrations.ts +109 -109
  200. package/src/ruvocal/src/lib/migrations/routines/01-update-search-assistants.ts +50 -50
  201. package/src/ruvocal/src/lib/migrations/routines/02-update-assistants-models.ts +48 -48
  202. package/src/ruvocal/src/lib/migrations/routines/04-update-message-updates.ts +151 -151
  203. package/src/ruvocal/src/lib/migrations/routines/05-update-message-files.ts +56 -56
  204. package/src/ruvocal/src/lib/migrations/routines/06-trim-message-updates.ts +56 -56
  205. package/src/ruvocal/src/lib/migrations/routines/08-update-featured-to-review.ts +32 -32
  206. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts +214 -214
  207. package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.ts +88 -88
  208. package/src/ruvocal/src/lib/migrations/routines/10-update-reports-assistantid.ts +29 -29
  209. package/src/ruvocal/src/lib/migrations/routines/index.ts +15 -15
  210. package/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts +103 -103
  211. package/src/ruvocal/src/lib/server/abortRegistry.ts +57 -57
  212. package/src/ruvocal/src/lib/server/abortedGenerations.ts +43 -43
  213. package/src/ruvocal/src/lib/server/adminToken.ts +62 -62
  214. package/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts +296 -296
  215. package/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts +216 -216
  216. package/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts +235 -235
  217. package/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts +72 -72
  218. package/src/ruvocal/src/lib/server/api/__tests__/testHelpers.ts +86 -86
  219. package/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts +78 -78
  220. package/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts +239 -239
  221. package/src/ruvocal/src/lib/server/api/types.ts +37 -37
  222. package/src/ruvocal/src/lib/server/api/utils/requireAuth.ts +22 -22
  223. package/src/ruvocal/src/lib/server/api/utils/resolveConversation.ts +69 -69
  224. package/src/ruvocal/src/lib/server/api/utils/resolveModel.ts +27 -27
  225. package/src/ruvocal/src/lib/server/api/utils/superjsonResponse.ts +15 -15
  226. package/src/ruvocal/src/lib/server/apiToken.ts +11 -11
  227. package/src/ruvocal/src/lib/server/auth.ts +554 -554
  228. package/src/ruvocal/src/lib/server/config.ts +187 -187
  229. package/src/ruvocal/src/lib/server/conversation.ts +83 -83
  230. package/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts +709 -709
  231. package/src/ruvocal/src/lib/server/database/postgres.ts +700 -700
  232. package/src/ruvocal/src/lib/server/database/rvf.ts +1078 -1078
  233. package/src/ruvocal/src/lib/server/database.ts +145 -145
  234. package/src/ruvocal/src/lib/server/endpoints/document.ts +68 -68
  235. package/src/ruvocal/src/lib/server/endpoints/endpoints.ts +43 -43
  236. package/src/ruvocal/src/lib/server/endpoints/images.ts +211 -211
  237. package/src/ruvocal/src/lib/server/endpoints/openai/endpointOai.ts +266 -266
  238. package/src/ruvocal/src/lib/server/endpoints/openai/openAIChatToTextGenerationStream.ts +212 -212
  239. package/src/ruvocal/src/lib/server/endpoints/openai/openAICompletionToTextGenerationStream.ts +32 -32
  240. package/src/ruvocal/src/lib/server/endpoints/preprocessMessages.ts +61 -61
  241. package/src/ruvocal/src/lib/server/exitHandler.ts +59 -59
  242. package/src/ruvocal/src/lib/server/files/downloadFile.ts +34 -34
  243. package/src/ruvocal/src/lib/server/files/uploadFile.ts +29 -29
  244. package/src/ruvocal/src/lib/server/findRepoRoot.ts +13 -13
  245. package/src/ruvocal/src/lib/server/generateFromDefaultEndpoint.ts +46 -46
  246. package/src/ruvocal/src/lib/server/hooks/error.ts +37 -37
  247. package/src/ruvocal/src/lib/server/hooks/fetch.ts +22 -22
  248. package/src/ruvocal/src/lib/server/hooks/handle.ts +250 -250
  249. package/src/ruvocal/src/lib/server/hooks/init.ts +51 -51
  250. package/src/ruvocal/src/lib/server/isURLLocal.spec.ts +31 -31
  251. package/src/ruvocal/src/lib/server/isURLLocal.ts +74 -74
  252. package/src/ruvocal/src/lib/server/logger.ts +42 -42
  253. package/src/ruvocal/src/lib/server/mcp/clientPool.spec.ts +175 -175
  254. package/src/ruvocal/src/lib/server/mcp/hf.ts +32 -32
  255. package/src/ruvocal/src/lib/server/mcp/httpClient.ts +122 -122
  256. package/src/ruvocal/src/lib/server/mcp/registry.ts +76 -76
  257. package/src/ruvocal/src/lib/server/mcp/tools.ts +196 -196
  258. package/src/ruvocal/src/lib/server/metrics.ts +255 -255
  259. package/src/ruvocal/src/lib/server/models.ts +518 -518
  260. package/src/ruvocal/src/lib/server/requestContext.ts +55 -55
  261. package/src/ruvocal/src/lib/server/router/arch.ts +230 -230
  262. package/src/ruvocal/src/lib/server/router/endpoint.ts +316 -316
  263. package/src/ruvocal/src/lib/server/router/multimodal.ts +28 -28
  264. package/src/ruvocal/src/lib/server/router/policy.ts +49 -49
  265. package/src/ruvocal/src/lib/server/router/toolsRoute.ts +51 -51
  266. package/src/ruvocal/src/lib/server/router/types.ts +21 -21
  267. package/src/ruvocal/src/lib/server/sendSlack.ts +23 -23
  268. package/src/ruvocal/src/lib/server/textGeneration/generate.ts +258 -258
  269. package/src/ruvocal/src/lib/server/textGeneration/index.ts +96 -96
  270. package/src/ruvocal/src/lib/server/textGeneration/mcp/fileRefs.ts +155 -155
  271. package/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts +108 -108
  272. package/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts +831 -831
  273. package/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts +349 -349
  274. package/src/ruvocal/src/lib/server/textGeneration/mcp/wasmTools.test.ts +633 -633
  275. package/src/ruvocal/src/lib/server/textGeneration/reasoning.ts +23 -23
  276. package/src/ruvocal/src/lib/server/textGeneration/title.ts +83 -83
  277. package/src/ruvocal/src/lib/server/textGeneration/types.ts +28 -28
  278. package/src/ruvocal/src/lib/server/textGeneration/utils/prepareFiles.ts +88 -88
  279. package/src/ruvocal/src/lib/server/textGeneration/utils/routing.ts +21 -21
  280. package/src/ruvocal/src/lib/server/textGeneration/utils/toolPrompt.ts +49 -49
  281. package/src/ruvocal/src/lib/server/urlSafety.ts +77 -77
  282. package/src/ruvocal/src/lib/server/usageLimits.ts +30 -30
  283. package/src/ruvocal/src/lib/stores/autopilotStore.svelte.ts +175 -175
  284. package/src/ruvocal/src/lib/stores/backgroundGenerations.svelte.ts +32 -32
  285. package/src/ruvocal/src/lib/stores/backgroundGenerations.ts +1 -1
  286. package/src/ruvocal/src/lib/stores/errors.ts +9 -9
  287. package/src/ruvocal/src/lib/stores/isAborted.ts +3 -3
  288. package/src/ruvocal/src/lib/stores/isPro.ts +4 -4
  289. package/src/ruvocal/src/lib/stores/loading.ts +3 -3
  290. package/src/ruvocal/src/lib/stores/mcpServers.ts +534 -534
  291. package/src/ruvocal/src/lib/stores/pendingChatInput.ts +3 -3
  292. package/src/ruvocal/src/lib/stores/pendingMessage.ts +9 -9
  293. package/src/ruvocal/src/lib/stores/settings.ts +182 -182
  294. package/src/ruvocal/src/lib/stores/shareModal.ts +13 -13
  295. package/src/ruvocal/src/lib/stores/titleUpdate.ts +8 -8
  296. package/src/ruvocal/src/lib/stores/wasmMcp.ts +472 -472
  297. package/src/ruvocal/src/lib/switchTheme.ts +124 -124
  298. package/src/ruvocal/src/lib/types/AbortedGeneration.ts +8 -8
  299. package/src/ruvocal/src/lib/types/Assistant.ts +31 -31
  300. package/src/ruvocal/src/lib/types/AssistantStats.ts +11 -11
  301. package/src/ruvocal/src/lib/types/ConfigKey.ts +4 -4
  302. package/src/ruvocal/src/lib/types/ConvSidebar.ts +9 -9
  303. package/src/ruvocal/src/lib/types/Conversation.ts +27 -27
  304. package/src/ruvocal/src/lib/types/ConversationStats.ts +13 -13
  305. package/src/ruvocal/src/lib/types/Message.ts +41 -41
  306. package/src/ruvocal/src/lib/types/MessageEvent.ts +10 -10
  307. package/src/ruvocal/src/lib/types/MessageUpdate.ts +139 -139
  308. package/src/ruvocal/src/lib/types/MigrationResult.ts +7 -7
  309. package/src/ruvocal/src/lib/types/Model.ts +23 -23
  310. package/src/ruvocal/src/lib/types/Report.ts +12 -12
  311. package/src/ruvocal/src/lib/types/Review.ts +6 -6
  312. package/src/ruvocal/src/lib/types/Semaphore.ts +19 -19
  313. package/src/ruvocal/src/lib/types/Session.ts +22 -22
  314. package/src/ruvocal/src/lib/types/Settings.ts +93 -93
  315. package/src/ruvocal/src/lib/types/SharedConversation.ts +9 -9
  316. package/src/ruvocal/src/lib/types/Template.ts +6 -6
  317. package/src/ruvocal/src/lib/types/Timestamps.ts +4 -4
  318. package/src/ruvocal/src/lib/types/TokenCache.ts +6 -6
  319. package/src/ruvocal/src/lib/types/Tool.ts +77 -77
  320. package/src/ruvocal/src/lib/types/UrlDependency.ts +5 -5
  321. package/src/ruvocal/src/lib/types/User.ts +14 -14
  322. package/src/ruvocal/src/lib/utils/PublicConfig.svelte.ts +75 -75
  323. package/src/ruvocal/src/lib/utils/auth.ts +17 -17
  324. package/src/ruvocal/src/lib/utils/chunk.ts +33 -33
  325. package/src/ruvocal/src/lib/utils/cookiesAreEnabled.ts +13 -13
  326. package/src/ruvocal/src/lib/utils/debounce.ts +17 -17
  327. package/src/ruvocal/src/lib/utils/deepestChild.ts +6 -6
  328. package/src/ruvocal/src/lib/utils/favicon.ts +21 -21
  329. package/src/ruvocal/src/lib/utils/fetchJSON.ts +23 -23
  330. package/src/ruvocal/src/lib/utils/file2base64.ts +14 -14
  331. package/src/ruvocal/src/lib/utils/formatUserCount.ts +37 -37
  332. package/src/ruvocal/src/lib/utils/generationState.spec.ts +75 -75
  333. package/src/ruvocal/src/lib/utils/generationState.ts +26 -26
  334. package/src/ruvocal/src/lib/utils/getHref.ts +41 -41
  335. package/src/ruvocal/src/lib/utils/getReturnFromGenerator.ts +7 -7
  336. package/src/ruvocal/src/lib/utils/haptics.ts +64 -64
  337. package/src/ruvocal/src/lib/utils/hashConv.ts +12 -12
  338. package/src/ruvocal/src/lib/utils/hf.ts +17 -17
  339. package/src/ruvocal/src/lib/utils/isDesktop.ts +7 -7
  340. package/src/ruvocal/src/lib/utils/isUrl.ts +8 -8
  341. package/src/ruvocal/src/lib/utils/isVirtualKeyboard.ts +16 -16
  342. package/src/ruvocal/src/lib/utils/loadAttachmentsFromUrls.ts +115 -115
  343. package/src/ruvocal/src/lib/utils/marked.spec.ts +96 -96
  344. package/src/ruvocal/src/lib/utils/marked.ts +531 -531
  345. package/src/ruvocal/src/lib/utils/mcpValidation.ts +147 -147
  346. package/src/ruvocal/src/lib/utils/mergeAsyncGenerators.ts +38 -38
  347. package/src/ruvocal/src/lib/utils/messageUpdates.spec.ts +286 -286
  348. package/src/ruvocal/src/lib/utils/messageUpdates.ts +332 -332
  349. package/src/ruvocal/src/lib/utils/mime.ts +56 -56
  350. package/src/ruvocal/src/lib/utils/models.ts +14 -14
  351. package/src/ruvocal/src/lib/utils/parseBlocks.ts +120 -120
  352. package/src/ruvocal/src/lib/utils/parseIncompleteMarkdown.ts +644 -644
  353. package/src/ruvocal/src/lib/utils/parseStringToList.ts +10 -10
  354. package/src/ruvocal/src/lib/utils/randomUuid.ts +14 -14
  355. package/src/ruvocal/src/lib/utils/searchTokens.ts +33 -33
  356. package/src/ruvocal/src/lib/utils/sha256.ts +7 -7
  357. package/src/ruvocal/src/lib/utils/stringifyError.ts +12 -12
  358. package/src/ruvocal/src/lib/utils/sum.ts +3 -3
  359. package/src/ruvocal/src/lib/utils/template.spec.ts +59 -59
  360. package/src/ruvocal/src/lib/utils/template.ts +53 -53
  361. package/src/ruvocal/src/lib/utils/timeout.ts +9 -9
  362. package/src/ruvocal/src/lib/utils/toolProgress.spec.ts +46 -46
  363. package/src/ruvocal/src/lib/utils/toolProgress.ts +11 -11
  364. package/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts +102 -102
  365. package/src/ruvocal/src/lib/utils/tree/addChildren.ts +48 -48
  366. package/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts +81 -81
  367. package/src/ruvocal/src/lib/utils/tree/addSibling.ts +41 -41
  368. package/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts +110 -110
  369. package/src/ruvocal/src/lib/utils/tree/buildSubtree.ts +24 -24
  370. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts +31 -31
  371. package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.ts +36 -36
  372. package/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts +15 -15
  373. package/src/ruvocal/src/lib/utils/tree/isMessageId.ts +5 -5
  374. package/src/ruvocal/src/lib/utils/tree/tree.d.ts +14 -14
  375. package/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts +167 -167
  376. package/src/ruvocal/src/lib/utils/updates.ts +39 -39
  377. package/src/ruvocal/src/lib/utils/urlParams.ts +13 -13
  378. package/src/ruvocal/src/lib/wasm/idb.ts +438 -438
  379. package/src/ruvocal/src/lib/wasm/index.ts +1213 -1213
  380. package/src/ruvocal/src/lib/wasm/tests/wasm-capabilities.test.ts +565 -565
  381. package/src/ruvocal/src/lib/wasm/wasm.worker.ts +332 -332
  382. package/src/ruvocal/src/lib/wasm/workerClient.ts +166 -166
  383. package/src/ruvocal/src/lib/workers/autopilotWorker.ts +221 -221
  384. package/src/ruvocal/src/lib/workers/detailFetchWorker.ts +100 -100
  385. package/src/ruvocal/src/lib/workers/markdownWorker.ts +61 -61
  386. package/src/ruvocal/src/routes/+error.svelte +20 -20
  387. package/src/ruvocal/src/routes/+layout.svelte +324 -324
  388. package/src/ruvocal/src/routes/+layout.ts +91 -91
  389. package/src/ruvocal/src/routes/+page.svelte +168 -168
  390. package/src/ruvocal/src/routes/.well-known/oauth-cimd/+server.ts +37 -37
  391. package/src/ruvocal/src/routes/__debug/openai/+server.ts +21 -21
  392. package/src/ruvocal/src/routes/admin/export/+server.ts +159 -159
  393. package/src/ruvocal/src/routes/admin/stats/compute/+server.ts +16 -16
  394. package/src/ruvocal/src/routes/api/conversation/[id]/+server.ts +40 -40
  395. package/src/ruvocal/src/routes/api/conversation/[id]/message/[messageId]/+server.ts +42 -42
  396. package/src/ruvocal/src/routes/api/conversations/+server.ts +48 -48
  397. package/src/ruvocal/src/routes/api/fetch-url/+server.ts +147 -147
  398. package/src/ruvocal/src/routes/api/mcp/health/+server.ts +292 -292
  399. package/src/ruvocal/src/routes/api/mcp/servers/+server.ts +32 -32
  400. package/src/ruvocal/src/routes/api/models/+server.ts +25 -25
  401. package/src/ruvocal/src/routes/api/transcribe/+server.ts +104 -104
  402. package/src/ruvocal/src/routes/api/user/+server.ts +15 -15
  403. package/src/ruvocal/src/routes/api/user/validate-token/+server.ts +20 -20
  404. package/src/ruvocal/src/routes/api/v2/conversations/+server.ts +48 -48
  405. package/src/ruvocal/src/routes/api/v2/conversations/[id]/+server.ts +94 -94
  406. package/src/ruvocal/src/routes/api/v2/conversations/[id]/message/[messageId]/+server.ts +43 -43
  407. package/src/ruvocal/src/routes/api/v2/conversations/import-share/+server.ts +23 -23
  408. package/src/ruvocal/src/routes/api/v2/debug/config/+server.ts +16 -16
  409. package/src/ruvocal/src/routes/api/v2/debug/refresh/+server.ts +30 -30
  410. package/src/ruvocal/src/routes/api/v2/export/+server.ts +196 -196
  411. package/src/ruvocal/src/routes/api/v2/feature-flags/+server.ts +14 -14
  412. package/src/ruvocal/src/routes/api/v2/models/+server.ts +38 -38
  413. package/src/ruvocal/src/routes/api/v2/models/[namespace]/+server.ts +8 -8
  414. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/+server.ts +8 -8
  415. package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/subscribe/+server.ts +28 -28
  416. package/src/ruvocal/src/routes/api/v2/models/[namespace]/subscribe/+server.ts +28 -28
  417. package/src/ruvocal/src/routes/api/v2/models/old/+server.ts +7 -7
  418. package/src/ruvocal/src/routes/api/v2/models/refresh/+server.ts +33 -33
  419. package/src/ruvocal/src/routes/api/v2/public-config/+server.ts +7 -7
  420. package/src/ruvocal/src/routes/api/v2/user/+server.ts +17 -17
  421. package/src/ruvocal/src/routes/api/v2/user/billing-orgs/+server.ts +73 -73
  422. package/src/ruvocal/src/routes/api/v2/user/reports/+server.ts +17 -17
  423. package/src/ruvocal/src/routes/api/v2/user/settings/+server.ts +110 -110
  424. package/src/ruvocal/src/routes/conversation/+server.ts +115 -115
  425. package/src/ruvocal/src/routes/conversation/[id]/+page.svelte +593 -593
  426. package/src/ruvocal/src/routes/conversation/[id]/+page.ts +60 -60
  427. package/src/ruvocal/src/routes/conversation/[id]/+server.ts +740 -740
  428. package/src/ruvocal/src/routes/conversation/[id]/message/[messageId]/prompt/+server.ts +66 -66
  429. package/src/ruvocal/src/routes/conversation/[id]/share/+server.ts +69 -69
  430. package/src/ruvocal/src/routes/conversation/[id]/stop-generating/+server.ts +35 -35
  431. package/src/ruvocal/src/routes/healthcheck/+server.ts +3 -3
  432. package/src/ruvocal/src/routes/login/+server.ts +5 -5
  433. package/src/ruvocal/src/routes/login/callback/+server.ts +103 -103
  434. package/src/ruvocal/src/routes/login/callback/updateUser.spec.ts +157 -157
  435. package/src/ruvocal/src/routes/login/callback/updateUser.ts +215 -215
  436. package/src/ruvocal/src/routes/logout/+server.ts +18 -18
  437. package/src/ruvocal/src/routes/metrics/+server.ts +18 -18
  438. package/src/ruvocal/src/routes/models/+page.svelte +233 -233
  439. package/src/ruvocal/src/routes/models/[...model]/+page.svelte +161 -161
  440. package/src/ruvocal/src/routes/models/[...model]/+page.ts +14 -14
  441. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/+server.ts +64 -64
  442. package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/ModelThumbnail.svelte +28 -28
  443. package/src/ruvocal/src/routes/privacy/+page.svelte +11 -11
  444. package/src/ruvocal/src/routes/r/[id]/+page.ts +34 -34
  445. package/src/ruvocal/src/routes/settings/(nav)/+layout.svelte +282 -282
  446. package/src/ruvocal/src/routes/settings/(nav)/+layout.ts +1 -1
  447. package/src/ruvocal/src/routes/settings/(nav)/+server.ts +59 -59
  448. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.svelte +464 -464
  449. package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.ts +14 -14
  450. package/src/ruvocal/src/routes/settings/(nav)/application/+page.svelte +362 -362
  451. package/src/ruvocal/src/routes/settings/+layout.svelte +40 -40
  452. package/src/ruvocal/src/styles/highlight-js.css +195 -195
  453. package/src/ruvocal/src/styles/main.css +144 -144
  454. package/src/ruvocal/static/chatui/favicon-dark.svg +3 -3
  455. package/src/ruvocal/static/chatui/favicon-dev.svg +3 -3
  456. package/src/ruvocal/static/chatui/favicon.svg +3 -3
  457. package/src/ruvocal/static/chatui/icon.svg +3 -3
  458. package/src/ruvocal/static/chatui/logo.svg +7 -7
  459. package/src/ruvocal/static/chatui/manifest.json +54 -54
  460. package/src/ruvocal/static/chatui/welcome.js +184 -184
  461. package/src/ruvocal/static/huggingchat/favicon-dark.svg +4 -4
  462. package/src/ruvocal/static/huggingchat/favicon-dev.svg +4 -4
  463. package/src/ruvocal/static/huggingchat/favicon.svg +4 -4
  464. package/src/ruvocal/static/huggingchat/fulltext-logo.svg +1 -1
  465. package/src/ruvocal/static/huggingchat/icon.svg +4 -4
  466. package/src/ruvocal/static/huggingchat/logo.svg +4 -4
  467. package/src/ruvocal/static/huggingchat/manifest.json +54 -54
  468. package/src/ruvocal/static/huggingchat/routes.chat.json +226 -226
  469. package/src/ruvocal/static/robots.txt +10 -10
  470. package/src/ruvocal/static/wasm/rvagent_wasm.js +1539 -1539
  471. package/src/ruvocal/stub/@reflink/reflink/package.json +5 -5
  472. package/src/ruvocal/svelte.config.js +53 -53
  473. package/src/ruvocal/tailwind.config.cjs +30 -30
  474. package/src/ruvocal/tsconfig.json +19 -19
  475. package/src/ruvocal/vite.config.ts +87 -87
  476. package/src/scripts/deploy.sh +116 -116
  477. package/src/scripts/generate-config.js +245 -245
  478. package/src/scripts/generate-welcome.js +187 -187
  479. package/src/scripts/package-rvf.sh +116 -116
package/README.md CHANGED
@@ -1,422 +1,422 @@
1
- <div align="center">
2
-
3
- [![Ruflo Banner](ruflo/assets/ruflo-small.jpeg)](https://cognitum.one/agentic-engineering)
4
-
5
- <!-- Try Ruflo — the 4 badges first-time visitors actually act on -->
6
- [![Try the UI Beta — flo.ruv.io](https://img.shields.io/badge/_Try_the_UI_Beta-flo.ruv.io-6366f1?style=for-the-badge&logoColor=white&logo=svelte)](https://flo.ruv.io/)
7
- [![npm version (ruflo)](https://img.shields.io/npm/v/ruflo?label=npx%20ruflo&style=for-the-badge&logo=npm&color=cb3837)](https://www.npmjs.com/package/ruflo)
8
- [![MIT License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](https://opensource.org/licenses/MIT)
9
- [![Star on GitHub](https://img.shields.io/github/stars/ruvnet/claude-flow?style=for-the-badge&logo=github&color=gold)](https://github.com/ruvnet/claude-flow)
10
-
11
- <!-- Ecosystem strip (collapsed visually with flat-square) -->
12
- [![Goal Planner](https://img.shields.io/badge/_Goal_Planner-goal.ruv.io-8b5cf6?style=flat-square&logoColor=white&logo=react)](https://goal.ruv.io/)
13
- [![Live Agents](https://img.shields.io/badge/_Live_Agents-goal.ruv.io%2Fagents-10b981?style=flat-square&logoColor=white&logo=react)](https://goal.ruv.io/agents)
14
- [![🕸️ RuVector Agentic DB](https://img.shields.io/badge/RuVector_Agentic-DB-06b6d4?style=flat-square&logoColor=white&logo=graphql)](https://github.com/ruvnet/ruvector)
15
- [![Ecosystem downloads](https://img.shields.io/badge/ecosystem%20downloads-8.1M%2B-blue?style=flat-square&logo=npm)](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.proof.json)
16
- [![Git clones (14d)](https://img.shields.io/badge/git%20clones%2014d-106k-blueviolet?style=flat-square&logo=github)](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.ledger.json)
17
- [![Claude Code](https://img.shields.io/badge/Claude%20Code-Plugin-D97757?style=flat-square&logoColor=white&logo=anthropic)](https://github.com/ruvnet/claude-flow)
18
- [![Codex Plugin](https://img.shields.io/badge/Codex-Plugin-412991?style=flat-square&logoColor=white&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI%2BPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0yMi4yODIgOS44MjFhNS45ODUgNS45ODUgMCAwIDAtLjUxNi00LjkxIDYuMDQ2IDYuMDQ2IDAgMCAwLTYuNTEtMi45QTYuMDY1IDYuMDY1IDAgMCAwIDQuOTgxIDQuMThhNS45ODUgNS45ODUgMCAwIDAtMy45OTggMi45IDYuMDQ2IDYuMDQ2IDAgMCAwIC43NDMgNy4wOTcgNS45OCA1Ljk4IDAgMCAwIC41MSA0LjkxMSA2LjA1MSA2LjA1MSAwIDAgMCA2LjUxNSAyLjlBNS45ODUgNS45ODUgMCAwIDAgMTMuMjYgMjRhNi4wNTYgNi4wNTYgMCAwIDAgNS43NzItNC4yMDYgNS45OSA1Ljk5IDAgMCAwIDMuOTk4LTIuOSA2LjA1NiA2LjA1NiAwIDAgMC0uNzQ3LTcuMDczek0xMy4yNiAyMi40M2E0LjQ3NiA0LjQ3NiAwIDAgMS0yLjg3Ni0xLjA0bC4xNDItLjA4IDQuNzc4LTIuNzU4YS43OTUuNzk1IDAgMCAwIC4zOTMtLjY4MXYtNi43MzdsMi4wMiAxLjE2OGEuMDcxLjA3MSAwIDAgMSAuMDM4LjA1MnY1LjU4M2E0LjUwNCA0LjUwNCAwIDAgMS00LjQ5NSA0LjQ5NHpNMy42IDE4LjMwNGE0LjQ3IDQuNDcgMCAwIDEtLjUzNS0zLjAxNGwuMTQyLjA4NSA0Ljc4MyAyLjc1OWEuNzcxLjc3MSAwIDAgMCAuNzgxIDBsNS44NDMtMy4zNjl2Mi4zMzJhLjA4LjA4IDAgMCAxLS4wMzMuMDYyTDkuNzQgMTkuOTVhNC41IDQuNSAwIDAgMS02LjE0LTEuNjQ2ek0yLjM0IDcuODk2YTQuNDg1IDQuNDg1IDAgMCAxIDIuMzY2LTEuOTczVjExLjZhLjc2Ni43NjYgMCAwIDAgLjM4OC42NzdsNS44MTUgMy4zNTQtMi4wMiAxLjE2OGEuMDc2LjA3NiAwIDAgMS0uMDcyIDBsLTQuODMtMi43ODZBNC41MDQgNC41MDQgMCAwIDEgMi4zNCA3Ljg3MnptMTYuNTk3IDMuODU1LTUuODMzLTMuMzg3IDIuMDE2LTEuMTY1YS4wNzYuMDc2IDAgMCAxIC4wNzEgMGw0LjgzIDIuNzkxYTQuNDk0IDQuNDk0IDAgMCAxLS42NzYgOC4xMDR2LTUuNjc3YS43OS43OSAwIDAgMC0uNDA3LS42Njd6bTIuMDEtMy4wMjMtLjE0MS0uMDg1LTQuNzc0LTIuNzgyYS43NzYuNzc2IDAgMCAwLS43ODUgMEw5LjQwOSA5LjIzVjYuODk3YS4wNjYuMDY2IDAgMCAxIC4wMjgtLjA2Mmw0LjgzLTIuNzg3YTQuNDk5IDQuNDk5IDAgMCAxIDYuNjggNC42NnpNOC4zMDcgMTIuODYzbC0yLjAyLTEuMTY0YS4wOC4wOCAwIDAgMS0uMDM4LS4wNTdWNi4wNzRhNC40OTkgNC40OTkgMCAwIDEgNy4zNzYtMy40NTRsLS4xNDIuMDgtNC43NzggMi43NThhLjc5NS43OTUgMCAwIDAtLjM5My42ODJ6bTEuMDk3LTIuMzY2IDIuNjAyLTEuNSAyLjYwNyAxLjV2Mi45OTlsLTIuNTk3IDEuNS0yLjYwNy0xLjVaIi8%2BPC9zdmc%2B)](https://www.npmjs.com/package/@claude-flow/codex)
19
-
20
- # Ruflo
21
-
22
- **An agent meta-harness for Claude Code and Codex.**
23
-
24
- [![RuFlo Explained — build an AI team that plans, remembers, tests, and improves](docs/assets/ruflo-explained/ch14.jpg)](docs/ruflo-explained.md)
25
-
26
- **[📖 RuFlo Explained — Build an AI Team That Plans, Remembers, Tests, and Improves](docs/ruflo-explained.md)**
27
- A 14-chapter guide: from the basic idea to a first useful task, then memory, agent teams, plugins, cost and verification.
28
-
29
- </div>
30
-
31
- > **Agent = Model + Harness.** The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work. **Ruflo is the harness** — the execution layer around Claude Code and Codex that adds 100+ specialized agents, coordinated swarms, self-learning memory, federated comms across machines, and enterprise security guardrails. So agents don't just run, they collaborate.
32
-
33
- One `npx ruflo init` gives Claude Code a nervous system: agents self-organize into swarms, learn from every task, remember across sessions, and — with federation — securely talk to agents on other machines without leaking data. You keep writing code. Ruflo handles the coordination.
34
-
35
- ```
36
- Self-Learning / Self-Optimizing Agent Architecture
37
-
38
- User --> Ruflo (CLI/MCP) --> Router --> Swarm --> Agents --> Memory --> LLM Providers
39
- ^ |
40
- +---- Learning Loop <-------+
41
- ```
42
-
43
- > **New to Ruflo?** You don't need to learn 314 MCP tools or 26 CLI commands. After `init`, just use Claude Code normally — the hooks system automatically routes tasks, learns from successful patterns, and coordinates agents in the background.
44
-
45
- <details>
46
- <summary><strong>📖 Background — where the name comes from</strong></summary>
47
-
48
- > Claude Flow is now Ruflo — named by [`rUv`](https://ruv.io), who loves Rust, flow states, and building things that feel inevitable. The "Ru" is the rUv. The "flo" is working until 3am. Underneath, powered by [`Cognitum.One`](https://cognitum.one/?RuFlo) agentic architecture, running a supercharged Rust-based AI engine, embeddings, memory, and plugin system.
49
-
50
- </details>
51
-
52
- ---
53
-
54
- ![Ruflo Plugins](./ruflo-plugins.gif)
55
-
56
- ## Quick Start
57
-
58
- There are **two different install paths** with very different surface areas. Pick based on what you need (#1744):
59
-
60
- | | **Claude Code Plugin** | **CLI install (`npx ruflo init`)** |
61
- |---|---|---|
62
- | What it gives you | Slash commands + a few skills + agent definitions per-plugin | Full Ruflo loop — 98 agents, 60+ commands, 30 skills, MCP server, hooks, daemon |
63
- | Files in your workspace | **Zero** | `.claude/`, `.claude-flow/`, `CLAUDE.md`, helpers, settings |
64
- | MCP server registered | Only if `ruflo-core` is installed (it ships its own `.mcp.json`) — most other plugins don't | Yes |
65
- | Hooks installed | No | Yes |
66
- | Best for | Try a single plugin's commands without committing to the full install | Production use — everything works as documented |
67
-
68
- ### Path A — Claude Code Plugins (lite, slash commands only)
69
-
70
- ```bash
71
- # Add the marketplace
72
- /plugin marketplace add ruvnet/ruflo
73
-
74
- # Install core + any plugins you need
75
- /plugin install ruflo-core@ruflo
76
- /plugin install ruflo-swarm@ruflo
77
- /plugin install ruflo-rag-memory@ruflo
78
- /plugin install ruflo-neural-trader@ruflo
79
- ```
80
-
81
- This adds slash commands and agent definitions. `ruflo-core` (installed above) does register its own MCP server on install — its tools are callable as `mcp__plugin_ruflo-core_ruflo__*` (e.g. `mcp__plugin_ruflo-core_ruflo__memory_store`), not the bare `memory_store`/`swarm_init`/`agent_spawn` names the CLI-track scaffold uses. Other plugins generally don't ship their own MCP server. For the full loop with the CLI-track tool names, use Path B below.
82
-
83
- <details>
84
- <summary><strong>🔌 All 35 plugins</strong></summary>
85
-
86
- #### Core & Orchestration
87
-
88
- | Plugin | What it does |
89
- |--------|-------------|
90
- | [**ruflo-core**](plugins/ruflo-core/README.md) | Foundation — server, health checks, plugin discovery |
91
- | [**ruflo-swarm**](plugins/ruflo-swarm/README.md) | Coordinate multiple agents as a team |
92
- | [**ruflo-autopilot**](plugins/ruflo-autopilot/README.md) | Let agents run autonomously in a loop |
93
- | [**ruflo-loop-workers**](plugins/ruflo-loop-workers/README.md) | Schedule background tasks on a timer |
94
- | [**ruflo-workflows**](plugins/ruflo-workflows/README.md) | Reusable multi-step task templates |
95
- | [**ruflo-federation**](plugins/ruflo-federation/README.md) | Agents on different machines collaborate securely |
96
-
97
- #### Memory & Knowledge
98
-
99
- | Plugin | What it does |
100
- |--------|-------------|
101
- | [**ruflo-agentdb**](plugins/ruflo-agentdb/README.md) | Fast vector database for agent memory |
102
- | [**ruflo-rag-memory**](plugins/ruflo-rag-memory/README.md) | Smart retrieval — hybrid search, graph hops, diversity ranking |
103
- | [**ruflo-rvf**](plugins/ruflo-rvf/README.md) | Save and restore agent memory across sessions |
104
- | [**ruflo-ruvector**](plugins/ruflo-ruvector/README.md) | [`ruvector`](https://npmjs.com/package/ruvector) — GPU-accelerated search, Graph RAG, 103 tools |
105
- | [**ruflo-knowledge-graph**](plugins/ruflo-knowledge-graph/README.md) | Build and traverse entity relationship maps |
106
-
107
- #### Intelligence & Learning
108
-
109
- | Plugin | What it does |
110
- |--------|-------------|
111
- | [**ruflo-intelligence**](plugins/ruflo-intelligence/README.md) | Agents learn from past successes and get smarter |
112
- | [**ruflo-graph-intelligence**](plugins/ruflo-graph-intelligence/) | Sublinear graph reasoning — PageRank, delta updates, complexity-aware execution (ADR-123) |
113
- | [**ruflo-daa**](plugins/ruflo-daa/README.md) | Dynamic agent behavior and cognitive patterns |
114
- | [**ruflo-ruvllm**](plugins/ruflo-ruvllm/README.md) | Run local LLMs (Ollama, etc.) with smart routing |
115
- | [**ruflo-goals**](plugins/ruflo-goals/README.md) | Break big goals into plans and track progress |
116
-
117
- #### Code Quality & Testing
118
-
119
- | Plugin | What it does |
120
- |--------|-------------|
121
- | [**ruflo-testgen**](plugins/ruflo-testgen/README.md) | Find missing tests and generate them automatically |
122
- | [**ruflo-browser**](plugins/ruflo-browser/README.md) | Automate browser testing with Playwright |
123
- | [**ruflo-jujutsu**](plugins/ruflo-jujutsu/README.md) | Analyze git diffs, score risk, suggest reviewers |
124
- | [**ruflo-docs**](plugins/ruflo-docs/README.md) | Generate and maintain documentation automatically |
125
-
126
- #### Security & Compliance
127
-
128
- | Plugin | What it does |
129
- |--------|-------------|
130
- | [**ruflo-security-audit**](plugins/ruflo-security-audit/README.md) | Scan for vulnerabilities and CVEs |
131
- | [**ruflo-aidefence**](plugins/ruflo-aidefence/README.md) | Block prompt injection, detect PII, safety scanning |
132
-
133
- #### Architecture & Methodology
134
-
135
- | Plugin | What it does |
136
- |--------|-------------|
137
- | [**ruflo-adr**](plugins/ruflo-adr/README.md) | Track architecture decisions with a living record |
138
- | [**ruflo-ddd**](plugins/ruflo-ddd/README.md) | Scaffold domain-driven design — contexts, aggregates, events |
139
- | [**ruflo-sparc**](plugins/ruflo-sparc/README.md) | Guided 5-phase development methodology with quality gates |
140
- | [**ruflo-metaharness**](plugins/ruflo-metaharness/README.md) | Grade your agent setup, scan tool configs for security risks, and track changes over time ([guide](docs/metaharness-user-guide.md)) |
141
- | [**ruflo-arena**](plugins/ruflo-arena/README.md) | Competitive ruliology — pit agent strategies against each other in tournaments, hill-climb and co-evolve the winners (ADR-147/148) |
142
-
143
- #### DevOps & Observability
144
-
145
- | Plugin | What it does |
146
- |--------|-------------|
147
- | [**ruflo-migrations**](plugins/ruflo-migrations/README.md) | Manage database schema changes safely |
148
- | [**ruflo-observability**](plugins/ruflo-observability/README.md) | Structured logs, traces, and metrics in one place |
149
- | [**ruflo-cost-tracker**](plugins/ruflo-cost-tracker/README.md) | Track token usage, set budgets, get cost alerts |
150
-
151
- #### Extensibility
152
-
153
- | Plugin | What it does |
154
- |--------|-------------|
155
- | [**ruflo-agent**](plugins/ruflo-agent/README.md) | Run agents — local WASM sandbox (rvagent) + Anthropic Claude Managed Agents (cloud) |
156
- | [**ruflo-plugin-creator**](plugins/ruflo-plugin-creator/README.md) | Scaffold, validate, and publish your own plugins |
157
-
158
- #### Domain-Specific
159
-
160
- | Plugin | What it does |
161
- |--------|-------------|
162
- | [**ruflo-iot-cognitum**](plugins/ruflo-iot-cognitum/README.md) | IoT device management — trust scoring, anomaly detection, fleets |
163
- | [**ruflo-neural-trader**](plugins/ruflo-neural-trader/README.md) | [`neural-trader`](https://npmjs.com/package/neural-trader) — AI trading with 4 agents, backtesting, 112+ tools |
164
- | [**ruflo-market-data**](plugins/ruflo-market-data/README.md) | Ingest market data, vectorize OHLCV, detect patterns |
165
-
166
- </details>
167
-
168
- ### CLI Install
169
-
170
- **macOS / Linux / WSL / Git-Bash:**
171
-
172
- ```bash
173
- # One-line install (POSIX shells only — see Windows note below)
174
- curl -fsSL https://cdn.jsdelivr.net/gh/ruvnet/ruflo@main/scripts/install.sh | bash
175
- ```
176
-
177
- **All platforms (including native Windows PowerShell / cmd):**
178
-
179
- ```bash
180
- # Interactive setup wizard — runs identically on every platform
181
- npx ruflo@latest init wizard
182
-
183
- # Quick non-interactive init
184
- # npx ruflo@latest init
185
-
186
- # Or install globally
187
- npm install -g ruflo@latest
188
- ```
189
-
190
- > 💡 **Windows users:** the `curl ... | bash` form needs a POSIX shell (Git-Bash, WSL, MSYS). The `npx ruflo@latest init wizard` line works natively in PowerShell and cmd. If you hit an `'bash' is not recognized` error, use the `npx` line instead — both end up running the same init flow.
191
-
192
- ### MCP Server
193
-
194
- ```bash
195
- # Add Ruflo as an MCP server in Claude Code
196
- claude mcp add claude-flow -- npx ruflo@latest mcp start
197
- ```
198
-
199
- ---
200
-
201
- ## What You Get
202
-
203
- | Capability | Description |
204
- |------------|-------------|
205
- | 🤖 **100+ Agents** | Specialized agents for coding, testing, security, docs, architecture |
206
- | 📡 **Comms Layer** | Zero-trust federation — agents across machines/orgs discover, authenticate, and exchange work securely |
207
- | 🐝 **Swarm Coordination** | Hierarchical, mesh, and adaptive topologies with consensus |
208
- | 🧠 **Self-Learning** | SONA neural patterns, ReasoningBank, trajectory learning |
209
- | 💾 **Vector Memory** | HNSW-indexed AgentDB — measured ~1.9x faster at N=20k, ~3.2x–4.7x at N=5k vs brute force (recall@10 ~0.99); ANN wins above the crossover, ties/loses at small N. See [audit](docs/reviews/intelligence-system-audit-2026-05-29.md) + [`scripts/benchmark-intelligence.mjs`](scripts/benchmark-intelligence.mjs) |
210
- | ⚡ **Background Workers** | 12 auto-triggered workers (audit, optimize, testgaps, etc.) |
211
- | 🧩 **Plugin Marketplace** | 33 native Claude Code plugins + 21 npm plugins |
212
- | 🔌 **Multi-Provider** | Claude, GPT, Gemini, Cohere, Ollama with smart routing |
213
- | 🛡️ **Security** | AIDefence, input validation, CVE remediation, path traversal prevention |
214
- | 🌐 **Agent Federation** | Cross-installation agent collaboration with zero-trust security |
215
- | 🔬 **[MetaHarness](docs/metaharness-user-guide.md)** | Audit your AI agent setup before you ship. Grade readiness (1-100), scan tool configs for security issues, snapshot the whole project to catch regressions over time, and find templates that match your repo. `ruflo eject` turns a ruflo project into a standalone agent toolkit with its own name. [Full guide](docs/metaharness-user-guide.md). |
216
- | 💬 **[Web UI Beta](https://flo.ruv.io/)** | Multi-model chat at flo.ruv.io with parallel MCP tool calling and an in-browser WASM tool gallery |
217
- | 🎯 **[RuFlo Research](https://goal.ruv.io/)** | GOAP A\* planner at goal.ruv.io — plain-English goals → executable agent plans, with a live agent dashboard at [/agents](https://goal.ruv.io/agents) |
218
-
219
- <p align="center">
220
- <a href="https://flo.ruv.io/">
221
- <img src="v3/docs/assets/ruVocal.png" alt="RuFlo Web UI executing parallel MCP tool calls at flo.ruv.io — ruflo__memory_store and ruflo__memory_search firing in a single model turn with the 'Step 1 — 2 tools completed' parallel-execution indicator, thinking process panel visible, Qwen 3.6 Max as the active model. Multi-agent AI chat with Model Context Protocol (MCP) tool calling, persistent vector memory via AgentDB + HNSW, swarm coordination, and 6 frontier models including Claude Sonnet 4.6, Gemini 2.5 Pro, and OpenAI through OpenRouter." width="100%" />
222
- </a>
223
- </p>
224
-
225
- ### Web UI (Beta) — self-hostable, hosted demo at [flo.ruv.io](https://flo.ruv.io/)
226
-
227
- **RuFlo's web UI is a multi-model AI chat with built-in Model Context Protocol (MCP) tool calling.** Talk to Qwen, Claude, Gemini, or OpenAI while RuFlo invokes the same MCP tools the CLI uses — agent orchestration, persistent memory, swarm coordination, code review, GitHub ops — directly from chat. No install, no API key needed to try it.
228
-
229
- | | What it is | Why it matters |
230
- |---|------------|----------------|
231
- | 🧠 | **Any model, local or remote** | 6 curated frontier models out-of-the-box — Qwen 3.6 Max (default), Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 2.5 Pro, Gemini 2.5 Flash, OpenAI — via OpenRouter. Add your own: any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq, self-hosted). |
232
- | 🦾 | **ruvLLM self-learning AI** | Native support for [ruvLLM](https://github.com/ruvnet/RuVector/tree/main/examples/ruvLLM) (lives in `ruvnet/RuVector/examples/ruvLLM`) — RuFlo's self-improving local model layer. Routes to MicroLoRA adapters, learns from your trajectories via SONA, and stays on your machine. Pair with the cloud models or run fully offline. |
233
- | 🛠️ | **~210 tools, ready to call** | 5 server groups (Core, Intelligence, Agents, Memory, DevTools) plus an 18-tool gallery that runs entirely in your browser — works offline. |
234
- | 🔌 | **Bring your own MCP servers** | Click the **MCP (n)** pill in the chat input → *Add Server* and paste any MCP endpoint (HTTP, SSE, or stdio). Your tools join RuFlo's native ones in the same parallel-execution flow. Run a local MCP server on `localhost:3000` and it just works. |
235
- | ⚡ | **Tools run in parallel** | One model response can fire 4–6+ tools at the same time. The UI shows them as cards with a *Step 1 — 2 tools completed* badge so you can see exactly what ran. |
236
- | 💾 | **Memory that sticks** | Say *"remember my favorite color is indigo"* and ask weeks later — RuFlo recalls it. Backed by AgentDB + HNSW vector search (measured ~1.9x–4.7x faster than brute force above the crossover, recall@10 ~0.99). |
237
- | 📘 | **Built-in capabilities tour** | Click the question-mark icon in the sidebar — a "RuFlo Capabilities" modal opens with the full tool list, model strengths, architecture, and keyboard shortcuts. |
238
- | 🏠 | **Self-hostable** | Web UI is shipped as Docker (`ruflo/src/ruvocal/Dockerfile`) with embedded Mongo. Deploy to your own Cloud Run / Fly / Kubernetes / docker-compose. The hosted [flo.ruv.io](https://flo.ruv.io/) demo is one option; running your own is fully supported. |
239
- | 🚀 | **Zero install to try** | Open the hosted URL, pick a model, type a question. That's the whole onboarding. |
240
-
241
- **Try the hosted demo:** [https://flo.ruv.io/](https://flo.ruv.io/) — no account, no API key. **Run your own:** the source lives in [`ruflo/src/ruvocal/`](ruflo/src/ruvocal/) with a multi-stage Dockerfile (`INCLUDE_DB=true` builds in MongoDB) and a `cloudbuild.yaml` for Google Cloud Run. See [ADR-033](ruflo/docs/adr/ADR-033-RUVOCAL-WASM-MCP-INTEGRATION.md) for the architecture and [issue #1689](https://github.com/ruvnet/ruflo/issues/1689) for the roadmap.
242
-
243
- <p align="center">
244
- <a href="https://goal.ruv.io/agents">
245
- <img src="v3/docs/assets/goal.png" alt="goal.ruv.io/agents — RuFlo Goal-Oriented Action Planning (GOAP) UI for autonomous AI agents. Visual goal decomposition, A* search through state spaces, multi-agent task assignment, and live agent telemetry." width="100%" />
246
- </a>
247
- </p>
248
-
249
- ### Goal Planner UI — autonomous agents at [goal.ruv.io](https://goal.ruv.io/)
250
-
251
- **Turn high-level goals into executable agent plans.** `goal.ruv.io` is RuFlo's hosted Goal-Oriented Action Planning (GOAP) front-end — describe an outcome in plain English and watch RuFlo decompose it into preconditions, actions, and an A* path through state space, then dispatch the work to live agents at [`/agents`](https://goal.ruv.io/agents).
252
-
253
- | | What it is | Why it matters |
254
- |---|------------|----------------|
255
- | 🎯 | **Plain-English goals** | Type *"ship the auth refactor with tests and a PR"* — RuFlo extracts the success criteria, the constraints, and the implicit preconditions. No JSON, no DSL. |
256
- | 🧭 | **GOAP A\* planner** | Classic gaming-AI planning ported to software work: state-space search through actions with preconditions/effects to find the shortest viable path. Replans on the fly when state changes. |
257
- | 🤖 | **Live agent dashboard** | [goal.ruv.io/agents](https://goal.ruv.io/agents) shows every spawned agent — role, current step, memory namespace, token budget, status. Click in to inspect trajectories, kill runaway workers, or reassign. |
258
- | 🌳 | **Visual plan tree** | Goals render as collapsible action trees with progress, blocked branches, and rollbacks highlighted. See *exactly* why an agent picked a path — no opaque chain-of-thought. |
259
- | ♻️ | **Adaptive replanning** | When an action fails or new info arrives, the planner re-runs A\* from the current state instead of restarting. Failures become learning, not loops. |
260
- | 🧠 | **Shared memory + SONA** | Plans, trajectories, and outcomes flow into AgentDB. Future plans retrieve past solutions via HNSW — the planner gets smarter with every run. |
261
- | 🔗 | **Wired to MCP tools** | Every action node maps to a tool call (RuFlo's ~210 MCP tools, your custom servers, or shell). The planner schedules them in parallel where the dependency graph allows. |
262
- | 🚀 | **Zero install to try** | Open [goal.ruv.io](https://goal.ruv.io/), describe a goal, watch it run. Source lives in [`v3/goal_ui/`](v3/goal_ui/) — Vite + Supabase, self-hostable. |
263
-
264
- **Try it:** [https://goal.ruv.io/](https://goal.ruv.io/) for goals · [https://goal.ruv.io/agents](https://goal.ruv.io/agents) for live agents. **Run your own:** clone the `goal` branch and `cd v3/goal_ui && npm install && npm run dev`.
265
-
266
- ### Agent Federation — Slack for Agents
267
-
268
- ```
269
- Your Agent --> [ Remove secrets ] --> [ Sign message ] --> [ Encrypted channel ]
270
- Emails, SSNs, Proves it came No one reads it
271
- keys stripped from you in transit
272
- |
273
- v
274
- Their Agent <-- [ Block attacks ] <-- [ Check identity ] <------+
275
- Stops prompt Rejects forgeries
276
- injection
277
-
278
- Audit trail on both sides.
279
- Trust builds over time. Bad behavior = instant downgrade.
280
- ```
281
-
282
- Slack gave teams channels. Federation gives agents the same thing — **shared workspaces across trust boundaries**, where agents on different machines, orgs, or cloud regions can discover each other, prove who they are, and collaborate on tasks.
283
-
284
- The difference: some channels are trusted, some aren't. [`@claude-flow/plugin-agent-federation`](https://github.com/ruvnet/ruflo/issues/1669) handles that automatically. Your agents join a federation, get verified via mTLS + ed25519, and start exchanging work — with PII stripped before anything leaves your node and every message auditable. Untrusted agents can still participate at lower privilege: they see discovery info, not your memory. As they prove reliable, trust upgrades. If they misbehave, they get downgraded instantly — no human in the loop required.
285
-
286
- You don't configure handshakes or manage certificates. You `federation init`, `federation join`, and your agents start talking. The protocol handles identity, the PII pipeline handles data safety, and the audit trail handles compliance.
287
-
288
- > **📘 Full user guide:** [`docs/federation/`](./docs/federation/) — setup, MCP tools, trust levels, circuit breaker, and the (opt-in) WireGuard mesh layer that ties packet-layer reachability to federation trust. ADR-111 deep-dive at [`docs/federation/phase7-mesh-bringup.md`](./docs/federation/phase7-mesh-bringup.md).
289
-
290
- <details>
291
- <summary><strong>Federation capabilities</strong></summary>
292
-
293
- | | Capability | How it works |
294
- |---|---|---|
295
- | 🔒 | **Zero-trust federation** | Remote agents start untrusted. Identity proven via mTLS + ed25519 challenge-response. No API keys, no shared secrets. |
296
- | 🛡️ | **PII-gated data flow** | 14-type detection pipeline scans every outbound message. Per-trust-level policies: BLOCK, REDACT, HASH, or PASS. Adaptive calibration reduces false positives. |
297
- | 📊 | **Behavioral trust scoring** | Formula (`0.4×success + 0.2×uptime + 0.2×threat + 0.2×integrity`) continuously evaluates peers. Upgrades require history; downgrades are instant. |
298
- | 📋 | **Compliance built-in** | HIPAA, SOC2, GDPR audit trails as compliance modes. Every federation event produces a structured record searchable via HNSW. |
299
- | 🤝 | **9 MCP tools + 10 CLI commands** | Full lifecycle: `federation_init`, `federation_send`, `federation_trust`, `federation_audit`, and more. |
300
-
301
- </details>
302
-
303
- <details>
304
- <summary><strong>Example: two teams sharing fraud signals without sharing customer data</strong></summary>
305
-
306
- ```bash
307
- # Team A: initialize federation and generate keypair
308
- npx claude-flow@latest federation init
309
-
310
- # Team A: join Team B's federation endpoint
311
- npx claude-flow@latest federation join wss://team-b.example.com:8443
312
-
313
- # Team A: send a task — PII is stripped automatically before it leaves
314
- npx claude-flow@latest federation send --to team-b --type task-request \
315
- --message "Analyze transaction patterns for account anomalies"
316
-
317
- # Team A: check peer trust levels and session health
318
- npx claude-flow@latest federation status
319
- ```
320
-
321
- </details>
322
-
323
- See [issue #1669](https://github.com/ruvnet/ruflo/issues/1669) for the complete architecture, trust model, and implementation roadmap.
324
-
325
- ```bash
326
- # Claude Code plugin
327
- /plugin install ruflo-federation@ruflo
328
-
329
- # Or via CLI
330
- npx claude-flow@latest plugins install @claude-flow/plugin-agent-federation
331
- ```
332
-
333
- <details>
334
- <summary><strong>Claude Code: With vs Without Ruflo</strong></summary>
335
-
336
- | Capability | Claude Code Alone | + Ruflo |
337
- |------------|-------------------|---------|
338
- | Agent Collaboration | Isolated, no shared context | Swarms with shared memory and consensus |
339
- | Coordination | Manual orchestration | Queen-led hierarchy (Raft, Byzantine, Gossip) |
340
- | Memory | Session-only | HNSW vector memory with sub-ms retrieval |
341
- | Learning | Static behavior | SONA self-learning with pattern matching |
342
- | Task Routing | You decide | Intelligent routing (89% accuracy) |
343
- | Background Workers | None | 12 auto-triggered workers |
344
- | LLM Providers | Anthropic only | 5 providers with failover |
345
- | Security | Standard | CVE-hardened with AIDefence |
346
-
347
- </details>
348
-
349
- <details>
350
- <summary><strong>Architecture overview</strong></summary>
351
-
352
- ```
353
- User --> Claude Code / CLI
354
- |
355
- v
356
- Orchestration Layer
357
- (MCP Server, Router, 27 Hooks)
358
- |
359
- v
360
- Swarm Coordination
361
- (Queen, Topology, Consensus)
362
- |
363
- v
364
- 100+ Specialized Agents
365
- (coder, tester, reviewer, architect, security...)
366
- |
367
- v
368
- Memory & Learning
369
- (AgentDB, HNSW, SONA, ReasoningBank)
370
- |
371
- v
372
- LLM Providers
373
- (Claude, GPT, Gemini, Cohere, Ollama)
374
- ```
375
-
376
- </details>
377
-
378
- ---
379
-
380
- ## Documentation
381
-
382
- Four docs for four audiences:
383
-
384
- | Doc | When to read it |
385
- |-----|-----------------|
386
- | **[Status](docs/STATUS.md)** | See what currently works — capability counts, test baselines, recent fixes, what's next. The *is-it-ready* doc. |
387
- | **[User Guide](docs/USERGUIDE.md)** | Daily reference — every command, every config flag, every plugin. The *how-do-I* doc. |
388
- | **[MetaHarness Guide](docs/metaharness-user-guide.md)** | How to grade your agent setup, scan tool configs for security, detect changes between runs, and eject a project into a standalone agent toolkit. The *audit-my-setup* doc. |
389
- | **[Benchmarks](https://gist.github.com/ruvnet/298f8c668c8859b369f91734a0e9cbbe)** | v3.8.0 SOTA matrix vs LangGraph / AutoGen / CrewAI on darwin-arm64 + linux-x64. ruflo wins cold start, single turn, RSS by 1.3×–1953×. The *is-it-fast* doc. |
390
- | **[Verification](verification.md)** | Cryptographically prove your installed bytes match the signed witness — `ruflo verify`. The *trust-but-verify* doc. |
391
- | **[Team Gateway Checklist](docs/TEAM-GATEWAY-CHECKLIST.md)** | Before-merge gates, dual-mode handoff, memory namespace sharing, and witness manifest entry per merge. The *safer-team-workflows* doc. |
392
-
393
- Benchmark internals (for reproduction): [`sota-workload-spec.md`](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-workload-spec.md) · [`SOTA-PROGRESS.md`](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/SOTA-PROGRESS.md) · [raw matrix JSON: darwin](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-matrix.json) · [linux](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-matrix-linux.json)
394
-
395
- User Guide section index:
396
-
397
- | Section | Topics |
398
- |---------|--------|
399
- | [Quick Start](docs/USERGUIDE.md#quick-start) | Installation, prerequisites, install profiles |
400
- | [Core Features](docs/USERGUIDE.md#-core-features) | MCP tools, agents, memory, neural learning |
401
- | [Intelligence & Learning](docs/USERGUIDE.md#-intelligence--learning) | Hooks, workers, SONA, model routing |
402
- | [Swarm & Coordination](docs/USERGUIDE.md#-swarm--coordination) | Topologies, consensus, hive mind |
403
- | [Security](docs/USERGUIDE.md#%EF%B8%8F-security) | AIDefence, CVE remediation, validation |
404
- | [Ecosystem](docs/USERGUIDE.md#-ecosystem--integrations) | RuVector, agentic-flow, Flow Nexus |
405
- | [Configuration](docs/USERGUIDE.md#%EF%B8%8F-configuration--reference) | Environment variables, config schema |
406
- | [Plugin Marketplace](https://ruvnet.github.io/ruflo) | Browse and install plugins |
407
-
408
- ---
409
-
410
- ## Support
411
-
412
- | Resource | Link |
413
- |----------|------|
414
- | Documentation | [User Guide](docs/USERGUIDE.md) |
415
- | Issues & Bugs | [GitHub Issues](https://github.com/ruvnet/claude-flow/issues) |
416
- | Enterprise | [ruv.io](https://ruv.io) |
417
- | Community | [Agentics Foundation Discord](https://discord.com/invite/dfxmpwkG2D) |
418
- | Powered by | [Cognitum.one](https://cognitum.one) |
419
-
420
- ## License
421
-
422
- MIT - [RuvNet](https://github.com/ruvnet)
1
+ <div align="center">
2
+
3
+ [![Ruflo Banner](ruflo/assets/ruflo-small.jpeg)](https://cognitum.one/agentic-engineering)
4
+
5
+ <!-- Try Ruflo — the 4 badges first-time visitors actually act on -->
6
+ [![Try the UI Beta — flo.ruv.io](https://img.shields.io/badge/_Try_the_UI_Beta-flo.ruv.io-6366f1?style=for-the-badge&logoColor=white&logo=svelte)](https://flo.ruv.io/)
7
+ [![npm version (ruflo)](https://img.shields.io/npm/v/ruflo?label=npx%20ruflo&style=for-the-badge&logo=npm&color=cb3837)](https://www.npmjs.com/package/ruflo)
8
+ [![MIT License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](https://opensource.org/licenses/MIT)
9
+ [![Star on GitHub](https://img.shields.io/github/stars/ruvnet/claude-flow?style=for-the-badge&logo=github&color=gold)](https://github.com/ruvnet/claude-flow)
10
+
11
+ <!-- Ecosystem strip (collapsed visually with flat-square) -->
12
+ [![Goal Planner](https://img.shields.io/badge/_Goal_Planner-goal.ruv.io-8b5cf6?style=flat-square&logoColor=white&logo=react)](https://goal.ruv.io/)
13
+ [![Live Agents](https://img.shields.io/badge/_Live_Agents-goal.ruv.io%2Fagents-10b981?style=flat-square&logoColor=white&logo=react)](https://goal.ruv.io/agents)
14
+ [![🕸️ RuVector Agentic DB](https://img.shields.io/badge/RuVector_Agentic-DB-06b6d4?style=flat-square&logoColor=white&logo=graphql)](https://github.com/ruvnet/ruvector)
15
+ [![Ecosystem downloads](https://img.shields.io/badge/ecosystem%20downloads-8.1M%2B-blue?style=flat-square&logo=npm)](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.proof.json)
16
+ [![Git clones (14d)](https://img.shields.io/badge/git%20clones%2014d-106k-blueviolet?style=flat-square&logo=github)](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.ledger.json)
17
+ [![Claude Code](https://img.shields.io/badge/Claude%20Code-Plugin-D97757?style=flat-square&logoColor=white&logo=anthropic)](https://github.com/ruvnet/claude-flow)
18
+ [![Codex Plugin](https://img.shields.io/badge/Codex-Plugin-412991?style=flat-square&logoColor=white&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI%2BPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0yMi4yODIgOS44MjFhNS45ODUgNS45ODUgMCAwIDAtLjUxNi00LjkxIDYuMDQ2IDYuMDQ2IDAgMCAwLTYuNTEtMi45QTYuMDY1IDYuMDY1IDAgMCAwIDQuOTgxIDQuMThhNS45ODUgNS45ODUgMCAwIDAtMy45OTggMi45IDYuMDQ2IDYuMDQ2IDAgMCAwIC43NDMgNy4wOTcgNS45OCA1Ljk4IDAgMCAwIC41MSA0LjkxMSA2LjA1MSA2LjA1MSAwIDAgMCA2LjUxNSAyLjlBNS45ODUgNS45ODUgMCAwIDAgMTMuMjYgMjRhNi4wNTYgNi4wNTYgMCAwIDAgNS43NzItNC4yMDYgNS45OSA1Ljk5IDAgMCAwIDMuOTk4LTIuOSA2LjA1NiA2LjA1NiAwIDAgMC0uNzQ3LTcuMDczek0xMy4yNiAyMi40M2E0LjQ3NiA0LjQ3NiAwIDAgMS0yLjg3Ni0xLjA0bC4xNDItLjA4IDQuNzc4LTIuNzU4YS43OTUuNzk1IDAgMCAwIC4zOTMtLjY4MXYtNi43MzdsMi4wMiAxLjE2OGEuMDcxLjA3MSAwIDAgMSAuMDM4LjA1MnY1LjU4M2E0LjUwNCA0LjUwNCAwIDAgMS00LjQ5NSA0LjQ5NHpNMy42IDE4LjMwNGE0LjQ3IDQuNDcgMCAwIDEtLjUzNS0zLjAxNGwuMTQyLjA4NSA0Ljc4MyAyLjc1OWEuNzcxLjc3MSAwIDAgMCAuNzgxIDBsNS44NDMtMy4zNjl2Mi4zMzJhLjA4LjA4IDAgMCAxLS4wMzMuMDYyTDkuNzQgMTkuOTVhNC41IDQuNSAwIDAgMS02LjE0LTEuNjQ2ek0yLjM0IDcuODk2YTQuNDg1IDQuNDg1IDAgMCAxIDIuMzY2LTEuOTczVjExLjZhLjc2Ni43NjYgMCAwIDAgLjM4OC42NzdsNS44MTUgMy4zNTQtMi4wMiAxLjE2OGEuMDc2LjA3NiAwIDAgMS0uMDcyIDBsLTQuODMtMi43ODZBNC41MDQgNC41MDQgMCAwIDEgMi4zNCA3Ljg3MnptMTYuNTk3IDMuODU1LTUuODMzLTMuMzg3IDIuMDE2LTEuMTY1YS4wNzYuMDc2IDAgMCAxIC4wNzEgMGw0LjgzIDIuNzkxYTQuNDk0IDQuNDk0IDAgMCAxLS42NzYgOC4xMDR2LTUuNjc3YS43OS43OSAwIDAgMC0uNDA3LS42Njd6bTIuMDEtMy4wMjMtLjE0MS0uMDg1LTQuNzc0LTIuNzgyYS43NzYuNzc2IDAgMCAwLS43ODUgMEw5LjQwOSA5LjIzVjYuODk3YS4wNjYuMDY2IDAgMCAxIC4wMjgtLjA2Mmw0LjgzLTIuNzg3YTQuNDk5IDQuNDk5IDAgMCAxIDYuNjggNC42NnpNOC4zMDcgMTIuODYzbC0yLjAyLTEuMTY0YS4wOC4wOCAwIDAgMS0uMDM4LS4wNTdWNi4wNzRhNC40OTkgNC40OTkgMCAwIDEgNy4zNzYtMy40NTRsLS4xNDIuMDgtNC43NzggMi43NThhLjc5NS43OTUgMCAwIDAtLjM5My42ODJ6bTEuMDk3LTIuMzY2IDIuNjAyLTEuNSAyLjYwNyAxLjV2Mi45OTlsLTIuNTk3IDEuNS0yLjYwNy0xLjVaIi8%2BPC9zdmc%2B)](https://www.npmjs.com/package/@claude-flow/codex)
19
+
20
+ # Ruflo
21
+
22
+ **An agent meta-harness for Claude Code and Codex.**
23
+
24
+ [![RuFlo Explained — build an AI team that plans, remembers, tests, and improves](docs/assets/ruflo-explained/ch14.jpg)](docs/ruflo-explained.md)
25
+
26
+ **[📖 RuFlo Explained — Build an AI Team That Plans, Remembers, Tests, and Improves](docs/ruflo-explained.md)**
27
+ A 14-chapter guide: from the basic idea to a first useful task, then memory, agent teams, plugins, cost and verification.
28
+
29
+ </div>
30
+
31
+ > **Agent = Model + Harness.** The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work. **Ruflo is the harness** — the execution layer around Claude Code and Codex that adds 100+ specialized agents, coordinated swarms, self-learning memory, federated comms across machines, and enterprise security guardrails. So agents don't just run, they collaborate.
32
+
33
+ One `npx ruflo init` gives Claude Code a nervous system: agents self-organize into swarms, learn from every task, remember across sessions, and — with federation — securely talk to agents on other machines without leaking data. You keep writing code. Ruflo handles the coordination.
34
+
35
+ ```
36
+ Self-Learning / Self-Optimizing Agent Architecture
37
+
38
+ User --> Ruflo (CLI/MCP) --> Router --> Swarm --> Agents --> Memory --> LLM Providers
39
+ ^ |
40
+ +---- Learning Loop <-------+
41
+ ```
42
+
43
+ > **New to Ruflo?** You don't need to learn 314 MCP tools or 26 CLI commands. After `init`, just use Claude Code normally — the hooks system automatically routes tasks, learns from successful patterns, and coordinates agents in the background.
44
+
45
+ <details>
46
+ <summary><strong>📖 Background — where the name comes from</strong></summary>
47
+
48
+ > Claude Flow is now Ruflo — named by [`rUv`](https://ruv.io), who loves Rust, flow states, and building things that feel inevitable. The "Ru" is the rUv. The "flo" is working until 3am. Underneath, powered by [`Cognitum.One`](https://cognitum.one/?RuFlo) agentic architecture, running a supercharged Rust-based AI engine, embeddings, memory, and plugin system.
49
+
50
+ </details>
51
+
52
+ ---
53
+
54
+ ![Ruflo Plugins](./ruflo-plugins.gif)
55
+
56
+ ## Quick Start
57
+
58
+ There are **two different install paths** with very different surface areas. Pick based on what you need (#1744):
59
+
60
+ | | **Claude Code Plugin** | **CLI install (`npx ruflo init`)** |
61
+ |---|---|---|
62
+ | What it gives you | Slash commands + a few skills + agent definitions per-plugin | Full Ruflo loop — 98 agents, 60+ commands, 30 skills, MCP server, hooks, daemon |
63
+ | Files in your workspace | **Zero** | `.claude/`, `.claude-flow/`, `CLAUDE.md`, helpers, settings |
64
+ | MCP server registered | Only if `ruflo-core` is installed (it ships its own `.mcp.json`) — most other plugins don't | Yes |
65
+ | Hooks installed | No | Yes |
66
+ | Best for | Try a single plugin's commands without committing to the full install | Production use — everything works as documented |
67
+
68
+ ### Path A — Claude Code Plugins (lite, slash commands only)
69
+
70
+ ```bash
71
+ # Add the marketplace
72
+ /plugin marketplace add ruvnet/ruflo
73
+
74
+ # Install core + any plugins you need
75
+ /plugin install ruflo-core@ruflo
76
+ /plugin install ruflo-swarm@ruflo
77
+ /plugin install ruflo-rag-memory@ruflo
78
+ /plugin install ruflo-neural-trader@ruflo
79
+ ```
80
+
81
+ This adds slash commands and agent definitions. `ruflo-core` (installed above) does register its own MCP server on install — its tools are callable as `mcp__plugin_ruflo-core_ruflo__*` (e.g. `mcp__plugin_ruflo-core_ruflo__memory_store`), not the bare `memory_store`/`swarm_init`/`agent_spawn` names the CLI-track scaffold uses. Other plugins generally don't ship their own MCP server. For the full loop with the CLI-track tool names, use Path B below.
82
+
83
+ <details>
84
+ <summary><strong>🔌 All 35 plugins</strong></summary>
85
+
86
+ #### Core & Orchestration
87
+
88
+ | Plugin | What it does |
89
+ |--------|-------------|
90
+ | [**ruflo-core**](plugins/ruflo-core/README.md) | Foundation — server, health checks, plugin discovery |
91
+ | [**ruflo-swarm**](plugins/ruflo-swarm/README.md) | Coordinate multiple agents as a team |
92
+ | [**ruflo-autopilot**](plugins/ruflo-autopilot/README.md) | Let agents run autonomously in a loop |
93
+ | [**ruflo-loop-workers**](plugins/ruflo-loop-workers/README.md) | Schedule background tasks on a timer |
94
+ | [**ruflo-workflows**](plugins/ruflo-workflows/README.md) | Reusable multi-step task templates |
95
+ | [**ruflo-federation**](plugins/ruflo-federation/README.md) | Agents on different machines collaborate securely |
96
+
97
+ #### Memory & Knowledge
98
+
99
+ | Plugin | What it does |
100
+ |--------|-------------|
101
+ | [**ruflo-agentdb**](plugins/ruflo-agentdb/README.md) | Fast vector database for agent memory |
102
+ | [**ruflo-rag-memory**](plugins/ruflo-rag-memory/README.md) | Smart retrieval — hybrid search, graph hops, diversity ranking |
103
+ | [**ruflo-rvf**](plugins/ruflo-rvf/README.md) | Save and restore agent memory across sessions |
104
+ | [**ruflo-ruvector**](plugins/ruflo-ruvector/README.md) | [`ruvector`](https://npmjs.com/package/ruvector) — GPU-accelerated search, Graph RAG, 103 tools |
105
+ | [**ruflo-knowledge-graph**](plugins/ruflo-knowledge-graph/README.md) | Build and traverse entity relationship maps |
106
+
107
+ #### Intelligence & Learning
108
+
109
+ | Plugin | What it does |
110
+ |--------|-------------|
111
+ | [**ruflo-intelligence**](plugins/ruflo-intelligence/README.md) | Agents learn from past successes and get smarter |
112
+ | [**ruflo-graph-intelligence**](plugins/ruflo-graph-intelligence/) | Sublinear graph reasoning — PageRank, delta updates, complexity-aware execution (ADR-123) |
113
+ | [**ruflo-daa**](plugins/ruflo-daa/README.md) | Dynamic agent behavior and cognitive patterns |
114
+ | [**ruflo-ruvllm**](plugins/ruflo-ruvllm/README.md) | Run local LLMs (Ollama, etc.) with smart routing |
115
+ | [**ruflo-goals**](plugins/ruflo-goals/README.md) | Break big goals into plans and track progress |
116
+
117
+ #### Code Quality & Testing
118
+
119
+ | Plugin | What it does |
120
+ |--------|-------------|
121
+ | [**ruflo-testgen**](plugins/ruflo-testgen/README.md) | Find missing tests and generate them automatically |
122
+ | [**ruflo-browser**](plugins/ruflo-browser/README.md) | Automate browser testing with Playwright |
123
+ | [**ruflo-jujutsu**](plugins/ruflo-jujutsu/README.md) | Analyze git diffs, score risk, suggest reviewers |
124
+ | [**ruflo-docs**](plugins/ruflo-docs/README.md) | Generate and maintain documentation automatically |
125
+
126
+ #### Security & Compliance
127
+
128
+ | Plugin | What it does |
129
+ |--------|-------------|
130
+ | [**ruflo-security-audit**](plugins/ruflo-security-audit/README.md) | Scan for vulnerabilities and CVEs |
131
+ | [**ruflo-aidefence**](plugins/ruflo-aidefence/README.md) | Block prompt injection, detect PII, safety scanning |
132
+
133
+ #### Architecture & Methodology
134
+
135
+ | Plugin | What it does |
136
+ |--------|-------------|
137
+ | [**ruflo-adr**](plugins/ruflo-adr/README.md) | Track architecture decisions with a living record |
138
+ | [**ruflo-ddd**](plugins/ruflo-ddd/README.md) | Scaffold domain-driven design — contexts, aggregates, events |
139
+ | [**ruflo-sparc**](plugins/ruflo-sparc/README.md) | Guided 5-phase development methodology with quality gates |
140
+ | [**ruflo-metaharness**](plugins/ruflo-metaharness/README.md) | Grade your agent setup, scan tool configs for security risks, and track changes over time ([guide](docs/metaharness-user-guide.md)) |
141
+ | [**ruflo-arena**](plugins/ruflo-arena/README.md) | Competitive ruliology — pit agent strategies against each other in tournaments, hill-climb and co-evolve the winners (ADR-147/148) |
142
+
143
+ #### DevOps & Observability
144
+
145
+ | Plugin | What it does |
146
+ |--------|-------------|
147
+ | [**ruflo-migrations**](plugins/ruflo-migrations/README.md) | Manage database schema changes safely |
148
+ | [**ruflo-observability**](plugins/ruflo-observability/README.md) | Structured logs, traces, and metrics in one place |
149
+ | [**ruflo-cost-tracker**](plugins/ruflo-cost-tracker/README.md) | Track token usage, set budgets, get cost alerts |
150
+
151
+ #### Extensibility
152
+
153
+ | Plugin | What it does |
154
+ |--------|-------------|
155
+ | [**ruflo-agent**](plugins/ruflo-agent/README.md) | Run agents — local WASM sandbox (rvagent) + Anthropic Claude Managed Agents (cloud) |
156
+ | [**ruflo-plugin-creator**](plugins/ruflo-plugin-creator/README.md) | Scaffold, validate, and publish your own plugins |
157
+
158
+ #### Domain-Specific
159
+
160
+ | Plugin | What it does |
161
+ |--------|-------------|
162
+ | [**ruflo-iot-cognitum**](plugins/ruflo-iot-cognitum/README.md) | IoT device management — trust scoring, anomaly detection, fleets |
163
+ | [**ruflo-neural-trader**](plugins/ruflo-neural-trader/README.md) | [`neural-trader`](https://npmjs.com/package/neural-trader) — AI trading with 4 agents, backtesting, 112+ tools |
164
+ | [**ruflo-market-data**](plugins/ruflo-market-data/README.md) | Ingest market data, vectorize OHLCV, detect patterns |
165
+
166
+ </details>
167
+
168
+ ### CLI Install
169
+
170
+ **macOS / Linux / WSL / Git-Bash:**
171
+
172
+ ```bash
173
+ # One-line install (POSIX shells only — see Windows note below)
174
+ curl -fsSL https://cdn.jsdelivr.net/gh/ruvnet/ruflo@main/scripts/install.sh | bash
175
+ ```
176
+
177
+ **All platforms (including native Windows PowerShell / cmd):**
178
+
179
+ ```bash
180
+ # Interactive setup wizard — runs identically on every platform
181
+ npx ruflo@latest init wizard
182
+
183
+ # Quick non-interactive init
184
+ # npx ruflo@latest init
185
+
186
+ # Or install globally
187
+ npm install -g ruflo@latest
188
+ ```
189
+
190
+ > 💡 **Windows users:** the `curl ... | bash` form needs a POSIX shell (Git-Bash, WSL, MSYS). The `npx ruflo@latest init wizard` line works natively in PowerShell and cmd. If you hit an `'bash' is not recognized` error, use the `npx` line instead — both end up running the same init flow.
191
+
192
+ ### MCP Server
193
+
194
+ ```bash
195
+ # Add Ruflo as an MCP server in Claude Code
196
+ claude mcp add claude-flow -- npx ruflo@latest mcp start
197
+ ```
198
+
199
+ ---
200
+
201
+ ## What You Get
202
+
203
+ | Capability | Description |
204
+ |------------|-------------|
205
+ | 🤖 **100+ Agents** | Specialized agents for coding, testing, security, docs, architecture |
206
+ | 📡 **Comms Layer** | Zero-trust federation — agents across machines/orgs discover, authenticate, and exchange work securely |
207
+ | 🐝 **Swarm Coordination** | Hierarchical, mesh, and adaptive topologies with consensus |
208
+ | 🧠 **Self-Learning** | SONA neural patterns, ReasoningBank, trajectory learning |
209
+ | 💾 **Vector Memory** | HNSW-indexed AgentDB — measured ~1.9x faster at N=20k, ~3.2x–4.7x at N=5k vs brute force (recall@10 ~0.99); ANN wins above the crossover, ties/loses at small N. See [audit](docs/reviews/intelligence-system-audit-2026-05-29.md) + [`scripts/benchmark-intelligence.mjs`](scripts/benchmark-intelligence.mjs) |
210
+ | ⚡ **Background Workers** | 12 auto-triggered workers (audit, optimize, testgaps, etc.) |
211
+ | 🧩 **Plugin Marketplace** | 33 native Claude Code plugins + 21 npm plugins |
212
+ | 🔌 **Multi-Provider** | Claude, GPT, Gemini, Cohere, Ollama with smart routing |
213
+ | 🛡️ **Security** | AIDefence, input validation, CVE remediation, path traversal prevention |
214
+ | 🌐 **Agent Federation** | Cross-installation agent collaboration with zero-trust security |
215
+ | 🔬 **[MetaHarness](docs/metaharness-user-guide.md)** | Audit your AI agent setup before you ship. Grade readiness (1-100), scan tool configs for security issues, snapshot the whole project to catch regressions over time, and find templates that match your repo. `ruflo eject` turns a ruflo project into a standalone agent toolkit with its own name. [Full guide](docs/metaharness-user-guide.md). |
216
+ | 💬 **[Web UI Beta](https://flo.ruv.io/)** | Multi-model chat at flo.ruv.io with parallel MCP tool calling and an in-browser WASM tool gallery |
217
+ | 🎯 **[RuFlo Research](https://goal.ruv.io/)** | GOAP A\* planner at goal.ruv.io — plain-English goals → executable agent plans, with a live agent dashboard at [/agents](https://goal.ruv.io/agents) |
218
+
219
+ <p align="center">
220
+ <a href="https://flo.ruv.io/">
221
+ <img src="v3/docs/assets/ruVocal.png" alt="RuFlo Web UI executing parallel MCP tool calls at flo.ruv.io — ruflo__memory_store and ruflo__memory_search firing in a single model turn with the 'Step 1 — 2 tools completed' parallel-execution indicator, thinking process panel visible, Qwen 3.6 Max as the active model. Multi-agent AI chat with Model Context Protocol (MCP) tool calling, persistent vector memory via AgentDB + HNSW, swarm coordination, and 6 frontier models including Claude Sonnet 4.6, Gemini 2.5 Pro, and OpenAI through OpenRouter." width="100%" />
222
+ </a>
223
+ </p>
224
+
225
+ ### Web UI (Beta) — self-hostable, hosted demo at [flo.ruv.io](https://flo.ruv.io/)
226
+
227
+ **RuFlo's web UI is a multi-model AI chat with built-in Model Context Protocol (MCP) tool calling.** Talk to Qwen, Claude, Gemini, or OpenAI while RuFlo invokes the same MCP tools the CLI uses — agent orchestration, persistent memory, swarm coordination, code review, GitHub ops — directly from chat. No install, no API key needed to try it.
228
+
229
+ | | What it is | Why it matters |
230
+ |---|------------|----------------|
231
+ | 🧠 | **Any model, local or remote** | 6 curated frontier models out-of-the-box — Qwen 3.6 Max (default), Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 2.5 Pro, Gemini 2.5 Flash, OpenAI — via OpenRouter. Add your own: any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq, self-hosted). |
232
+ | 🦾 | **ruvLLM self-learning AI** | Native support for [ruvLLM](https://github.com/ruvnet/RuVector/tree/main/examples/ruvLLM) (lives in `ruvnet/RuVector/examples/ruvLLM`) — RuFlo's self-improving local model layer. Routes to MicroLoRA adapters, learns from your trajectories via SONA, and stays on your machine. Pair with the cloud models or run fully offline. |
233
+ | 🛠️ | **~210 tools, ready to call** | 5 server groups (Core, Intelligence, Agents, Memory, DevTools) plus an 18-tool gallery that runs entirely in your browser — works offline. |
234
+ | 🔌 | **Bring your own MCP servers** | Click the **MCP (n)** pill in the chat input → *Add Server* and paste any MCP endpoint (HTTP, SSE, or stdio). Your tools join RuFlo's native ones in the same parallel-execution flow. Run a local MCP server on `localhost:3000` and it just works. |
235
+ | ⚡ | **Tools run in parallel** | One model response can fire 4–6+ tools at the same time. The UI shows them as cards with a *Step 1 — 2 tools completed* badge so you can see exactly what ran. |
236
+ | 💾 | **Memory that sticks** | Say *"remember my favorite color is indigo"* and ask weeks later — RuFlo recalls it. Backed by AgentDB + HNSW vector search (measured ~1.9x–4.7x faster than brute force above the crossover, recall@10 ~0.99). |
237
+ | 📘 | **Built-in capabilities tour** | Click the question-mark icon in the sidebar — a "RuFlo Capabilities" modal opens with the full tool list, model strengths, architecture, and keyboard shortcuts. |
238
+ | 🏠 | **Self-hostable** | Web UI is shipped as Docker (`ruflo/src/ruvocal/Dockerfile`) with embedded Mongo. Deploy to your own Cloud Run / Fly / Kubernetes / docker-compose. The hosted [flo.ruv.io](https://flo.ruv.io/) demo is one option; running your own is fully supported. |
239
+ | 🚀 | **Zero install to try** | Open the hosted URL, pick a model, type a question. That's the whole onboarding. |
240
+
241
+ **Try the hosted demo:** [https://flo.ruv.io/](https://flo.ruv.io/) — no account, no API key. **Run your own:** the source lives in [`ruflo/src/ruvocal/`](ruflo/src/ruvocal/) with a multi-stage Dockerfile (`INCLUDE_DB=true` builds in MongoDB) and a `cloudbuild.yaml` for Google Cloud Run. See [ADR-033](ruflo/docs/adr/ADR-033-RUVOCAL-WASM-MCP-INTEGRATION.md) for the architecture and [issue #1689](https://github.com/ruvnet/ruflo/issues/1689) for the roadmap.
242
+
243
+ <p align="center">
244
+ <a href="https://goal.ruv.io/agents">
245
+ <img src="v3/docs/assets/goal.png" alt="goal.ruv.io/agents — RuFlo Goal-Oriented Action Planning (GOAP) UI for autonomous AI agents. Visual goal decomposition, A* search through state spaces, multi-agent task assignment, and live agent telemetry." width="100%" />
246
+ </a>
247
+ </p>
248
+
249
+ ### Goal Planner UI — autonomous agents at [goal.ruv.io](https://goal.ruv.io/)
250
+
251
+ **Turn high-level goals into executable agent plans.** `goal.ruv.io` is RuFlo's hosted Goal-Oriented Action Planning (GOAP) front-end — describe an outcome in plain English and watch RuFlo decompose it into preconditions, actions, and an A* path through state space, then dispatch the work to live agents at [`/agents`](https://goal.ruv.io/agents).
252
+
253
+ | | What it is | Why it matters |
254
+ |---|------------|----------------|
255
+ | 🎯 | **Plain-English goals** | Type *"ship the auth refactor with tests and a PR"* — RuFlo extracts the success criteria, the constraints, and the implicit preconditions. No JSON, no DSL. |
256
+ | 🧭 | **GOAP A\* planner** | Classic gaming-AI planning ported to software work: state-space search through actions with preconditions/effects to find the shortest viable path. Replans on the fly when state changes. |
257
+ | 🤖 | **Live agent dashboard** | [goal.ruv.io/agents](https://goal.ruv.io/agents) shows every spawned agent — role, current step, memory namespace, token budget, status. Click in to inspect trajectories, kill runaway workers, or reassign. |
258
+ | 🌳 | **Visual plan tree** | Goals render as collapsible action trees with progress, blocked branches, and rollbacks highlighted. See *exactly* why an agent picked a path — no opaque chain-of-thought. |
259
+ | ♻️ | **Adaptive replanning** | When an action fails or new info arrives, the planner re-runs A\* from the current state instead of restarting. Failures become learning, not loops. |
260
+ | 🧠 | **Shared memory + SONA** | Plans, trajectories, and outcomes flow into AgentDB. Future plans retrieve past solutions via HNSW — the planner gets smarter with every run. |
261
+ | 🔗 | **Wired to MCP tools** | Every action node maps to a tool call (RuFlo's ~210 MCP tools, your custom servers, or shell). The planner schedules them in parallel where the dependency graph allows. |
262
+ | 🚀 | **Zero install to try** | Open [goal.ruv.io](https://goal.ruv.io/), describe a goal, watch it run. Source lives in [`v3/goal_ui/`](v3/goal_ui/) — Vite + Supabase, self-hostable. |
263
+
264
+ **Try it:** [https://goal.ruv.io/](https://goal.ruv.io/) for goals · [https://goal.ruv.io/agents](https://goal.ruv.io/agents) for live agents. **Run your own:** clone the `goal` branch and `cd v3/goal_ui && npm install && npm run dev`.
265
+
266
+ ### Agent Federation — Slack for Agents
267
+
268
+ ```
269
+ Your Agent --> [ Remove secrets ] --> [ Sign message ] --> [ Encrypted channel ]
270
+ Emails, SSNs, Proves it came No one reads it
271
+ keys stripped from you in transit
272
+ |
273
+ v
274
+ Their Agent <-- [ Block attacks ] <-- [ Check identity ] <------+
275
+ Stops prompt Rejects forgeries
276
+ injection
277
+
278
+ Audit trail on both sides.
279
+ Trust builds over time. Bad behavior = instant downgrade.
280
+ ```
281
+
282
+ Slack gave teams channels. Federation gives agents the same thing — **shared workspaces across trust boundaries**, where agents on different machines, orgs, or cloud regions can discover each other, prove who they are, and collaborate on tasks.
283
+
284
+ The difference: some channels are trusted, some aren't. [`@claude-flow/plugin-agent-federation`](https://github.com/ruvnet/ruflo/issues/1669) handles that automatically. Your agents join a federation, get verified via mTLS + ed25519, and start exchanging work — with PII stripped before anything leaves your node and every message auditable. Untrusted agents can still participate at lower privilege: they see discovery info, not your memory. As they prove reliable, trust upgrades. If they misbehave, they get downgraded instantly — no human in the loop required.
285
+
286
+ You don't configure handshakes or manage certificates. You `federation init`, `federation join`, and your agents start talking. The protocol handles identity, the PII pipeline handles data safety, and the audit trail handles compliance.
287
+
288
+ > **📘 Full user guide:** [`docs/federation/`](./docs/federation/) — setup, MCP tools, trust levels, circuit breaker, and the (opt-in) WireGuard mesh layer that ties packet-layer reachability to federation trust. ADR-111 deep-dive at [`docs/federation/phase7-mesh-bringup.md`](./docs/federation/phase7-mesh-bringup.md).
289
+
290
+ <details>
291
+ <summary><strong>Federation capabilities</strong></summary>
292
+
293
+ | | Capability | How it works |
294
+ |---|---|---|
295
+ | 🔒 | **Zero-trust federation** | Remote agents start untrusted. Identity proven via mTLS + ed25519 challenge-response. No API keys, no shared secrets. |
296
+ | 🛡️ | **PII-gated data flow** | 14-type detection pipeline scans every outbound message. Per-trust-level policies: BLOCK, REDACT, HASH, or PASS. Adaptive calibration reduces false positives. |
297
+ | 📊 | **Behavioral trust scoring** | Formula (`0.4×success + 0.2×uptime + 0.2×threat + 0.2×integrity`) continuously evaluates peers. Upgrades require history; downgrades are instant. |
298
+ | 📋 | **Compliance built-in** | HIPAA, SOC2, GDPR audit trails as compliance modes. Every federation event produces a structured record searchable via HNSW. |
299
+ | 🤝 | **9 MCP tools + 10 CLI commands** | Full lifecycle: `federation_init`, `federation_send`, `federation_trust`, `federation_audit`, and more. |
300
+
301
+ </details>
302
+
303
+ <details>
304
+ <summary><strong>Example: two teams sharing fraud signals without sharing customer data</strong></summary>
305
+
306
+ ```bash
307
+ # Team A: initialize federation and generate keypair
308
+ npx claude-flow@latest federation init
309
+
310
+ # Team A: join Team B's federation endpoint
311
+ npx claude-flow@latest federation join wss://team-b.example.com:8443
312
+
313
+ # Team A: send a task — PII is stripped automatically before it leaves
314
+ npx claude-flow@latest federation send --to team-b --type task-request \
315
+ --message "Analyze transaction patterns for account anomalies"
316
+
317
+ # Team A: check peer trust levels and session health
318
+ npx claude-flow@latest federation status
319
+ ```
320
+
321
+ </details>
322
+
323
+ See [issue #1669](https://github.com/ruvnet/ruflo/issues/1669) for the complete architecture, trust model, and implementation roadmap.
324
+
325
+ ```bash
326
+ # Claude Code plugin
327
+ /plugin install ruflo-federation@ruflo
328
+
329
+ # Or via CLI
330
+ npx claude-flow@latest plugins install @claude-flow/plugin-agent-federation
331
+ ```
332
+
333
+ <details>
334
+ <summary><strong>Claude Code: With vs Without Ruflo</strong></summary>
335
+
336
+ | Capability | Claude Code Alone | + Ruflo |
337
+ |------------|-------------------|---------|
338
+ | Agent Collaboration | Isolated, no shared context | Swarms with shared memory and consensus |
339
+ | Coordination | Manual orchestration | Queen-led hierarchy (Raft, Byzantine, Gossip) |
340
+ | Memory | Session-only | HNSW vector memory with sub-ms retrieval |
341
+ | Learning | Static behavior | SONA self-learning with pattern matching |
342
+ | Task Routing | You decide | Intelligent routing (89% accuracy) |
343
+ | Background Workers | None | 12 auto-triggered workers |
344
+ | LLM Providers | Anthropic only | 5 providers with failover |
345
+ | Security | Standard | CVE-hardened with AIDefence |
346
+
347
+ </details>
348
+
349
+ <details>
350
+ <summary><strong>Architecture overview</strong></summary>
351
+
352
+ ```
353
+ User --> Claude Code / CLI
354
+ |
355
+ v
356
+ Orchestration Layer
357
+ (MCP Server, Router, 27 Hooks)
358
+ |
359
+ v
360
+ Swarm Coordination
361
+ (Queen, Topology, Consensus)
362
+ |
363
+ v
364
+ 100+ Specialized Agents
365
+ (coder, tester, reviewer, architect, security...)
366
+ |
367
+ v
368
+ Memory & Learning
369
+ (AgentDB, HNSW, SONA, ReasoningBank)
370
+ |
371
+ v
372
+ LLM Providers
373
+ (Claude, GPT, Gemini, Cohere, Ollama)
374
+ ```
375
+
376
+ </details>
377
+
378
+ ---
379
+
380
+ ## Documentation
381
+
382
+ Four docs for four audiences:
383
+
384
+ | Doc | When to read it |
385
+ |-----|-----------------|
386
+ | **[Status](docs/STATUS.md)** | See what currently works — capability counts, test baselines, recent fixes, what's next. The *is-it-ready* doc. |
387
+ | **[User Guide](docs/USERGUIDE.md)** | Daily reference — every command, every config flag, every plugin. The *how-do-I* doc. |
388
+ | **[MetaHarness Guide](docs/metaharness-user-guide.md)** | How to grade your agent setup, scan tool configs for security, detect changes between runs, and eject a project into a standalone agent toolkit. The *audit-my-setup* doc. |
389
+ | **[Benchmarks](https://gist.github.com/ruvnet/298f8c668c8859b369f91734a0e9cbbe)** | v3.8.0 SOTA matrix vs LangGraph / AutoGen / CrewAI on darwin-arm64 + linux-x64. ruflo wins cold start, single turn, RSS by 1.3×–1953×. The *is-it-fast* doc. |
390
+ | **[Verification](verification.md)** | Cryptographically prove your installed bytes match the signed witness — `ruflo verify`. The *trust-but-verify* doc. |
391
+ | **[Team Gateway Checklist](docs/TEAM-GATEWAY-CHECKLIST.md)** | Before-merge gates, dual-mode handoff, memory namespace sharing, and witness manifest entry per merge. The *safer-team-workflows* doc. |
392
+
393
+ Benchmark internals (for reproduction): [`sota-workload-spec.md`](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-workload-spec.md) · [`SOTA-PROGRESS.md`](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/SOTA-PROGRESS.md) · [raw matrix JSON: darwin](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-matrix.json) · [linux](https://github.com/ruvnet/ruflo/blob/perf/sota-comparator-benchmarks/docs/benchmarks/sota-matrix-linux.json)
394
+
395
+ User Guide section index:
396
+
397
+ | Section | Topics |
398
+ |---------|--------|
399
+ | [Quick Start](docs/USERGUIDE.md#quick-start) | Installation, prerequisites, install profiles |
400
+ | [Core Features](docs/USERGUIDE.md#-core-features) | MCP tools, agents, memory, neural learning |
401
+ | [Intelligence & Learning](docs/USERGUIDE.md#-intelligence--learning) | Hooks, workers, SONA, model routing |
402
+ | [Swarm & Coordination](docs/USERGUIDE.md#-swarm--coordination) | Topologies, consensus, hive mind |
403
+ | [Security](docs/USERGUIDE.md#%EF%B8%8F-security) | AIDefence, CVE remediation, validation |
404
+ | [Ecosystem](docs/USERGUIDE.md#-ecosystem--integrations) | RuVector, agentic-flow, Flow Nexus |
405
+ | [Configuration](docs/USERGUIDE.md#%EF%B8%8F-configuration--reference) | Environment variables, config schema |
406
+ | [Plugin Marketplace](https://ruvnet.github.io/ruflo) | Browse and install plugins |
407
+
408
+ ---
409
+
410
+ ## Support
411
+
412
+ | Resource | Link |
413
+ |----------|------|
414
+ | Documentation | [User Guide](docs/USERGUIDE.md) |
415
+ | Issues & Bugs | [GitHub Issues](https://github.com/ruvnet/claude-flow/issues) |
416
+ | Enterprise | [ruv.io](https://ruv.io) |
417
+ | Community | [Agentics Foundation Discord](https://discord.com/invite/dfxmpwkG2D) |
418
+ | Powered by | [Cognitum.one](https://cognitum.one) |
419
+
420
+ ## License
421
+
422
+ MIT - [RuvNet](https://github.com/ruvnet)