@sparkleideas/hooks 3.0.0-alpha.7-patch.17 → 3.0.0-alpha.7-patch.18

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 (69) hide show
  1. package/package.json +6 -8
  2. package/dist/bridge/official-hooks-bridge.d.ts +0 -99
  3. package/dist/bridge/official-hooks-bridge.d.ts.map +0 -1
  4. package/dist/bridge/official-hooks-bridge.js +0 -280
  5. package/dist/bridge/official-hooks-bridge.js.map +0 -1
  6. package/dist/cli/guidance-cli.d.ts +0 -17
  7. package/dist/cli/guidance-cli.d.ts.map +0 -1
  8. package/dist/cli/guidance-cli.js +0 -486
  9. package/dist/cli/guidance-cli.js.map +0 -1
  10. package/dist/daemons/index.d.ts +0 -204
  11. package/dist/daemons/index.d.ts.map +0 -1
  12. package/dist/daemons/index.js +0 -443
  13. package/dist/daemons/index.js.map +0 -1
  14. package/dist/executor/index.d.ts +0 -80
  15. package/dist/executor/index.d.ts.map +0 -1
  16. package/dist/executor/index.js +0 -273
  17. package/dist/executor/index.js.map +0 -1
  18. package/dist/index.d.ts +0 -51
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js +0 -85
  21. package/dist/index.js.map +0 -1
  22. package/dist/llm/index.d.ts +0 -11
  23. package/dist/llm/index.d.ts.map +0 -1
  24. package/dist/llm/index.js +0 -11
  25. package/dist/llm/index.js.map +0 -1
  26. package/dist/llm/llm-hooks.d.ts +0 -93
  27. package/dist/llm/llm-hooks.d.ts.map +0 -1
  28. package/dist/llm/llm-hooks.js +0 -382
  29. package/dist/llm/llm-hooks.js.map +0 -1
  30. package/dist/mcp/index.d.ts +0 -61
  31. package/dist/mcp/index.d.ts.map +0 -1
  32. package/dist/mcp/index.js +0 -501
  33. package/dist/mcp/index.js.map +0 -1
  34. package/dist/reasoningbank/guidance-provider.d.ts +0 -78
  35. package/dist/reasoningbank/guidance-provider.d.ts.map +0 -1
  36. package/dist/reasoningbank/guidance-provider.js +0 -350
  37. package/dist/reasoningbank/guidance-provider.js.map +0 -1
  38. package/dist/reasoningbank/index.d.ts +0 -255
  39. package/dist/reasoningbank/index.d.ts.map +0 -1
  40. package/dist/reasoningbank/index.js +0 -825
  41. package/dist/reasoningbank/index.js.map +0 -1
  42. package/dist/registry/index.d.ts +0 -85
  43. package/dist/registry/index.d.ts.map +0 -1
  44. package/dist/registry/index.js +0 -212
  45. package/dist/registry/index.js.map +0 -1
  46. package/dist/statusline/index.d.ts +0 -144
  47. package/dist/statusline/index.d.ts.map +0 -1
  48. package/dist/statusline/index.js +0 -588
  49. package/dist/statusline/index.js.map +0 -1
  50. package/dist/swarm/index.d.ts +0 -271
  51. package/dist/swarm/index.d.ts.map +0 -1
  52. package/dist/swarm/index.js +0 -638
  53. package/dist/swarm/index.js.map +0 -1
  54. package/dist/types.d.ts +0 -525
  55. package/dist/types.d.ts.map +0 -1
  56. package/dist/types.js +0 -56
  57. package/dist/types.js.map +0 -1
  58. package/dist/workers/index.d.ts +0 -238
  59. package/dist/workers/index.d.ts.map +0 -1
  60. package/dist/workers/index.js +0 -1732
  61. package/dist/workers/index.js.map +0 -1
  62. package/dist/workers/mcp-tools.d.ts +0 -37
  63. package/dist/workers/mcp-tools.d.ts.map +0 -1
  64. package/dist/workers/mcp-tools.js +0 -414
  65. package/dist/workers/mcp-tools.js.map +0 -1
  66. package/dist/workers/session-hook.d.ts +0 -42
  67. package/dist/workers/session-hook.d.ts.map +0 -1
  68. package/dist/workers/session-hook.js +0 -172
  69. package/dist/workers/session-hook.js.map +0 -1
