claude-flow 1.0.0

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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +612 -0
  3. package/bin/claude-flow +0 -0
  4. package/bin/claude-flow-simple +0 -0
  5. package/bin/claude-flow-typecheck +0 -0
  6. package/deno.json +84 -0
  7. package/package.json +45 -0
  8. package/scripts/check-links.ts +274 -0
  9. package/scripts/check-performance-regression.ts +168 -0
  10. package/scripts/claude-sparc.sh +562 -0
  11. package/scripts/coverage-report.ts +692 -0
  12. package/scripts/demo-task-system.ts +224 -0
  13. package/scripts/install.js +72 -0
  14. package/scripts/test-batch-tasks.ts +29 -0
  15. package/scripts/test-coordination-features.ts +238 -0
  16. package/scripts/test-mcp.ts +251 -0
  17. package/scripts/test-runner.ts +571 -0
  18. package/scripts/validate-examples.ts +288 -0
  19. package/src/cli/cli-core.ts +273 -0
  20. package/src/cli/commands/agent.ts +83 -0
  21. package/src/cli/commands/config.ts +442 -0
  22. package/src/cli/commands/help.ts +765 -0
  23. package/src/cli/commands/index.ts +963 -0
  24. package/src/cli/commands/mcp.ts +191 -0
  25. package/src/cli/commands/memory.ts +74 -0
  26. package/src/cli/commands/monitor.ts +403 -0
  27. package/src/cli/commands/session.ts +595 -0
  28. package/src/cli/commands/start.ts +156 -0
  29. package/src/cli/commands/status.ts +345 -0
  30. package/src/cli/commands/task.ts +79 -0
  31. package/src/cli/commands/workflow.ts +763 -0
  32. package/src/cli/completion.ts +553 -0
  33. package/src/cli/formatter.ts +310 -0
  34. package/src/cli/index.ts +211 -0
  35. package/src/cli/main.ts +23 -0
  36. package/src/cli/repl.ts +1050 -0
  37. package/src/cli/simple-cli.js +211 -0
  38. package/src/cli/simple-cli.ts +211 -0
  39. package/src/coordination/README.md +400 -0
  40. package/src/coordination/advanced-scheduler.ts +487 -0
  41. package/src/coordination/circuit-breaker.ts +366 -0
  42. package/src/coordination/conflict-resolution.ts +490 -0
  43. package/src/coordination/dependency-graph.ts +475 -0
  44. package/src/coordination/index.ts +63 -0
  45. package/src/coordination/manager.ts +460 -0
  46. package/src/coordination/messaging.ts +290 -0
  47. package/src/coordination/metrics.ts +585 -0
  48. package/src/coordination/resources.ts +322 -0
  49. package/src/coordination/scheduler.ts +390 -0
  50. package/src/coordination/work-stealing.ts +224 -0
  51. package/src/core/config.ts +627 -0
  52. package/src/core/event-bus.ts +186 -0
  53. package/src/core/json-persistence.ts +183 -0
  54. package/src/core/logger.ts +262 -0
  55. package/src/core/orchestrator-fixed.ts +312 -0
  56. package/src/core/orchestrator.ts +1234 -0
  57. package/src/core/persistence.ts +276 -0
  58. package/src/mcp/auth.ts +438 -0
  59. package/src/mcp/claude-flow-tools.ts +1280 -0
  60. package/src/mcp/load-balancer.ts +510 -0
  61. package/src/mcp/router.ts +240 -0
  62. package/src/mcp/server.ts +548 -0
  63. package/src/mcp/session-manager.ts +418 -0
  64. package/src/mcp/tools.ts +180 -0
  65. package/src/mcp/transports/base.ts +21 -0
  66. package/src/mcp/transports/http.ts +457 -0
  67. package/src/mcp/transports/stdio.ts +254 -0
  68. package/src/memory/backends/base.ts +22 -0
  69. package/src/memory/backends/markdown.ts +283 -0
  70. package/src/memory/backends/sqlite.ts +329 -0
  71. package/src/memory/cache.ts +238 -0
  72. package/src/memory/indexer.ts +238 -0
  73. package/src/memory/manager.ts +572 -0
  74. package/src/terminal/adapters/base.ts +29 -0
  75. package/src/terminal/adapters/native.ts +504 -0
  76. package/src/terminal/adapters/vscode.ts +340 -0
  77. package/src/terminal/manager.ts +308 -0
  78. package/src/terminal/pool.ts +271 -0
  79. package/src/terminal/session.ts +250 -0
  80. package/src/terminal/vscode-bridge.ts +242 -0
  81. package/src/utils/errors.ts +231 -0
  82. package/src/utils/helpers.ts +476 -0
  83. package/src/utils/types.ts +493 -0
