@cogitator-ai/swarms 0.4.19 → 0.5.1

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 (154) hide show
  1. package/README.md +245 -897
  2. package/dist/agents.d.ts +13 -0
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/agents.js +70 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/assessor/assessor.d.ts +9 -2
  7. package/dist/assessor/assessor.d.ts.map +1 -1
  8. package/dist/assessor/assessor.js +89 -61
  9. package/dist/assessor/assessor.js.map +1 -1
  10. package/dist/assessor/role-matcher.d.ts +6 -24
  11. package/dist/assessor/role-matcher.d.ts.map +1 -1
  12. package/dist/assessor/role-matcher.js +9 -37
  13. package/dist/assessor/role-matcher.js.map +1 -1
  14. package/dist/assessor/scoring.js +1 -1
  15. package/dist/assessor/scoring.js.map +1 -1
  16. package/dist/assessor/task-analyzer.d.ts.map +1 -1
  17. package/dist/assessor/task-analyzer.js +4 -19
  18. package/dist/assessor/task-analyzer.js.map +1 -1
  19. package/dist/base-coordinator.d.ts +117 -0
  20. package/dist/base-coordinator.d.ts.map +1 -0
  21. package/dist/base-coordinator.js +455 -0
  22. package/dist/base-coordinator.js.map +1 -0
  23. package/dist/communication/blackboard.d.ts +34 -4
  24. package/dist/communication/blackboard.d.ts.map +1 -1
  25. package/dist/communication/blackboard.js +80 -41
  26. package/dist/communication/blackboard.js.map +1 -1
  27. package/dist/communication/event-emitter.d.ts +1 -1
  28. package/dist/communication/event-emitter.d.ts.map +1 -1
  29. package/dist/communication/event-emitter.js +6 -17
  30. package/dist/communication/event-emitter.js.map +1 -1
  31. package/dist/communication/index.d.ts +2 -2
  32. package/dist/communication/index.d.ts.map +1 -1
  33. package/dist/communication/index.js +2 -2
  34. package/dist/communication/index.js.map +1 -1
  35. package/dist/communication/message-bus.d.ts +48 -5
  36. package/dist/communication/message-bus.d.ts.map +1 -1
  37. package/dist/communication/message-bus.js +135 -50
  38. package/dist/communication/message-bus.js.map +1 -1
  39. package/dist/communication/redis-blackboard.d.ts +12 -5
  40. package/dist/communication/redis-blackboard.d.ts.map +1 -1
  41. package/dist/communication/redis-blackboard.js +214 -94
  42. package/dist/communication/redis-blackboard.js.map +1 -1
  43. package/dist/communication/redis-event-emitter.d.ts +14 -1
  44. package/dist/communication/redis-event-emitter.d.ts.map +1 -1
  45. package/dist/communication/redis-event-emitter.js +107 -47
  46. package/dist/communication/redis-event-emitter.js.map +1 -1
  47. package/dist/communication/redis-message-bus.d.ts +13 -6
  48. package/dist/communication/redis-message-bus.d.ts.map +1 -1
  49. package/dist/communication/redis-message-bus.js +93 -66
  50. package/dist/communication/redis-message-bus.js.map +1 -1
  51. package/dist/coordinator.d.ts +7 -41
  52. package/dist/coordinator.d.ts.map +1 -1
  53. package/dist/coordinator.js +17 -336
  54. package/dist/coordinator.js.map +1 -1
  55. package/dist/distributed/distributed-coordinator.d.ts +55 -49
  56. package/dist/distributed/distributed-coordinator.d.ts.map +1 -1
  57. package/dist/distributed/distributed-coordinator.js +166 -253
  58. package/dist/distributed/distributed-coordinator.js.map +1 -1
  59. package/dist/distributed/index.d.ts +1 -1
  60. package/dist/distributed/index.d.ts.map +1 -1
  61. package/dist/distributed/index.js +1 -1
  62. package/dist/distributed/index.js.map +1 -1
  63. package/dist/index.d.ts +4 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +4 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/resources/circuit-breaker.d.ts +1 -6
  68. package/dist/resources/circuit-breaker.d.ts.map +1 -1
  69. package/dist/resources/circuit-breaker.js +14 -17
  70. package/dist/resources/circuit-breaker.js.map +1 -1
  71. package/dist/resources/index.d.ts.map +1 -1
  72. package/dist/resources/index.js.map +1 -1
  73. package/dist/resources/tracker.d.ts.map +1 -1
  74. package/dist/resources/tracker.js +8 -5
  75. package/dist/resources/tracker.js.map +1 -1
  76. package/dist/shared/hierarchy.d.ts +21 -0
  77. package/dist/shared/hierarchy.d.ts.map +1 -0
  78. package/dist/shared/hierarchy.js +27 -0
  79. package/dist/shared/hierarchy.js.map +1 -0
  80. package/dist/shared/negotiation.d.ts +27 -0
  81. package/dist/shared/negotiation.d.ts.map +1 -0
  82. package/dist/shared/negotiation.js +55 -0
  83. package/dist/shared/negotiation.js.map +1 -0
  84. package/dist/shared/voting.d.ts +6 -0
  85. package/dist/shared/voting.d.ts.map +1 -0
  86. package/dist/shared/voting.js +13 -0
  87. package/dist/shared/voting.js.map +1 -0
  88. package/dist/strategies/auction.js +2 -3
  89. package/dist/strategies/auction.js.map +1 -1
  90. package/dist/strategies/consensus.d.ts +12 -0
  91. package/dist/strategies/consensus.d.ts.map +1 -1
  92. package/dist/strategies/consensus.js +81 -40
  93. package/dist/strategies/consensus.js.map +1 -1
  94. package/dist/strategies/debate.d.ts.map +1 -1
  95. package/dist/strategies/debate.js +19 -9
  96. package/dist/strategies/debate.js.map +1 -1
  97. package/dist/strategies/hierarchical.d.ts.map +1 -1
  98. package/dist/strategies/hierarchical.js +29 -12
  99. package/dist/strategies/hierarchical.js.map +1 -1
  100. package/dist/strategies/index.d.ts +8 -7
  101. package/dist/strategies/index.d.ts.map +1 -1
  102. package/dist/strategies/index.js +1 -7
  103. package/dist/strategies/index.js.map +1 -1
  104. package/dist/strategies/negotiation/approval.d.ts.map +1 -1
  105. package/dist/strategies/negotiation/approval.js +47 -21
  106. package/dist/strategies/negotiation/approval.js.map +1 -1
  107. package/dist/strategies/negotiation/convergence.js +1 -1
  108. package/dist/strategies/negotiation-strategy.d.ts +24 -2
  109. package/dist/strategies/negotiation-strategy.d.ts.map +1 -1
  110. package/dist/strategies/negotiation-strategy.js +281 -158
  111. package/dist/strategies/negotiation-strategy.js.map +1 -1
  112. package/dist/strategies/pipeline.d.ts.map +1 -1
  113. package/dist/strategies/pipeline.js +19 -11
  114. package/dist/strategies/pipeline.js.map +1 -1
  115. package/dist/swarm.d.ts +24 -15
  116. package/dist/swarm.d.ts.map +1 -1
  117. package/dist/swarm.js +193 -116
  118. package/dist/swarm.js.map +1 -1
  119. package/dist/tools/blackboard.d.ts +1 -1
  120. package/dist/tools/blackboard.d.ts.map +1 -1
  121. package/dist/tools/blackboard.js +26 -6
  122. package/dist/tools/blackboard.js.map +1 -1
  123. package/dist/tools/delegation.d.ts +23 -4
  124. package/dist/tools/delegation.d.ts.map +1 -1
  125. package/dist/tools/delegation.js +116 -85
  126. package/dist/tools/delegation.js.map +1 -1
  127. package/dist/tools/index.d.ts +3 -1
  128. package/dist/tools/index.d.ts.map +1 -1
  129. package/dist/tools/index.js +19 -4
  130. package/dist/tools/index.js.map +1 -1
  131. package/dist/tools/messaging.d.ts +36 -7
  132. package/dist/tools/messaging.d.ts.map +1 -1
  133. package/dist/tools/messaging.js +122 -46
  134. package/dist/tools/messaging.js.map +1 -1
  135. package/dist/tools/negotiation.d.ts +8 -4
  136. package/dist/tools/negotiation.d.ts.map +1 -1
  137. package/dist/tools/negotiation.js +135 -85
  138. package/dist/tools/negotiation.js.map +1 -1
  139. package/dist/tools/voting.d.ts +3 -0
  140. package/dist/tools/voting.d.ts.map +1 -1
  141. package/dist/tools/voting.js +13 -12
  142. package/dist/tools/voting.js.map +1 -1
  143. package/dist/utils/concurrency.d.ts +10 -0
  144. package/dist/utils/concurrency.d.ts.map +1 -0
  145. package/dist/utils/concurrency.js +28 -0
  146. package/dist/utils/concurrency.js.map +1 -0
  147. package/dist/utils/invoke.d.ts +2 -0
  148. package/dist/utils/invoke.d.ts.map +1 -0
  149. package/dist/utils/invoke.js +19 -0
  150. package/dist/utils/invoke.js.map +1 -0
  151. package/dist/workflow/swarm-node.d.ts.map +1 -1
  152. package/dist/workflow/swarm-node.js +56 -71
  153. package/dist/workflow/swarm-node.js.map +1 -1
  154. package/package.json +6 -6
