claude-flow 3.32.35 → 3.32.37
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/hook-handler.cjs +134 -3
- package/.claude/helpers/intelligence.cjs +83 -5
- package/node_modules/@claude-flow/codex/.agents/skills/github-automation/SKILL.md +32 -0
- package/node_modules/@claude-flow/codex/.agents/skills/performance-analysis/SKILL.md +32 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.d.ts +4 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.js +20 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts +4 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +18 -2
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.d.ts +11 -5
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js +84 -849
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js.map +1 -1
- 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 +54 -20
- package/node_modules/@claude-flow/codex/dist/initializer.js.map +1 -1
- package/package.json +1 -1
- package/v3/@claude-flow/cli/bin/cli.js +25 -1
- package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/agent.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +159 -11
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +39 -4
- package/v3/@claude-flow/cli/dist/src/commands/init.js +52 -8
- package/v3/@claude-flow/cli/dist/src/commands/mcp.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/memory-distill.js +1 -0
- package/v3/@claude-flow/cli/dist/src/commands/swarm.js +28 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.js +45 -10
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +15 -4
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +18 -5
- package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +25 -0
- package/v3/@claude-flow/cli/dist/src/mcp-server.js +57 -2
- package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js +51 -10
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +34 -8
- package/v3/@claude-flow/cli/dist/src/mcp-tools/metaharness-tools.js +1 -1
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +29 -6
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +11 -8
- package/v3/@claude-flow/cli/dist/src/services/memory-distillation.d.ts +1 -0
- package/v3/@claude-flow/cli/dist/src/services/memory-distillation.js +81 -5
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +1 -0
- package/v3/@claude-flow/cli/package.json +1 -1
|
@@ -89,9 +89,6 @@ function spawnDetachedHookRefresh(subcommand) {
|
|
|
89
89
|
detached: true,
|
|
90
90
|
stdio: 'ignore',
|
|
91
91
|
env: process.env,
|
|
92
|
-
// Windows: without this, npx.cmd's cmd.exe wrapper flashes a visible
|
|
93
|
-
// console window every time a hook fires a background refresh. Runs
|
|
94
|
-
// hidden instead. No-op on POSIX.
|
|
95
92
|
windowsHide: true,
|
|
96
93
|
});
|
|
97
94
|
child.unref();
|
|
@@ -102,6 +99,105 @@ function spawnDetachedFunnelRefresh() {
|
|
|
102
99
|
spawnDetachedHookRefresh('refresh-funnel');
|
|
103
100
|
}
|
|
104
101
|
|
|
102
|
+
// ADR-318/319: first-run auto-enable of spinner verbs (default ON) +
|
|
103
|
+
// announcements (default OFF, explicit opt-in). Fires ONCE per install
|
|
104
|
+
// (marker at ~/.ruflo/first-run-enabled.json), then never again —
|
|
105
|
+
// subsequent sessions see the marker and skip.
|
|
106
|
+
//
|
|
107
|
+
// Split posture rationale:
|
|
108
|
+
// - Spinner verbs = low-intrusion (per-spin flash, append-mode mix
|
|
109
|
+
// with Claude Code defaults, moderate visibility over time). Default ON.
|
|
110
|
+
// Disclosure notification + one-command disable satisfies the ethical bar.
|
|
111
|
+
// - Announcements = higher-intrusion (prominent line at every Claude Code
|
|
112
|
+
// startup, more attention per view). Default OFF; opt-in via
|
|
113
|
+
// RUFLO_AUTO_ENABLE_ANNOUNCEMENTS=1 or explicit `ruflo announcements enable`.
|
|
114
|
+
//
|
|
115
|
+
// Gates (spinner is default-on unless any is TRUE):
|
|
116
|
+
// - RUFLO_NO_AUTO_ENABLE truthy (master opt-out — kills both)
|
|
117
|
+
// - RUFLO_NO_AUTO_ENABLE_SPINNER truthy (spinner-only opt-out)
|
|
118
|
+
// - CI / GITHUB_ACTIONS truthy
|
|
119
|
+
// - stdout is not a TTY (piped, non-interactive)
|
|
120
|
+
// - Marker file already exists
|
|
121
|
+
//
|
|
122
|
+
// Announcements needs the same gates PLUS RUFLO_AUTO_ENABLE_ANNOUNCEMENTS=1.
|
|
123
|
+
//
|
|
124
|
+
// Marker is written even if the spawns fail — auto-enable is a "we tried once"
|
|
125
|
+
// contract, not "keep trying until success." Users can run enable manually.
|
|
126
|
+
function firstRunAutoEnableIfEligible() {
|
|
127
|
+
try {
|
|
128
|
+
const path = require('path');
|
|
129
|
+
const fs = require('fs');
|
|
130
|
+
const os = require('os');
|
|
131
|
+
const truthy = (v) => v && !/^(0|false|off|no)$/i.test(String(v));
|
|
132
|
+
if (truthy(process.env.RUFLO_NO_AUTO_ENABLE)) return;
|
|
133
|
+
if (process.env.CI || process.env.GITHUB_ACTIONS) return;
|
|
134
|
+
if (process.stdout && process.stdout.isTTY === false) return;
|
|
135
|
+
const markerPath = path.join(os.homedir(), '.ruflo', 'first-run-enabled.json');
|
|
136
|
+
if (fs.existsSync(markerPath)) return;
|
|
137
|
+
|
|
138
|
+
const enableSpinner = !truthy(process.env.RUFLO_NO_AUTO_ENABLE_SPINNER);
|
|
139
|
+
const enableAnnouncements = truthy(process.env.RUFLO_AUTO_ENABLE_ANNOUNCEMENTS);
|
|
140
|
+
|
|
141
|
+
// Nothing to do — user opted out of both. Skip marker write so if they
|
|
142
|
+
// change their mind and re-enable env vars later, first-run still fires.
|
|
143
|
+
if (!enableSpinner && !enableAnnouncements) return;
|
|
144
|
+
|
|
145
|
+
// Spawn the enable commands detached + non-blocking. Any failure
|
|
146
|
+
// (missing CLI, refused state, etc.) is silent — auto-enable is
|
|
147
|
+
// best-effort and MUST NOT block session-restore. Uses execPath +
|
|
148
|
+
// resolved cli.js directly rather than spawnDetachedHookRefresh
|
|
149
|
+
// because that helper hardcodes 'hooks' as the top-level command.
|
|
150
|
+
const { spawn } = require('child_process');
|
|
151
|
+
const cliBin = resolveCliBinForHook();
|
|
152
|
+
const runDetached = (args) => {
|
|
153
|
+
try {
|
|
154
|
+
const spawnArgs = cliBin
|
|
155
|
+
? [process.execPath, [cliBin, ...args]]
|
|
156
|
+
: [process.platform === 'win32' ? 'npx.cmd' : 'npx',
|
|
157
|
+
['--prefer-offline', '@claude-flow/cli', ...args]];
|
|
158
|
+
const child = spawn(spawnArgs[0], spawnArgs[1], {
|
|
159
|
+
detached: true, stdio: 'ignore', env: process.env, windowsHide: true,
|
|
160
|
+
});
|
|
161
|
+
child.unref();
|
|
162
|
+
} catch { /* best-effort */ }
|
|
163
|
+
};
|
|
164
|
+
if (enableSpinner) runDetached(['spinner', 'enable', '--yes']);
|
|
165
|
+
if (enableAnnouncements) runDetached(['announcements', 'enable', '--yes']);
|
|
166
|
+
|
|
167
|
+
try {
|
|
168
|
+
fs.mkdirSync(path.dirname(markerPath), { recursive: true, mode: 0o700 });
|
|
169
|
+
fs.writeFileSync(
|
|
170
|
+
markerPath,
|
|
171
|
+
JSON.stringify({
|
|
172
|
+
_ts: Date.now(),
|
|
173
|
+
source: 'session-restore-hook',
|
|
174
|
+
enabled: { spinner: enableSpinner, announcements: enableAnnouncements },
|
|
175
|
+
}, null, 2),
|
|
176
|
+
{ encoding: 'utf-8', mode: 0o600 }
|
|
177
|
+
);
|
|
178
|
+
} catch { /* ignore — best effort */ }
|
|
179
|
+
|
|
180
|
+
// Notification tells user exactly what happened. stderr so it doesn't
|
|
181
|
+
// corrupt any downstream JSON stdout consumer.
|
|
182
|
+
try {
|
|
183
|
+
const parts = [];
|
|
184
|
+
if (enableSpinner) parts.push('spinner verbs');
|
|
185
|
+
if (enableAnnouncements) parts.push('startup announcements');
|
|
186
|
+
const disableCmds = [];
|
|
187
|
+
if (enableSpinner) disableCmds.push('`ruflo spinner disable`');
|
|
188
|
+
if (enableAnnouncements) disableCmds.push('`ruflo announcements disable`');
|
|
189
|
+
process.stderr.write(
|
|
190
|
+
'[ruflo] First-run: enabled ' + parts.join(' + ') + '. ' +
|
|
191
|
+
'Disable anytime with ' + disableCmds.join(' / ') + '. ' +
|
|
192
|
+
(enableSpinner && !enableAnnouncements
|
|
193
|
+
? 'Announcements stay opt-in — set RUFLO_AUTO_ENABLE_ANNOUNCEMENTS=1 to enable those too. '
|
|
194
|
+
: '') +
|
|
195
|
+
'Restart Claude Code once to see the changes take effect.\n'
|
|
196
|
+
);
|
|
197
|
+
} catch { /* ignore */ }
|
|
198
|
+
} catch { /* auto-enable must never break session-restore */ }
|
|
199
|
+
}
|
|
200
|
+
|
|
105
201
|
// Same fallback-aware pattern as spawnDetachedFunnelRefresh() above, for
|
|
106
202
|
// ADR-316's co-pilot advisor tip. Safe to call on EVERY session-restore:
|
|
107
203
|
// refresh-advisor's own action checks consent + a 24h TTL BEFORE spending
|
|
@@ -190,6 +286,31 @@ async function readStdin() {
|
|
|
190
286
|
});
|
|
191
287
|
}
|
|
192
288
|
|
|
289
|
+
function claimSideEffectEvent(family, stdinData, event) {
|
|
290
|
+
if (/^(1|true|yes|on)$/i.test(process.env.RUFLO_DISABLE_HOOK_DEDUP || '')) return true;
|
|
291
|
+
try {
|
|
292
|
+
const crypto = require('crypto');
|
|
293
|
+
const eventId = event?.tool_use_id || event?.toolUseId ||
|
|
294
|
+
event?.session_id || event?.sessionId || event?.hook_event_id;
|
|
295
|
+
const payloadIdentity = eventId
|
|
296
|
+
? `event:${eventId}`
|
|
297
|
+
: `payload:${(stdinData || '').trim()}|bucket:${Math.floor(Date.now() / 2000)}`;
|
|
298
|
+
const projectRoot = process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
299
|
+
const digest = crypto.createHash('sha256')
|
|
300
|
+
.update(`ruflo-hook-dedup-v1\0${path.resolve(projectRoot)}\0${family}\0${payloadIdentity}`)
|
|
301
|
+
.digest('hex');
|
|
302
|
+
const dir = process.env.RUFLO_HOOK_DEDUP_DIR ||
|
|
303
|
+
path.join(os.tmpdir(), 'ruflo-hook-dedup-v1');
|
|
304
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
305
|
+
const fd = fs.openSync(path.join(dir, digest), 'wx', 0o600);
|
|
306
|
+
fs.writeFileSync(fd, String(Date.now()));
|
|
307
|
+
fs.closeSync(fd);
|
|
308
|
+
return true;
|
|
309
|
+
} catch (error) {
|
|
310
|
+
return error?.code === 'EEXIST' ? false : true;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
193
314
|
async function main() {
|
|
194
315
|
// Global safety timeout: hooks must NEVER hang (#1530, #1531)
|
|
195
316
|
const safetyTimer = setTimeout(() => {
|
|
@@ -206,6 +327,11 @@ async function main() {
|
|
|
206
327
|
try { hookInput = JSON.parse(stdinData); } catch (e) { /* ignore parse errors */ }
|
|
207
328
|
}
|
|
208
329
|
|
|
330
|
+
if ((command === 'post-edit' || command === 'session-end') &&
|
|
331
|
+
!claimSideEffectEvent(command, stdinData, hookInput)) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
|
|
209
335
|
// Normalize snake_case/camelCase: Claude Code sends tool_input/tool_name (snake_case)
|
|
210
336
|
const toolInput = hookInput.toolInput || hookInput.tool_input || {};
|
|
211
337
|
const toolName = hookInput.toolName || hookInput.tool_name || '';
|
|
@@ -349,6 +475,11 @@ const handlers = {
|
|
|
349
475
|
},
|
|
350
476
|
|
|
351
477
|
'session-restore': async () => {
|
|
478
|
+
// ADR-318/319 first-run auto-enable — fire once per install, never
|
|
479
|
+
// re-fires after user disables. Respects RUFLO_NO_AUTO_ENABLE + CI.
|
|
480
|
+
// Fully non-blocking (detached spawn) so session-restore latency
|
|
481
|
+
// is unchanged.
|
|
482
|
+
firstRunAutoEnableIfEligible();
|
|
352
483
|
if (session) {
|
|
353
484
|
// Try restore first, fall back to start
|
|
354
485
|
const existing = session.restore && session.restore();
|
|
@@ -17,17 +17,40 @@
|
|
|
17
17
|
const fs = require('fs');
|
|
18
18
|
const path = require('path');
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
function resolveProjectRoot(startDir) {
|
|
21
|
+
if (process.env.CLAUDE_PROJECT_DIR) {
|
|
22
|
+
return path.resolve(process.env.CLAUDE_PROJECT_DIR);
|
|
23
|
+
}
|
|
24
|
+
let dir = path.resolve(startDir || process.cwd());
|
|
25
|
+
while (true) {
|
|
26
|
+
if (fs.existsSync(path.join(dir, '.git')) ||
|
|
27
|
+
fs.existsSync(path.join(dir, '.claude-flow'))) {
|
|
28
|
+
return dir;
|
|
29
|
+
}
|
|
30
|
+
const parent = path.dirname(dir);
|
|
31
|
+
if (parent === dir) return path.resolve(startDir || process.cwd());
|
|
32
|
+
dir = parent;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const PROJECT_ROOT = resolveProjectRoot(process.cwd());
|
|
37
|
+
const DATA_DIR = path.join(PROJECT_ROOT, '.claude-flow', 'data');
|
|
21
38
|
const STORE_PATH = path.join(DATA_DIR, 'auto-memory-store.json');
|
|
22
39
|
const GRAPH_PATH = path.join(DATA_DIR, 'graph-state.json');
|
|
23
40
|
const RANKED_PATH = path.join(DATA_DIR, 'ranked-context.json');
|
|
24
41
|
const PENDING_PATH = path.join(DATA_DIR, 'pending-insights.jsonl');
|
|
25
|
-
const
|
|
42
|
+
const LEGACY_PENDING_PATH = path.join(process.cwd(), '.claude-flow', 'data', 'pending-insights.jsonl');
|
|
43
|
+
const SESSION_DIR = path.join(PROJECT_ROOT, '.claude-flow', 'sessions');
|
|
26
44
|
const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
|
|
27
45
|
|
|
28
46
|
// ── Safety limits (fixes #1530, #1531) ─────────────────────────────────────
|
|
29
47
|
const MAX_DATA_FILE_SIZE = 10 * 1024 * 1024; // 10 MB — skip files larger than this
|
|
30
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;
|
|
31
54
|
|
|
32
55
|
// ── Stop words for trigram matching ──────────────────────────────────────────
|
|
33
56
|
|
|
@@ -47,6 +70,22 @@ const STOP_WORDS = new Set([
|
|
|
47
70
|
|
|
48
71
|
function ensureDataDir() {
|
|
49
72
|
if (!fs.existsSync(DATA_DIR)) fs.mkdirSync(DATA_DIR, { recursive: true });
|
|
73
|
+
// Recover signal written by older helpers under a subdirectory cwd. Keep
|
|
74
|
+
// the legacy file intact and append only lines not already present.
|
|
75
|
+
if (path.resolve(LEGACY_PENDING_PATH) !== path.resolve(PENDING_PATH) &&
|
|
76
|
+
fs.existsSync(LEGACY_PENDING_PATH)) {
|
|
77
|
+
try {
|
|
78
|
+
const existing = fs.existsSync(PENDING_PATH)
|
|
79
|
+
? new Set(fs.readFileSync(PENDING_PATH, 'utf-8').split('\n').filter(Boolean))
|
|
80
|
+
: new Set();
|
|
81
|
+
const recovered = fs.readFileSync(LEGACY_PENDING_PATH, 'utf-8')
|
|
82
|
+
.split('\n')
|
|
83
|
+
.filter(line => line && !existing.has(line));
|
|
84
|
+
if (recovered.length > 0) {
|
|
85
|
+
fs.appendFileSync(PENDING_PATH, recovered.join('\n') + '\n', 'utf-8');
|
|
86
|
+
}
|
|
87
|
+
} catch { /* migration is best-effort; never block hook execution */ }
|
|
88
|
+
}
|
|
50
89
|
}
|
|
51
90
|
|
|
52
91
|
function readJSON(filePath) {
|
|
@@ -135,7 +174,14 @@ function deduplicateByContent(entries) {
|
|
|
135
174
|
const seen = new Map();
|
|
136
175
|
for (const entry of entries) {
|
|
137
176
|
const content = entry.content || entry.summary || entry.value || '';
|
|
138
|
-
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);
|
|
139
185
|
if (!seen.has(fp)) {
|
|
140
186
|
seen.set(fp, entry);
|
|
141
187
|
} else {
|
|
@@ -258,10 +304,28 @@ function buildEdges(entries) {
|
|
|
258
304
|
}
|
|
259
305
|
}
|
|
260
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
|
+
|
|
261
313
|
// Similarity edges within categories (Jaccard > 0.3).
|
|
262
314
|
// ADR-095 G6 perf: hoist the trigram computation outside the inner
|
|
263
315
|
// loop. Previously we re-tokenized + re-trigrammed group[j] for every
|
|
264
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
|
+
|
|
265
329
|
for (const cat of Object.keys(byCategory)) {
|
|
266
330
|
const group = byCategory[cat];
|
|
267
331
|
if (group.length < 2) continue;
|
|
@@ -300,7 +364,7 @@ function buildEdges(entries) {
|
|
|
300
364
|
*/
|
|
301
365
|
function bootstrapFromMemoryFiles() {
|
|
302
366
|
const entries = [];
|
|
303
|
-
const cwd =
|
|
367
|
+
const cwd = PROJECT_ROOT;
|
|
304
368
|
|
|
305
369
|
// Search for auto-memory directories
|
|
306
370
|
const candidates = [
|
|
@@ -654,6 +718,11 @@ function consolidate() {
|
|
|
654
718
|
// Deduplicate store entries by ID before processing (fixes #1518)
|
|
655
719
|
const preDedupCount = store.length;
|
|
656
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);
|
|
657
726
|
|
|
658
727
|
// 1. Process pending insights
|
|
659
728
|
let newEntries = 0;
|
|
@@ -1032,7 +1101,16 @@ function stats(outputJson) {
|
|
|
1032
1101
|
return report;
|
|
1033
1102
|
}
|
|
1034
1103
|
|
|
1035
|
-
module.exports = {
|
|
1104
|
+
module.exports = {
|
|
1105
|
+
init,
|
|
1106
|
+
getContext,
|
|
1107
|
+
recordEdit,
|
|
1108
|
+
feedback,
|
|
1109
|
+
consolidate,
|
|
1110
|
+
stats,
|
|
1111
|
+
resolveProjectRoot,
|
|
1112
|
+
projectRoot: PROJECT_ROOT,
|
|
1113
|
+
};
|
|
1036
1114
|
|
|
1037
1115
|
// ── CLI entrypoint ──────────────────────────────────────────────────────────
|
|
1038
1116
|
if (require.main === module) {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-automation
|
|
3
|
+
description: >
|
|
4
|
+
GitHub workflow automation for issues, pull requests, CI, and releases.
|
|
5
|
+
Use when: repository hosting actions are explicitly requested.
|
|
6
|
+
Skip when: local git operations are sufficient or publishing is unauthorized.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GitHub Automation Skill
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
Automate GitHub workflows while keeping external writes explicit and scoped.
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
### Create Pull Request
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
gh pr create --draft
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Inspect Checks
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
gh pr checks
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
1. Confirm repository and branch before external writes
|
|
30
|
+
2. Inspect CI evidence before changing workflows
|
|
31
|
+
3. Never publish, merge, or close without authorization
|
|
32
|
+
4. Report the exact resulting URL or identifier
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-analysis
|
|
3
|
+
description: >
|
|
4
|
+
Performance profiling, benchmarking, and optimization.
|
|
5
|
+
Use when: slow operations, regressions, memory pressure, release validation.
|
|
6
|
+
Skip when: early prototyping, documentation, configuration-only changes.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Performance Analysis Skill
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
Measure before optimizing and preserve reproducible benchmark evidence.
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
### Run Benchmark Suite
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx @claude-flow/cli performance benchmark --suite all
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Profile Code
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx @claude-flow/cli performance profile --target ./src
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
1. Capture a baseline before changing code
|
|
30
|
+
2. Use identical inputs and environments
|
|
31
|
+
3. Report variance, not only the fastest result
|
|
32
|
+
4. Re-run correctness tests after optimization
|
|
@@ -8,6 +8,10 @@ import { WorkerConfig } from './orchestrator.js';
|
|
|
8
8
|
* Create the dual-mode command
|
|
9
9
|
*/
|
|
10
10
|
export declare function createDualModeCommand(): Command;
|
|
11
|
+
export declare function loadWorkerConfig(configPath: string, cwd?: string): Promise<{
|
|
12
|
+
workers: WorkerConfig[];
|
|
13
|
+
taskContext?: string;
|
|
14
|
+
}>;
|
|
11
15
|
/**
|
|
12
16
|
* Parse `--worker "<platform>:<role>:<prompt>"` specs into WorkerConfig[].
|
|
13
17
|
* Splits on the first two `:` so the prompt may itself contain colons.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAGL,YAAY,EAIb,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAQ/C;AAuJD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,GAAG,SAAgB,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe5D;AAyDD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,YAAY,EAAE,CAqCnF"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
+
import { readFile } from 'node:fs/promises';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { pathToFileURL } from 'node:url';
|
|
7
10
|
import { DualModeOrchestrator, CollaborationTemplates, loadSwarmAutomationConfig, } from './orchestrator.js';
|
|
8
11
|
import { CodexWorktreeCoordinator } from '../worktrees/coordinator.js';
|
|
9
12
|
/**
|
|
@@ -88,7 +91,7 @@ function createRunCommand() {
|
|
|
88
91
|
taskContext = `Template: ${templateName}, Task: ${task}`;
|
|
89
92
|
}
|
|
90
93
|
else if (options.config) {
|
|
91
|
-
const configData = await
|
|
94
|
+
const configData = await loadWorkerConfig(options.config, process.cwd());
|
|
92
95
|
workers = configData.workers;
|
|
93
96
|
taskContext = configData.taskContext || options.task || 'Collaborative task';
|
|
94
97
|
}
|
|
@@ -144,6 +147,22 @@ function createRunCommand() {
|
|
|
144
147
|
printResults(result);
|
|
145
148
|
});
|
|
146
149
|
}
|
|
150
|
+
export async function loadWorkerConfig(configPath, cwd = process.cwd()) {
|
|
151
|
+
const absolute = path.resolve(cwd, configPath);
|
|
152
|
+
const loaded = path.extname(absolute).toLowerCase() === '.json'
|
|
153
|
+
? JSON.parse(await readFile(absolute, 'utf8'))
|
|
154
|
+
: await import(pathToFileURL(absolute).href);
|
|
155
|
+
const config = loaded.default && typeof loaded.default === 'object'
|
|
156
|
+
? loaded.default
|
|
157
|
+
: loaded;
|
|
158
|
+
if (!Array.isArray(config.workers)) {
|
|
159
|
+
throw new Error(`Dual-mode config must export a workers array: ${absolute}`);
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
workers: config.workers,
|
|
163
|
+
...(typeof config.taskContext === 'string' ? { taskContext: config.taskContext } : {}),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
147
166
|
/**
|
|
148
167
|
* List available templates
|
|
149
168
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ export interface WorkerResult {
|
|
|
40
40
|
}
|
|
41
41
|
export interface DualModeConfig {
|
|
42
42
|
projectPath: string;
|
|
43
|
+
/** One database shared by bootstrap, collection, policy, and worker CLIs. */
|
|
44
|
+
memoryDbPath?: string;
|
|
43
45
|
maxConcurrent?: number;
|
|
44
46
|
sharedNamespace?: string;
|
|
45
47
|
timeout?: number;
|
|
@@ -108,6 +110,8 @@ export declare class DualModeOrchestrator extends EventEmitter {
|
|
|
108
110
|
private defaultWorkerEnvelope;
|
|
109
111
|
private resolveWorkerEnvelope;
|
|
110
112
|
private workerEnvironment;
|
|
113
|
+
/** Keep every Ruflo subprocess on the same collaboration database. */
|
|
114
|
+
private sharedEnvironment;
|
|
111
115
|
/**
|
|
112
116
|
* Stop all running workers
|
|
113
117
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAwC;gBAE7C,MAAM,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,9 @@ export class DualModeOrchestrator extends EventEmitter {
|
|
|
27
27
|
}
|
|
28
28
|
this.config = {
|
|
29
29
|
projectPath: config.projectPath,
|
|
30
|
+
memoryDbPath: path.resolve(config.memoryDbPath
|
|
31
|
+
?? process.env.CLAUDE_FLOW_DB_PATH
|
|
32
|
+
?? path.join(config.projectPath, '.claude-flow', 'dual-mode-memory.db')),
|
|
30
33
|
maxConcurrent: config.maxConcurrent ?? 4,
|
|
31
34
|
sharedNamespace: config.sharedNamespace ?? 'collaboration',
|
|
32
35
|
timeout: config.timeout ?? 300000, // 5 minutes
|
|
@@ -43,7 +46,8 @@ export class DualModeOrchestrator extends EventEmitter {
|
|
|
43
46
|
* Initialize shared memory for collaboration
|
|
44
47
|
*/
|
|
45
48
|
async initializeSharedMemory(taskContext) {
|
|
46
|
-
const { projectPath, sharedNamespace } = this.config;
|
|
49
|
+
const { projectPath, sharedNamespace, memoryDbPath } = this.config;
|
|
50
|
+
fs.mkdirSync(path.dirname(memoryDbPath), { recursive: true });
|
|
47
51
|
// Initialize memory database
|
|
48
52
|
await this.runCommand('npx', ['ruflo@latest', 'memory', 'init'], projectPath);
|
|
49
53
|
// Store task context
|
|
@@ -370,7 +374,11 @@ Remember: Other agents depend on your results in shared memory. Be concise and s
|
|
|
370
374
|
*/
|
|
371
375
|
runCommand(command, args, cwd) {
|
|
372
376
|
return new Promise((resolve, reject) => {
|
|
373
|
-
const proc = spawn(command, args, {
|
|
377
|
+
const proc = spawn(command, args, {
|
|
378
|
+
cwd,
|
|
379
|
+
env: this.sharedEnvironment(),
|
|
380
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
381
|
+
});
|
|
374
382
|
let output = '';
|
|
375
383
|
let error = '';
|
|
376
384
|
proc.stdout?.on('data', (data) => { output += data.toString(); });
|
|
@@ -457,10 +465,18 @@ Remember: Other agents depend on your results in shared memory. Be concise and s
|
|
|
457
465
|
env[name] = value;
|
|
458
466
|
}
|
|
459
467
|
env.FORCE_COLOR = '0';
|
|
468
|
+
env.CLAUDE_FLOW_DB_PATH = this.config.memoryDbPath;
|
|
460
469
|
env.CLAUDE_FLOW_PRINCIPAL_ID = `agent:${worker.id}`;
|
|
461
470
|
env.CLAUDE_FLOW_CAPABILITY_ENVELOPE = JSON.stringify(this.resolveWorkerEnvelope(worker));
|
|
462
471
|
return env;
|
|
463
472
|
}
|
|
473
|
+
/** Keep every Ruflo subprocess on the same collaboration database. */
|
|
474
|
+
sharedEnvironment() {
|
|
475
|
+
return {
|
|
476
|
+
...process.env,
|
|
477
|
+
CLAUDE_FLOW_DB_PATH: this.config.memoryDbPath,
|
|
478
|
+
};
|
|
479
|
+
}
|
|
464
480
|
/**
|
|
465
481
|
* Stop all running workers
|
|
466
482
|
*/
|