@cogitator-ai/swarms 0.1.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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +90 -0
  3. package/dist/communication/blackboard.d.ts +24 -0
  4. package/dist/communication/blackboard.d.ts.map +1 -0
  5. package/dist/communication/blackboard.js +135 -0
  6. package/dist/communication/blackboard.js.map +1 -0
  7. package/dist/communication/event-emitter.d.ts +20 -0
  8. package/dist/communication/event-emitter.d.ts.map +1 -0
  9. package/dist/communication/event-emitter.js +87 -0
  10. package/dist/communication/event-emitter.js.map +1 -0
  11. package/dist/communication/index.d.ts +7 -0
  12. package/dist/communication/index.d.ts.map +1 -0
  13. package/dist/communication/index.js +7 -0
  14. package/dist/communication/index.js.map +1 -0
  15. package/dist/communication/message-bus.d.ts +23 -0
  16. package/dist/communication/message-bus.d.ts.map +1 -0
  17. package/dist/communication/message-bus.js +128 -0
  18. package/dist/communication/message-bus.js.map +1 -0
  19. package/dist/coordinator.d.ts +44 -0
  20. package/dist/coordinator.d.ts.map +1 -0
  21. package/dist/coordinator.js +283 -0
  22. package/dist/coordinator.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +12 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/resources/circuit-breaker.d.ts +29 -0
  28. package/dist/resources/circuit-breaker.d.ts.map +1 -0
  29. package/dist/resources/circuit-breaker.js +82 -0
  30. package/dist/resources/circuit-breaker.js.map +1 -0
  31. package/dist/resources/index.d.ts +7 -0
  32. package/dist/resources/index.d.ts.map +1 -0
  33. package/dist/resources/index.js +6 -0
  34. package/dist/resources/index.js.map +1 -0
  35. package/dist/resources/tracker.d.ts +30 -0
  36. package/dist/resources/tracker.d.ts.map +1 -0
  37. package/dist/resources/tracker.js +84 -0
  38. package/dist/resources/tracker.js.map +1 -0
  39. package/dist/strategies/auction.d.ts +17 -0
  40. package/dist/strategies/auction.d.ts.map +1 -0
  41. package/dist/strategies/auction.js +204 -0
  42. package/dist/strategies/auction.js.map +1 -0
  43. package/dist/strategies/base.d.ts +34 -0
  44. package/dist/strategies/base.d.ts.map +1 -0
  45. package/dist/strategies/base.js +74 -0
  46. package/dist/strategies/base.js.map +1 -0
  47. package/dist/strategies/consensus.d.ts +20 -0
  48. package/dist/strategies/consensus.d.ts.map +1 -0
  49. package/dist/strategies/consensus.js +328 -0
  50. package/dist/strategies/consensus.js.map +1 -0
  51. package/dist/strategies/debate.d.ts +15 -0
  52. package/dist/strategies/debate.d.ts.map +1 -0
  53. package/dist/strategies/debate.js +171 -0
  54. package/dist/strategies/debate.js.map +1 -0
  55. package/dist/strategies/hierarchical.d.ts +13 -0
  56. package/dist/strategies/hierarchical.d.ts.map +1 -0
  57. package/dist/strategies/hierarchical.js +86 -0
  58. package/dist/strategies/hierarchical.js.map +1 -0
  59. package/dist/strategies/index.d.ts +28 -0
  60. package/dist/strategies/index.d.ts.map +1 -0
  61. package/dist/strategies/index.js +106 -0
  62. package/dist/strategies/index.js.map +1 -0
  63. package/dist/strategies/pipeline.d.ts +16 -0
  64. package/dist/strategies/pipeline.d.ts.map +1 -0
  65. package/dist/strategies/pipeline.js +180 -0
  66. package/dist/strategies/pipeline.js.map +1 -0
  67. package/dist/strategies/round-robin.d.ts +27 -0
  68. package/dist/strategies/round-robin.d.ts.map +1 -0
  69. package/dist/strategies/round-robin.js +98 -0
  70. package/dist/strategies/round-robin.js.map +1 -0
  71. package/dist/swarm.d.ts +113 -0
  72. package/dist/swarm.d.ts.map +1 -0
  73. package/dist/swarm.js +280 -0
  74. package/dist/swarm.js.map +1 -0
  75. package/dist/tools/blackboard.d.ts +71 -0
  76. package/dist/tools/blackboard.d.ts.map +1 -0
  77. package/dist/tools/blackboard.js +149 -0
  78. package/dist/tools/blackboard.js.map +1 -0
  79. package/dist/tools/delegation.d.ts +120 -0
  80. package/dist/tools/delegation.d.ts.map +1 -0
  81. package/dist/tools/delegation.js +257 -0
  82. package/dist/tools/delegation.js.map +1 -0
  83. package/dist/tools/index.d.ts +26 -0
  84. package/dist/tools/index.d.ts.map +1 -0
  85. package/dist/tools/index.js +65 -0
  86. package/dist/tools/index.js.map +1 -0
  87. package/dist/tools/messaging.d.ts +73 -0
  88. package/dist/tools/messaging.d.ts.map +1 -0
  89. package/dist/tools/messaging.js +146 -0
  90. package/dist/tools/messaging.js.map +1 -0
  91. package/dist/tools/voting.d.ts +110 -0
  92. package/dist/tools/voting.d.ts.map +1 -0
  93. package/dist/tools/voting.js +201 -0
  94. package/dist/tools/voting.js.map +1 -0
  95. package/dist/workflow/swarm-node.d.ts +43 -0
  96. package/dist/workflow/swarm-node.d.ts.map +1 -0
  97. package/dist/workflow/swarm-node.js +111 -0
  98. package/dist/workflow/swarm-node.js.map +1 -0
  99. package/package.json +45 -0