@@ -0,0 +1,493 @@
1
+ /**
2
+ * Core type definitions for Claude-Flow
3
+ */
4
+
5
+ // Import orchestrator metrics type
6
+ export interface OrchestratorMetrics {
7
+ uptime: number;
8
+ totalAgents: number;
9
+ activeAgents: number;
10
+ totalTasks: number;
11
+ completedTasks: number;
12
+ failedTasks: number;
13
+ queuedTasks: number;
14
+ avgTaskDuration: number;
15
+ memoryUsage: {
16
+ rss: number;
17
+ heapUsed: number;
18
+ heapTotal: number;
19
+ external: number;
20
+ arrayBuffers: number;
21
+ };
22
+ cpuUsage: {
23
+ user: number;
24
+ system: number;
25
+ };
26
+ timestamp: Date;
27
+ }
28
+
29
+ // Agent-related types
30
+ export interface AgentProfile {
31
+ id: string;
32
+ name: string;
33
+ type: 'coordinator' | 'researcher' | 'implementer' | 'analyst' | 'custom';
34
+ capabilities: string[];
35
+ systemPrompt: string;
36
+ maxConcurrentTasks: number;
37
+ priority: number;
38
+ environment?: Record<string, string>;
39
+ workingDirectory?: string;
40
+ shell?: string;
41
+ metadata?: Record<string, unknown>;
42
+ }
43
+
44
+ export interface AgentSession {
45
+ id: string;
46
+ agentId: string;
47
+ terminalId: string;
48
+ startTime: Date;
49
+ endTime?: Date;
50
+ status: 'active' | 'idle' | 'terminated' | 'error';
51
+ lastActivity: Date;
52
+ memoryBankId: string;
53
+ }
54
+
55
+ // Task-related types
56
+ export interface Task {
57
+ id: string;
58
+ type: string;
59
+ description: string;
60
+ priority: number;
61
+ dependencies: string[];
62
+ assignedAgent?: string;
63
+ status: TaskStatus;
64
+ input: Record<string, unknown>;
65
+ output?: Record<string, unknown>;
66
+ error?: Error;
67
+ createdAt: Date;
68
+ startedAt?: Date;
69
+ completedAt?: Date;
70
+ metadata?: Record<string, unknown>;
71
+ }
72
+
73
+ export type TaskStatus =
74
+ | 'pending'
75
+ | 'queued'
76
+ | 'assigned'
77
+ | 'running'
78
+ | 'completed'
79
+ | 'failed'
80
+ | 'cancelled';
81
+
82
+ // Memory-related types
83
+ export interface MemoryEntry {
84
+ id: string;
85
+ agentId: string;
86
+ sessionId: string;
87
+ type: 'observation' | 'insight' | 'decision' | 'artifact' | 'error';
88
+ content: string;
89
+ context: Record<string, unknown>;
90
+ timestamp: Date;
91
+ tags: string[];
92
+ version: number;
93
+ parentId?: string;
94
+ metadata?: Record<string, unknown>;
95
+ }
96
+
97
+ export interface MemoryQuery {
98
+ agentId?: string;
99
+ sessionId?: string;
100
+ type?: MemoryEntry['type'];
101
+ tags?: string[];
102
+ startTime?: Date;
103
+ endTime?: Date;
104
+ search?: string;
105
+ limit?: number;
106
+ offset?: number;
107
+ namespace?: string;
108
+ }
109
+
110
+ // Event-related types
111
+ export enum SystemEvents {
112
+ // Agent events
113
+ AGENT_SPAWNED = 'agent:spawned',
114
+ AGENT_TERMINATED = 'agent:terminated',
115
+ AGENT_ERROR = 'agent:error',
116
+ AGENT_IDLE = 'agent:idle',
117
+ AGENT_ACTIVE = 'agent:active',
118
+
119
+ // Task events
120
+ TASK_CREATED = 'task:created',
121
+ TASK_ASSIGNED = 'task:assigned',
122
+ TASK_STARTED = 'task:started',
123
+ TASK_COMPLETED = 'task:completed',
124
+ TASK_FAILED = 'task:failed',
125
+ TASK_CANCELLED = 'task:cancelled',
126
+
127
+ // Memory events
128
+ MEMORY_CREATED = 'memory:created',
129
+ MEMORY_UPDATED = 'memory:updated',
130
+ MEMORY_DELETED = 'memory:deleted',
131
+ MEMORY_SYNCED = 'memory:synced',
132
+
133
+ // System events
134
+ SYSTEM_READY = 'system:ready',
135
+ SYSTEM_SHUTDOWN = 'system:shutdown',
136
+ SYSTEM_ERROR = 'system:error',
137
+ SYSTEM_HEALTHCHECK = 'system:healthcheck',
138
+
139
+ // Coordination events
140
+ RESOURCE_ACQUIRED = 'resource:acquired',
141
+ RESOURCE_RELEASED = 'resource:released',
142
+ DEADLOCK_DETECTED = 'deadlock:detected',
143
+ MESSAGE_SENT = 'message:sent',
144
+ MESSAGE_RECEIVED = 'message:received',
145
+ }
146
+
147
+ export interface EventMap extends Record<string, unknown> {
148
+ [SystemEvents.AGENT_SPAWNED]: { agentId: string; profile: AgentProfile; sessionId: string };
149
+ [SystemEvents.AGENT_TERMINATED]: { agentId: string; reason: string };
150
+ [SystemEvents.AGENT_ERROR]: { agentId: string; error: Error };
151
+ [SystemEvents.AGENT_IDLE]: { agentId: string };
152
+ [SystemEvents.AGENT_ACTIVE]: { agentId: string; taskId: string };
153
+
154
+ [SystemEvents.TASK_CREATED]: { task: Task };
155
+ [SystemEvents.TASK_ASSIGNED]: { taskId: string; agentId: string };
156
+ [SystemEvents.TASK_STARTED]: { taskId: string; agentId: string };
157
+ [SystemEvents.TASK_COMPLETED]: { taskId: string; result: unknown };
158
+ [SystemEvents.TASK_FAILED]: { taskId: string; error: Error };
159
+ [SystemEvents.TASK_CANCELLED]: { taskId: string; reason: string };
160
+
161
+ [SystemEvents.MEMORY_CREATED]: { entry: MemoryEntry };
162
+ [SystemEvents.MEMORY_UPDATED]: { entry: MemoryEntry; previousVersion: number };
163
+ [SystemEvents.MEMORY_DELETED]: { entryId: string };
164
+ [SystemEvents.MEMORY_SYNCED]: { entries: MemoryEntry[] };
165
+
166
+ [SystemEvents.SYSTEM_READY]: { timestamp: Date };
167
+ [SystemEvents.SYSTEM_SHUTDOWN]: { reason: string };
168
+ [SystemEvents.SYSTEM_ERROR]: { error: Error; component: string };
169
+ [SystemEvents.SYSTEM_HEALTHCHECK]: { status: HealthStatus };
170
+
171
+ [SystemEvents.RESOURCE_ACQUIRED]: { resourceId: string; agentId: string };
172
+ [SystemEvents.RESOURCE_RELEASED]: { resourceId: string; agentId: string };
173
+ [SystemEvents.DEADLOCK_DETECTED]: { agents: string[]; resources: string[] };
174
+ [SystemEvents.MESSAGE_SENT]: { from: string; to: string; message: Message };
175
+ [SystemEvents.MESSAGE_RECEIVED]: { from: string; to: string; message: Message };
176
+
177
+ // Additional events
178
+ 'metrics:collected': OrchestratorMetrics;
179
+ }
180
+
181
+ // Configuration types
182
+ export interface Config {
183
+ orchestrator: OrchestratorConfig;
184
+ terminal: TerminalConfig;
185
+ memory: MemoryConfig;
186
+ coordination: CoordinationConfig;
187
+ mcp: MCPConfig;
188
+ logging: LoggingConfig;
189
+ }
190
+
191
+ export interface OrchestratorConfig {
192
+ maxConcurrentAgents: number;
193
+ taskQueueSize: number;
194
+ healthCheckInterval: number;
195
+ shutdownTimeout: number;
196
+ maintenanceInterval?: number;
197
+ metricsInterval?: number;
198
+ persistSessions?: boolean;
199
+ dataDir?: string;
200
+ sessionRetentionMs?: number;
201
+ taskHistoryRetentionMs?: number;
202
+ taskMaxRetries?: number;
203
+ }
204
+
205
+ export interface TerminalConfig {
206
+ type: 'vscode' | 'native' | 'auto';
207
+ poolSize: number;
208
+ recycleAfter: number;
209
+ healthCheckInterval: number;
210
+ commandTimeout: number;
211
+ }
212
+
213
+ export interface MemoryConfig {
214
+ backend: 'sqlite' | 'markdown' | 'hybrid';
215
+ cacheSizeMB: number;
216
+ syncInterval: number;
217
+ conflictResolution: 'last-write' | 'crdt' | 'manual';
218
+ retentionDays: number;
219
+ sqlitePath?: string;
220
+ markdownDir?: string;
221
+ }
222
+
223
+ export interface CoordinationConfig {
224
+ maxRetries: number;
225
+ retryDelay: number;
226
+ deadlockDetection: boolean;
227
+ resourceTimeout: number;
228
+ messageTimeout: number;
229
+ }
230
+
231
+ export interface MCPConfig {
232
+ transport: 'stdio' | 'http' | 'websocket';
233
+ host?: string;
234
+ port?: number;
235
+ tlsEnabled?: boolean;
236
+ authToken?: string;
237
+ auth?: MCPAuthConfig;
238
+ loadBalancer?: MCPLoadBalancerConfig;
239
+ sessionTimeout?: number;
240
+ maxSessions?: number;
241
+ enableMetrics?: boolean;
242
+ corsEnabled?: boolean;
243
+ corsOrigins?: string[];
244
+ }
245
+
246
+ export interface LoggingConfig {
247
+ level: 'debug' | 'info' | 'warn' | 'error';
248
+ format: 'json' | 'text';
249
+ destination: 'console' | 'file' | 'both';
250
+ filePath?: string;
251
+ maxFileSize?: number;
252
+ maxFiles?: number;
253
+ }
254
+
255
+ // Health and monitoring types
256
+ export interface HealthStatus {
257
+ status: 'healthy' | 'degraded' | 'unhealthy';
258
+ components: Record<string, ComponentHealth>;
259
+ timestamp: Date;
260
+ }
261
+
262
+ export interface ComponentHealth {
263
+ name: string;
264
+ status: 'healthy' | 'degraded' | 'unhealthy';
265
+ lastCheck: Date;
266
+ error?: string;
267
+ metrics?: Record<string, number>;
268
+ }
269
+
270
+ // Message passing types
271
+ export interface Message {
272
+ id: string;
273
+ type: string;
274
+ payload: unknown;
275
+ timestamp: Date;
276
+ priority: number;
277
+ expiry?: Date;
278
+ }
279
+
280
+ // Resource management types
281
+ export interface Resource {
282
+ id: string;
283
+ type: string;
284
+ owner?: string;
285
+ locked: boolean;
286
+ lockedBy?: string;
287
+ lockedAt?: Date;
288
+ metadata?: Record<string, unknown>;
289
+ }
290
+
291
+ // MCP types - Full protocol compliance
292
+ export interface MCPProtocolVersion {
293
+ major: number;
294
+ minor: number;
295
+ patch: number;
296
+ }
297
+
298
+ export interface MCPCapabilities {
299
+ logging?: {
300
+ level?: 'debug' | 'info' | 'warn' | 'error';
301
+ };
302
+ prompts?: {
303
+ listChanged?: boolean;
304
+ };
305
+ resources?: {
306
+ listChanged?: boolean;
307
+ subscribe?: boolean;
308
+ };
309
+ tools?: {
310
+ listChanged?: boolean;
311
+ };
312
+ sampling?: Record<string, unknown>;
313
+ }
314
+
315
+ export interface MCPInitializeParams {
316
+ protocolVersion: MCPProtocolVersion;
317
+ capabilities: MCPCapabilities;
318
+ clientInfo: {
319
+ name: string;
320
+ version: string;
321
+ };
322
+ }
323
+
324
+ export interface MCPInitializeResult {
325
+ protocolVersion: MCPProtocolVersion;
326
+ capabilities: MCPCapabilities;
327
+ serverInfo: {
328
+ name: string;
329
+ version: string;
330
+ };
331
+ instructions?: string;
332
+ }
333
+
334
+ export interface MCPTool {
335
+ name: string;
336
+ description: string;
337
+ inputSchema: Record<string, unknown>;
338
+ handler: (input: unknown, context?: MCPContext) => Promise<unknown>;
339
+ }
340
+
341
+ export interface MCPPrompt {
342
+ name: string;
343
+ description?: string;
344
+ arguments?: Array<{
345
+ name: string;
346
+ description?: string;
347
+ required?: boolean;
348
+ }>;
349
+ }
350
+
351
+ export interface MCPResource {
352
+ uri: string;
353
+ name: string;
354
+ description?: string;
355
+ mimeType?: string;
356
+ }
357
+
358
+ export interface MCPRequest {
359
+ jsonrpc: '2.0';
360
+ id: string | number;
361
+ method: string;
362
+ params?: unknown;
363
+ }
364
+
365
+ export interface MCPResponse {
366
+ jsonrpc: '2.0';
367
+ id: string | number;
368
+ result?: unknown;
369
+ error?: MCPError;
370
+ }
371
+
372
+ export interface MCPNotification {
373
+ jsonrpc: '2.0';
374
+ method: string;
375
+ params?: unknown;
376
+ }
377
+
378
+ export interface MCPError {
379
+ code: number;
380
+ message: string;
381
+ data?: unknown;
382
+ }
383
+
384
+ export interface MCPToolCall {
385
+ name: string;
386
+ arguments?: Record<string, unknown>;
387
+ }
388
+
389
+ export interface MCPToolResult {
390
+ content: Array<{
391
+ type: 'text' | 'image' | 'resource';
392
+ text?: string;
393
+ data?: string;
394
+ mimeType?: string;
395
+ }>;
396
+ isError?: boolean;
397
+ }
398
+
399
+ export interface MCPLogEntry {
400
+ level: 'debug' | 'info' | 'warn' | 'error';
401
+ data?: unknown;
402
+ logger?: string;
403
+ }
404
+
405
+ export interface MCPSession {
406
+ id: string;
407
+ clientInfo: {
408
+ name: string;
409
+ version: string;
410
+ };
411
+ protocolVersion: MCPProtocolVersion;
412
+ capabilities: MCPCapabilities;
413
+ isInitialized: boolean;
414
+ createdAt: Date;
415
+ lastActivity: Date;
416
+ transport: 'stdio' | 'http' | 'websocket';
417
+ authenticated: boolean;
418
+ authData?: {
419
+ token?: string;
420
+ user?: string;
421
+ permissions?: string[];
422
+ };
423
+ }
424
+
425
+ export interface MCPAuthConfig {
426
+ enabled: boolean;
427
+ method: 'token' | 'basic' | 'oauth';
428
+ tokens?: string[];
429
+ users?: Array<{
430
+ username: string;
431
+ password: string;
432
+ permissions: string[];
433
+ }>;
434
+ jwtSecret?: string;
435
+ sessionTimeout?: number;
436
+ }
437
+
438
+ export interface MCPLoadBalancerConfig {
439
+ enabled: boolean;
440
+ strategy: 'round-robin' | 'least-connections' | 'weighted';
441
+ maxRequestsPerSecond: number;
442
+ healthCheckInterval: number;
443
+ circuitBreakerThreshold: number;
444
+ }
445
+
446
+ export interface MCPMetrics {
447
+ totalRequests: number;
448
+ successfulRequests: number;
449
+ failedRequests: number;
450
+ averageResponseTime: number;
451
+ activeSessions: number;
452
+ toolInvocations: Record<string, number>;
453
+ errors: Record<string, number>;
454
+ lastReset: Date;
455
+ }
456
+
457
+ // Interface declarations for dependency injection
458
+ export interface ILogger {
459
+ debug(message: string, meta?: unknown): void;
460
+ info(message: string, meta?: unknown): void;
461
+ warn(message: string, meta?: unknown): void;
462
+ error(message: string, error?: unknown): void;
463
+ configure(config: LoggingConfig): Promise<void>;
464
+ }
465
+
466
+ export interface IEventBus {
467
+ emit(event: string, data?: unknown): void;
468
+ on(event: string, handler: (data: unknown) => void): void;
469
+ off(event: string, handler: (data: unknown) => void): void;
470
+ once(event: string, handler: (data: unknown) => void): void;
471
+ }
472
+
473
+ // Terminal types
474
+ export interface Terminal {
475
+ id: string;
476
+ pid?: number;
477
+ type: 'vscode' | 'native';
478
+ status: 'active' | 'idle' | 'dead';
479
+ }
480
+
481
+ export interface TerminalCommand {
482
+ command: string;
483
+ args?: string[];
484
+ env?: Record<string, string>;
485
+ cwd?: string;
486
+ timeout?: number;
487
+ }
488
+
489
+ export interface MCPContext {
490
+ sessionId: string;
491
+ agentId?: string;
492
+ logger: ILogger;
493
+ }