claude-flow 3.5.18 → 3.5.19
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.19",
|
|
4
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
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -59,12 +59,13 @@ async function checkNpmVersion() {
|
|
|
59
59
|
}
|
|
60
60
|
// Check config file
|
|
61
61
|
async function checkConfigFile() {
|
|
62
|
-
|
|
62
|
+
// JSON configs (parse-validated)
|
|
63
|
+
const jsonPaths = [
|
|
63
64
|
'.claude-flow/config.json',
|
|
64
65
|
'claude-flow.config.json',
|
|
65
66
|
'.claude-flow.json'
|
|
66
67
|
];
|
|
67
|
-
for (const configPath of
|
|
68
|
+
for (const configPath of jsonPaths) {
|
|
68
69
|
if (existsSync(configPath)) {
|
|
69
70
|
try {
|
|
70
71
|
const content = readFileSync(configPath, 'utf8');
|
|
@@ -76,6 +77,17 @@ async function checkConfigFile() {
|
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
}
|
|
80
|
+
// YAML configs (existence-checked only — no heavy yaml parser dependency)
|
|
81
|
+
const yamlPaths = [
|
|
82
|
+
'.claude-flow/config.yaml',
|
|
83
|
+
'.claude-flow/config.yml',
|
|
84
|
+
'claude-flow.config.yaml'
|
|
85
|
+
];
|
|
86
|
+
for (const configPath of yamlPaths) {
|
|
87
|
+
if (existsSync(configPath)) {
|
|
88
|
+
return { name: 'Config File', status: 'pass', message: `Found: ${configPath}` };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
79
91
|
return { name: 'Config File', status: 'warn', message: 'No config file (using defaults)', fix: 'claude-flow config init' };
|
|
80
92
|
}
|
|
81
93
|
// Check daemon status
|
|
@@ -128,9 +140,14 @@ async function checkApiKeys() {
|
|
|
128
140
|
found.push(key);
|
|
129
141
|
}
|
|
130
142
|
}
|
|
143
|
+
// Detect Claude Code environment — API keys are managed internally
|
|
144
|
+
const inClaudeCode = !!(process.env.CLAUDE_CODE || process.env.CLAUDE_PROJECT_DIR || process.env.MCP_SESSION_ID);
|
|
131
145
|
if (found.includes('ANTHROPIC_API_KEY') || found.includes('CLAUDE_API_KEY')) {
|
|
132
146
|
return { name: 'API Keys', status: 'pass', message: `Found: ${found.join(', ')}` };
|
|
133
147
|
}
|
|
148
|
+
else if (inClaudeCode) {
|
|
149
|
+
return { name: 'API Keys', status: 'pass', message: 'Claude Code (managed internally)' };
|
|
150
|
+
}
|
|
134
151
|
else if (found.length > 0) {
|
|
135
152
|
return { name: 'API Keys', status: 'warn', message: `Found: ${found.join(', ')} (no Claude key)`, fix: 'export ANTHROPIC_API_KEY=your_key' };
|
|
136
153
|
}
|
|
@@ -171,12 +188,12 @@ async function checkMcpServers() {
|
|
|
171
188
|
const content = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
172
189
|
const servers = content.mcpServers || content.servers || {};
|
|
173
190
|
const count = Object.keys(servers).length;
|
|
174
|
-
const hasClaudeFlow = 'claude-flow' in servers || 'claude-flow_alpha' in servers;
|
|
191
|
+
const hasClaudeFlow = 'claude-flow' in servers || 'claude-flow_alpha' in servers || 'ruflo' in servers || 'ruflo_alpha' in servers;
|
|
175
192
|
if (hasClaudeFlow) {
|
|
176
|
-
return { name: 'MCP Servers', status: 'pass', message: `${count} servers (
|
|
193
|
+
return { name: 'MCP Servers', status: 'pass', message: `${count} servers (ruflo configured)` };
|
|
177
194
|
}
|
|
178
195
|
else {
|
|
179
|
-
return { name: 'MCP Servers', status: 'warn', message: `${count} servers (
|
|
196
|
+
return { name: 'MCP Servers', status: 'warn', message: `${count} servers (ruflo not found)`, fix: 'claude mcp add ruflo -- npx -y ruflo@latest mcp start' };
|
|
180
197
|
}
|
|
181
198
|
}
|
|
182
199
|
catch {
|
|
@@ -81,7 +81,7 @@ export const agentdbControllers = {
|
|
|
81
81
|
const bridge = await getBridge();
|
|
82
82
|
const controllers = await bridge.bridgeListControllers();
|
|
83
83
|
if (!controllers)
|
|
84
|
-
return { available: false, controllers: [], error: '
|
|
84
|
+
return { available: false, controllers: [], error: 'AgentDB bridge not available — @claude-flow/memory not installed or missing controller-registry. Use memory_store/memory_search tools instead.' };
|
|
85
85
|
return {
|
|
86
86
|
available: true,
|
|
87
87
|
controllers,
|
|
@@ -118,7 +118,7 @@ export const agentdbPatternStore = {
|
|
|
118
118
|
type: validateString(params.type, 'type', 200) ?? 'general',
|
|
119
119
|
confidence: validateScore(params.confidence, 0.8),
|
|
120
120
|
});
|
|
121
|
-
return result ?? { success: false, error: '
|
|
121
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
122
122
|
}
|
|
123
123
|
catch (error) {
|
|
124
124
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -182,7 +182,7 @@ export const agentdbFeedback = {
|
|
|
182
182
|
quality: validateScore(params.quality, 0.85),
|
|
183
183
|
agent: validateString(params.agent, 'agent', 200) ?? undefined,
|
|
184
184
|
});
|
|
185
|
-
return result ?? { success: false, error: '
|
|
185
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
186
186
|
}
|
|
187
187
|
catch (error) {
|
|
188
188
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -221,7 +221,7 @@ export const agentdbCausalEdge = {
|
|
|
221
221
|
relation,
|
|
222
222
|
weight: typeof params.weight === 'number' ? validateScore(params.weight, 0.5) : undefined,
|
|
223
223
|
});
|
|
224
|
-
return result ?? { success: false, error: '
|
|
224
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
225
225
|
}
|
|
226
226
|
catch (error) {
|
|
227
227
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -279,7 +279,7 @@ export const agentdbSessionStart = {
|
|
|
279
279
|
sessionId,
|
|
280
280
|
context: validateString(params.context, 'context', 10_000) ?? undefined,
|
|
281
281
|
});
|
|
282
|
-
return result ?? { success: false, error: '
|
|
282
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
283
283
|
}
|
|
284
284
|
catch (error) {
|
|
285
285
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -310,7 +310,7 @@ export const agentdbSessionEnd = {
|
|
|
310
310
|
summary: validateString(params.summary, 'summary', 50_000) ?? undefined,
|
|
311
311
|
tasksCompleted: validatePositiveInt(params.tasksCompleted, 0, 10_000),
|
|
312
312
|
});
|
|
313
|
-
return result ?? { success: false, error: '
|
|
313
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
314
314
|
}
|
|
315
315
|
catch (error) {
|
|
316
316
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -349,7 +349,7 @@ export const agentdbHierarchicalStore = {
|
|
|
349
349
|
}
|
|
350
350
|
const bridge = await getBridge();
|
|
351
351
|
const result = await bridge.bridgeHierarchicalStore({ key, value, tier });
|
|
352
|
-
return result ?? { success: false, error: '
|
|
352
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
353
353
|
}
|
|
354
354
|
catch (error) {
|
|
355
355
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -384,7 +384,7 @@ export const agentdbHierarchicalRecall = {
|
|
|
384
384
|
tier: tier ?? undefined,
|
|
385
385
|
topK: validatePositiveInt(params.topK, 5, MAX_TOP_K),
|
|
386
386
|
});
|
|
387
|
-
return result ?? { results: [], error: '
|
|
387
|
+
return result ?? { results: [], error: 'AgentDB bridge not available. Use memory_search instead.' };
|
|
388
388
|
}
|
|
389
389
|
catch (error) {
|
|
390
390
|
return { results: [], error: sanitizeError(error) };
|
|
@@ -409,7 +409,7 @@ export const agentdbConsolidate = {
|
|
|
409
409
|
minAge: typeof params.minAge === 'number' ? Math.max(0, params.minAge) : undefined,
|
|
410
410
|
maxEntries: validatePositiveInt(params.maxEntries, 1000, 10_000),
|
|
411
411
|
});
|
|
412
|
-
return result ?? { success: false, error: '
|
|
412
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
413
413
|
}
|
|
414
414
|
catch (error) {
|
|
415
415
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -475,7 +475,7 @@ export const agentdbBatch = {
|
|
|
475
475
|
operation,
|
|
476
476
|
entries: validatedEntries,
|
|
477
477
|
});
|
|
478
|
-
return result ?? { success: false, error: '
|
|
478
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
479
479
|
}
|
|
480
480
|
catch (error) {
|
|
481
481
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -504,7 +504,7 @@ export const agentdbContextSynthesize = {
|
|
|
504
504
|
query,
|
|
505
505
|
maxEntries: validatePositiveInt(params.maxEntries, 10, MAX_TOP_K),
|
|
506
506
|
});
|
|
507
|
-
return result ?? { success: false, error: '
|
|
507
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
508
508
|
}
|
|
509
509
|
catch (error) {
|
|
510
510
|
return { success: false, error: sanitizeError(error) };
|
|
@@ -529,7 +529,7 @@ export const agentdbSemanticRoute = {
|
|
|
529
529
|
return { route: null, error: 'input is required (non-empty string, max 10KB)' };
|
|
530
530
|
const bridge = await getBridge();
|
|
531
531
|
const result = await bridge.bridgeSemanticRoute({ input });
|
|
532
|
-
return result ?? { route: null, error: '
|
|
532
|
+
return result ?? { route: null, error: 'AgentDB bridge not available. Use hooks route instead.' };
|
|
533
533
|
}
|
|
534
534
|
catch (error) {
|
|
535
535
|
return { route: null, error: sanitizeError(error) };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/cli",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.19",
|
|
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",
|