package/dist/swarm.js ADDED
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Swarm - Main facade for multi-agent swarm coordination
3
+ */
4
+ import { SwarmCoordinator } from './coordinator';
5
+ import { createStrategy } from './strategies/index';
6
+ export class Swarm {
7
+ config;
8
+ coordinator;
9
+ strategy;
10
+ constructor(cogitator, config) {
11
+ this.config = this.validateConfig(config);
12
+ this.coordinator = new SwarmCoordinator(cogitator, config);
13
+ this.strategy = createStrategy(this.coordinator, config);
14
+ }
15
+ /**
16
+ * Swarm name
17
+ */
18
+ get name() {
19
+ return this.config.name;
20
+ }
21
+ /**
22
+ * Swarm ID
23
+ */
24
+ get id() {
25
+ return this.coordinator.getSwarmId();
26
+ }
27
+ /**
28
+ * Strategy type
29
+ */
30
+ get strategyType() {
31
+ return this.config.strategy;
32
+ }
33
+ /**
34
+ * Message bus for agent communication
35
+ */
36
+ get messageBus() {
37
+ return this.coordinator.messageBus;
38
+ }
39
+ /**
40
+ * Shared blackboard
41
+ */
42
+ get blackboard() {
43
+ return this.coordinator.blackboard;
44
+ }
45
+ /**
46
+ * Event emitter for swarm events
47
+ */
48
+ get events() {
49
+ return this.coordinator.events;
50
+ }
51
+ /**
52
+ * Run the swarm with the configured strategy
53
+ */
54
+ async run(options) {
55
+ this.coordinator.events.emit('swarm:start', {
56
+ swarmId: this.id,
57
+ strategy: this.config.strategy,
58
+ input: options.input.slice(0, 100),
59
+ });
60
+ try {
61
+ const result = await this.strategy.execute(options);
62
+ this.coordinator.events.emit('swarm:complete', {
63
+ swarmId: this.id,
64
+ outputLength: typeof result.output === 'string' ? result.output.length : 0,
65
+ agentCount: result.agentResults.size,
66
+ });
67
+ return result;
68
+ }
69
+ catch (error) {
70
+ this.coordinator.events.emit('swarm:error', {
71
+ swarmId: this.id,
72
+ error: error instanceof Error ? error.message : 'Unknown error',
73
+ });
74
+ throw error;
75
+ }
76
+ }
77
+ /**
78
+ * Get all agents in the swarm
79
+ */
80
+ getAgents() {
81
+ return this.coordinator.getAgents();
82
+ }
83
+ /**
84
+ * Get a specific agent by name
85
+ */
86
+ getAgent(name) {
87
+ return this.coordinator.getAgent(name);
88
+ }
89
+ /**
90
+ * Subscribe to swarm events
91
+ */
92
+ on(event, handler) {
93
+ return this.coordinator.events.on(event, handler);
94
+ }
95
+ /**
96
+ * Subscribe to swarm event once
97
+ */
98
+ once(event, handler) {
99
+ return this.coordinator.events.once(event, handler);
100
+ }
101
+ /**
102
+ * Get resource usage
103
+ */
104
+ getResourceUsage() {
105
+ return this.coordinator.getResourceUsage();
106
+ }
107
+ /**
108
+ * Pause swarm execution
109
+ */
110
+ pause() {
111
+ this.coordinator.pause();
112
+ this.coordinator.events.emit('swarm:paused', { swarmId: this.id });
113
+ }
114
+ /**
115
+ * Resume swarm execution
116
+ */
117
+ resume() {
118
+ this.coordinator.resume();
119
+ this.coordinator.events.emit('swarm:resumed', { swarmId: this.id });
120
+ }
121
+ /**
122
+ * Abort swarm execution
123
+ */
124
+ abort() {
125
+ this.coordinator.abort();
126
+ this.coordinator.events.emit('swarm:aborted', { swarmId: this.id });
127
+ }
128
+ /**
129
+ * Check if swarm is paused
130
+ */
131
+ isPaused() {
132
+ return this.coordinator.isPaused();
133
+ }
134
+ /**
135
+ * Check if swarm is aborted
136
+ */
137
+ isAborted() {
138
+ return this.coordinator.isAborted();
139
+ }
140
+ /**
141
+ * Reset swarm state for a new run
142
+ */
143
+ reset() {
144
+ this.coordinator.reset();
145
+ this.coordinator.events.emit('swarm:reset', { swarmId: this.id });
146
+ }
147
+ validateConfig(config) {
148
+ const validStrategies = [
149
+ 'hierarchical',
150
+ 'round-robin',
151
+ 'consensus',
152
+ 'auction',
153
+ 'pipeline',
154
+ 'debate',
155
+ ];
156
+ if (!validStrategies.includes(config.strategy)) {
157
+ throw new Error(`Invalid swarm strategy: ${config.strategy}. Valid strategies: ${validStrategies.join(', ')}`);
158
+ }
159
+ switch (config.strategy) {
160
+ case 'hierarchical':
161
+ if (!config.supervisor) {
162
+ throw new Error('Hierarchical strategy requires a supervisor agent');
163
+ }
164
+ break;
165
+ case 'pipeline':
166
+ if (!config.pipeline?.stages || config.pipeline.stages.length === 0) {
167
+ throw new Error('Pipeline strategy requires at least one stage');
168
+ }
169
+ break;
170
+ case 'consensus':
171
+ if (!config.consensus) {
172
+ throw new Error('Consensus strategy requires consensus configuration');
173
+ }
174
+ if (!config.agents || config.agents.length < 2) {
175
+ throw new Error('Consensus strategy requires at least 2 agents');
176
+ }
177
+ break;
178
+ case 'debate':
179
+ if (!config.debate) {
180
+ throw new Error('Debate strategy requires debate configuration');
181
+ }
182
+ break;
183
+ case 'auction':
184
+ if (!config.auction) {
185
+ throw new Error('Auction strategy requires auction configuration');
186
+ }
187
+ break;
188
+ }
189
+ return config;
190
+ }
191
+ }
192
+ /**
193
+ * Create a swarm with fluent configuration
194
+ */
195
+ export class SwarmBuilder {
196
+ config = {};
197
+ constructor(name) {
198
+ this.config.name = name;
199
+ }
200
+ strategy(strategy) {
201
+ this.config.strategy = strategy;
202
+ return this;
203
+ }
204
+ supervisor(agent) {
205
+ this.config.supervisor = agent;
206
+ return this;
207
+ }
208
+ workers(agents) {
209
+ this.config.workers = agents;
210
+ return this;
211
+ }
212
+ agents(agents) {
213
+ this.config.agents = agents;
214
+ return this;
215
+ }
216
+ moderator(agent) {
217
+ this.config.moderator = agent;
218
+ return this;
219
+ }
220
+ router(agent) {
221
+ this.config.router = agent;
222
+ return this;
223
+ }
224
+ hierarchical(config) {
225
+ this.config.hierarchical = config;
226
+ return this;
227
+ }
228
+ roundRobin(config) {
229
+ this.config.roundRobin = config;
230
+ return this;
231
+ }
232
+ consensus(config) {
233
+ this.config.consensus = config;
234
+ return this;
235
+ }
236
+ auction(config) {
237
+ this.config.auction = config;
238
+ return this;
239
+ }
240
+ pipeline(config) {
241
+ this.config.pipeline = config;
242
+ return this;
243
+ }
244
+ debate(config) {
245
+ this.config.debate = config;
246
+ return this;
247
+ }
248
+ messaging(config) {
249
+ this.config.messaging = config;
250
+ return this;
251
+ }
252
+ blackboardConfig(config) {
253
+ this.config.blackboard = config;
254
+ return this;
255
+ }
256
+ resources(config) {
257
+ this.config.resources = config;
258
+ return this;
259
+ }
260
+ errorHandling(config) {
261
+ this.config.errorHandling = config;
262
+ return this;
263
+ }
264
+ build(cogitator) {
265
+ if (!this.config.name) {
266
+ throw new Error('Swarm name is required');
267
+ }
268
+ if (!this.config.strategy) {
269
+ throw new Error('Swarm strategy is required');
270
+ }
271
+ return new Swarm(cogitator, this.config);
272
+ }
273
+ }
274
+ /**
275
+ * Create a new swarm builder
276
+ */
277
+ export function swarm(name) {
278
+ return new SwarmBuilder(name);
279
+ }
280
+ //# sourceMappingURL=swarm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../src/swarm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Swarm blackboard tools for shared state management
3
+ */
4
+ import type { Blackboard } from '@cogitator-ai/types';
5
+ /**
6
+ * Create blackboard tools bound to a blackboard instance
7
+ */
8
+ export declare function createBlackboardTools(blackboard: Blackboard, currentAgent: string): {
9
+ readBlackboard: import("@cogitator-ai/types").Tool<{
10
+ section: string;
11
+ key?: string | undefined;
12
+ }, {
13
+ found: boolean;
14
+ section: string;
15
+ key: string;
16
+ data: {} | null;
17
+ } | {
18
+ found: boolean;
19
+ section: string;
20
+ data: {} | null;
21
+ key?: undefined;
22
+ }>;
23
+ writeBlackboard: import("@cogitator-ai/types").Tool<{
24
+ section: string;
25
+ data?: unknown;
26
+ merge?: boolean | undefined;
27
+ }, {
28
+ written: boolean;
29
+ section: string;
30
+ merged: boolean;
31
+ }>;
32
+ appendBlackboard: import("@cogitator-ai/types").Tool<{
33
+ section: string;
34
+ item?: unknown;
35
+ }, {
36
+ appended: boolean;
37
+ section: string;
38
+ error?: undefined;
39
+ } | {
40
+ appended: boolean;
41
+ error: string;
42
+ section?: undefined;
43
+ }>;
44
+ listBlackboardSections: import("@cogitator-ai/types").Tool<{
45
+ prefix?: string | undefined;
46
+ }, {
47
+ sections: string[];
48
+ count: number;
49
+ }>;
50
+ getBlackboardHistory: import("@cogitator-ai/types").Tool<{
51
+ section: string;
52
+ limit?: number | undefined;
53
+ }, {
54
+ section: string;
55
+ history: never[];
56
+ count: number;
57
+ totalHistory?: undefined;
58
+ } | {
59
+ section: string;
60
+ history: {
61
+ version: number;
62
+ writtenBy: string;
63
+ timestamp: number;
64
+ hasValue: boolean;
65
+ }[];
66
+ count: number;
67
+ totalHistory: number;
68
+ }>;
69
+ };
70
+ export type BlackboardTools = ReturnType<typeof createBlackboardTools>;
71
+ //# sourceMappingURL=blackboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackboard.d.ts","sourceRoot":"","sources":["../../src/tools/blackboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwJjF;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Swarm blackboard tools for shared state management
3
+ */
4
+ import { z } from 'zod';
5
+ import { tool } from '@cogitator-ai/core';
6
+ /**
7
+ * Create blackboard tools bound to a blackboard instance
8
+ */
9
+ export function createBlackboardTools(blackboard, currentAgent) {
10
+ const readBlackboard = tool({
11
+ name: 'read_blackboard',
12
+ description: 'Read data from the shared blackboard',
13
+ parameters: z.object({
14
+ section: z.string().describe('The section name to read from'),
15
+ key: z.string().optional().describe('Specific key within the section (reads entire section if omitted)'),
16
+ }),
17
+ execute: async ({ section, key }) => {
18
+ const data = blackboard.read(section);
19
+ if (data === undefined) {
20
+ return {
21
+ found: false,
22
+ section,
23
+ data: null,
24
+ };
25
+ }
26
+ if (key && typeof data === 'object' && data !== null) {
27
+ const value = data[key];
28
+ return {
29
+ found: value !== undefined,
30
+ section,
31
+ key,
32
+ data: value ?? null,
33
+ };
34
+ }
35
+ return {
36
+ found: true,
37
+ section,
38
+ data,
39
+ };
40
+ },
41
+ });
42
+ const writeBlackboard = tool({
43
+ name: 'write_blackboard',
44
+ description: 'Write data to the shared blackboard',
45
+ parameters: z.object({
46
+ section: z.string().describe('The section name to write to'),
47
+ data: z.unknown().describe('The data to write (will replace existing section data)'),
48
+ merge: z.boolean().optional().describe('If true and data is an object, merge with existing data'),
49
+ }),
50
+ execute: async ({ section, data, merge }) => {
51
+ if (merge && typeof data === 'object' && data !== null) {
52
+ const existing = blackboard.read(section);
53
+ if (existing && typeof existing === 'object') {
54
+ const merged = { ...existing, ...data };
55
+ blackboard.write(section, merged, currentAgent);
56
+ return {
57
+ written: true,
58
+ section,
59
+ merged: true,
60
+ };
61
+ }
62
+ }
63
+ blackboard.write(section, data, currentAgent);
64
+ return {
65
+ written: true,
66
+ section,
67
+ merged: false,
68
+ };
69
+ },
70
+ });
71
+ const appendBlackboard = tool({
72
+ name: 'append_blackboard',
73
+ description: 'Append an item to an array section on the blackboard',
74
+ parameters: z.object({
75
+ section: z.string().describe('The section name (must be an array)'),
76
+ item: z.unknown().describe('The item to append'),
77
+ }),
78
+ execute: async ({ section, item }) => {
79
+ try {
80
+ blackboard.append(section, item, currentAgent);
81
+ return {
82
+ appended: true,
83
+ section,
84
+ };
85
+ }
86
+ catch (error) {
87
+ return {
88
+ appended: false,
89
+ error: error instanceof Error ? error.message : 'Failed to append',
90
+ };
91
+ }
92
+ },
93
+ });
94
+ const listBlackboardSections = tool({
95
+ name: 'list_blackboard_sections',
96
+ description: 'List all available sections on the blackboard',
97
+ parameters: z.object({
98
+ prefix: z.string().optional().describe('Filter sections by prefix'),
99
+ }),
100
+ execute: async ({ prefix }) => {
101
+ let sections = blackboard.getSections();
102
+ if (prefix) {
103
+ sections = sections.filter(s => s.startsWith(prefix));
104
+ }
105
+ return {
106
+ sections,
107
+ count: sections.length,
108
+ };
109
+ },
110
+ });
111
+ const getBlackboardHistory = tool({
112
+ name: 'get_blackboard_history',
113
+ description: 'Get the history of changes for a section',
114
+ parameters: z.object({
115
+ section: z.string().describe('The section to get history for'),
116
+ limit: z.number().optional().describe('Maximum number of history entries (default: 10)'),
117
+ }),
118
+ execute: async ({ section, limit = 10 }) => {
119
+ const history = blackboard.getHistory(section);
120
+ if (!history || history.length === 0) {
121
+ return {
122
+ section,
123
+ history: [],
124
+ count: 0,
125
+ };
126
+ }
127
+ const entries = history.slice(-limit).map(entry => ({
128
+ version: entry.version,
129
+ writtenBy: entry.writtenBy,
130
+ timestamp: entry.timestamp,
131
+ hasValue: entry.value !== undefined,
132
+ }));
133
+ return {
134
+ section,
135
+ history: entries,
136
+ count: entries.length,
137
+ totalHistory: history.length,
138
+ };
139
+ },
140
+ });
141
+ return {
142
+ readBlackboard,
143
+ writeBlackboard,
144
+ appendBlackboard,
145
+ listBlackboardSections,
146
+ getBlackboardHistory,
147
+ };
148
+ }
149
+ //# sourceMappingURL=blackboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackboard.js","sourceRoot":"","sources":["../../src/tools/blackboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Swarm delegation tools for hierarchical task management
3
+ */
4
+ import type { SwarmCoordinatorInterface, Blackboard } from '@cogitator-ai/types';
5
+ /**
6
+ * Create delegation tools for supervisor agents
7
+ */
8
+ export declare function createDelegationTools(coordinator: SwarmCoordinatorInterface, blackboard: Blackboard, currentAgent: string): {
9
+ delegateTask: import("@cogitator-ai/types").Tool<{
10
+ worker: string;
11
+ task: string;
12
+ context?: Record<string, unknown> | undefined;
13
+ priority?: "high" | "normal" | "low" | undefined;
14
+ waitForCompletion?: boolean | undefined;
15
+ }, {
16
+ success: boolean;
17
+ error: string;
18
+ availableWorkers: string[];
19
+ taskId?: undefined;
20
+ worker?: undefined;
21
+ async?: undefined;
22
+ message?: undefined;
23
+ output?: undefined;
24
+ usage?: undefined;
25
+ } | {
26
+ success: boolean;
27
+ taskId: string;
28
+ worker: string;
29
+ async: boolean;
30
+ message: string;
31
+ error?: undefined;
32
+ availableWorkers?: undefined;
33
+ output?: undefined;
34
+ usage?: undefined;
35
+ } | {
36
+ success: boolean;
37
+ taskId: string;
38
+ worker: string;
39
+ output: string;
40
+ usage: {
41
+ tokens: number;
42
+ cost: number;
43
+ duration: number;
44
+ };
45
+ error?: undefined;
46
+ availableWorkers?: undefined;
47
+ async?: undefined;
48
+ message?: undefined;
49
+ } | {
50
+ success: boolean;
51
+ taskId: string;
52
+ worker: string;
53
+ error: string;
54
+ availableWorkers?: undefined;
55
+ async?: undefined;
56
+ message?: undefined;
57
+ output?: undefined;
58
+ usage?: undefined;
59
+ }>;
60
+ checkProgress: import("@cogitator-ai/types").Tool<{
61
+ worker: string;
62
+ }, {
63
+ found: boolean;
64
+ error: string;
65
+ worker?: undefined;
66
+ state?: undefined;
67
+ tokenCount?: undefined;
68
+ tasks?: undefined;
69
+ lastTask?: undefined;
70
+ } | {
71
+ found: boolean;
72
+ worker: string;
73
+ state: import("@cogitator-ai/types").SwarmAgentState;
74
+ tokenCount: number;
75
+ tasks: {
76
+ total: number;
77
+ completed: number;
78
+ pending: number;
79
+ failed: number;
80
+ };
81
+ lastTask: {
82
+ id: string;
83
+ task: string;
84
+ status: string;
85
+ result: unknown;
86
+ } | null;
87
+ error?: undefined;
88
+ }>;
89
+ requestRevision: import("@cogitator-ai/types").Tool<{
90
+ worker: string;
91
+ feedback: string;
92
+ taskId?: string | undefined;
93
+ }, {
94
+ success: boolean;
95
+ error: string;
96
+ taskId?: undefined;
97
+ worker?: undefined;
98
+ revisedOutput?: undefined;
99
+ } | {
100
+ success: boolean;
101
+ taskId: string;
102
+ worker: string;
103
+ revisedOutput: string;
104
+ error?: undefined;
105
+ }>;
106
+ listWorkers: import("@cogitator-ai/types").Tool<{
107
+ includeMetadata?: boolean | undefined;
108
+ }, {
109
+ count: number;
110
+ workers: {
111
+ expertise?: string[] | undefined;
112
+ priority?: number | undefined;
113
+ name: string;
114
+ state: import("@cogitator-ai/types").SwarmAgentState;
115
+ tokenCount: number;
116
+ }[];
117
+ }>;
118
+ };
119
+ export type DelegationTools = ReturnType<typeof createDelegationTools>;
120
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/tools/delegation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,yBAAyB,EACtC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwSrB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC"}