claude-flow 3.32.0 → 3.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/helpers/statusline.cjs +38 -31
- package/.claude/proven-config.json +1 -1
- package/.claude-plugin/scripts/ruflo-hook.cjs +2 -2
- package/.claude-plugin/scripts/ruflo-hook.sh +17 -2
- package/package.json +186 -185
- package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +20 -9
- package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +5 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.js +30 -1
- package/v3/@claude-flow/cli/dist/src/commands/security.js +16 -11
- package/v3/@claude-flow/cli/dist/src/funnel/insights.d.ts +1 -0
- package/v3/@claude-flow/cli/dist/src/funnel/insights.js +4 -4
- package/v3/@claude-flow/cli/dist/src/funnel/local-signals.d.ts +6 -1
- package/v3/@claude-flow/cli/dist/src/funnel/local-signals.js +29 -20
- package/v3/@claude-flow/cli/dist/src/init/executor.js +2 -2
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +13 -1
- package/v3/@claude-flow/cli/dist/src/security/builtin-aidefence.d.ts +34 -0
- package/v3/@claude-flow/cli/dist/src/security/builtin-aidefence.js +86 -0
- package/v3/@claude-flow/cli/dist/src/services/fable-harness.d.ts +1 -0
- package/v3/@claude-flow/cli/package.json +9 -8
- package/.claude/helpers/.helpers-version +0 -1
- package/.claude/helpers/helpers.manifest.json +0 -13
- package/.claude/helpers/hidden-hook.vbs +0 -43
- package/.claude/settings.local.json +0 -78
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +0 -195
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +0 -643
- package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.d.ts +0 -206
- package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.js +0 -626
- package/v3/@claude-flow/cli/dist/src/services/event-stream.d.ts +0 -25
- package/v3/@claude-flow/cli/dist/src/services/event-stream.js +0 -27
- package/v3/@claude-flow/cli/dist/src/services/loop-worker-runner.d.ts +0 -16
- package/v3/@claude-flow/cli/dist/src/services/loop-worker-runner.js +0 -34
- package/v3/@claude-flow/cli/dist/src/services/runtime-capabilities.d.ts +0 -22
- package/v3/@claude-flow/cli/dist/src/services/runtime-capabilities.js +0 -45
|
@@ -26,8 +26,11 @@ const { execSync } = require('child_process');
|
|
|
26
26
|
const os = require('os');
|
|
27
27
|
|
|
28
28
|
// Configuration
|
|
29
|
-
const CONFIG = {
|
|
30
|
-
maxAgents: 15,
|
|
29
|
+
const CONFIG = {
|
|
30
|
+
maxAgents: 15,
|
|
31
|
+
// Header identity defaults to project/repository name. Set `author` to
|
|
32
|
+
// retain the previous `git config user.name` display (#2682).
|
|
33
|
+
identityMode: (process.env.RUFLO_STATUSLINE_IDENTITY || 'project').toLowerCase(),
|
|
31
34
|
// Session-cost display. Claude Code's cost.total_cost_usd is a client-side
|
|
32
35
|
// estimate that "may differ from your actual bill" and reads as misleading on
|
|
33
36
|
// subscription plans, where token usage is not billed per dollar. These let
|
|
@@ -210,7 +213,9 @@ function getStatuslineData() {
|
|
|
210
213
|
// 60s TTL (#2337 — don't re-spawn the CLI on every rapid re-render) AND the
|
|
211
214
|
// tighter promo-rotation clock (this fix — don't let a still-fresh 60s
|
|
212
215
|
// cache silently freeze the promo/insight row across multiple 20s slots).
|
|
213
|
-
if (cache.fresh && cache.promoFresh)
|
|
216
|
+
if (cache.fresh && cache.promoFresh) {
|
|
217
|
+
return applyLocalOverlays(overlayMemoPromo(cache.data));
|
|
218
|
+
}
|
|
214
219
|
|
|
215
220
|
// #2337: prefer an already-installed CLI bin via direct `node` invocation —
|
|
216
221
|
// no npx, no registry round-trip, no @latest re-resolve per render. Try
|
|
@@ -417,7 +422,7 @@ function buildLocalFallback() {
|
|
|
417
422
|
return applyLocalOverlays({
|
|
418
423
|
user: { name: 'user', gitBranch: '', modelName: 'Claude Code' },
|
|
419
424
|
v3Progress: { domainsCompleted: 0, totalDomains: 5, dddProgress: 0, patternsLearned: 0, sessionsCompleted: 0 },
|
|
420
|
-
security: { status: 'NONE', cvesFixed: 0, totalCves: 0 },
|
|
425
|
+
security: { status: 'NONE', findings: 0, cvesFixed: 0, totalCves: 0 },
|
|
421
426
|
swarm: { activeAgents: 0, maxAgents: CONFIG.maxAgents, coordinationActive: false },
|
|
422
427
|
system: { memoryMB: memMB, contextPct: 0, intelligencePct: 0, subAgents: 0 },
|
|
423
428
|
lastUpdated: new Date().toISOString(),
|
|
@@ -474,14 +479,16 @@ function readJSON(filePath) {
|
|
|
474
479
|
|
|
475
480
|
// ─── Git info (pure-Node / single exec — needed for branch display) ──────────
|
|
476
481
|
|
|
477
|
-
function getGitInfo() {
|
|
478
|
-
const result = {
|
|
479
|
-
name: '
|
|
480
|
-
staged: 0, ahead: 0, behind: 0,
|
|
481
|
-
};
|
|
482
|
-
|
|
483
|
-
const script = [
|
|
484
|
-
'git
|
|
482
|
+
function getGitInfo() {
|
|
483
|
+
const result = {
|
|
484
|
+
name: path.basename(CWD) || 'project', gitBranch: '', modified: 0, untracked: 0,
|
|
485
|
+
staged: 0, ahead: 0, behind: 0,
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
const script = [
|
|
489
|
+
'git rev-parse --show-toplevel 2>/dev/null || pwd',
|
|
490
|
+
'echo "---SEP---"',
|
|
491
|
+
'git config user.name 2>/dev/null || echo user',
|
|
485
492
|
'echo "---SEP---"',
|
|
486
493
|
'git branch --show-current 2>/dev/null',
|
|
487
494
|
'echo "---SEP---"',
|
|
@@ -494,12 +501,14 @@ function getGitInfo() {
|
|
|
494
501
|
if (!raw) return result;
|
|
495
502
|
|
|
496
503
|
const parts = raw.split('---SEP---').map(function(s) { return s.trim(); });
|
|
497
|
-
if (parts.length >=
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
504
|
+
if (parts.length >= 5) {
|
|
505
|
+
const projectName = path.basename(parts[0] || CWD) || path.basename(CWD) || 'project';
|
|
506
|
+
const authorName = parts[1] || 'user';
|
|
507
|
+
result.name = CONFIG.identityMode === 'author' ? authorName : projectName;
|
|
508
|
+
result.gitBranch = parts[2] || '';
|
|
509
|
+
|
|
510
|
+
if (parts[3]) {
|
|
511
|
+
for (const line of parts[3].split('\n')) {
|
|
503
512
|
if (!line || line.length < 2) continue;
|
|
504
513
|
const x = line[0], y = line[1];
|
|
505
514
|
if (x === '?' && y === '?') { result.untracked++; continue; }
|
|
@@ -508,7 +517,7 @@ function getGitInfo() {
|
|
|
508
517
|
}
|
|
509
518
|
}
|
|
510
519
|
|
|
511
|
-
const ab = (parts[
|
|
520
|
+
const ab = (parts[4] || '0 0').split(/\s+/);
|
|
512
521
|
result.ahead = parseInt(ab[0]) || 0;
|
|
513
522
|
result.behind = parseInt(ab[1]) || 0;
|
|
514
523
|
}
|
|
@@ -722,8 +731,7 @@ function generateStatusline() {
|
|
|
722
731
|
const intelligencePct = system.intelligencePct || 0;
|
|
723
732
|
const memoryMB = system.memoryMB || 0;
|
|
724
733
|
const subAgents = system.subAgents || 0;
|
|
725
|
-
const
|
|
726
|
-
const totalCves = security.totalCves || 0;
|
|
734
|
+
const findings = Math.max(0, security.findings || 0);
|
|
727
735
|
const secStatus = security.status || 'NONE';
|
|
728
736
|
const adrCount = adrs.count || 0;
|
|
729
737
|
const adrImpl = adrs.implemented || 0;
|
|
@@ -778,8 +786,7 @@ function generateStatusline() {
|
|
|
778
786
|
const hooksColor = hooksEnabled > 0 ? c.brightGreen : c.dim;
|
|
779
787
|
const intellColor = intelligencePct >= 80 ? c.brightGreen : intelligencePct >= 40 ? c.brightYellow : c.dim;
|
|
780
788
|
const swarmInd = coordinationActive ? c.brightGreen + '◉' + c.reset + ' ' : c.dim + '○' + c.reset + ' ';
|
|
781
|
-
const
|
|
782
|
-
const healthAllGreen = (secStatus === 'CLEAN' || secStatus === 'NONE') && cvesClean;
|
|
789
|
+
const healthAllGreen = (secStatus === 'CLEAN' || secStatus === 'NONE') && findings === 0;
|
|
783
790
|
const opsParts = [];
|
|
784
791
|
opsParts.push(c.cyan + 'Swarm ' + swarmInd + agentsColor + activeAgents + c.reset + '/' + c.brightWhite + maxAgents + c.reset);
|
|
785
792
|
if (subAgents > 0) opsParts.push(c.brightPurple + '👥 ' + subAgents + c.reset);
|
|
@@ -790,14 +797,14 @@ function generateStatusline() {
|
|
|
790
797
|
if (healthAllGreen) {
|
|
791
798
|
opsParts.push(c.brightGreen + '🛡 ✓' + c.reset);
|
|
792
799
|
} else {
|
|
793
|
-
if (secStatus === 'PENDING') opsParts.push(c.brightYellow + '🛡 scan pending' + c.reset);
|
|
794
|
-
else if (secStatus === 'IN_PROGRESS') opsParts.push(c.brightYellow + '🛡 scanning…' + c.reset);
|
|
795
|
-
else if (secStatus === '
|
|
796
|
-
else if (secStatus
|
|
797
|
-
if (
|
|
798
|
-
|
|
799
|
-
opsParts.push(c.brightRed + '⚠ ' +
|
|
800
|
-
}
|
|
800
|
+
if (secStatus === 'PENDING') opsParts.push(c.brightYellow + '🛡 scan pending' + c.reset);
|
|
801
|
+
else if (secStatus === 'IN_PROGRESS') opsParts.push(c.brightYellow + '🛡 scanning…' + c.reset);
|
|
802
|
+
else if (secStatus === 'ISSUES') opsParts.push(c.brightRed + '🛡 findings' + c.reset);
|
|
803
|
+
else if (secStatus === 'STALE') opsParts.push(c.brightYellow + '🛡 scan stale' + c.reset);
|
|
804
|
+
else if (secStatus !== 'NONE' && secStatus !== 'CLEAN') opsParts.push(c.brightRed + '🛡 ' + secStatus.toLowerCase() + c.reset);
|
|
805
|
+
if (findings > 0) {
|
|
806
|
+
opsParts.push(c.brightRed + '⚠ ' + findings + ' finding' + (findings === 1 ? '' : 's') + c.reset);
|
|
807
|
+
}
|
|
801
808
|
}
|
|
802
809
|
lines.push(opsParts.join(' ' + c.dim + '·' + c.reset + ' '));
|
|
803
810
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Behaviour mirrors ruflo-hook.sh:
|
|
15
15
|
* 1. Reads hook JSON payload from stdin.
|
|
16
16
|
* 2. Prefers a locally installed `ruflo` or `claude-flow` binary.
|
|
17
|
-
* 3. Falls back to `npx --prefer-offline ruflo@
|
|
17
|
+
* 3. Falls back to `npx --prefer-offline ruflo@latest`.
|
|
18
18
|
* 4. Always exits 0 — hook subcommands are best-effort telemetry.
|
|
19
19
|
* 5. Swallows all stderr — nothing should surface to Claude Code.
|
|
20
20
|
*
|
|
@@ -157,7 +157,7 @@ function main() {
|
|
|
157
157
|
// a spurious failure even though the shim itself works correctly.
|
|
158
158
|
// The bash version doesn't hit this because it backgrounded the work.
|
|
159
159
|
if (process.env.RUFLO_HOOK_SKIP_NPX !== '1') {
|
|
160
|
-
invokeHook('npx', ['--prefer-offline', '--yes', 'ruflo@
|
|
160
|
+
invokeHook('npx', ['--prefer-offline', '--yes', 'ruflo@latest'], hookArgs, stdinData);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
done();
|
|
@@ -24,14 +24,29 @@
|
|
|
24
24
|
# so redirecting it is a pure cleanup with no functional cost.
|
|
25
25
|
exec 1>/dev/null 2>/dev/null
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
# Bound every hook process. A partially initialized native embedding pool can
|
|
28
|
+
# otherwise keep a logically completed Stop hook alive indefinitely (#2691).
|
|
29
|
+
run() {
|
|
30
|
+
"$@" &
|
|
31
|
+
child=$!
|
|
32
|
+
(
|
|
33
|
+
sleep 15
|
|
34
|
+
kill -TERM "$child" 2>/dev/null || true
|
|
35
|
+
sleep 1
|
|
36
|
+
kill -KILL "$child" 2>/dev/null || true
|
|
37
|
+
) &
|
|
38
|
+
watchdog=$!
|
|
39
|
+
wait "$child" 2>/dev/null || true
|
|
40
|
+
kill "$watchdog" 2>/dev/null || true
|
|
41
|
+
wait "$watchdog" 2>/dev/null || true
|
|
42
|
+
}
|
|
28
43
|
|
|
29
44
|
if command -v ruflo >/dev/null 2>&1; then
|
|
30
45
|
run ruflo hooks "$@"
|
|
31
46
|
elif command -v claude-flow >/dev/null 2>&1; then
|
|
32
47
|
run claude-flow hooks "$@"
|
|
33
48
|
else
|
|
34
|
-
run npx --prefer-offline --yes ruflo@
|
|
49
|
+
run npx --prefer-offline --yes ruflo@latest hooks "$@"
|
|
35
50
|
fi
|
|
36
51
|
|
|
37
52
|
exit 0
|
package/package.json
CHANGED
|
@@ -1,185 +1,186 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "claude-flow",
|
|
3
|
-
"version": "3.32.
|
|
4
|
-
"description": "Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"claude-flow": "
|
|
9
|
-
},
|
|
10
|
-
"homepage": "https://github.com/ruvnet/claude-flow#readme",
|
|
11
|
-
"bugs": {
|
|
12
|
-
"url": "https://github.com/ruvnet/claude-flow/issues",
|
|
13
|
-
"email": "support@ruv.io"
|
|
14
|
-
},
|
|
15
|
-
"funding": {
|
|
16
|
-
"type": "github",
|
|
17
|
-
"url": "https://github.com/sponsors/ruvnet"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
"bin/**",
|
|
21
|
-
"v3/@claude-flow/cli/bin/**",
|
|
22
|
-
"v3/@claude-flow/cli/dist/**/*.js",
|
|
23
|
-
"v3/@claude-flow/cli/dist/**/*.d.ts",
|
|
24
|
-
"!v3/@claude-flow/cli/dist/**/*.map",
|
|
25
|
-
"v3/@claude-flow/cli/package.json",
|
|
26
|
-
"v3/@claude-flow/cli/catalog-manifest.json",
|
|
27
|
-
"v3/@claude-flow/shared/dist/**/*.js",
|
|
28
|
-
"v3/@claude-flow/shared/dist/**/*.d.ts",
|
|
29
|
-
"!v3/@claude-flow/shared/dist/**/*.map",
|
|
30
|
-
"v3/@claude-flow/shared/package.json",
|
|
31
|
-
"v3/@claude-flow/guidance/dist/**/*.js",
|
|
32
|
-
"v3/@claude-flow/guidance/dist/**/*.d.ts",
|
|
33
|
-
"!v3/@claude-flow/guidance/dist/**/*.map",
|
|
34
|
-
"v3/@claude-flow/guidance/package.json",
|
|
35
|
-
".claude-plugin/**",
|
|
36
|
-
".claude/**",
|
|
37
|
-
"!.claude/**/*.db",
|
|
38
|
-
"!.claude/**/*.map",
|
|
39
|
-
"!.claude/worktrees/**",
|
|
40
|
-
"!.claude/projects/**",
|
|
41
|
-
"!.claude/scheduled_tasks.lock",
|
|
42
|
-
"!.claude/sessions/**",
|
|
43
|
-
"README.md",
|
|
44
|
-
"LICENSE"
|
|
45
|
-
],
|
|
46
|
-
"scripts": {
|
|
47
|
-
"dev": "tsx watch src/index.ts",
|
|
48
|
-
"build": "tsc",
|
|
49
|
-
"build:ts": "cd v3/@claude-flow/cli && npm run build || true",
|
|
50
|
-
"
|
|
51
|
-
"test
|
|
52
|
-
"test:
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"security:
|
|
56
|
-
"security:
|
|
57
|
-
"
|
|
58
|
-
"v3:
|
|
59
|
-
"v3:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"@claude-flow/
|
|
64
|
-
"@claude-flow/
|
|
65
|
-
"@claude-flow/
|
|
66
|
-
"@
|
|
67
|
-
"@
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"@claude-flow/
|
|
74
|
-
"@
|
|
75
|
-
"@ruvector/
|
|
76
|
-
"@ruvector/
|
|
77
|
-
"@ruvector/router
|
|
78
|
-
"@ruvector/
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"@
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"express": ">=4.
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"@opentelemetry/
|
|
105
|
-
"@opentelemetry/
|
|
106
|
-
"@opentelemetry/sdk-
|
|
107
|
-
"@opentelemetry/
|
|
108
|
-
"@opentelemetry/
|
|
109
|
-
"@opentelemetry/exporter-
|
|
110
|
-
"@opentelemetry/exporter-trace-otlp-
|
|
111
|
-
"@opentelemetry/exporter-trace-otlp-
|
|
112
|
-
"@opentelemetry/otlp-
|
|
113
|
-
"@opentelemetry/otlp-
|
|
114
|
-
"@opentelemetry/otlp-
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
"@
|
|
127
|
-
"@types/
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
"
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
"
|
|
143
|
-
"claude
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"ai
|
|
147
|
-
"
|
|
148
|
-
"agent
|
|
149
|
-
"
|
|
150
|
-
"swarm",
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
"
|
|
178
|
-
"
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"
|
|
182
|
-
|
|
183
|
-
"
|
|
184
|
-
|
|
185
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-flow",
|
|
3
|
+
"version": "3.32.2",
|
|
4
|
+
"description": "Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"claude-flow": "bin/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/ruvnet/claude-flow#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/ruvnet/claude-flow/issues",
|
|
13
|
+
"email": "support@ruv.io"
|
|
14
|
+
},
|
|
15
|
+
"funding": {
|
|
16
|
+
"type": "github",
|
|
17
|
+
"url": "https://github.com/sponsors/ruvnet"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"bin/**",
|
|
21
|
+
"v3/@claude-flow/cli/bin/**",
|
|
22
|
+
"v3/@claude-flow/cli/dist/**/*.js",
|
|
23
|
+
"v3/@claude-flow/cli/dist/**/*.d.ts",
|
|
24
|
+
"!v3/@claude-flow/cli/dist/**/*.map",
|
|
25
|
+
"v3/@claude-flow/cli/package.json",
|
|
26
|
+
"v3/@claude-flow/cli/catalog-manifest.json",
|
|
27
|
+
"v3/@claude-flow/shared/dist/**/*.js",
|
|
28
|
+
"v3/@claude-flow/shared/dist/**/*.d.ts",
|
|
29
|
+
"!v3/@claude-flow/shared/dist/**/*.map",
|
|
30
|
+
"v3/@claude-flow/shared/package.json",
|
|
31
|
+
"v3/@claude-flow/guidance/dist/**/*.js",
|
|
32
|
+
"v3/@claude-flow/guidance/dist/**/*.d.ts",
|
|
33
|
+
"!v3/@claude-flow/guidance/dist/**/*.map",
|
|
34
|
+
"v3/@claude-flow/guidance/package.json",
|
|
35
|
+
".claude-plugin/**",
|
|
36
|
+
".claude/**",
|
|
37
|
+
"!.claude/**/*.db",
|
|
38
|
+
"!.claude/**/*.map",
|
|
39
|
+
"!.claude/worktrees/**",
|
|
40
|
+
"!.claude/projects/**",
|
|
41
|
+
"!.claude/scheduled_tasks.lock",
|
|
42
|
+
"!.claude/sessions/**",
|
|
43
|
+
"README.md",
|
|
44
|
+
"LICENSE"
|
|
45
|
+
],
|
|
46
|
+
"scripts": {
|
|
47
|
+
"dev": "tsx watch src/index.ts",
|
|
48
|
+
"build": "tsc",
|
|
49
|
+
"build:ts": "cd v3/@claude-flow/cli && npm run build || true",
|
|
50
|
+
"prepublishOnly": "node scripts/prepare-root-publish.mjs",
|
|
51
|
+
"test": "vitest",
|
|
52
|
+
"test:ui": "vitest --ui",
|
|
53
|
+
"test:security": "vitest run v3/__tests__/security/",
|
|
54
|
+
"lint": "cd v3/@claude-flow/cli && npm run lint || true",
|
|
55
|
+
"security:audit": "npm audit --audit-level high",
|
|
56
|
+
"security:fix": "npm audit fix",
|
|
57
|
+
"security:test": "npm run test:security",
|
|
58
|
+
"v3:domains": "npm run build:domains",
|
|
59
|
+
"v3:swarm": "npm run start:swarm",
|
|
60
|
+
"v3:security": "npm run security:audit && npm run security:test"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@claude-flow/cli-core": "3.7.0-alpha.5",
|
|
64
|
+
"@claude-flow/mcp": "3.0.0-alpha.9",
|
|
65
|
+
"@claude-flow/neural": "3.0.0-alpha.9",
|
|
66
|
+
"@claude-flow/shared": "3.0.0-alpha.8",
|
|
67
|
+
"@noble/ed25519": "2.3.0",
|
|
68
|
+
"@ruvector/rabitq-wasm": "0.1.0",
|
|
69
|
+
"semver": "7.7.3",
|
|
70
|
+
"zod": "3.25.76"
|
|
71
|
+
},
|
|
72
|
+
"optionalDependencies": {
|
|
73
|
+
"@claude-flow/codex": "^3.0.1",
|
|
74
|
+
"@claude-flow/plugin-gastown-bridge": "^0.1.3",
|
|
75
|
+
"@ruvector/attention": "^0.1.3",
|
|
76
|
+
"@ruvector/core": "^0.1.30",
|
|
77
|
+
"@ruvector/router": "^0.1.30",
|
|
78
|
+
"@ruvector/router-linux-x64-gnu": "^0.1.30",
|
|
79
|
+
"@ruvector/sona": "^0.1.5",
|
|
80
|
+
"agentdb": "^3.0.0-alpha.17",
|
|
81
|
+
"agentic-flow": "^2.0.14"
|
|
82
|
+
},
|
|
83
|
+
"overrides": {
|
|
84
|
+
"ruvector": "^0.2.27",
|
|
85
|
+
"better-sqlite3": ">=12.8.0",
|
|
86
|
+
"js-yaml": ">=4.3.0",
|
|
87
|
+
"hono": ">=4.12.25",
|
|
88
|
+
"@ruvector/rvf-wasm": "0.1.5",
|
|
89
|
+
"@hono/node-server": ">=1.19.14",
|
|
90
|
+
"flatted": ">=3.4.0",
|
|
91
|
+
"tar": ">=7.5.11",
|
|
92
|
+
"picomatch": ">=4.0.3",
|
|
93
|
+
"path-to-regexp": ">=8.2.1",
|
|
94
|
+
"undici": ">=8.5.0",
|
|
95
|
+
"minimatch": ">=10.0.0",
|
|
96
|
+
"@isaacs/brace-expansion": ">=5.0.1",
|
|
97
|
+
"cacache": ">=20.0.0",
|
|
98
|
+
"make-fetch-happen": ">=15.0.0",
|
|
99
|
+
"express-rate-limit": ">=8.4.1",
|
|
100
|
+
"express": ">=4.22.2",
|
|
101
|
+
"qs": ">=6.15.2",
|
|
102
|
+
"protobufjs": ">=8.2.0",
|
|
103
|
+
"uuid": ">=14.0.0",
|
|
104
|
+
"@opentelemetry/core": ">=2.8.0",
|
|
105
|
+
"@opentelemetry/resources": ">=2.8.0",
|
|
106
|
+
"@opentelemetry/sdk-trace-base": ">=2.8.0",
|
|
107
|
+
"@opentelemetry/sdk-node": ">=0.220.0",
|
|
108
|
+
"@opentelemetry/auto-instrumentations-node": ">=0.75.0",
|
|
109
|
+
"@opentelemetry/exporter-prometheus": ">=0.220.0",
|
|
110
|
+
"@opentelemetry/exporter-trace-otlp-grpc": ">=0.220.0",
|
|
111
|
+
"@opentelemetry/exporter-trace-otlp-http": ">=0.220.0",
|
|
112
|
+
"@opentelemetry/exporter-trace-otlp-proto": ">=0.220.0",
|
|
113
|
+
"@opentelemetry/otlp-exporter-base": ">=0.220.0",
|
|
114
|
+
"@opentelemetry/otlp-grpc-exporter-base": ">=0.220.0",
|
|
115
|
+
"@opentelemetry/otlp-transformer": ">=0.220.0",
|
|
116
|
+
"axios": ">=1.13.2",
|
|
117
|
+
"fast-uri": ">=3.1.0",
|
|
118
|
+
"vite": ">=8.0.16",
|
|
119
|
+
"ws": ">=8.21.0",
|
|
120
|
+
"@grpc/grpc-js": ">=1.14.4",
|
|
121
|
+
"form-data": ">=4.0.6",
|
|
122
|
+
"http-proxy-middleware": ">=3.0.7",
|
|
123
|
+
"@ruvector/ruvllm": ">=2.6.0"
|
|
124
|
+
},
|
|
125
|
+
"devDependencies": {
|
|
126
|
+
"@openai/codex": "^0.98.0",
|
|
127
|
+
"@types/bcrypt": "^5.0.2",
|
|
128
|
+
"@types/node": "^20.0.0",
|
|
129
|
+
"eslint": "^8.0.0",
|
|
130
|
+
"tsx": "^4.21.0",
|
|
131
|
+
"typescript": "^5.0.0",
|
|
132
|
+
"vitest": "^3.2.6"
|
|
133
|
+
},
|
|
134
|
+
"engines": {
|
|
135
|
+
"node": ">=20.0.0"
|
|
136
|
+
},
|
|
137
|
+
"repository": {
|
|
138
|
+
"type": "git",
|
|
139
|
+
"url": "https://github.com/ruvnet/claude-flow.git"
|
|
140
|
+
},
|
|
141
|
+
"keywords": [
|
|
142
|
+
"ruvflow",
|
|
143
|
+
"claude",
|
|
144
|
+
"claude-code",
|
|
145
|
+
"anthropic",
|
|
146
|
+
"ai",
|
|
147
|
+
"ai-agents",
|
|
148
|
+
"multi-agent",
|
|
149
|
+
"agent-orchestration",
|
|
150
|
+
"swarm-intelligence",
|
|
151
|
+
"swarm",
|
|
152
|
+
"mcp",
|
|
153
|
+
"model-context-protocol",
|
|
154
|
+
"llm",
|
|
155
|
+
"large-language-model",
|
|
156
|
+
"gpt",
|
|
157
|
+
"chatgpt",
|
|
158
|
+
"automation",
|
|
159
|
+
"workflow",
|
|
160
|
+
"orchestration",
|
|
161
|
+
"cli",
|
|
162
|
+
"developer-tools",
|
|
163
|
+
"devtools",
|
|
164
|
+
"coding-assistant",
|
|
165
|
+
"code-generation",
|
|
166
|
+
"enterprise",
|
|
167
|
+
"vector-database",
|
|
168
|
+
"embeddings",
|
|
169
|
+
"machine-learning",
|
|
170
|
+
"neural-network",
|
|
171
|
+
"hive-mind",
|
|
172
|
+
"distributed-systems",
|
|
173
|
+
"consensus",
|
|
174
|
+
"self-learning"
|
|
175
|
+
],
|
|
176
|
+
"author": {
|
|
177
|
+
"name": "RuvNet",
|
|
178
|
+
"email": "ruv@ruv.io",
|
|
179
|
+
"url": "https://ruv.io"
|
|
180
|
+
},
|
|
181
|
+
"license": "MIT",
|
|
182
|
+
"publishConfig": {
|
|
183
|
+
"access": "public",
|
|
184
|
+
"tag": "latest"
|
|
185
|
+
}
|
|
186
|
+
}
|