@@ -1,12 +1,62 @@
1
+ import { nanoid } from 'nanoid';
2
+ import { BlackboardListeners, } from './blackboard.js';
3
+ const MAX_HISTORY = 1000;
4
+ const ATOMIC_WRITE_SCRIPT = `
5
+ local sectionKey = KEYS[1]
6
+ local historyKey = KEYS[2]
7
+ local channel = KEYS[3]
8
+ local sectionJson = ARGV[1]
9
+ local notificationJson = ARGV[2]
10
+ local historyEntryJson = ARGV[3]
11
+ local maxHistory = tonumber(ARGV[4])
12
+ local senderId = ARGV[5]
13
+
14
+ local current = redis.call('GET', sectionKey)
15
+ local version = 1
16
+ if current then
17
+ version = cjson.decode(current).version + 1
18
+ end
19
+
20
+ local section = cjson.decode(sectionJson)
21
+ section.version = version
22
+ redis.call('SET', sectionKey, cjson.encode(section))
23
+
24
+ if historyEntryJson ~= '' then
25
+ local entry = cjson.decode(historyEntryJson)
26
+ entry.version = version
27
+ redis.call('RPUSH', historyKey, cjson.encode(entry))
28
+ redis.call('LTRIM', historyKey, -maxHistory, -1)
29
+ end
30
+
31
+ local notification = cjson.decode(notificationJson)
32
+ notification.version = version
33
+ notification._sid = senderId
34
+ redis.call('PUBLISH', channel, cjson.encode(notification))
35
+
36
+ return version
37
+ `;
38
+ function parseStoredSection(raw) {
39
+ try {
40
+ const parsed = JSON.parse(raw);
41
+ if (typeof parsed.name !== 'string' || typeof parsed.version !== 'number')
42
+ return null;
43
+ return parsed;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
1
49
  export class RedisBlackboard {
2
50
  redis;
3
51
  subscriber;
4
52
  swarmId;
5
53
  keyPrefix;
6
54
  config;
7
- subscriptions = new Map();
55
+ listeners = new BlackboardListeners('[RedisBlackboard]');
8
56
  localCache = new Map();
9
57
  historyCache = new Map();
58
+ instanceId = nanoid(12);
59
+ initialized = false;
10
60
  constructor(config, options) {
11
61
  this.config = config;
12
62
  this.redis = options.redis;
@@ -23,53 +73,93 @@ export class RedisBlackboard {
23
73
  channelKey() {
24
74
  return `${this.keyPrefix}:${this.swarmId}:blackboard:changes`;
25
75
  }
26
- async initialize() {
27
- for (const [name, initialData] of Object.entries(this.config.sections)) {
28
- const section = {
29
- name,
30
- data: initialData,
31
- lastModified: Date.now(),
32
- modifiedBy: 'system',
33
- version: 1,
34
- };
35
- this.localCache.set(name, section);
36
- const existing = await this.redis.get(this.sectionKey(name));
37
- if (!existing) {
38
- await this.redis.set(this.sectionKey(name), JSON.stringify(section));
39
- if (this.config.trackHistory) {
40
- const entry = {
41
- value: initialData,
42
- writtenBy: 'system',
43
- timestamp: Date.now(),
44
- version: 1,
45
- };
46
- await this.redis.rpush(this.historyKey(name), JSON.stringify(entry));
47
- this.historyCache.set(name, [entry]);
76
+ handleRemoteChange = (_channel, messageJson) => {
77
+ try {
78
+ const parsed = JSON.parse(messageJson);
79
+ if (parsed._sid === this.instanceId)
80
+ return;
81
+ if (parsed.deleted) {
82
+ const existing = this.localCache.get(parsed.section);
83
+ this.localCache.delete(parsed.section);
84
+ this.historyCache.delete(parsed.section);
85
+ if (existing) {
86
+ this.listeners.notify({
87
+ section: parsed.section,
88
+ data: undefined,
89
+ agentName: parsed.agentName ?? 'system',
90
+ version: existing.version,
91
+ deleted: true,
92
+ });
48
93
  }
94
+ return;
49
95
  }
50
- else {
51
- const stored = JSON.parse(existing);
52
- this.localCache.set(name, stored);
96
+ const agentName = parsed.agentName ?? 'unknown';
97
+ const version = parsed.version ?? (this.localCache.get(parsed.section)?.version ?? 0) + 1;
98
+ const timestamp = parsed.timestamp ?? Date.now();
99
+ this.localCache.set(parsed.section, {
100
+ name: parsed.section,
101
+ data: parsed.data,
102
+ lastModified: timestamp,
103
+ modifiedBy: agentName,
104
+ version,
105
+ });
106
+ if (this.config.trackHistory) {
107
+ this.pushHistory(parsed.section, {
108
+ value: parsed.data,
109
+ writtenBy: agentName,
110
+ timestamp,
111
+ version,
112
+ });
53
113
  }
114
+ this.listeners.notify({ section: parsed.section, data: parsed.data, agentName, version });
54
115
  }
55
- await this.subscriber.subscribe(this.channelKey());
56
- this.subscriber.on('message', (_channel, messageJson) => {
57
- try {
58
- const { section, data, agentName, version, timestamp } = JSON.parse(messageJson);
59
- const stored = {
60
- name: section,
61
- data,
62
- lastModified: timestamp,
63
- modifiedBy: agentName,
64
- version,
116
+ catch (error) {
117
+ console.warn('[RedisBlackboard] Failed to parse message:', error);
118
+ }
119
+ };
120
+ async initialize() {
121
+ if (this.initialized)
122
+ return;
123
+ this.initialized = true;
124
+ try {
125
+ for (const [name, initialData] of Object.entries(this.config.sections)) {
126
+ const section = {
127
+ name,
128
+ data: initialData,
129
+ lastModified: Date.now(),
130
+ modifiedBy: 'system',
131
+ version: 1,
65
132
  };
66
- this.localCache.set(section, stored);
67
- this.notifySubscribers(section, data, agentName);
133
+ const wasSet = await this.redis.set(this.sectionKey(name), JSON.stringify(section), 'NX');
134
+ if (wasSet === 'OK') {
135
+ this.localCache.set(name, section);
136
+ if (this.config.trackHistory) {
137
+ const entry = {
138
+ value: initialData,
139
+ writtenBy: 'system',
140
+ timestamp: section.lastModified,
141
+ version: 1,
142
+ };
143
+ await this.redis.rpush(this.historyKey(name), JSON.stringify(entry));
144
+ this.historyCache.set(name, [entry]);
145
+ }
146
+ continue;
147
+ }
148
+ const existing = await this.redis.get(this.sectionKey(name));
149
+ const stored = existing ? parseStoredSection(existing) : null;
150
+ this.localCache.set(name, stored ?? section);
68
151
  }
69
- catch { }
70
- });
152
+ this.subscriber.on('message', this.handleRemoteChange);
153
+ await this.subscriber.subscribe(this.channelKey());
154
+ }
155
+ catch (error) {
156
+ this.subscriber.off('message', this.handleRemoteChange);
157
+ this.initialized = false;
158
+ throw error;
159
+ }
71
160
  }
72
161
  read(section) {
162
+ this.assertEnabled();
73
163
  const cached = this.localCache.get(section);
74
164
  if (!cached) {
75
165
  throw new Error(`Blackboard section '${section}' not found`);
@@ -77,9 +167,7 @@ export class RedisBlackboard {
77
167
  return cached.data;
78
168
  }
79
169
  write(section, data, agentName) {
80
- if (!this.config.enabled) {
81
- throw new Error('Blackboard is not enabled');
82
- }
170
+ this.assertEnabled();
83
171
  const existing = this.localCache.get(section);
84
172
  const version = existing ? existing.version + 1 : 1;
85
173
  const timestamp = Date.now();
@@ -91,24 +179,26 @@ export class RedisBlackboard {
91
179
  version,
92
180
  };
93
181
  this.localCache.set(section, newSection);
94
- void this.redis.set(this.sectionKey(section), JSON.stringify(newSection));
95
182
  if (this.config.trackHistory) {
96
- const entry = {
97
- value: data,
98
- writtenBy: agentName,
99
- timestamp,
100
- version,
101
- };
102
- if (!this.historyCache.has(section)) {
103
- this.historyCache.set(section, []);
104
- }
105
- this.historyCache.get(section).push(entry);
106
- void this.redis.rpush(this.historyKey(section), JSON.stringify(entry));
183
+ this.pushHistory(section, { value: data, writtenBy: agentName, timestamp, version });
107
184
  }
108
- void this.redis.publish(this.channelKey(), JSON.stringify({ section, data, agentName, version, timestamp }));
109
- this.notifySubscribers(section, data, agentName);
185
+ const historyEntryJson = this.config.trackHistory
186
+ ? JSON.stringify({ value: data, writtenBy: agentName, timestamp })
187
+ : '';
188
+ void this.redis
189
+ .eval(ATOMIC_WRITE_SCRIPT, 3, this.sectionKey(section), this.historyKey(section), this.channelKey(), JSON.stringify(newSection), JSON.stringify({ section, data, agentName, timestamp }), historyEntryJson, String(MAX_HISTORY), this.instanceId)
190
+ .then((storedVersion) => {
191
+ if (typeof storedVersion === 'number' && this.localCache.get(section) === newSection) {
192
+ newSection.version = storedVersion;
193
+ }
194
+ })
195
+ .catch((error) => {
196
+ console.warn('[RedisBlackboard] Write error:', error);
197
+ });
198
+ this.listeners.notify({ section, data, agentName, version });
110
199
  }
111
200
  append(section, item, agentName) {
201
+ this.assertEnabled();
112
202
  const current = this.localCache.get(section);
113
203
  if (!current) {
114
204
  this.write(section, [item], agentName);
@@ -117,33 +207,31 @@ export class RedisBlackboard {
117
207
  if (!Array.isArray(current.data)) {
118
208
  throw new Error(`Section '${section}' is not an array, cannot append`);
119
209
  }
120
- const newData = [...current.data, item];
121
- this.write(section, newData, agentName);
210
+ this.write(section, [...current.data, item], agentName);
122
211
  }
123
212
  has(section) {
124
213
  return this.localCache.has(section);
125
214
  }
126
215
  delete(section) {
216
+ const existing = this.localCache.get(section);
127
217
  this.localCache.delete(section);
128
218
  this.historyCache.delete(section);
129
- this.subscriptions.delete(section);
130
- void this.redis.del(this.sectionKey(section));
131
- void this.redis.del(this.historyKey(section));
219
+ this.removeFromRedis(section);
220
+ if (existing) {
221
+ this.listeners.notify({
222
+ section,
223
+ data: undefined,
224
+ agentName: 'system',
225
+ version: existing.version,
226
+ deleted: true,
227
+ });
228
+ }
132
229
  }
133
230
  subscribe(section, handler) {
134
- if (!this.subscriptions.has(section)) {
135
- this.subscriptions.set(section, new Set());
136
- }
137
- this.subscriptions.get(section).add(handler);
138
- return () => {
139
- const handlers = this.subscriptions.get(section);
140
- if (handlers) {
141
- handlers.delete(handler);
142
- if (handlers.size === 0) {
143
- this.subscriptions.delete(section);
144
- }
145
- }
146
- };
231
+ return this.listeners.subscribe(section, handler);
232
+ }
233
+ onWrite(listener) {
234
+ return this.listeners.onWrite(listener);
147
235
  }
148
236
  getSections() {
149
237
  return Array.from(this.localCache.keys());
@@ -161,42 +249,74 @@ export class RedisBlackboard {
161
249
  };
162
250
  }
163
251
  getHistory(section) {
164
- return this.historyCache.get(section) ?? [];
252
+ return [...(this.historyCache.get(section) ?? [])];
165
253
  }
166
254
  clear() {
167
255
  const sections = Array.from(this.localCache.keys());
168
256
  this.localCache.clear();
169
257
  this.historyCache.clear();
170
258
  for (const section of sections) {
171
- void this.redis.del(this.sectionKey(section));
172
- void this.redis.del(this.historyKey(section));
259
+ this.removeFromRedis(section);
173
260
  }
174
261
  }
175
262
  async close() {
263
+ this.subscriber.off('message', this.handleRemoteChange);
264
+ this.initialized = false;
265
+ if (this.subscriber.status === 'end')
266
+ return;
267
+ if (this.subscriber.status === 'wait') {
268
+ this.subscriber.disconnect();
269
+ return;
270
+ }
176
271
  await this.subscriber.unsubscribe();
177
272
  await this.subscriber.quit();
178
273
  }
179
274
  async syncFromRedis() {
180
275
  const pattern = `${this.keyPrefix}:${this.swarmId}:blackboard:*`;
181
- const keys = await this.redis.keys(pattern);
182
- for (const key of keys) {
183
- if (key.endsWith(':history'))
184
- continue;
185
- const raw = await this.redis.get(key);
186
- if (raw) {
187
- const stored = JSON.parse(raw);
188
- this.localCache.set(stored.name, stored);
276
+ let cursor = '0';
277
+ do {
278
+ const [nextCursor, keys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
279
+ cursor = nextCursor;
280
+ for (const key of keys) {
281
+ if (key.endsWith(':history'))
282
+ continue;
283
+ const raw = await this.redis.get(key);
284
+ const stored = raw ? parseStoredSection(raw) : null;
285
+ if (stored && key === this.sectionKey(stored.name)) {
286
+ this.localCache.set(stored.name, stored);
287
+ }
189
288
  }
289
+ } while (cursor !== '0');
290
+ }
291
+ pushHistory(section, entry) {
292
+ let entries = this.historyCache.get(section);
293
+ if (!entries) {
294
+ entries = [];
295
+ this.historyCache.set(section, entries);
296
+ }
297
+ entries.push(entry);
298
+ if (entries.length > MAX_HISTORY) {
299
+ entries.splice(0, entries.length - MAX_HISTORY);
190
300
  }
191
301
  }
192
- notifySubscribers(section, data, agentName) {
193
- const handlers = this.subscriptions.get(section);
194
- if (handlers) {
195
- for (const handler of handlers) {
196
- void Promise.resolve(handler(data, agentName)).catch((error) => {
197
- console.warn('[RedisBlackboard] Handler error:', error);
198
- });
199
- }
302
+ removeFromRedis(section) {
303
+ const notification = {
304
+ section,
305
+ deleted: true,
306
+ agentName: 'system',
307
+ timestamp: Date.now(),
308
+ _sid: this.instanceId,
309
+ };
310
+ void this.redis
311
+ .del(this.sectionKey(section), this.historyKey(section))
312
+ .then(() => this.redis.publish(this.channelKey(), JSON.stringify(notification)))
313
+ .catch((error) => {
314
+ console.warn('[RedisBlackboard] Delete error:', error);
315
+ });
316
+ }
317
+ assertEnabled() {
318
+ if (!this.config.enabled) {
319
+ throw new Error('Blackboard is not enabled');
200
320
  }
201
321
  }
202
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis-blackboard.js","sourceRoot":"","sources":["../../src/communication/redis-blackboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-blackboard.js","sourceRoot":"","sources":["../../src/communication/redis-blackboard.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,23 @@ export declare class RedisSwarmEventEmitter implements SwarmEventEmitter {
14
14
  private maxEvents;
15
15
  private handlers;
16
16
  private localEvents;
17
+ private readonly instanceId;
18
+ private initialized;
17
19
  constructor(options: RedisEventEmitterOptions);
18
20
  private eventsKey;
19
21
  private channelKey;
22
+ private readonly handleRemoteEvent;
20
23
  initialize(): Promise<void>;
21
24
  on(event: SwarmEventType | '*', handler: SwarmEventHandler): () => void;
22
- once(event: SwarmEventType, handler: SwarmEventHandler): () => void;
25
+ once(event: SwarmEventType | '*', handler: SwarmEventHandler): () => void;
26
+ /**
27
+ * Emit an event: local handlers are notified synchronously, persistence and
28
+ * cross-node publication happen in the background.
29
+ */
23
30
  emit(event: SwarmEventType, data?: unknown, agentName?: string): void;
31
+ /**
32
+ * Emit an event and wait until it is persisted in Redis and published to other nodes.
33
+ */
24
34
  emitAsync(event: SwarmEventType, data?: unknown, agentName?: string): Promise<void>;
25
35
  off(event: SwarmEventType | '*', handler: SwarmEventHandler): void;
26
36
  removeAllListeners(event?: SwarmEventType): void;
@@ -31,6 +41,9 @@ export declare class RedisSwarmEventEmitter implements SwarmEventEmitter {
31
41
  clearEvents(): void;
32
42
  clearEventsAsync(): Promise<void>;
33
43
  close(): Promise<void>;
44
+ private createEvent;
45
+ private recordLocally;
46
+ private persistAndPublish;
34
47
  private notifyHandlers;
35
48
  }
36
49
  //# sourceMappingURL=redis-event-emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-event-emitter.d.ts","sourceRoot":"","sources":["../../src/communication/redis-event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAA2D;IAC3E,OAAO,CAAC,WAAW,CAAoB;gBAE3B,OAAO,EAAE,wBAAwB;IAQ7C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIZ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IASvE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAUnE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzF,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAUlE,kBAAkB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAQhD,SAAS,IAAI,UAAU,EAAE;IAInB,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAK7C,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,EAAE;IAInD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAIjD,WAAW,IAAI,IAAI;IAIb,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,OAAO,CAAC,cAAc;CAmBvB"}
1
+ {"version":3,"file":"redis-event-emitter.d.ts","sourceRoot":"","sources":["../../src/communication/redis-event-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAA2D;IAC3E,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,wBAAwB;IAQ7C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAUhC;IAEI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAWvE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAQzE;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAUrE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzF,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAUlE,kBAAkB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAQhD,SAAS,IAAI,UAAU,EAAE;IAInB,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAU7C,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,EAAE;IAInD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAIjD,WAAW,IAAI,IAAI;IAIb,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;YAOP,iBAAiB;IAa/B,OAAO,CAAC,cAAc;CASvB"}