@claude-flow/cli 3.32.36 → 3.32.38

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,13 +1,13 @@
1
1
  {
2
2
  "manifest": {
3
- "version": "3.32.36",
3
+ "version": "3.32.38",
4
4
  "files": {
5
5
  "auto-memory-hook.mjs": "68be7e9a9eba7bf9c4e8a230db7bf61a243b965639f8504842799d6c6ca28762",
6
6
  "hook-handler.cjs": "dae295fb9ae2626b89899c19a20cc911541af82b52d2eeb9b214d618b96e9a86",
7
- "intelligence.cjs": "792c24a12704267e6b45ed0794e128131fb16e4174a43e65a5afe757bc0230af",
7
+ "intelligence.cjs": "4e637e065b8f712ce6cf28cccab4244fe222dff2b984690d830bfc40d21fd050",
8
8
  "statusline.cjs": "0457fe53f8cd2c56458ff178392536a5868efd1a573665fa43bc01d2d95ca677"
9
9
  }
10
10
  },
11
- "signature": "qGxpst4ul6cizCQw1hjdJ5sBXj7uN7Fm1Dux2sKC7BwcPA66Nr9RzI8c8BJuKEUyPgaDtSvaY/gZTX2hWNqXBg==",
11
+ "signature": "TIaAcMVhpk+ezMRAJCOA7NQlvIznNqICVsJOiEDnW0Xqpxg1Zr3/RM2VlHaMqN7kaOiDf8sdus0R7b+mwFjUAg==",
12
12
  "algorithm": "ed25519"
13
13
  }
@@ -46,6 +46,11 @@ const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
46
46
  // ── Safety limits (fixes #1530, #1531) ─────────────────────────────────────
47
47
  const MAX_DATA_FILE_SIZE = 10 * 1024 * 1024; // 10 MB — skip files larger than this
48
48
  const MAX_GRAPH_NODES = 5000; // skip PageRank if graph exceeds this
49
+ // #2628: similarity edges used to compare every pair in every category.
50
+ // Keep exact graph behavior for normal stores, but never let a session-end
51
+ // hook enter an unbounded O(n²) pass. Temporal edges remain linear and are
52
+ // always retained when the similarity pass is skipped.
53
+ const MAX_SIMILARITY_COMPARISONS = 100000;
49
54
 
50
55
  // ── Stop words for trigram matching ──────────────────────────────────────────
51
56
 
