claude-flow 2.5.0-alpha.138 → 2.5.0-alpha.141
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/settings.json +3 -2
- package/README.md +50 -55
- package/bin/claude-flow +1 -1
- package/dist/src/cli/commands/checkpoint.js +156 -0
- package/dist/src/cli/commands/checkpoint.js.map +1 -0
- package/dist/src/cli/help-formatter.js +3 -0
- package/dist/src/cli/help-formatter.js.map +1 -1
- package/dist/src/cli/simple-commands/hooks.js +233 -0
- package/dist/src/cli/simple-commands/hooks.js.map +1 -1
- package/dist/src/core/version.js +1 -1
- package/dist/src/memory/swarm-memory.js +421 -340
- package/dist/src/memory/swarm-memory.js.map +1 -1
- package/dist/src/sdk/checkpoint-manager.js +237 -0
- package/dist/src/sdk/checkpoint-manager.js.map +1 -0
- package/dist/src/sdk/claude-flow-mcp-integration.js +221 -0
- package/dist/src/sdk/claude-flow-mcp-integration.js.map +1 -0
- package/dist/src/sdk/in-process-mcp.js +374 -0
- package/dist/src/sdk/in-process-mcp.js.map +1 -0
- package/dist/src/sdk/validation-demo.js +369 -0
- package/dist/src/sdk/validation-demo.js.map +1 -0
- package/package.json +1 -1
- package/scripts/validate-sdk-integration.ts +188 -0
- package/src/cli/commands/checkpoint.ts +220 -0
- package/src/cli/simple-commands/hooks.js +310 -0
- package/src/sdk/checkpoint-manager.ts +403 -0
- package/src/sdk/claude-flow-mcp-integration.ts +387 -0
- package/src/sdk/in-process-mcp.ts +489 -0
- package/src/sdk/validation-demo.ts +544 -0
- package/.claude/commands/coordination/README.md +0 -9
- package/.claude/commands/memory/README.md +0 -9
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Flow MCP Integration - SDK + Existing MCP Tools
|
|
3
|
+
* Claude-Flow v2.5-alpha.130+
|
|
4
|
+
*
|
|
5
|
+
* Integrates SDK-powered features WITH existing Claude Flow MCP tools:
|
|
6
|
+
* - Uses SDK for session management, forking, checkpoints
|
|
7
|
+
* - Uses Claude Flow MCP tools for swarm coordination, neural features
|
|
8
|
+
* - Combines both for maximum power
|
|
9
|
+
*
|
|
10
|
+
* VERIFIED: Real integration of SDK + MCP tools
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { query, type Query, type Options } from '@anthropic-ai/claude-code';
|
|
14
|
+
import { RealSessionForking } from './session-forking';
|
|
15
|
+
import { RealQueryController } from './query-control';
|
|
16
|
+
import { RealCheckpointManager } from './checkpoint-manager';
|
|
17
|
+
import {
|
|
18
|
+
createMathMcpServer,
|
|
19
|
+
createSessionMcpServer,
|
|
20
|
+
createCheckpointMcpServer,
|
|
21
|
+
createQueryControlMcpServer,
|
|
22
|
+
} from './in-process-mcp';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Integration Configuration
|
|
26
|
+
*/
|
|
27
|
+
export interface ClaudeFlowIntegrationConfig {
|
|
28
|
+
// SDK features
|
|
29
|
+
enableSessionForking?: boolean;
|
|
30
|
+
enableQueryControl?: boolean;
|
|
31
|
+
enableCheckpoints?: boolean;
|
|
32
|
+
checkpointInterval?: number;
|
|
33
|
+
|
|
34
|
+
// MCP tool configuration
|
|
35
|
+
mcpToolsConfig?: {
|
|
36
|
+
swarmTopology?: 'hierarchical' | 'mesh' | 'ring' | 'star';
|
|
37
|
+
maxAgents?: number;
|
|
38
|
+
enableNeural?: boolean;
|
|
39
|
+
enableMemory?: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// In-process MCP servers
|
|
43
|
+
inProcessServers?: {
|
|
44
|
+
math?: boolean;
|
|
45
|
+
session?: boolean;
|
|
46
|
+
checkpoint?: boolean;
|
|
47
|
+
queryControl?: boolean;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Integrated Claude Flow Session
|
|
53
|
+
*
|
|
54
|
+
* Combines SDK features with Claude Flow MCP tools
|
|
55
|
+
*/
|
|
56
|
+
export class IntegratedClaudeFlowSession {
|
|
57
|
+
private forking?: RealSessionForking;
|
|
58
|
+
private controller?: RealQueryController;
|
|
59
|
+
private checkpointManager?: RealCheckpointManager;
|
|
60
|
+
private config: ClaudeFlowIntegrationConfig;
|
|
61
|
+
|
|
62
|
+
constructor(config: ClaudeFlowIntegrationConfig = {}) {
|
|
63
|
+
this.config = config;
|
|
64
|
+
|
|
65
|
+
// Initialize SDK features based on config
|
|
66
|
+
if (config.enableSessionForking) {
|
|
67
|
+
this.forking = new RealSessionForking();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (config.enableQueryControl) {
|
|
71
|
+
this.controller = new RealQueryController();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (config.enableCheckpoints) {
|
|
75
|
+
this.checkpointManager = new RealCheckpointManager({
|
|
76
|
+
autoCheckpointInterval: config.checkpointInterval || 10,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Create a query that uses BOTH SDK features AND Claude Flow MCP tools
|
|
83
|
+
*/
|
|
84
|
+
async createIntegratedQuery(
|
|
85
|
+
prompt: string,
|
|
86
|
+
sessionId: string,
|
|
87
|
+
options: Partial<Options> = {}
|
|
88
|
+
): Promise<Query> {
|
|
89
|
+
// Build MCP servers configuration
|
|
90
|
+
const mcpServers: Record<string, any> = {};
|
|
91
|
+
|
|
92
|
+
// Add in-process servers if enabled
|
|
93
|
+
if (this.config.inProcessServers?.math) {
|
|
94
|
+
mcpServers.math = createMathMcpServer();
|
|
95
|
+
}
|
|
96
|
+
if (this.config.inProcessServers?.session) {
|
|
97
|
+
mcpServers.session = createSessionMcpServer();
|
|
98
|
+
}
|
|
99
|
+
if (this.config.inProcessServers?.checkpoint) {
|
|
100
|
+
mcpServers.checkpoint = createCheckpointMcpServer();
|
|
101
|
+
}
|
|
102
|
+
if (this.config.inProcessServers?.queryControl) {
|
|
103
|
+
mcpServers.queryControl = createQueryControlMcpServer();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Add Claude Flow MCP tools (these use stdio/subprocess)
|
|
107
|
+
// The MCP server is already configured globally via `claude mcp add claude-flow`
|
|
108
|
+
// So we don't need to add it here - it's automatically available
|
|
109
|
+
|
|
110
|
+
// Create the query
|
|
111
|
+
const integratedQuery = query({
|
|
112
|
+
prompt,
|
|
113
|
+
options: {
|
|
114
|
+
...options,
|
|
115
|
+
mcpServers: Object.keys(mcpServers).length > 0 ? mcpServers : undefined,
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// Track with SDK features
|
|
120
|
+
if (this.forking) {
|
|
121
|
+
await this.forking.trackSession(sessionId, integratedQuery);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (this.checkpointManager && this.config.enableCheckpoints) {
|
|
125
|
+
await this.checkpointManager.trackSession(
|
|
126
|
+
sessionId,
|
|
127
|
+
integratedQuery,
|
|
128
|
+
true // Auto-checkpoint
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return integratedQuery;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Fork a session (SDK) while using Claude Flow MCP tools for coordination
|
|
137
|
+
*/
|
|
138
|
+
async forkWithMcpCoordination(
|
|
139
|
+
baseSessionId: string,
|
|
140
|
+
forkDescription: string
|
|
141
|
+
) {
|
|
142
|
+
if (!this.forking) {
|
|
143
|
+
throw new Error('Session forking not enabled');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Fork using SDK
|
|
147
|
+
const fork = await this.forking.fork(baseSessionId, {
|
|
148
|
+
// In-process servers are inherited
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// Create checkpoint for fork point
|
|
152
|
+
if (this.checkpointManager) {
|
|
153
|
+
await this.checkpointManager.createCheckpoint(
|
|
154
|
+
baseSessionId,
|
|
155
|
+
`Fork created: ${forkDescription}`
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return fork;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Pause a query (SDK) and create checkpoint
|
|
164
|
+
*/
|
|
165
|
+
async pauseWithCheckpoint(
|
|
166
|
+
activeQuery: Query,
|
|
167
|
+
sessionId: string,
|
|
168
|
+
originalPrompt: string,
|
|
169
|
+
checkpointDescription: string
|
|
170
|
+
) {
|
|
171
|
+
if (!this.controller) {
|
|
172
|
+
throw new Error('Query control not enabled');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Request pause
|
|
176
|
+
this.controller.requestPause(sessionId);
|
|
177
|
+
|
|
178
|
+
// Pause query
|
|
179
|
+
const pausePointId = await this.controller.pauseQuery(
|
|
180
|
+
activeQuery,
|
|
181
|
+
sessionId,
|
|
182
|
+
originalPrompt,
|
|
183
|
+
{}
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
// Create checkpoint at pause point
|
|
187
|
+
if (this.checkpointManager) {
|
|
188
|
+
await this.checkpointManager.createCheckpoint(
|
|
189
|
+
sessionId,
|
|
190
|
+
checkpointDescription || `Paused at ${pausePointId}`
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return pausePointId;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Resume from checkpoint
|
|
199
|
+
*/
|
|
200
|
+
async resumeFromCheckpoint(checkpointId: string, continuePrompt?: string) {
|
|
201
|
+
if (!this.checkpointManager) {
|
|
202
|
+
throw new Error('Checkpoints not enabled');
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Rollback to checkpoint using SDK
|
|
206
|
+
return await this.checkpointManager.rollbackToCheckpoint(
|
|
207
|
+
checkpointId,
|
|
208
|
+
continuePrompt
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Get comprehensive metrics
|
|
214
|
+
*/
|
|
215
|
+
getMetrics() {
|
|
216
|
+
return {
|
|
217
|
+
queryControl: this.controller?.getMetrics(),
|
|
218
|
+
activeSessions: this.forking?.getActiveSessions(),
|
|
219
|
+
checkpoints: this.checkpointManager
|
|
220
|
+
? {
|
|
221
|
+
// Would need to track total checkpoints across sessions
|
|
222
|
+
enabled: true,
|
|
223
|
+
}
|
|
224
|
+
: { enabled: false },
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Example: Use Claude Flow MCP tools WITH SDK features
|
|
231
|
+
*/
|
|
232
|
+
export async function exampleClaudeFlowMcpWithSdk() {
|
|
233
|
+
const session = new IntegratedClaudeFlowSession({
|
|
234
|
+
enableSessionForking: true,
|
|
235
|
+
enableQueryControl: true,
|
|
236
|
+
enableCheckpoints: true,
|
|
237
|
+
checkpointInterval: 10,
|
|
238
|
+
mcpToolsConfig: {
|
|
239
|
+
swarmTopology: 'mesh',
|
|
240
|
+
maxAgents: 8,
|
|
241
|
+
enableNeural: true,
|
|
242
|
+
enableMemory: true,
|
|
243
|
+
},
|
|
244
|
+
inProcessServers: {
|
|
245
|
+
math: true,
|
|
246
|
+
session: true,
|
|
247
|
+
checkpoint: true,
|
|
248
|
+
queryControl: true,
|
|
249
|
+
},
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
// Create query that uses BOTH:
|
|
253
|
+
// - In-process MCP servers (SDK)
|
|
254
|
+
// - Claude Flow MCP tools (stdio)
|
|
255
|
+
const mainQuery = await session.createIntegratedQuery(
|
|
256
|
+
`
|
|
257
|
+
Initialize a mesh swarm with 8 agents using Claude Flow MCP tools.
|
|
258
|
+
Then use the math MCP server to calculate factorial of 10.
|
|
259
|
+
Store results in session and create a checkpoint.
|
|
260
|
+
`,
|
|
261
|
+
'integrated-session',
|
|
262
|
+
{}
|
|
263
|
+
);
|
|
264
|
+
|
|
265
|
+
console.log('Created integrated query with:');
|
|
266
|
+
console.log('- SDK: Session forking, checkpoints, query control');
|
|
267
|
+
console.log('- In-process MCP: math, session, checkpoint, queryControl');
|
|
268
|
+
console.log('- Claude Flow MCP tools: swarm_init, agent_spawn, etc.');
|
|
269
|
+
|
|
270
|
+
// Fork the session to try different approaches
|
|
271
|
+
const fork1 = await session.forkWithMcpCoordination(
|
|
272
|
+
'integrated-session',
|
|
273
|
+
'Try hierarchical topology'
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
console.log('Forked session:', fork1.sessionId);
|
|
277
|
+
|
|
278
|
+
// Create checkpoint before major changes
|
|
279
|
+
if (session['checkpointManager']) {
|
|
280
|
+
const cp = await session['checkpointManager'].createCheckpoint(
|
|
281
|
+
'integrated-session',
|
|
282
|
+
'Before swarm initialization'
|
|
283
|
+
);
|
|
284
|
+
console.log('Checkpoint created:', cp);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Get metrics
|
|
288
|
+
const metrics = session.getMetrics();
|
|
289
|
+
console.log('Metrics:', metrics);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* NPX Command Integration
|
|
294
|
+
*
|
|
295
|
+
* Show how to use Claude Flow NPX commands with SDK features
|
|
296
|
+
*/
|
|
297
|
+
export function exampleNpxIntegration() {
|
|
298
|
+
console.log(`
|
|
299
|
+
╔════════════════════════════════════════════════════════════╗
|
|
300
|
+
║ Claude Flow NPX + SDK Integration ║
|
|
301
|
+
╚════════════════════════════════════════════════════════════╝
|
|
302
|
+
|
|
303
|
+
# Install Claude Flow MCP server
|
|
304
|
+
claude mcp add claude-flow npx claude-flow@alpha mcp start
|
|
305
|
+
|
|
306
|
+
# Optional: Add ruv-swarm for enhanced coordination
|
|
307
|
+
claude mcp add ruv-swarm npx ruv-swarm mcp start
|
|
308
|
+
|
|
309
|
+
# Now use SDK features WITH MCP tools:
|
|
310
|
+
|
|
311
|
+
## 1. Session Forking + Swarm Coordination
|
|
312
|
+
import { query } from '@anthropic-ai/claude-code';
|
|
313
|
+
import { RealSessionForking } from './sdk/session-forking';
|
|
314
|
+
|
|
315
|
+
const forking = new RealSessionForking();
|
|
316
|
+
const q = query({
|
|
317
|
+
prompt: 'Use mcp__claude-flow__swarm_init to create mesh topology',
|
|
318
|
+
options: {
|
|
319
|
+
// MCP tools are auto-available via 'claude mcp add'
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
await forking.trackSession('swarm-session', q);
|
|
324
|
+
const fork = await forking.fork('swarm-session');
|
|
325
|
+
|
|
326
|
+
## 2. Checkpoints + Neural Training
|
|
327
|
+
import { RealCheckpointManager } from './sdk/checkpoint-manager';
|
|
328
|
+
|
|
329
|
+
const manager = new RealCheckpointManager();
|
|
330
|
+
const q = query({
|
|
331
|
+
prompt: 'Use mcp__claude-flow__neural_train to train patterns',
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
await manager.trackSession('neural-session', q, true);
|
|
335
|
+
const cp = await manager.createCheckpoint('neural-session', 'Before training');
|
|
336
|
+
|
|
337
|
+
// Train neural patterns with Claude Flow MCP
|
|
338
|
+
// Then rollback if needed:
|
|
339
|
+
await manager.rollbackToCheckpoint(cp);
|
|
340
|
+
|
|
341
|
+
## 3. Query Control + Task Orchestration
|
|
342
|
+
import { RealQueryController } from './sdk/query-control';
|
|
343
|
+
|
|
344
|
+
const controller = new RealQueryController();
|
|
345
|
+
const q = query({
|
|
346
|
+
prompt: \`
|
|
347
|
+
Use mcp__claude-flow__task_orchestrate to:
|
|
348
|
+
- Break down complex task
|
|
349
|
+
- Distribute to agents
|
|
350
|
+
- Monitor progress
|
|
351
|
+
\`,
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
// Pause if needed
|
|
355
|
+
controller.requestPause('task-session');
|
|
356
|
+
const pauseId = await controller.pauseQuery(q, 'task-session', 'Task', {});
|
|
357
|
+
|
|
358
|
+
// Resume later
|
|
359
|
+
const resumed = await controller.resumeQuery('task-session');
|
|
360
|
+
|
|
361
|
+
## 4. In-Process MCP + Claude Flow MCP Together
|
|
362
|
+
import { createMathMcpServer } from './sdk/in-process-mcp';
|
|
363
|
+
|
|
364
|
+
const q = query({
|
|
365
|
+
prompt: \`
|
|
366
|
+
Use math server to calculate factorial.
|
|
367
|
+
Use mcp__claude-flow__memory_usage to store result.
|
|
368
|
+
Use mcp__claude-flow__agent_spawn to process result.
|
|
369
|
+
\`,
|
|
370
|
+
options: {
|
|
371
|
+
mcpServers: {
|
|
372
|
+
math: createMathMcpServer(), // In-process (fast!)
|
|
373
|
+
// claude-flow MCP tools auto-available
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
╔════════════════════════════════════════════════════════════╗
|
|
379
|
+
║ Key Benefits: ║
|
|
380
|
+
║ ✅ SDK = In-process, zero overhead ║
|
|
381
|
+
║ ✅ MCP tools = Coordination, neural, swarms ║
|
|
382
|
+
║ ✅ Together = Maximum power and flexibility ║
|
|
383
|
+
╚════════════════════════════════════════════════════════════╝
|
|
384
|
+
`);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export { IntegratedClaudeFlowSession };
|