@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.
- package/.claude/helpers/helpers.manifest.json +3 -3
- package/.claude/helpers/intelligence.cjs +36 -1
- package/catalog-manifest.json +2 -2
- package/dist/src/commands/init.js +52 -8
- package/dist/src/init/executor.js +29 -0
- package/dist/src/mcp-tools/metaharness-tools.js +1 -1
- package/dist/src/memory/memory-bridge.d.ts +10 -0
- package/dist/src/memory/memory-bridge.js +24 -5
- package/dist/src/memory/memory-initializer.js +11 -8
- package/dist/src/services/daemon-autostart.d.ts +9 -0
- package/dist/src/services/daemon-autostart.js +38 -4
- package/node_modules/@claude-flow/codex/dist/initializer.d.ts +5 -0
- package/node_modules/@claude-flow/codex/dist/initializer.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/initializer.js +45 -7
- package/node_modules/@claude-flow/codex/dist/initializer.js.map +1 -1
- package/package.json +1 -1
- package/plugins/ruflo-metaharness/commands/ruflo-metaharness.md +4 -2
- package/plugins/ruflo-metaharness/scripts/genome.mjs +29 -4
- package/plugins/ruflo-metaharness/scripts/test-mcp-tools.mjs +25 -1
- package/plugins/ruflo-metaharness/skills/harness-genome/SKILL.md +5 -2
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": {
|
|
3
|
-
"version": "3.32.
|
|
3
|
+
"version": "3.32.38",
|
|
4
4
|
"files": {
|
|
5
5
|
"auto-memory-hook.mjs": "68be7e9a9eba7bf9c4e8a230db7bf61a243b965639f8504842799d6c6ca28762",
|
|
6
6
|
"hook-handler.cjs": "dae295fb9ae2626b89899c19a20cc911541af82b52d2eeb9b214d618b96e9a86",
|
|
7
|
-
"intelligence.cjs": "
|
|
7
|
+
"intelligence.cjs": "4e637e065b8f712ce6cf28cccab4244fe222dff2b984690d830bfc40d21fd050",
|
|
8
8
|
"statusline.cjs": "0457fe53f8cd2c56458ff178392536a5868efd1a573665fa43bc01d2d95ca677"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
|
-
"signature": "
|
|
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
|
|
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;
|
package/catalog-manifest.json
CHANGED
|
@@ -492,7 +492,7 @@ function isInitialized(cwd) {
|
|
|
492
492
|
};
|
|
493
493
|
}
|
|
494
494
|
// Init subcommand (default)
|
|
495
|
-
const
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 = [
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
// Add entries
|
|
559
|
-
|
|
560
|
-
const
|
|
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.
|
|
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.
|
|
22
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
21
|
-
|
|
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
|
|