@@ -169,7 +174,14 @@ function deduplicateByContent(entries) {
169
174
  const seen = new Map();
170
175
  for (const entry of entries) {
171
176
  const content = entry.content || entry.summary || entry.value || '';
172
- const fp = fingerprintContent(typeof content === 'string' ? content : JSON.stringify(content));
177
+ const normalizedContent = typeof content === 'string' ? content : JSON.stringify(content);
178
+ // Content-less records can still represent distinct graph nodes. There is
179
+ // no content identity to prove they are duplicates, so preserve them.
180
+ if (!normalizedContent || !normalizedContent.trim()) {
181
+ seen.set(`__no_content_${seen.size}`, entry);
182
+ continue;
183
+ }
184
+ const fp = fingerprintContent(normalizedContent);
173
185
  if (!seen.has(fp)) {
174
186
  seen.set(fp, entry);
175
187
  } else {
@@ -292,10 +304,28 @@ function buildEdges(entries) {
292
304
  }
293
305
  }
294
306
 
307
+ let similarityComparisons = 0;
308
+ for (const group of Object.values(byCategory)) {
309
+ similarityComparisons += (group.length * (group.length - 1)) / 2;
310
+ if (similarityComparisons > MAX_SIMILARITY_COMPARISONS) break;
311
+ }
312
+
295
313
  // Similarity edges within categories (Jaccard > 0.3).
296
314
  // ADR-095 G6 perf: hoist the trigram computation outside the inner
297
315
  // loop. Previously we re-tokenized + re-trigrammed group[j] for every
298
316
  // i — O(n²) extra work for nothing. Now compute once per entry.
317
+ // #2628: the old unconditional nested loop blocked session exit for tens
318
+ // of seconds on accumulated stores. Skip only the quadratic similarity
319
+ // layer when its deterministic pair count exceeds the budget; the linear
320
+ // temporal graph above is still complete.
321
+ if (similarityComparisons > MAX_SIMILARITY_COMPARISONS) {
322
+ process.stderr.write(
323
+ `[INTELLIGENCE] WARN: Similarity graph needs >${MAX_SIMILARITY_COMPARISONS} comparisons; ` +
324
+ 'skipping similarity edges (temporal edges retained)\n'
325
+ );
326
+ return edges;
327
+ }
328
+
299
329
  for (const cat of Object.keys(byCategory)) {
300
330
  const group = byCategory[cat];
301
331
  if (group.length < 2) continue;
@@ -688,6 +718,11 @@ function consolidate() {
688
718
  // Deduplicate store entries by ID before processing (fixes #1518)
689
719
  const preDedupCount = store.length;
690
720
  store = deduplicateById(store);
721
+ // #2628: imports assign fresh IDs to repeated MEMORY.md content, so ID
722
+ // dedup alone never shrinks the store. Consolidate is the session-end path:
723
+ // content-dedup here before edge construction and persist the compacted
724
+ // store so subsequent sessions stay bounded.
725
+ store = deduplicateByContent(store);
691
726
 
692
727
  // 1. Process pending insights
693
728
  let newEntries = 0;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 4,
4
- "generatedAt": "2026-07-29T19:08:51.000Z",
5
- "gitSha": "67ff9898",
4
+ "generatedAt": "2026-07-29T19:50:37.000Z",
5
+ "gitSha": "ad8d071d",
6
6
  "catalog": {
7
7
  "agents": 164,
8
8
  "tools": 397,
@@ -492,7 +492,7 @@ function isInitialized(cwd) {
492
492
  };
493
493
  }
494
494
  // Init subcommand (default)
495
- const initAction = async (ctx) => {
495
+ 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;
@@ -507,13 +507,7 @@ const initAction = async (ctx) => {
507
507
  const noGlobal = ctx.flags['no-global'] === true || ctx.flags['global'] === false;
508
508
  const allAgents = ctx.flags['all-agents'];
509
509
  const cloudMcp = ctx.flags['cloud-mcp'];
510
- const codexMode = ctx.flags.codex;
511
- const dualMode = ctx.flags.dual;
512
510
  const cwd = ctx.cwd;
513
- // If codex mode, use the Codex initializer
514
- if (codexMode || dualMode) {
515
- return initCodexAction(ctx, { codexMode, dualMode, force, minimal, full });
516
- }
517
511
  // Check if already initialized
518
512
  const initialized = isInitialized(cwd);
519
513
  const hasExisting = initialized.claude || initialized.claudeFlow;
@@ -786,6 +780,56 @@ const initAction = async (ctx) => {
786
780
  return { success: false, exitCode: 1 };
787
781
  }
788
782
  };
783
+ /**
784
+ * Route platform initialization. Dual mode deliberately runs both native
785
+ * initializers: Claude Code first, then Codex without its compatibility
786
+ * CLAUDE.md stub so the full native Claude scaffold remains authoritative.
787
+ */
788
+ const initAction = async (ctx) => {
789
+ const force = ctx.flags.force;
790
+ const minimal = ctx.flags.minimal;
791
+ const full = ctx.flags.full;
792
+ const codexMode = ctx.flags.codex;
793
+ const dualMode = ctx.flags.dual;
794
+ if (codexMode && !dualMode) {
795
+ return initCodexAction(ctx, { codexMode, dualMode: false, force, minimal, full });
796
+ }
797
+ if (!dualMode) {
798
+ return initClaudeAction(ctx);
799
+ }
800
+ const claudeContext = {
801
+ ...ctx,
802
+ flags: {
803
+ ...ctx.flags,
804
+ codex: false,
805
+ dual: false,
806
+ // The explicit Codex pass below owns Codex setup.
807
+ 'no-codex-detect': true,
808
+ },
809
+ };
810
+ const claudeResult = await initClaudeAction(claudeContext);
811
+ if (!claudeResult.success)
812
+ return claudeResult;
813
+ const codexResult = await initCodexAction(ctx, {
814
+ codexMode: true,
815
+ // Preserve the full CLAUDE.md and .claude/ scaffold just generated.
816
+ dualMode: false,
817
+ force,
818
+ minimal,
819
+ full,
820
+ });
821
+ if (!codexResult.success) {
822
+ return {
823
+ ...codexResult,
824
+ message: 'Claude Code initialized, but Codex initialization failed',
825
+ data: { claude: claudeResult.data, codex: codexResult.data },
826
+ };
827
+ }
828
+ return {
829
+ success: true,
830
+ data: { claude: claudeResult.data, codex: codexResult.data },
831
+ };
832
+ };
789
833
  // Wizard subcommand for interactive setup
790
834
  const wizardCommand = {
791
835
  name: 'wizard',
@@ -1453,7 +1497,7 @@ export const initCommand = {
1453
1497
  { command: 'claude-flow init upgrade --settings', description: 'Update helpers and merge new settings (Agent Teams)' },
1454
1498
  { command: 'claude-flow init upgrade --verbose', description: 'Show detailed upgrade info' },
1455
1499
  { command: 'claude-flow init --codex', description: 'Initialize for OpenAI Codex (AGENTS.md)' },
1456
- { command: 'claude-flow init --codex --full', description: 'Codex init with all 137+ skills' },
1500
+ { command: 'claude-flow init --codex --full', description: 'Codex init with all canonical packaged skills' },
1457
1501
  { command: 'claude-flow init --dual', description: 'Initialize for both Claude Code and Codex' },
1458
1502
  { command: 'claude-flow init --no-codex-detect', description: 'Skip auto-configuring OpenAI Codex even if it is installed' },
1459
1503
  { command: 'claude-flow init --no-skills-sh', description: 'Skip the post-init skills.sh registration' },
@@ -1379,6 +1379,7 @@ async function writeStatusline(targetDir, options, result) {
1379
1379
  * Write runtime configuration (.claude-flow/)
1380
1380
  */
1381
1381
  async function writeRuntimeConfig(targetDir, options, result) {
1382
+ updateRootGitignore(targetDir, result);
1382
1383
  const configPath = path.join(targetDir, '.claude-flow', 'config.yaml');
1383
1384
  if (fs.existsSync(configPath) && !options.force) {
1384
1385
  result.skipped.push('.claude-flow/config.yaml');
@@ -1447,6 +1448,34 @@ neural/
1447
1448
  // Write CAPABILITIES.md with full system overview
1448
1449
  await writeCapabilitiesDoc(targetDir, options, result);
1449
1450
  }
1451
+ /**
1452
+ * Protect project-local secrets and runtime state for Claude-only installs.
1453
+ * Append missing entries without replacing the project's existing rules.
1454
+ */
1455
+ function updateRootGitignore(targetDir, result) {
1456
+ const gitignorePath = path.join(targetDir, '.gitignore');
1457
+ const entries = [
1458
+ '# Ruflo local secrets and runtime data',
1459
+ '.env',
1460
+ '.env.local',
1461
+ '.env.*.local',
1462
+ '.claude-flow/data/',
1463
+ '.claude-flow/logs/',
1464
+ '.claude-flow/sessions/',
1465
+ ];
1466
+ const existing = fs.existsSync(gitignorePath)
1467
+ ? fs.readFileSync(gitignorePath, 'utf8')
1468
+ : '';
1469
+ const existingLines = new Set(existing.split(/\r?\n/));
1470
+ const missing = entries.filter((entry) => !existingLines.has(entry));
1471
+ if (missing.length === 0)
1472
+ return;
1473
+ const separator = existing.length === 0
1474
+ ? ''
1475
+ : existing.endsWith('\n') ? '\n' : '\n\n';
1476
+ fs.writeFileSync(gitignorePath, `${existing}${separator}${missing.join('\n')}\n`, 'utf8');
1477
+ result.created.files.push('.gitignore (updated)');
1478
+ }
1450
1479
  /**
1451
1480
  * Write initial metrics files for statusline
1452
1481
  * Creates baseline data so statusline shows meaningful state instead of all zeros
@@ -199,7 +199,7 @@ export const metaharnessTools = [
199
199
  },
200
200
  {
201
201
  name: 'metaharness_genome',
202
- description: 'ADR-150 — 7-section categorical readiness report from `metaharness genome <path>` (repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness). Use when you need the categorical view (vs numeric score). Pair with metaharness_score for the full readiness picture — score-alone is wrong because two harnesses with the same harnessFit can have very different agent_topology and mcp_surface. ' + MCP_SUCCESS_SEMANTIC,
202
+ description: 'ADR-150 — 7-section categorical readiness report from `metaharness genome <path>` (repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness). Upstream needs-work/blocked exit statuses are valid verdicts and return successfully as data.verdict + data.verdictExitCode; only a missing or malformed report is an error. Use when you need the categorical view (vs numeric score). Pair with metaharness_score for the full readiness picture — score-alone is wrong because two harnesses with the same harnessFit can have very different agent_topology and mcp_surface. ' + MCP_SUCCESS_SEMANTIC,
203
203
  category: 'metaharness',
204
204
  inputSchema: {
205
205
  type: 'object',
@@ -275,6 +275,16 @@ export declare function getControllerRegistry(dbPath?: string): Promise<any | nu
275
275
  * operator learns the cause instead of only the symptom.
276
276
  */
277
277
  export declare function getBridgeFailureReason(): string | null;
278
+ /**
279
+ * Install a pre-initialized registry for deterministic bridge tests.
280
+ *
281
+ * The CLI test runner intentionally externalizes the optional
282
+ * `@claude-flow/memory` package so an unbuilt workspace can still exercise
283
+ * fallback paths. That also makes module-level mocking of ControllerRegistry
284
+ * environment-dependent. This narrow seam keeps native SQL regression tests
285
+ * independent of package build order without changing production startup.
286
+ */
287
+ export declare function __setMemoryBridgeRegistryForTests(registry: any | null): void;
278
288
  /**
279
289
  * Shutdown the bridge and release resources.
280
290
  *
@@ -23,6 +23,10 @@ import { createRequire } from 'node:module';
23
23
  let registryPromise = null;
24
24
  let registryInstance = null;
25
25
  let bridgeAvailable = null;
26
+ // #2652/#2120: rows created before the status column existed receive NULL
27
+ // during migration. They are live rows, not tombstones. Every user-facing
28
+ // read/delete path must agree with list() about their visibility.
29
+ const ACTIVE_MEMORY_ROW_SQL = `(status = 'active' OR status IS NULL)`;
26
30
  /**
27
31
  * Why the bridge is unavailable, when it is.
28
32
  *
@@ -994,7 +998,7 @@ export async function bridgeSearchEntries(options) {
994
998
  const stmt = ctx.db.prepare(`
995
999
  SELECT id, key, namespace, content, embedding, provenance_type
996
1000
  FROM memory_entries
997
- WHERE status = 'active' ${whereExtra}
1001
+ WHERE ${ACTIVE_MEMORY_ROW_SQL} ${whereExtra}
998
1002
  LIMIT 1000
999
1003
  `);
1000
1004
  rows = filterParams.length > 0 ? stmt.all(...filterParams) : stmt.all();
@@ -1114,7 +1118,7 @@ export async function bridgeListEntries(options) {
1114
1118
  // the `status = 'active'` filter matched zero. Treat NULL as
1115
1119
  // "legacy-active" — the safe default for any entry that predates the
1116
1120
  // status column.
1117
- const statusFilter = `(status = 'active' OR status IS NULL)`;
1121
+ const statusFilter = ACTIVE_MEMORY_ROW_SQL;
1118
1122
  // Count
1119
1123
  let total = 0;
1120
1124
  try {
@@ -1206,7 +1210,7 @@ export async function bridgeGetEntry(options) {
1206
1210
  const stmt = ctx.db.prepare(`
1207
1211
  SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at, tags
1208
1212
  FROM memory_entries
1209
- WHERE status = 'active' AND key = ? AND namespace = ?
1213
+ WHERE ${ACTIVE_MEMORY_ROW_SQL} AND key = ? AND namespace = ?
1210
1214
  LIMIT 1
1211
1215
  `);
1212
1216
  row = stmt.get(key, namespace);
@@ -1274,7 +1278,7 @@ export async function bridgeDeleteEntry(options) {
1274
1278
  const result = ctx.db.prepare(`
1275
1279
  UPDATE memory_entries
1276
1280
  SET status = 'deleted', updated_at = ?
1277
- WHERE key = ? AND namespace = ? AND status = 'active'
1281
+ WHERE key = ? AND namespace = ? AND ${ACTIVE_MEMORY_ROW_SQL}
1278
1282
  `).run(Date.now(), key, namespace);
1279
1283
  changes = result?.changes ?? 0;
1280
1284
  }
@@ -1306,7 +1310,7 @@ export async function bridgeDeleteEntry(options) {
1306
1310
  }
1307
1311
  let remaining = 0;
1308
1312
  try {
1309
- const row = ctx.db.prepare(`SELECT COUNT(*) as cnt FROM memory_entries WHERE status = 'active'`).get();
1313
+ const row = ctx.db.prepare(`SELECT COUNT(*) as cnt FROM memory_entries WHERE ${ACTIVE_MEMORY_ROW_SQL}`).get();
1310
1314
  remaining = row?.cnt ?? 0;
1311
1315
  }
1312
1316
  catch {
@@ -1659,6 +1663,21 @@ export async function getControllerRegistry(dbPath) {
1659
1663
  export function getBridgeFailureReason() {
1660
1664
  return bridgeFailureReason;
1661
1665
  }
1666
+ /**
1667
+ * Install a pre-initialized registry for deterministic bridge tests.
1668
+ *
1669
+ * The CLI test runner intentionally externalizes the optional
1670
+ * `@claude-flow/memory` package so an unbuilt workspace can still exercise
1671
+ * fallback paths. That also makes module-level mocking of ControllerRegistry
1672
+ * environment-dependent. This narrow seam keeps native SQL regression tests
1673
+ * independent of package build order without changing production startup.
1674
+ */
1675
+ export function __setMemoryBridgeRegistryForTests(registry) {
1676
+ registryInstance = registry;
1677
+ registryPromise = registry ? Promise.resolve(registry) : null;
1678
+ bridgeAvailable = registry ? true : null;
1679
+ bridgeFailureReason = null;
1680
+ }
1662
1681
  /**
1663
1682
  * Shutdown the bridge and release resources.
1664
1683
  *
@@ -153,6 +153,10 @@ export function resolveDbPath(cliFlag) {
153
153
  }
154
154
  return path.join(getMemoryRoot(), 'memory.db');
155
155
  }
156
+ // #2652/#2120: legacy rows with NULL status predate soft-delete semantics and
157
+ // are active. Keep fallback retrieve/delete aligned with list and the native
158
+ // bridge instead of making a row visible to one command but not another.
159
+ const ACTIVE_MEMORY_ROW_SQL = `(status = 'active' OR status IS NULL)`;
156
160
  // ADR-053: Lazy import of AgentDB v3 bridge
157
161
  let _bridge;
158
162
  async function getBridge() {
@@ -1608,8 +1612,7 @@ export async function repairVectorIndexes(dbPath, opts = {}) {
1608
1612
  */
1609
1613
  export async function initializeMemoryDatabase(options) {
1610
1614
  const { backend = 'hybrid', dbPath: customPath, force = false, verbose = false, migrate = true } = options;
1611
- const swarmDir = getMemoryRoot();
1612
- const dbPath = customPath || path.join(swarmDir, 'memory.db');
1615
+ const dbPath = resolveDbPath(customPath);
1613
1616
  const dbDir = path.dirname(dbPath);
1614
1617
  try {
1615
1618
  // Create directory if needed
@@ -2857,7 +2860,7 @@ export async function listEntries(options) {
2857
2860
  // that predate the status column may have NULL after migration.
2858
2861
  // See memory-bridge.ts:bridgeListEntries for full context.
2859
2862
  // Get total count
2860
- const whereClauses = [`(status = 'active' OR status IS NULL)`];
2863
+ const whereClauses = [ACTIVE_MEMORY_ROW_SQL];
2861
2864
  const whereParams = [];
2862
2865
  if (namespace) {
2863
2866
  whereClauses.push('namespace = ?');
@@ -2967,7 +2970,7 @@ export async function getEntry(options) {
2967
2970
  const getStmt = db.prepare(`
2968
2971
  SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at, tags
2969
2972
  FROM memory_entries
2970
- WHERE status = 'active'
2973
+ WHERE ${ACTIVE_MEMORY_ROW_SQL}
2971
2974
  AND key = ?
2972
2975
  AND namespace = ?
2973
2976
  LIMIT 1
@@ -3081,7 +3084,7 @@ export async function deleteEntry(options) {
3081
3084
  // Check if entry exists first
3082
3085
  const checkStmt = db.prepare(`
3083
3086
  SELECT id FROM memory_entries
3084
- WHERE status = 'active'
3087
+ WHERE ${ACTIVE_MEMORY_ROW_SQL}
3085
3088
  AND key = ?
3086
3089
  AND namespace = ?
3087
3090
  LIMIT 1
@@ -3095,7 +3098,7 @@ export async function deleteEntry(options) {
3095
3098
  const checkResult = checkRows.length > 0 ? [{ values: checkRows }] : [];
3096
3099
  if (!checkResult[0]?.values?.[0]) {
3097
3100
  // Get remaining count before closing
3098
- const countResult = db.exec(`SELECT COUNT(*) FROM memory_entries WHERE status = 'active'`);
3101
+ const countResult = db.exec(`SELECT COUNT(*) FROM memory_entries WHERE ${ACTIVE_MEMORY_ROW_SQL}`);
3099
3102
  const remainingEntries = countResult[0]?.values?.[0]?.[0] || 0;
3100
3103
  db.close();
3101
3104
  return {
@@ -3116,10 +3119,10 @@ export async function deleteEntry(options) {
3116
3119
  updated_at = strftime('%s', 'now') * 1000
3117
3120
  WHERE key = ?
3118
3121
  AND namespace = ?
3119
- AND status = 'active'
3122
+ AND ${ACTIVE_MEMORY_ROW_SQL}
3120
3123
  `, [key, namespace]);
3121
3124
  // Get remaining count
3122
- const countResult = db.exec(`SELECT COUNT(*) FROM memory_entries WHERE status = 'active'`);
3125
+ const countResult = db.exec(`SELECT COUNT(*) FROM memory_entries WHERE ${ACTIVE_MEMORY_ROW_SQL}`);
3123
3126
  const remainingEntries = countResult[0]?.values?.[0]?.[0] || 0;
3124
3127
  // Save updated database
3125
3128
  const data = db.export();
@@ -1,5 +1,14 @@
1
1
  /** True if a live daemon already holds the project's pidfile. */
2
2
  export declare function isDaemonAlive(projectRoot: string): boolean;
3
+ /**
4
+ * Return true only when the directory contains a durable Ruflo project marker.
5
+ *
6
+ * A bare `.claude/` is owned by Claude Code, and a bare `.claude-flow/` is not
7
+ * sufficient either: startup-time policy/champion migration can create it
8
+ * before this function runs. Treating that mutation as authorization caused a
9
+ * read-only command in any Claude project to spawn a detached daemon (#2852).
10
+ */
11
+ export declare function isRufloProject(projectRoot: string): boolean;
3
12
  export interface EnsureResult {
4
13
  started: boolean;
5
14
  reason?: string;
@@ -68,6 +68,43 @@ function autostartDisabled(projectRoot) {
68
68
  return true;
69
69
  return autostartDisabledByProjectConfig(projectRoot);
70
70
  }
71
+ /**
72
+ * Return true only when the directory contains a durable Ruflo project marker.
73
+ *
74
+ * A bare `.claude/` is owned by Claude Code, and a bare `.claude-flow/` is not
75
+ * sufficient either: startup-time policy/champion migration can create it
76
+ * before this function runs. Treating that mutation as authorization caused a
77
+ * read-only command in any Claude project to spawn a detached daemon (#2852).
78
+ */
79
+ export function isRufloProject(projectRoot) {
80
+ const root = path.resolve(projectRoot);
81
+ const directMarkers = [
82
+ path.join(root, '.claude-flow', 'config.yaml'),
83
+ path.join(root, '.claude-flow', 'config.yml'),
84
+ path.join(root, '.claude-flow', 'config.json'),
85
+ path.join(root, 'claude-flow.config.json'),
86
+ path.join(root, '.swarm', 'memory.db'),
87
+ ];
88
+ if (directMarkers.some((marker) => fs.existsSync(marker)))
89
+ return true;
90
+ try {
91
+ const settings = JSON.parse(fs.readFileSync(path.join(root, '.claude', 'settings.json'), 'utf-8'));
92
+ if (settings && typeof settings === 'object' && 'claudeFlow' in settings) {
93
+ return true;
94
+ }
95
+ }
96
+ catch { /* absent/malformed/non-Ruflo settings */ }
97
+ try {
98
+ const mcp = JSON.parse(fs.readFileSync(path.join(root, '.mcp.json'), 'utf-8'));
99
+ const servers = mcp?.mcpServers;
100
+ if (servers && typeof servers === 'object'
101
+ && ('ruflo' in servers || 'claude-flow' in servers)) {
102
+ return true;
103
+ }
104
+ }
105
+ catch { /* absent/malformed/non-Ruflo MCP config */ }
106
+ return false;
107
+ }
71
108
  const defaultSpawn = (projectRoot) => {
72
109
  const cliBin = process.argv[1]; // the running bin/cli.js
73
110
  const child = spawn(process.execPath, [cliBin, 'daemon', 'start', '--quiet'], {
@@ -86,10 +123,7 @@ export function ensureDaemonRunning(projectRoot, opts = {}) {
86
123
  try {
87
124
  if (autostartDisabled(projectRoot))
88
125
  return { started: false, reason: 'disabled (RUFLO_DAEMON_AUTOSTART=0 or project config)' };
89
- // `.claude/` belongs to Claude Code and is present in many repositories
90
- // that have never initialized Ruflo. Only Ruflo's own state directory is
91
- // an authorization signal for spawning a detached background process.
92
- if (!fs.existsSync(path.join(projectRoot, '.claude-flow'))) {
126
+ if (!isRufloProject(projectRoot)) {
93
127
  return { started: false, reason: 'not a ruflo project' };
94
128
  }
95
129
  const alive = (opts.isAlive ?? isDaemonAlive)(projectRoot);
@@ -35,6 +35,11 @@ export declare class CodexInitializer {
35
35
  * Create the directory structure
36
36
  */
37
37
  private createDirectoryStructure;
38
+ /**
39
+ * Keep generated configuration truthful: a template-selected skill is
40
+ * enabled only when its canonical SKILL.md is present in the package.
41
+ */
42
+ private retainCanonicalPackagedSkills;
38
43
  /**
39
44
  * Copy bundled skills from the package or source directory
40
45
  * Returns the list of skills copied
@@ -1 +1 @@
1
- {"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../src/initializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAgBpB,wBAAgB,wBAAwB,CAAC,SAAS,SAAkB,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,iBAAiB,CAAc;IAEvC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkLrE;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,oBAAoB;IAMlC;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,wBAAwB;IAgBtC;;;OAGG;YACW,iBAAiB;IAgD/B;;OAEG;YACW,cAAc;IAK5B;;OAEG;YACW,iBAAiB;IAyE/B;;;;;;;;OAQG;YACW,sBAAsB;IAmEpC;;OAEG;YACW,gBAAgB;IAU9B;;OAEG;YACW,kBAAkB;IAShC;;OAEG;YACW,uBAAuB;IA0BrC;;OAEG;YACW,aAAa;IAqD3B;;OAEG;YACW,eAAe;IAoB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;YACW,yBAAyB;IAuJvC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAsB3D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAY1B"}
1
+ {"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../src/initializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAgBpB,wBAAgB,wBAAwB,CAAC,SAAS,SAAkB,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,iBAAiB,CAAc;IAEvC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiMrE;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,oBAAoB;IAMlC;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,wBAAwB;IAgBtC;;;OAGG;YACW,6BAA6B;IAkB3C;;;OAGG;YACW,iBAAiB;IAgD/B;;OAEG;YACW,cAAc;IAK5B;;OAEG;YACW,iBAAiB;IAyE/B;;;;;;;;OAQG;YACW,sBAAsB;IAmEpC;;OAEG;YACW,gBAAgB;IAU9B;;OAEG;YACW,kBAAkB;IAShC;;OAEG;YACW,uBAAuB;IA0BrC;;OAEG;YACW,aAAa;IAqD3B;;OAEG;YACW,eAAe;IAwB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;YACW,yBAAyB;IAuJvC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAsB3D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAY1B"}
@@ -60,6 +60,18 @@ export class CodexInitializer {
60
60
  if (alreadyInitialized && this.force) {
61
61
  warnings.push('Overwriting existing configuration files');
62
62
  }
63
+ // Template catalog entries are capability names, not proof that a
64
+ // complete SKILL.md payload ships in this package. For default template
65
+ // selections, install only canonical packaged assets. Explicit
66
+ // `options.skills` remain an intentional custom-skill request and keep
67
+ // the existing scaffold behavior.
68
+ if (options.skills === undefined) {
69
+ const omitted = await this.retainCanonicalPackagedSkills();
70
+ if (omitted.length > 0) {
71
+ warnings.push(`Omitted ${omitted.length} catalog skills without canonical packaged assets. ` +
72
+ 'Install additional capabilities from the Ruflo plugin catalog.');
73
+ }
74
+ }
63
75
  // Create directory structure
64
76
  await this.createDirectoryStructure();
65
77
  // Generate AGENTS.md
@@ -241,6 +253,29 @@ export class CodexInitializer {
241
253
  await fs.ensureDir(fullPath);
242
254
  }
243
255
  }
256
+ /**
257
+ * Keep generated configuration truthful: a template-selected skill is
258
+ * enabled only when its canonical SKILL.md is present in the package.
259
+ */
260
+ async retainCanonicalPackagedSkills() {
261
+ const canonical = new Set();
262
+ try {
263
+ const entries = await fs.readdir(this.bundledSkillsPath, { withFileTypes: true });
264
+ for (const entry of entries) {
265
+ if (!entry.isDirectory())
266
+ continue;
267
+ const skillMd = path.join(this.bundledSkillsPath, entry.name, 'SKILL.md');
268
+ if (await fs.pathExists(skillMd))
269
+ canonical.add(entry.name);
270
+ }
271
+ }
272
+ catch {
273
+ // Missing/unreadable package assets must fail safe to omission.
274
+ }
275
+ const omitted = this.skills.filter((skillName) => !canonical.has(skillName));
276
+ this.skills = this.skills.filter((skillName) => canonical.has(skillName));
277
+ return omitted;
278
+ }
244
279
  /**
245
280
  * Copy bundled skills from the package or source directory
246
281
  * Returns the list of skills copied
@@ -551,13 +586,16 @@ web_search = "live"
551
586
  if (await fs.pathExists(gitignorePath)) {
552
587
  content = await fs.readFile(gitignorePath, 'utf-8');
553
588
  }
554
- // Check if Codex entries already exist
555
- if (content.includes('.codex/')) {
556
- return false; // Already has entries
557
- }
558
- // Add entries with proper spacing
559
- const separator = content.length > 0 && !content.endsWith('\n') ? '\n\n' : '\n';
560
- const newContent = content + separator + GITIGNORE_ENTRIES.join('\n') + '\n';
589
+ const existingLines = new Set(content.split(/\r?\n/));
590
+ const missing = GITIGNORE_ENTRIES.filter((entry) => entry.length > 0 && !existingLines.has(entry));
591
+ if (missing.length === 0)
592
+ return false;
593
+ // Add only missing entries so a preceding Claude-native init does not
594
+ // duplicate shared .env and runtime rules.
595
+ const separator = content.length === 0
596
+ ? ''
597
+ : content.endsWith('\n') ? '\n' : '\n\n';
598
+ const newContent = content + separator + missing.join('\n') + '\n';
561
599
  await fs.writeFile(gitignorePath, newContent, 'utf-8');
562
600
  return true;
563
601
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initializer.js","sourceRoot":"","sources":["../src/initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initializer.js","sourceRoot":"","sources":["../src/initializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.32.36",
3
+ "version": "3.32.38",
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",
@@ -18,8 +18,10 @@ ruflo's boot path.
18
18
  **`harness genome [--path .] [--alert-on-risk-above 0.5] [--format table|json]`** -- 7-section repo readiness report (repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness).
19
19
  1. Run `node plugins/ruflo-metaharness/scripts/genome.mjs --path <dir>`
20
20
  2. Pairs with harness-score for full readiness view — score is numeric, genome is categorical
21
- 3. `--alert-on-risk-above N` exits 1 when risk_score > N
22
- 4. Useful for drift detection: snapshot genome over time, diff to spot agent_topology drift
21
+ 3. `needs-work` and `blocked` are valid reports. JSON includes the upstream
22
+ `verdict` and `verdictExitCode`; only an invalid/missing report is fatal.
23
+ 4. `--alert-on-risk-above N` exits 1 when risk_score > N
24
+ 5. Useful for drift detection: snapshot genome over time, diff to spot agent_topology drift
23
25
 
24
26
  **`harness mcp-scan [--path .] [--fail-on low|medium|high] [--format table|json]`** -- Static security scan of `.mcp/servers.json` + `.harness/claims.json`. Reads only; no dispatch.
25
27
  1. Run `node plugins/ruflo-metaharness/scripts/mcp-scan.mjs --path <dir>`
@@ -10,9 +10,9 @@
10
10
  // node scripts/genome.mjs --path <dir> --alert-on-risk-above 0.5 --format json
11
11
  //
12
12
  // EXIT CODES
13
- // 0 OK
13
+ // 0 Valid readiness report (including needs-work / blocked verdicts)
14
14
  // 1 --alert-on-risk-above threshold breached
15
- // 2 config error or genome failure
15
+ // 2 config error or genome failure (no valid readiness report)
16
16
 
17
17
  import { runMetaharness, emitDegradedJsonAndExit } from './_harness.mjs';
18
18
 
@@ -30,14 +30,21 @@ const ARGS = (() => {
30
30
  function main() {
31
31
  const r = runMetaharness(['genome', ARGS.path]);
32
32
  if (r.degraded) { emitDegradedJsonAndExit(r.reason); return; }
33
- if (r.exitCode !== 0 || !r.json) {
33
+ // Upstream uses 0/1/2 as a verdict channel:
34
+ // ready / needs-work / blocked. A non-zero status with a complete genome
35
+ // is therefore data, not a subprocess failure. Normalize valid reports to
36
+ // wrapper exit 0 so CLI and MCP callers can consume them; preserve the
37
+ // upstream verdict explicitly in the payload.
38
+ if (![0, 1, 2].includes(r.exitCode) || !isGenomePayload(r.json)) {
34
39
  console.error(`genome: metaharness exited ${r.exitCode}`);
35
40
  if (r.stderr) console.error(r.stderr.slice(0, 400));
36
41
  process.exit(2);
37
42
  }
38
43
  // iter 112 — generatedAt for consistency with other --format json outputs
39
44
  const payload = { ...r.json, path: ARGS.path, durationMs: r.durationMs,
40
- generatedAt: new Date().toISOString() };
45
+ generatedAt: new Date().toISOString(),
46
+ verdict: verdictFromExitCode(r.exitCode),
47
+ verdictExitCode: r.exitCode };
41
48
 
42
49
  if (ARGS.alertRiskAbove !== null) {
43
50
  if (!isFinite(ARGS.alertRiskAbove)) {
@@ -66,6 +73,7 @@ function main() {
66
73
  console.log(`| mcp_surface | ${payload.mcp_surface ?? '—'} |`);
67
74
  console.log(`| test_confidence | ${payload.test_confidence ?? '—'} |`);
68
75
  console.log(`| publish_readiness | ${payload.publish_readiness ?? '—'} |`);
76
+ console.log(`| verdict | ${payload.verdict} (upstream exit ${payload.verdictExitCode}) |`);
69
77
  console.log(`| **duration** | ${payload.durationMs}ms |`);
70
78
  console.log('');
71
79
  if (payload.alert) {
@@ -77,4 +85,21 @@ function main() {
77
85
  if (payload.alert?.triggered) process.exit(1);
78
86
  }
79
87
 
88
+ function isGenomePayload(value) {
89
+ return !!value
90
+ && typeof value === 'object'
91
+ && typeof value.repo_type === 'string'
92
+ && Array.isArray(value.agent_topology)
93
+ && typeof value.risk_score === 'number'
94
+ && typeof value.mcp_surface === 'string'
95
+ && typeof value.test_confidence === 'number'
96
+ && typeof value.publish_readiness === 'number';
97
+ }
98
+
99
+ function verdictFromExitCode(exitCode) {
100
+ if (exitCode === 0) return 'ready';
101
+ if (exitCode === 1) return 'needs-work';
102
+ return 'blocked';
103
+ }
104
+
80
105
  main();
@@ -233,11 +233,35 @@ async function main() {
233
233
  // ──────────────────────────────────────────────────────────────────
234
234
  console.log('\nPhase 4 — positive-case data shape (iter 43)');
235
235
 
236
- const { writeFileSync, mkdtempSync } = await import('node:fs');
236
+ const { writeFileSync, mkdtempSync, mkdirSync } = await import('node:fs');
237
237
  const { tmpdir } = await import('node:os');
238
238
  const { join: pjoin } = await import('node:path');
239
239
  const tmp = mkdtempSync(pjoin(tmpdir(), 'mcp-positive-'));
240
240
 
241
+ // #2626 — upstream deliberately exits 2 for a valid `blocked` genome.
242
+ // The wrapper must preserve that report as data instead of converting it
243
+ // into an input/system error at the MCP boundary.
244
+ const genomeTool = tools.find((t) => t.name === 'metaharness_genome');
245
+ if (genomeTool) {
246
+ const blockedRepo = pjoin(tmp, 'blocked-repo');
247
+ mkdirSync(blockedRepo);
248
+ const r = await genomeTool.handler({ path: blockedRepo });
249
+ if (!r.degraded) {
250
+ assert(r.success === true,
251
+ 'genome blocked verdict: wrapper succeeds with a valid report (#2626)');
252
+ assert(r.exitCode === 0,
253
+ 'genome blocked verdict: wrapper exitCode === 0 (#2626)');
254
+ assert(r.data?.verdict === 'blocked',
255
+ `genome blocked verdict: data.verdict === blocked (got ${r.data?.verdict})`);
256
+ assert(r.data?.verdictExitCode === 2,
257
+ `genome blocked verdict: preserves upstream exit 2 (got ${r.data?.verdictExitCode})`);
258
+ assert(typeof r.data?.risk_score === 'number' && r.data.risk_score >= 0.7,
259
+ `genome blocked verdict: risk_score >= 0.7 (got ${r.data?.risk_score})`);
260
+ } else {
261
+ console.log(` ⊘ genome: metaharness absent — graceful skip`);
262
+ }
263
+ }
264
+
241
265
  // metaharness_similarity — full positive case (no @metaharness/* needed)
242
266
  const simTool = tools.find((t) => t.name === 'metaharness_similarity');
243
267
  if (simTool) {
@@ -17,8 +17,11 @@ Implementation: [`scripts/genome.mjs`](../../scripts/genome.mjs).
17
17
  1. Shell out to `npx metaharness genome <path> --json` (60s hard timeout).
18
18
  2. Parse the shape: `{ repo_type, agent_topology[], risk_score,
19
19
  mcp_surface, test_confidence, publish_readiness }`.
20
- 3. If `--alert-on-risk-above N`: exit 1 when `risk_score > N`.
21
- 4. Output JSON (default) or markdown.
20
+ 3. Preserve upstream's readiness verdict as `verdict` and
21
+ `verdictExitCode`. Upstream exits 1 for `needs-work` and 2 for `blocked`;
22
+ these are valid reports, so the wrapper returns them successfully.
23
+ 4. If `--alert-on-risk-above N`: exit 1 when `risk_score > N`.
24
+ 5. Output JSON (default) or markdown.
22
25
 
23
26
  ## Phase-0 baseline (ruflo, measured 2026-06-16)
24
27