@claude-flow/cli 3.30.4 → 3.31.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": {
3
- "version": "3.30.4",
3
+ "version": "3.31.0",
4
4
  "files": {
5
5
  "auto-memory-hook.mjs": "e3e1033b24704992ddef6b31c7fa9dd7fcd9e1af7935dd77ef73402b916b31e6",
6
6
  "hook-handler.cjs": "f87ec28684bfc5fd0a54c46bd2a53a3fb037defe71d0ea4b8a5cb88a2cd87a3f",
@@ -8,6 +8,6 @@
8
8
  "statusline.cjs": "7d7bdee732e1c75b863e409afb86ce0d712f4919245e990d806da6752015bffa"
9
9
  }
10
10
  },
11
- "signature": "Vopp+9wjBokZrUdnIEoVUPE7+rOjro1lV+q+B0AJiBbPGWNVdnqwZmi29VI5m7J6VoXRMiZmOVbpx2E9HhAnBQ==",
11
+ "signature": "he8fvpAPWM3VIVHuEvUyLgEx9/bH4XUpLhte3THo+FpBT66JpAMjBFUCP36eDGhIEHc/mFKsWyeEyNx5EzzDAQ==",
12
12
  "algorithm": "ed25519"
13
13
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 1,
4
- "generatedAt": "2026-07-15T15:16:42.332Z",
5
- "gitSha": "3e9122a3",
4
+ "generatedAt": "2026-07-15T15:57:54.837Z",
5
+ "gitSha": "35ceda35",
6
6
  "catalog": {
7
7
  "agents": 164,
8
8
  "tools": 387,
@@ -124,6 +124,44 @@ async function maybeAutoDetectCodex(ctx, options) {
124
124
  // Codex auto-detect is a bonus, never a requirement — swallow everything.
125
125
  }
126
126
  }
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.
132
+ //
133
+ // windowsHide silences the console flash the npx child would otherwise produce
134
+ // (anthropics/claude-code#14828 spawn hazard applies to hook-fired spawns,
135
+ // but our own subprocess spawns should always set this).
136
+ async function maybeInstallSkillsSh(ctx) {
137
+ try {
138
+ if (ctx.flags['no-skills-sh'] === true)
139
+ return;
140
+ if (ctx.flags.format === 'json')
141
+ return;
142
+ if (/^(1|true|on|yes)$/i.test(String(process.env.RUFLO_NO_SKILLS_SH || '')))
143
+ return;
144
+ const npxCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
145
+ if (!commandExists('npx'))
146
+ return;
147
+ output.writeln();
148
+ output.printInfo('Registering ruflo with skills.sh (cross-agent skill catalog)…');
149
+ 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' });
151
+ if (result.status === 0) {
152
+ output.writeln(output.success(' ✓ ruflo skills registered via skills.sh — available to any agent in this project'));
153
+ output.writeln(output.dim(' Opt out next time: --no-skills-sh or RUFLO_NO_SKILLS_SH=1'));
154
+ }
155
+ else {
156
+ // Common non-fatal reasons: offline, npx cache miss, skills CLI version
157
+ // 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'));
159
+ }
160
+ }
161
+ catch {
162
+ // Skills.sh registration is a bonus, never a requirement — swallow everything.
163
+ }
164
+ }
127
165
  // Codex initialization action
128
166
  async function initCodexAction(ctx, options) {
129
167
  const { force, minimal, full, dualMode } = options;
@@ -405,6 +443,7 @@ const initAction = async (ctx) => {
405
443
  // #2666-adjacent — auto-detect + configure OpenAI Codex CLI if present
406
444
  if (!skipClaude) {
407
445
  await maybeAutoDetectCodex(ctx, { force, minimal, full });
446
+ await maybeInstallSkillsSh(ctx);
408
447
  }
409
448
  // Handle --start-all or --start-daemon
410
449
  const startAll = ctx.flags['start-all'] || ctx.flags.startAll;
@@ -1167,6 +1206,12 @@ export const initCommand = {
1167
1206
  type: 'boolean',
1168
1207
  default: false,
1169
1208
  },
1209
+ {
1210
+ name: 'no-skills-sh',
1211
+ description: 'Skip the post-init `npx skills add ruvnet/ruflo` registration (also honored via RUFLO_NO_SKILLS_SH=1)',
1212
+ type: 'boolean',
1213
+ default: false,
1214
+ },
1170
1215
  {
1171
1216
  name: 'all-agents',
1172
1217
  description: 'Install all agent categories (ADR-128: default is ~24 substrate agents; this restores the full set of ~89)',
@@ -1195,6 +1240,7 @@ export const initCommand = {
1195
1240
  { command: 'claude-flow init --codex --full', description: 'Codex init with all 137+ skills' },
1196
1241
  { command: 'claude-flow init --dual', description: 'Initialize for both Claude Code and Codex' },
1197
1242
  { command: 'claude-flow init --no-codex-detect', description: 'Skip auto-configuring OpenAI Codex even if it is installed' },
1243
+ { command: 'claude-flow init --no-skills-sh', description: 'Skip the post-init skills.sh registration' },
1198
1244
  { command: 'claude-flow init --all-agents', description: 'Install all agent categories (~89 agents; ADR-128 opt-in)' },
1199
1245
  ],
1200
1246
  action: initAction,
@@ -48,14 +48,14 @@ const MODEL_MAP = {
48
48
  'opus-4.7': 'claude-opus-4-7',
49
49
  inherit: DEFAULT_ANTHROPIC_MODEL,
50
50
  };
51
- // #2357 — the adaptive-thinking family (Fable 5, Opus 4.8, Opus 4.7) removed
52
- // the sampling parameters (temperature/top_p/top_k); the Anthropic API
51
+ // #2357 — the adaptive-thinking family (Fable 5, Opus 4.8, Opus 4.7, Sonnet 5)
52
+ // removed the sampling parameters (temperature/top_p/top_k); the Anthropic API
53
53
  // returns 400 "Extra inputs are not permitted" when any is present.
54
54
  // Prefix-match so dated snapshots (e.g. claude-opus-4-8-YYYYMMDD) are
55
55
  // covered. Applies only to the direct Anthropic path — the Ollama/OpenRouter
56
56
  // OpenAI-compat paths accept temperature and are unchanged.
57
57
  export function modelRejectsSamplingParams(model) {
58
- return /^claude-(fable-5|opus-4-8|opus-4-7)/.test(model);
58
+ return /^claude-(fable-5|opus-4-8|opus-4-7|sonnet-5)/.test(model);
59
59
  }
60
60
  /**
61
61
  * Generic Anthropic Messages API call. No agent registry coupling — used
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.30.4",
3
+ "version": "3.31.0",
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",