@@ -1,638 +0,0 @@
1
- /**
2
- * V3 Swarm Communication Hooks
3
- *
4
- * Enables agent-to-agent communication, pattern broadcasting,
5
- * consensus building, and task handoff coordination.
6
- *
7
- * @module @sparkleideas/hooks/swarm
8
- */
9
- import { EventEmitter } from 'node:events';
10
- import { reasoningBank } from '../reasoningbank/index.js';
11
- const DEFAULT_CONFIG = {
12
- agentId: `agent_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`,
13
- agentName: 'anonymous',
14
- messageRetention: 3600000, // 1 hour
15
- consensusTimeout: 30000, // 30 seconds
16
- autoAcknowledge: true,
17
- autoBroadcastPatterns: true,
18
- patternBroadcastThreshold: 0.7,
19
- };
20
- // ============================================================================
21
- // SwarmCommunication Class
22
- // ============================================================================
23
- /**
24
- * Swarm Communication Hub
25
- *
26
- * Manages agent-to-agent communication within the swarm.
27
- */
28
- export class SwarmCommunication extends EventEmitter {
29
- config;
30
- messages = new Map();
31
- broadcasts = new Map();
32
- consensusRequests = new Map();
33
- handoffs = new Map();
34
- agents = new Map();
35
- initialized = false;
36
- cleanupTimer;
37
- // Metrics
38
- metrics = {
39
- messagesSent: 0,
40
- messagesReceived: 0,
41
- patternsBroadcast: 0,
42
- consensusInitiated: 0,
43
- consensusResolved: 0,
44
- handoffsInitiated: 0,
45
- handoffsCompleted: 0,
46
- };
47
- constructor(config = {}) {
48
- super();
49
- this.config = { ...DEFAULT_CONFIG, ...config };
50
- }
51
- /**
52
- * Initialize swarm communication
53
- */
54
- async initialize() {
55
- if (this.initialized)
56
- return;
57
- // Register self in agent registry
58
- this.registerAgent({
59
- id: this.config.agentId,
60
- name: this.config.agentName,
61
- status: 'idle',
62
- lastSeen: Date.now(),
63
- capabilities: [],
64
- patternsShared: 0,
65
- handoffsReceived: 0,
66
- handoffsCompleted: 0,
67
- });
68
- // Start cleanup interval (store reference to clear on shutdown)
69
- this.cleanupTimer = setInterval(() => this.cleanup(), 60000);
70
- // Listen for pattern storage to auto-broadcast
71
- if (this.config.autoBroadcastPatterns) {
72
- reasoningBank.on('pattern:stored', async (data) => {
73
- const patterns = await reasoningBank.searchPatterns(data.id, 1);
74
- if (patterns.length > 0 && patterns[0].pattern.quality >= this.config.patternBroadcastThreshold) {
75
- await this.broadcastPattern(patterns[0].pattern);
76
- }
77
- });
78
- }
79
- this.initialized = true;
80
- this.emit('initialized', { agentId: this.config.agentId });
81
- }
82
- /**
83
- * Shutdown swarm communication and cleanup resources
84
- */
85
- async shutdown() {
86
- if (!this.initialized)
87
- return;
88
- // Clear cleanup timer to prevent memory leaks
89
- if (this.cleanupTimer) {
90
- clearInterval(this.cleanupTimer);
91
- this.cleanupTimer = undefined;
92
- }
93
- // Clear all maps
94
- this.messages.clear();
95
- this.broadcasts.clear();
96
- this.consensusRequests.clear();
97
- this.handoffs.clear();
98
- this.agents.clear();
99
- this.initialized = false;
100
- this.emit('shutdown', { agentId: this.config.agentId });
101
- }
102
- // ============================================================================
103
- // Agent-to-Agent Messaging
104
- // ============================================================================
105
- /**
106
- * Send a message to another agent
107
- */
108
- async sendMessage(to, content, options = {}) {
109
- await this.ensureInitialized();
110
- const message = {
111
- id: `msg_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
112
- from: this.config.agentId,
113
- to,
114
- type: options.type || 'context',
115
- content,
116
- metadata: options.metadata || {},
117
- timestamp: Date.now(),
118
- ttl: options.ttl,
119
- priority: options.priority || 'normal',
120
- };
121
- this.messages.set(message.id, message);
122
- this.metrics.messagesSent++;
123
- this.emit('message:sent', message);
124
- // If target agent exists, trigger delivery event
125
- if (to === '*' || this.agents.has(to)) {
126
- this.emit('message:delivered', message);
127
- }
128
- return message;
129
- }
130
- /**
131
- * Get messages for this agent
132
- */
133
- getMessages(options = {}) {
134
- const now = Date.now();
135
- let messages = Array.from(this.messages.values())
136
- .filter(m => (m.to === this.config.agentId || m.to === '*') &&
137
- (!m.ttl || m.timestamp + m.ttl > now));
138
- if (options.from) {
139
- messages = messages.filter(m => m.from === options.from);
140
- }
141
- if (options.type) {
142
- messages = messages.filter(m => m.type === options.type);
143
- }
144
- if (options.since !== undefined) {
145
- const sinceTime = options.since;
146
- messages = messages.filter(m => m.timestamp > sinceTime);
147
- }
148
- messages.sort((a, b) => {
149
- const priorityOrder = { critical: 0, high: 1, normal: 2, low: 3 };
150
- const pDiff = priorityOrder[a.priority] - priorityOrder[b.priority];
151
- return pDiff !== 0 ? pDiff : b.timestamp - a.timestamp;
152
- });
153
- if (options.limit) {
154
- messages = messages.slice(0, options.limit);
155
- }
156
- this.metrics.messagesReceived += messages.length;
157
- return messages;
158
- }
159
- /**
160
- * Broadcast context to all agents
161
- */
162
- async broadcastContext(content, metadata = {}) {
163
- return this.sendMessage('*', content, {
164
- type: 'context',
165
- priority: 'normal',
166
- metadata,
167
- });
168
- }
169
- /**
170
- * Query other agents
171
- */
172
- async queryAgents(query) {
173
- return this.sendMessage('*', query, {
174
- type: 'query',
175
- priority: 'normal',
176
- });
177
- }
178
- // ============================================================================
179
- // Pattern Broadcasting
180
- // ============================================================================
181
- /**
182
- * Broadcast a learned pattern to the swarm
183
- */
184
- async broadcastPattern(pattern, targetAgents) {
185
- await this.ensureInitialized();
186
- const broadcast = {
187
- id: `bc_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
188
- sourceAgent: this.config.agentId,
189
- pattern,
190
- broadcastTime: Date.now(),
191
- recipients: targetAgents || Array.from(this.agents.keys()),
192
- acknowledgments: [],
193
- };
194
- this.broadcasts.set(broadcast.id, broadcast);
195
- this.metrics.patternsBroadcast++;
196
- // Update agent stats
197
- const agentState = this.agents.get(this.config.agentId);
198
- if (agentState) {
199
- agentState.patternsShared++;
200
- }
201
- // Send as message
202
- await this.sendMessage(targetAgents ? targetAgents.join(',') : '*', JSON.stringify({
203
- broadcastId: broadcast.id,
204
- strategy: pattern.strategy,
205
- domain: pattern.domain,
206
- quality: pattern.quality,
207
- }), {
208
- type: 'pattern',
209
- priority: 'normal',
210
- metadata: { broadcastId: broadcast.id },
211
- });
212
- this.emit('pattern:broadcast', broadcast);
213
- return broadcast;
214
- }
215
- /**
216
- * Acknowledge receipt of a pattern broadcast
217
- */
218
- acknowledgeBroadcast(broadcastId) {
219
- const broadcast = this.broadcasts.get(broadcastId);
220
- if (!broadcast)
221
- return false;
222
- if (!broadcast.acknowledgments.includes(this.config.agentId)) {
223
- broadcast.acknowledgments.push(this.config.agentId);
224
- this.emit('pattern:acknowledged', { broadcastId, agentId: this.config.agentId });
225
- }
226
- return true;
227
- }
228
- /**
229
- * Get recent pattern broadcasts
230
- */
231
- getPatternBroadcasts(options = {}) {
232
- let broadcasts = Array.from(this.broadcasts.values());
233
- if (options.since !== undefined) {
234
- const sinceTime = options.since;
235
- broadcasts = broadcasts.filter(b => b.broadcastTime > sinceTime);
236
- }
237
- if (options.domain) {
238
- broadcasts = broadcasts.filter(b => b.pattern.domain === options.domain);
239
- }
240
- if (options.minQuality !== undefined) {
241
- const minQ = options.minQuality;
242
- broadcasts = broadcasts.filter(b => b.pattern.quality >= minQ);
243
- }
244
- return broadcasts.sort((a, b) => b.broadcastTime - a.broadcastTime);
245
- }
246
- /**
247
- * Import a broadcast pattern into local ReasoningBank
248
- */
249
- async importBroadcastPattern(broadcastId) {
250
- const broadcast = this.broadcasts.get(broadcastId);
251
- if (!broadcast)
252
- return false;
253
- await reasoningBank.storePattern(broadcast.pattern.strategy, broadcast.pattern.domain, {
254
- sourceAgent: broadcast.sourceAgent,
255
- broadcastId,
256
- imported: true,
257
- });
258
- this.acknowledgeBroadcast(broadcastId);
259
- return true;
260
- }
261
- // ============================================================================
262
- // Consensus Guidance
263
- // ============================================================================
264
- /**
265
- * Initiate a consensus request
266
- */
267
- async initiateConsensus(question, options, timeout) {
268
- await this.ensureInitialized();
269
- const request = {
270
- id: `cons_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
271
- initiator: this.config.agentId,
272
- question,
273
- options,
274
- votes: new Map(),
275
- deadline: Date.now() + (timeout || this.config.consensusTimeout),
276
- status: 'pending',
277
- };
278
- this.consensusRequests.set(request.id, request);
279
- this.metrics.consensusInitiated++;
280
- // Broadcast the consensus request
281
- await this.sendMessage('*', JSON.stringify({
282
- consensusId: request.id,
283
- question,
284
- options,
285
- deadline: request.deadline,
286
- }), {
287
- type: 'consensus',
288
- priority: 'high',
289
- metadata: { consensusId: request.id },
290
- });
291
- // Set timeout for resolution
292
- setTimeout(() => this.resolveConsensus(request.id), timeout || this.config.consensusTimeout);
293
- this.emit('consensus:initiated', request);
294
- return request;
295
- }
296
- /**
297
- * Vote on a consensus request
298
- */
299
- voteConsensus(consensusId, vote) {
300
- const request = this.consensusRequests.get(consensusId);
301
- if (!request || request.status !== 'pending')
302
- return false;
303
- if (!request.options.includes(vote))
304
- return false;
305
- if (Date.now() > request.deadline)
306
- return false;
307
- request.votes.set(this.config.agentId, vote);
308
- this.emit('consensus:voted', { consensusId, agentId: this.config.agentId, vote });
309
- // Check if all known agents have voted
310
- const agentCount = this.agents.size;
311
- if (request.votes.size >= agentCount) {
312
- this.resolveConsensus(consensusId);
313
- }
314
- return true;
315
- }
316
- /**
317
- * Resolve a consensus request
318
- */
319
- resolveConsensus(consensusId) {
320
- const request = this.consensusRequests.get(consensusId);
321
- if (!request || request.status !== 'pending')
322
- return;
323
- const voteCounts = new Map();
324
- for (const vote of request.votes.values()) {
325
- voteCounts.set(vote, (voteCounts.get(vote) || 0) + 1);
326
- }
327
- let winner = '';
328
- let maxVotes = 0;
329
- for (const [option, count] of voteCounts) {
330
- if (count > maxVotes) {
331
- maxVotes = count;
332
- winner = option;
333
- }
334
- }
335
- const participation = this.agents.size > 0 ? request.votes.size / this.agents.size : 0;
336
- const confidence = request.votes.size > 0 ? maxVotes / request.votes.size : 0;
337
- request.status = request.votes.size > 0 ? 'resolved' : 'expired';
338
- request.result = {
339
- winner,
340
- confidence,
341
- participation,
342
- };
343
- if (request.status === 'resolved') {
344
- this.metrics.consensusResolved++;
345
- }
346
- this.emit('consensus:resolved', request);
347
- }
348
- /**
349
- * Get consensus request by ID
350
- */
351
- getConsensus(consensusId) {
352
- return this.consensusRequests.get(consensusId);
353
- }
354
- /**
355
- * Get pending consensus requests
356
- */
357
- getPendingConsensus() {
358
- return Array.from(this.consensusRequests.values())
359
- .filter(r => r.status === 'pending');
360
- }
361
- /**
362
- * Generate consensus guidance text
363
- */
364
- generateConsensusGuidance(consensusId) {
365
- const request = this.consensusRequests.get(consensusId);
366
- if (!request)
367
- return 'Consensus request not found';
368
- const lines = [
369
- `**Consensus: ${request.question}**`,
370
- '',
371
- `Status: ${request.status.toUpperCase()}`,
372
- `Initiator: ${request.initiator}`,
373
- '',
374
- '**Options**:',
375
- ];
376
- for (const option of request.options) {
377
- const votes = Array.from(request.votes.entries())
378
- .filter(([_, v]) => v === option)
379
- .map(([agent]) => agent);
380
- lines.push(`- ${option}: ${votes.length} votes`);
381
- }
382
- if (request.result) {
383
- lines.push('');
384
- lines.push(`**Result**: ${request.result.winner}`);
385
- lines.push(`Confidence: ${(request.result.confidence * 100).toFixed(0)}%`);
386
- lines.push(`Participation: ${(request.result.participation * 100).toFixed(0)}%`);
387
- }
388
- return lines.join('\n');
389
- }
390
- // ============================================================================
391
- // Task Handoff
392
- // ============================================================================
393
- /**
394
- * Initiate a task handoff to another agent
395
- */
396
- async initiateHandoff(toAgent, taskDescription, context) {
397
- await this.ensureInitialized();
398
- const handoff = {
399
- id: `ho_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
400
- taskId: `task_${Date.now()}`,
401
- description: taskDescription,
402
- fromAgent: this.config.agentId,
403
- toAgent,
404
- context,
405
- status: 'pending',
406
- timestamp: Date.now(),
407
- };
408
- this.handoffs.set(handoff.id, handoff);
409
- this.metrics.handoffsInitiated++;
410
- // Send handoff message
411
- await this.sendMessage(toAgent, JSON.stringify({
412
- handoffId: handoff.id,
413
- description: taskDescription,
414
- context,
415
- }), {
416
- type: 'handoff',
417
- priority: 'high',
418
- metadata: { handoffId: handoff.id },
419
- });
420
- this.emit('handoff:initiated', handoff);
421
- return handoff;
422
- }
423
- /**
424
- * Accept a task handoff
425
- */
426
- acceptHandoff(handoffId) {
427
- const handoff = this.handoffs.get(handoffId);
428
- if (!handoff || handoff.toAgent !== this.config.agentId)
429
- return false;
430
- if (handoff.status !== 'pending')
431
- return false;
432
- handoff.status = 'accepted';
433
- // Update agent stats
434
- const agentState = this.agents.get(this.config.agentId);
435
- if (agentState) {
436
- agentState.handoffsReceived++;
437
- agentState.currentTask = handoff.description;
438
- agentState.status = 'busy';
439
- }
440
- this.emit('handoff:accepted', handoff);
441
- return true;
442
- }
443
- /**
444
- * Reject a task handoff
445
- */
446
- rejectHandoff(handoffId, reason) {
447
- const handoff = this.handoffs.get(handoffId);
448
- if (!handoff || handoff.toAgent !== this.config.agentId)
449
- return false;
450
- if (handoff.status !== 'pending')
451
- return false;
452
- handoff.status = 'rejected';
453
- if (reason) {
454
- handoff.context.blockers.push(reason);
455
- }
456
- this.emit('handoff:rejected', { handoff, reason });
457
- return true;
458
- }
459
- /**
460
- * Complete a task handoff
461
- */
462
- completeHandoff(handoffId, result) {
463
- const handoff = this.handoffs.get(handoffId);
464
- if (!handoff || handoff.toAgent !== this.config.agentId)
465
- return false;
466
- if (handoff.status !== 'accepted')
467
- return false;
468
- handoff.status = 'completed';
469
- handoff.completedAt = Date.now();
470
- if (result) {
471
- handoff.context = { ...handoff.context, ...result };
472
- }
473
- // Update agent stats
474
- const agentState = this.agents.get(this.config.agentId);
475
- if (agentState) {
476
- agentState.handoffsCompleted++;
477
- agentState.currentTask = undefined;
478
- agentState.status = 'idle';
479
- }
480
- this.metrics.handoffsCompleted++;
481
- this.emit('handoff:completed', handoff);
482
- return true;
483
- }
484
- /**
485
- * Get handoff by ID
486
- */
487
- getHandoff(handoffId) {
488
- return this.handoffs.get(handoffId);
489
- }
490
- /**
491
- * Get pending handoffs for this agent
492
- */
493
- getPendingHandoffs() {
494
- return Array.from(this.handoffs.values())
495
- .filter(h => h.toAgent === this.config.agentId && h.status === 'pending');
496
- }
497
- /**
498
- * Generate handoff context text for Claude
499
- */
500
- generateHandoffContext(handoffId) {
501
- const handoff = this.handoffs.get(handoffId);
502
- if (!handoff)
503
- return 'Handoff not found';
504
- const lines = [
505
- `## Task Handoff from ${handoff.fromAgent}`,
506
- '',
507
- `**Task**: ${handoff.description}`,
508
- `**Status**: ${handoff.status.toUpperCase()}`,
509
- '',
510
- ];
511
- if (handoff.context.filesModified.length > 0) {
512
- lines.push('**Files Modified**:');
513
- for (const file of handoff.context.filesModified) {
514
- lines.push(`- ${file}`);
515
- }
516
- lines.push('');
517
- }
518
- if (handoff.context.patternsUsed.length > 0) {
519
- lines.push('**Patterns Used**:');
520
- for (const pattern of handoff.context.patternsUsed) {
521
- lines.push(`- ${pattern}`);
522
- }
523
- lines.push('');
524
- }
525
- if (handoff.context.decisions.length > 0) {
526
- lines.push('**Decisions Made**:');
527
- for (const decision of handoff.context.decisions) {
528
- lines.push(`- ${decision}`);
529
- }
530
- lines.push('');
531
- }
532
- if (handoff.context.blockers.length > 0) {
533
- lines.push('**Blockers**:');
534
- for (const blocker of handoff.context.blockers) {
535
- lines.push(`- ⚠️ ${blocker}`);
536
- }
537
- lines.push('');
538
- }
539
- if (handoff.context.nextSteps.length > 0) {
540
- lines.push('**Next Steps**:');
541
- for (const step of handoff.context.nextSteps) {
542
- lines.push(`- [ ] ${step}`);
543
- }
544
- }
545
- return lines.join('\n');
546
- }
547
- // ============================================================================
548
- // Agent Registry
549
- // ============================================================================
550
- /**
551
- * Register an agent in the swarm
552
- */
553
- registerAgent(agent) {
554
- this.agents.set(agent.id, agent);
555
- this.emit('agent:registered', agent);
556
- }
557
- /**
558
- * Update agent status
559
- */
560
- updateAgentStatus(agentId, status) {
561
- const agent = this.agents.get(agentId);
562
- if (agent) {
563
- agent.status = status;
564
- agent.lastSeen = Date.now();
565
- this.emit('agent:updated', agent);
566
- }
567
- }
568
- /**
569
- * Get all registered agents
570
- */
571
- getAgents() {
572
- return Array.from(this.agents.values());
573
- }
574
- /**
575
- * Get agent by ID
576
- */
577
- getAgent(agentId) {
578
- return this.agents.get(agentId);
579
- }
580
- // ============================================================================
581
- // Statistics & Utilities
582
- // ============================================================================
583
- /**
584
- * Get communication statistics
585
- */
586
- getStats() {
587
- return {
588
- agentId: this.config.agentId,
589
- agentCount: this.agents.size,
590
- metrics: { ...this.metrics },
591
- pendingMessages: this.getMessages({ limit: 1000 }).length,
592
- pendingHandoffs: this.getPendingHandoffs().length,
593
- pendingConsensus: this.getPendingConsensus().length,
594
- };
595
- }
596
- /**
597
- * Cleanup old messages and data
598
- */
599
- cleanup() {
600
- const now = Date.now();
601
- const retention = this.config.messageRetention;
602
- // Cleanup old messages
603
- for (const [id, message] of this.messages) {
604
- if (now - message.timestamp > retention) {
605
- this.messages.delete(id);
606
- }
607
- }
608
- // Cleanup old broadcasts
609
- for (const [id, broadcast] of this.broadcasts) {
610
- if (now - broadcast.broadcastTime > retention) {
611
- this.broadcasts.delete(id);
612
- }
613
- }
614
- // Cleanup expired consensus requests
615
- for (const [id, request] of this.consensusRequests) {
616
- if (request.status === 'pending' && now > request.deadline) {
617
- this.resolveConsensus(id);
618
- }
619
- }
620
- // Mark offline agents
621
- for (const agent of this.agents.values()) {
622
- if (now - agent.lastSeen > 300000) { // 5 minutes
623
- agent.status = 'offline';
624
- }
625
- }
626
- }
627
- async ensureInitialized() {
628
- if (!this.initialized) {
629
- await this.initialize();
630
- }
631
- }
632
- }
633
- // ============================================================================
634
- // Exports
635
- // ============================================================================
636
- export const swarmComm = new SwarmCommunication();
637
- export { SwarmCommunication as default, };
638
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swarm/index.ts"],"names":[],"mappings":"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"}