claude-flow 3.31.0 → 3.31.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow",
3
- "version": "3.31.0",
3
+ "version": "3.31.2",
4
4
  "description": "Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 1,
4
- "generatedAt": "2026-07-15T15:57:54.837Z",
5
- "gitSha": "35ceda35",
4
+ "generatedAt": "2026-07-15T16:44:05.609Z",
5
+ "gitSha": "f00d78ff",
6
6
  "catalog": {
7
7
  "agents": 164,
8
8
  "tools": 387,
@@ -125,10 +125,13 @@ async function maybeAutoDetectCodex(ctx, options) {
125
125
  }
126
126
  }
127
127
  // Cross-agent skill registration via skills.sh. Runs `npx --yes skills add
128
- // ruvnet/ruflo` so ruflo's 134 skills reach whatever agent the project uses
129
- // (Claude Code, Cursor, Copilot, Gemini, Cline, …). Best-effort never fails
130
- // init. Opt-out: --no-skills-sh flag OR RUFLO_NO_SKILLS_SH=1. Skipped under
131
- // --skip-claude and scripted `--format json` output.
128
+ // ruvnet/ruflo --skill ruflo --yes` so the *single* canonical ruflo skill
129
+ // (SKILL.md at the ruvnet/ruflo repo root describes the platform + entry
130
+ // points) reaches whatever agent the project uses (Claude Code, Cursor,
131
+ // Copilot, Gemini, Cline, …). Users who want ALL 267 plugin-specific skills
132
+ // can run `npx skills add ruvnet/ruflo --all` themselves. Best-effort — never
133
+ // fails init. Opt-out: --no-skills-sh flag OR RUFLO_NO_SKILLS_SH=1. Skipped
134
+ // under --skip-claude and scripted `--format json` output.
132
135
  //
133
136
  // windowsHide silences the console flash the npx child would otherwise produce
134
137
  // (anthropics/claude-code#14828 spawn hazard applies to hook-fired spawns,
@@ -141,21 +144,37 @@ async function maybeInstallSkillsSh(ctx) {
141
144
  return;
142
145
  if (/^(1|true|on|yes)$/i.test(String(process.env.RUFLO_NO_SKILLS_SH || '')))
143
146
  return;
147
+ // Idempotency gate: if this project has already registered ruflo with
148
+ // skills.sh, don't re-clone the repo + re-fire a fresh install telemetry
149
+ // event on every `ruflo init --force` / `init upgrade` / etc. Each install
150
+ // pings skills.sh's leaderboard AND clones the whole ruvnet/ruflo repo
151
+ // (~50MB) — re-running per-init would silently inflate our own metrics
152
+ // (GitHub unique-cloners, skills.sh rank) and waste user bandwidth. This
153
+ // check makes the registration once-per-project, matching the intent.
154
+ const nodePath = await import('path');
155
+ const nodeFs = await import('fs');
156
+ const marker = nodePath.join(ctx.cwd, '.agents', 'skills', 'ruflo');
157
+ if (nodeFs.existsSync(marker)) {
158
+ output.writeln();
159
+ output.writeln(output.dim(' skills.sh registration already present at .agents/skills/ruflo — skipping'));
160
+ return;
161
+ }
144
162
  const npxCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
145
163
  if (!commandExists('npx'))
146
164
  return;
147
165
  output.writeln();
148
- output.printInfo('Registering ruflo with skills.sh (cross-agent skill catalog)…');
166
+ output.printInfo('Registering the core `ruflo` skill with skills.sh (cross-agent catalog)…');
149
167
  const { spawnSync } = await import('child_process');
150
- const result = spawnSync(npxCmd, ['--yes', 'skills', 'add', 'ruvnet/ruflo'], { cwd: ctx.cwd, stdio: 'pipe', timeout: 60_000, windowsHide: true, encoding: 'utf-8' });
168
+ const result = spawnSync(npxCmd, ['--yes', 'skills', 'add', 'ruvnet/ruflo', '--skill', 'ruflo', '--yes'], { cwd: ctx.cwd, stdio: 'pipe', timeout: 60_000, windowsHide: true, encoding: 'utf-8' });
151
169
  if (result.status === 0) {
152
- output.writeln(output.success(' ✓ ruflo skills registered via skills.sh — available to any agent in this project'));
170
+ output.writeln(output.success(' ✓ ruflo registered via skills.sh — the platform skill is available to any agent in this project'));
171
+ output.writeln(output.dim(' Want all 267 plugin skills? npx skills add ruvnet/ruflo --all'));
153
172
  output.writeln(output.dim(' Opt out next time: --no-skills-sh or RUFLO_NO_SKILLS_SH=1'));
154
173
  }
155
174
  else {
156
175
  // Common non-fatal reasons: offline, npx cache miss, skills CLI version
157
176
  // mismatch, unknown package. Log a soft note; users can retry manually.
158
- output.writeln(output.dim(' skills.sh registration skipped (network or npx cache) — retry with: npx --yes skills add ruvnet/ruflo'));
177
+ output.writeln(output.dim(' skills.sh registration skipped (network or npx cache) — retry with: npx skills add ruvnet/ruflo --skill ruflo --yes'));
159
178
  }
160
179
  }
161
180
  catch {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.31.0",
3
+ "version": "3.31.2",
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",