claude-flow 3.38.3 → 3.38.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.
- package/package.json +1 -1
- package/v3/@claude-flow/cli/README.md +4 -20
- package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/init.js +12 -4
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +28 -18
- package/v3/@claude-flow/cli/package.json +1 -1
package/package.json
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
3
|
[](https://cognitum.one/agentic-engineering)
|
|
4
|
-
[](https://agentics.org/siliconvalley/?UTM=GH-RuFlo-SV)
|
|
5
|
-
|
|
6
4
|
|
|
7
5
|
<!-- Try Ruflo — the 4 badges first-time visitors actually act on -->
|
|
8
6
|
[](https://flo.ruv.io/)
|
|
@@ -58,7 +56,7 @@ There are **two different install paths** with very different surface areas. Pic
|
|
|
58
56
|
|---|---|---|
|
|
59
57
|
| 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 |
|
|
60
58
|
| Files in your workspace | **Zero** | `.claude/`, `.claude-flow/`, `CLAUDE.md`, helpers, settings |
|
|
61
|
-
| MCP server registered |
|
|
59
|
+
| MCP server registered | Only if `ruflo-core` is installed (it ships its own `.mcp.json`) — most other plugins don't | Yes |
|
|
62
60
|
| Hooks installed | No | Yes |
|
|
63
61
|
| Best for | Try a single plugin's commands without committing to the full install | Production use — everything works as documented |
|
|
64
62
|
|
|
@@ -75,7 +73,7 @@ There are **two different install paths** with very different surface areas. Pic
|
|
|
75
73
|
/plugin install ruflo-neural-trader@ruflo
|
|
76
74
|
```
|
|
77
75
|
|
|
78
|
-
This adds slash commands and agent definitions
|
|
76
|
+
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.
|
|
79
77
|
|
|
80
78
|
<details>
|
|
81
79
|
<summary><strong>🔌 All 35 plugins</strong></summary>
|
|
@@ -189,24 +187,10 @@ npm install -g ruflo@latest
|
|
|
189
187
|
### MCP Server
|
|
190
188
|
|
|
191
189
|
```bash
|
|
192
|
-
# Add Ruflo as an MCP server in Claude Code
|
|
193
|
-
claude mcp add
|
|
190
|
+
# Add Ruflo as an MCP server in Claude Code
|
|
191
|
+
claude mcp add claude-flow -- npx ruflo@latest mcp start
|
|
194
192
|
```
|
|
195
193
|
|
|
196
|
-
Small-context backends can advertise only the tool categories they need:
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
CLAUDE_FLOW_MCP_TOOLS=memory,swarm,agent,hooks \
|
|
200
|
-
npx ruflo@latest mcp start
|
|
201
|
-
|
|
202
|
-
# Optional: lets `ruflo doctor -c mcp-overhead` compare the live schema
|
|
203
|
-
# estimate with the backend's real context limit.
|
|
204
|
-
CLAUDE_FLOW_CONTEXT_WINDOW_TOKENS=32000 ruflo doctor -c mcp-overhead
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
The default remains `all` for backwards compatibility. Selectors accept
|
|
208
|
-
categories, namespace prefixes, or exact tool names.
|
|
209
|
-
|
|
210
194
|
---
|
|
211
195
|
|
|
212
196
|
## What You Get
|
|
@@ -496,8 +496,16 @@ const initClaudeAction = async (ctx) => {
|
|
|
496
496
|
const force = ctx.flags.force;
|
|
497
497
|
const minimal = ctx.flags.minimal;
|
|
498
498
|
const full = ctx.flags.full;
|
|
499
|
-
|
|
500
|
-
|
|
499
|
+
// #2952 — every long-flag write path in the parser goes through
|
|
500
|
+
// normalizeKey() (parser.ts:399-402), which converts kebab-case to
|
|
501
|
+
// camelCase before storing. `--skip-claude`/`--only-claude`/
|
|
502
|
+
// `--all-agents`/`--cloud-mcp` land as `flags.skipClaude`/`flags.onlyClaude`/
|
|
503
|
+
// `flags.allAgents`/`flags.cloudMcp` — there is no code path that ever
|
|
504
|
+
// stores the literal kebab-case key. Reading `ctx.flags['skip-claude']`
|
|
505
|
+
// etc. was always undefined, so all four flags were silent no-ops. Same
|
|
506
|
+
// bug class as #2098A below, just never applied to these siblings.
|
|
507
|
+
const skipClaude = ctx.flags.skipClaude;
|
|
508
|
+
const onlyClaude = ctx.flags.onlyClaude;
|
|
501
509
|
// #2098A — the parser handles `--no-foo` by stripping the prefix and
|
|
502
510
|
// storing `flags.foo = false` (parser.ts:291-294), not by storing
|
|
503
511
|
// `flags['no-foo'] = true`. So `--no-global` lands as
|
|
@@ -505,8 +513,8 @@ const initClaudeAction = async (ctx) => {
|
|
|
505
513
|
// was always undefined and silently no-op'd — every user with the flag
|
|
506
514
|
// set still got `~/.claude/CLAUDE.md` modified. Read the real key.
|
|
507
515
|
const noGlobal = ctx.flags['no-global'] === true || ctx.flags['global'] === false;
|
|
508
|
-
const allAgents = ctx.flags
|
|
509
|
-
const cloudMcp = ctx.flags
|
|
516
|
+
const allAgents = ctx.flags.allAgents;
|
|
517
|
+
const cloudMcp = ctx.flags.cloudMcp;
|
|
510
518
|
const cwd = ctx.cwd;
|
|
511
519
|
// Check if already initialized
|
|
512
520
|
const initialized = isInitialized(cwd);
|
|
@@ -1377,26 +1377,36 @@ export const hooksPostTask = {
|
|
|
1377
1377
|
catch {
|
|
1378
1378
|
// Intelligence module not available — non-fatal
|
|
1379
1379
|
}
|
|
1380
|
-
// ADR-130 Phase 3:
|
|
1380
|
+
// ADR-130 Phase 3: "reinforced-by" edge on task success.
|
|
1381
1381
|
// Writes: context node → task pattern node (relation: "reinforced-by")
|
|
1382
|
+
//
|
|
1383
|
+
// #2961 — this used to be fire-and-forget (no `await` on the IIFE). That
|
|
1384
|
+
// was invisible from the long-running MCP server, where the process
|
|
1385
|
+
// stays alive long enough for the detached write to finish in the
|
|
1386
|
+
// background. But `hooks post-task` (CLI) is the exact same handler
|
|
1387
|
+
// invoked from a one-shot process that calls `process.exit(0)`
|
|
1388
|
+
// immediately after this action resolves (bin/cli.js, #1552) — the
|
|
1389
|
+
// still-pending dynamic `import(...)` + `insertGraphEdge()` call was
|
|
1390
|
+
// killed before its first tick, so the CLI form dropped this edge on
|
|
1391
|
+
// every single success, not intermittently. Await it — this is a
|
|
1392
|
+
// single fast DB write, not worth losing correctness on one call site
|
|
1393
|
+
// to save latency on the other.
|
|
1382
1394
|
if (success) {
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
catch { /* non-fatal */ }
|
|
1399
|
-
})().catch(() => { });
|
|
1395
|
+
try {
|
|
1396
|
+
const { insertGraphEdge } = await import('../memory/graph-edge-writer.js');
|
|
1397
|
+
const sessionCtxId = `task:${taskId}`;
|
|
1398
|
+
const patternId = `pattern:${taskId}`;
|
|
1399
|
+
await insertGraphEdge({
|
|
1400
|
+
sourceId: sessionCtxId,
|
|
1401
|
+
targetId: patternId,
|
|
1402
|
+
relation: 'reinforced-by',
|
|
1403
|
+
weight: quality,
|
|
1404
|
+
confidence: quality,
|
|
1405
|
+
lastReinforced: new Date().toISOString(),
|
|
1406
|
+
metadata: { success, agent, taskId },
|
|
1407
|
+
});
|
|
1408
|
+
}
|
|
1409
|
+
catch { /* non-fatal */ }
|
|
1400
1410
|
}
|
|
1401
1411
|
// Persist routing outcome for runtime learning (file-based, always reliable)
|
|
1402
1412
|
const taskText = params.task || '';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/cli",
|
|
3
|
-
"version": "3.38.
|
|
3
|
+
"version": "3.38.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
|
|
6
6
|
"main": "dist/src/index.js",
|