@cogitator-ai/worker 0.9.24 → 0.11.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.
@@ -2,14 +2,29 @@
2
2
  * Worker node for distributed swarms.
3
3
  *
4
4
  * Consumes agent turns dispatched by `DistributedSwarmCoordinator` (from
5
- * `@cogitator-ai/swarms`), runs them with the worker's Cogitator and tools, and publishes
6
- * each result back to the coordinator's results channel.
5
+ * `@cogitator-ai/swarms`), runs them with the worker's Cogitator and tools, and hands each
6
+ * result back to the coordinator. A turn moves from the queue to this worker's own list while
7
+ * it runs, so a turn of a worker that died goes back to the queue for another one.
7
8
  */
8
- import { Redis } from 'ioredis';
9
- import { swarmJobQueueKey } from '@cogitator-ai/swarms';
9
+ import { nanoid } from 'nanoid';
10
+ import { closeSwarmRedis, createSwarmRedis, deliverSwarmJobResult, swarmQueueKeys, } from '@cogitator-ai/swarms';
10
11
  import { executeSwarmAgentJob } from './processors/swarm-agent.js';
11
12
  import { toErrorMessage } from './processors/shared.js';
12
13
  import { Cogitator } from '@cogitator-ai/core';
14
+ /** Take one copy of a turn off a worker's list and put it at the head of the queue, at once */
15
+ const HAND_BACK = `if redis.call('LREM', KEYS[1], 1, ARGV[1]) == 1 then
16
+ redis.call('LPUSH', KEYS[2], ARGV[1])
17
+ return 1
18
+ end
19
+ return 0`;
20
+ /**
21
+ * Drop a worker from the queue's workers only while its heartbeat is still gone, at once: a
22
+ * worker that came back and beat meanwhile keeps its place, so its list stays found
23
+ */
24
+ const FORGET_WORKER = `if redis.call('EXISTS', KEYS[1]) == 0 then
25
+ return redis.call('SREM', KEYS[2], ARGV[1])
26
+ end
27
+ return 0`;
13
28
  function isSwarmAgentJob(value) {
14
29
  if (typeof value !== 'object' || value === null)
15
30
  return false;
@@ -26,12 +41,24 @@ export class DistributedSwarmWorker {
26
41
  config;
27
42
  events;
28
43
  runtime;
29
- queueKey;
44
+ keys;
45
+ /** This worker's id in the queue's worker set, new for every start */
46
+ workerId = '';
30
47
  consumer;
31
48
  publisher;
32
49
  loop;
50
+ /** The next beat, scheduled once the one before it finished */
51
+ beat;
52
+ /** The beat running now, which `stop()` waits for */
53
+ beating;
54
+ /** Whether the worker beats: from `start()` until `stop()` saw its last turn finish */
55
+ alive = false;
33
56
  running = false;
34
57
  active = new Set();
58
+ /** The turns this worker took and runs, as moved: one entry per copy */
59
+ holding = [];
60
+ /** Turns on this worker's list it did not run at the last beat, with how many copies */
61
+ strays = new Map();
35
62
  constructor(config = {}, events = {}) {
36
63
  this.config = config;
37
64
  this.events = events;
@@ -39,38 +66,39 @@ export class DistributedSwarmWorker {
39
66
  cogitator: config.cogitator ?? new Cogitator(),
40
67
  tools: config.tools ?? [],
41
68
  };
42
- this.queueKey = swarmJobQueueKey(config.keyPrefix, config.queue);
69
+ this.keys = swarmQueueKeys(config.keyPrefix, config.queue);
43
70
  }
44
71
  /**
45
- * Start consuming jobs. Resolves once the worker is connected.
72
+ * Start consuming jobs. Resolves once the worker is connected, has joined the queue's workers
73
+ * and has returned the turns of workers that are gone to the queue.
46
74
  */
47
75
  async start() {
48
76
  if (this.running)
49
77
  return;
50
- const options = {
51
- host: this.config.redis?.host ?? 'localhost',
52
- port: this.config.redis?.port ?? 6379,
53
- password: this.config.redis?.password,
54
- db: this.config.redis?.db ?? 0,
55
- lazyConnect: true,
56
- };
57
- const consumer = new Redis({ ...options, maxRetriesPerRequest: null });
58
- const publisher = new Redis(options);
78
+ const consumer = createSwarmRedis(this.config.redis, { blocking: true });
79
+ const publisher = createSwarmRedis(this.config.redis);
59
80
  try {
60
81
  await Promise.all([consumer.connect(), publisher.connect()]);
82
+ this.workerId = `worker_${nanoid(12)}`;
83
+ this.publisher = publisher;
84
+ await this.heartbeat();
85
+ await this.recover();
61
86
  }
62
87
  catch (error) {
88
+ this.publisher = undefined;
63
89
  consumer.disconnect();
64
90
  publisher.disconnect();
65
91
  throw error;
66
92
  }
67
93
  this.consumer = consumer;
68
- this.publisher = publisher;
69
94
  this.running = true;
95
+ this.alive = true;
96
+ this.scheduleBeat();
70
97
  this.loop = this.consume();
71
98
  }
72
99
  /**
73
- * Stop taking new jobs, wait for in-flight jobs to finish and close connections.
100
+ * Stop taking new jobs, wait for in-flight jobs to finish, hand back to the queue whatever is
101
+ * still on this worker's list, leave the queue's workers and close connections.
74
102
  */
75
103
  async stop() {
76
104
  if (!this.running)
@@ -79,10 +107,28 @@ export class DistributedSwarmWorker {
79
107
  this.consumer?.disconnect();
80
108
  await this.loop;
81
109
  await Promise.allSettled([...this.active]);
82
- await this.publisher?.quit();
110
+ this.alive = false;
111
+ clearTimeout(this.beat);
112
+ await this.beating;
113
+ if (this.publisher) {
114
+ try {
115
+ await this.requeue(this.workerId);
116
+ await this.publisher.del(this.keys.heartbeat(this.workerId));
117
+ await this.publisher.srem(this.keys.workers, this.workerId);
118
+ }
119
+ catch (error) {
120
+ this.reportError(error);
121
+ }
122
+ await closeSwarmRedis(this.publisher);
123
+ }
83
124
  this.consumer = undefined;
84
125
  this.publisher = undefined;
85
126
  this.loop = undefined;
127
+ this.beat = undefined;
128
+ }
129
+ /** This worker's id in the queue's worker set while it runs */
130
+ getWorkerId() {
131
+ return this.workerId;
86
132
  }
87
133
  isRunning() {
88
134
  return this.running;
@@ -98,25 +144,123 @@ export class DistributedSwarmWorker {
98
144
  await Promise.race(this.active);
99
145
  continue;
100
146
  }
101
- let entry;
147
+ let raw;
102
148
  try {
103
- entry = await this.consumer.blpop(this.queueKey, pollTimeout);
149
+ raw = await this.consumer.blmove(this.keys.queue, this.keys.processing(this.workerId), 'LEFT', 'RIGHT', pollTimeout);
104
150
  }
105
151
  catch (error) {
106
152
  if (!this.running)
107
153
  return;
108
- this.events.onError?.(error instanceof Error ? error : new Error(toErrorMessage(error)));
154
+ this.reportError(error);
109
155
  await new Promise((resolve) => setTimeout(resolve, 1000));
110
156
  continue;
111
157
  }
112
- if (!entry)
158
+ if (raw === null)
113
159
  continue;
114
- const task = this.handle(entry[1]).finally(() => {
160
+ const taken = raw;
161
+ this.holding.push(taken);
162
+ const task = this.handle(taken)
163
+ .catch((error) => this.reportError(error))
164
+ .finally(() => {
115
165
  this.active.delete(task);
166
+ this.holding.splice(this.holding.indexOf(taken), 1);
167
+ void this.publisher
168
+ ?.lrem(this.keys.processing(this.workerId), 1, taken)
169
+ .catch((error) => this.reportError(error));
116
170
  });
117
171
  this.active.add(task);
118
172
  }
119
173
  }
174
+ /**
175
+ * Beat once `heartbeatInterval` ms from now, and again that long after it finished: one beat at
176
+ * a time, so a slow Redis never runs two `reclaim()` at once or shortens the grace between two
177
+ */
178
+ scheduleBeat() {
179
+ this.beat = setTimeout(() => {
180
+ this.beating = this.heartbeat()
181
+ .then(() => this.reclaim())
182
+ .then(() => this.recover())
183
+ .catch((error) => this.reportError(error))
184
+ .finally(() => {
185
+ this.beating = undefined;
186
+ if (this.alive)
187
+ this.scheduleBeat();
188
+ });
189
+ }, this.heartbeatInterval());
190
+ }
191
+ heartbeatInterval() {
192
+ return Math.max(100, this.config.heartbeatInterval ?? 5000);
193
+ }
194
+ /** Tell the queue this worker is alive: its heartbeat first, so no one takes it for gone */
195
+ async heartbeat() {
196
+ const publisher = this.publisher;
197
+ await publisher.set(this.keys.heartbeat(this.workerId), String(Date.now()), 'PX', this.heartbeatInterval() * 3);
198
+ await publisher.sadd(this.keys.workers, this.workerId);
199
+ }
200
+ /**
201
+ * Hand back to the queue the turns on this worker's own list it does not run, at the second
202
+ * beat in a row that finds them there: a BLMOVE whose reply a dropped connection lost (and
203
+ * ioredis sent again) moved a turn this worker never got. One beat of grace lets a reply that
204
+ * is still on its way arrive first
205
+ */
206
+ async reclaim() {
207
+ const publisher = this.publisher;
208
+ const listed = await publisher.lrange(this.keys.processing(this.workerId), 0, -1);
209
+ const strays = new Map();
210
+ for (const raw of listed)
211
+ strays.set(raw, (strays.get(raw) ?? 0) + 1);
212
+ for (const raw of this.holding) {
213
+ const left = (strays.get(raw) ?? 0) - 1;
214
+ if (left > 0)
215
+ strays.set(raw, left);
216
+ else
217
+ strays.delete(raw);
218
+ }
219
+ let count = 0;
220
+ for (const [raw, copies] of strays) {
221
+ const confirmed = Math.min(copies, this.strays.get(raw) ?? 0);
222
+ for (let at = 0; at < confirmed; at++) {
223
+ const moved = await publisher.eval(HAND_BACK, 2, this.keys.processing(this.workerId), this.keys.queue, raw);
224
+ if (moved === 1)
225
+ count++;
226
+ }
227
+ }
228
+ this.strays = strays;
229
+ if (count > 0)
230
+ this.events.onJobsRecovered?.(this.workerId, count);
231
+ }
232
+ /** Return the turns of every worker whose heartbeat is gone to the queue */
233
+ async recover() {
234
+ const publisher = this.publisher;
235
+ for (const workerId of await publisher.smembers(this.keys.workers)) {
236
+ if (workerId === this.workerId)
237
+ continue;
238
+ if ((await publisher.exists(this.keys.heartbeat(workerId))) === 1)
239
+ continue;
240
+ const count = await this.requeue(workerId);
241
+ await publisher.eval(FORGET_WORKER, 2, this.keys.heartbeat(workerId), this.keys.workers, workerId);
242
+ if (count > 0)
243
+ this.events.onJobsRecovered?.(workerId, count);
244
+ }
245
+ }
246
+ /**
247
+ * Move the turns on a worker's list back to the head of the queue, one at a time so two
248
+ * workers recovering it at once never move a turn twice
249
+ *
250
+ * @returns how many turns this call moved
251
+ */
252
+ async requeue(workerId) {
253
+ const publisher = this.publisher;
254
+ let count = 0;
255
+ while ((await publisher.lmove(this.keys.processing(workerId), this.keys.queue, 'RIGHT', 'LEFT')) !==
256
+ null) {
257
+ count++;
258
+ }
259
+ return count;
260
+ }
261
+ reportError(error) {
262
+ this.events.onError?.(error instanceof Error ? error : new Error(toErrorMessage(error)));
263
+ }
120
264
  async handle(raw) {
121
265
  let parsed;
122
266
  try {
@@ -150,10 +294,10 @@ export class DistributedSwarmWorker {
150
294
  return;
151
295
  }
152
296
  try {
153
- await this.publisher.publish(job.stateKeys.results, JSON.stringify(result));
297
+ await deliverSwarmJobResult(this.publisher, job, result, (error) => this.reportError(error));
154
298
  }
155
299
  catch (error) {
156
- this.events.onError?.(error instanceof Error ? error : new Error(toErrorMessage(error)));
300
+ this.reportError(error);
157
301
  return;
158
302
  }
159
303
  if (result.error !== undefined) {
@@ -163,16 +307,22 @@ export class DistributedSwarmWorker {
163
307
  this.events.onJobCompleted?.(job, result);
164
308
  }
165
309
  }
166
- /** Whether the coordinator gave up on the job (only coordinators that name a cancel set). */
310
+ /**
311
+ * Whether the coordinator gave up on the job (only coordinators that name a cancel set), or a
312
+ * worker answered it already, such as one that died after answering and before taking the job
313
+ * off its list
314
+ */
167
315
  async isCancelled(job) {
168
- const key = job.stateKeys.cancelled;
169
- if (!key || !this.publisher)
316
+ const { cancelled, result } = job.stateKeys;
317
+ if (!this.publisher)
170
318
  return false;
171
319
  try {
172
- return (await this.publisher.sismember(key, job.jobId)) === 1;
320
+ if (cancelled && (await this.publisher.sismember(cancelled, job.jobId)) === 1)
321
+ return true;
322
+ return result !== undefined && (await this.publisher.exists(result)) === 1;
173
323
  }
174
324
  catch (error) {
175
- this.events.onError?.(error instanceof Error ? error : new Error(toErrorMessage(error)));
325
+ this.reportError(error);
176
326
  return false;
177
327
  }
178
328
  }
@@ -1 +1 @@
1
- {"version":3,"file":"distributed-swarm-worker.js","sourceRoot":"","sources":["../src/distributed-swarm-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distributed-swarm-worker.js","sourceRoot":"","sources":["../src/distributed-swarm-worker.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,5 +15,5 @@ export { formatPrometheusMetrics, DurationHistogram, MetricsCollector } from './
15
15
  export { serializeAgent, serializeResponseFormat } from './serialize.js';
16
16
  export { resolveRedisOptions, type RedisConnectionOptions } from './connection.js';
17
17
  export { processAgentJob, processWorkflowJob, processSwarmJob, processSwarmAgentJob, executeSwarmAgentJob, buildSwarmConfig, validateWorkflow, type SwarmAgentJobOptions, type SwarmResultPublisher, } from './processors/index.js';
18
- export type { SerializedAgent, SerializedResponseFormat, AgentJobUsage, SerializedWorkflow, SerializedWorkflowNode, SerializedWorkflowEdge, AgentNodeConfig, TransformNodeConfig, TransformOperation, ConditionNodeConfig, ConditionOperator, SerializedSwarm, SwarmTopology, JobPayload, AgentJobPayload, AgentJobResume, WorkflowJobPayload, SwarmJobPayload, SwarmAgentJobPayload, JobResult, AgentJobResult, WorkflowJobResult, SwarmJobResult, SwarmAgentJobResult, QueueConfig, WorkerConfig, WorkerRuntime, JobExecutionOptions, QueueMetrics, JobState, } from './types.js';
18
+ export type { SerializedAgent, SerializedResponseFormat, AgentJobUsage, SerializedWorkflow, SerializedWorkflowNode, SerializedWorkflowEdge, AgentNodeConfig, TransformNodeConfig, TransformOperation, ConditionNodeConfig, ConditionOperator, SerializedSwarm, SwarmTopology, JobPayload, AgentJobPayload, AgentJobResume, WorkflowJobPayload, SwarmJobPayload, SwarmAgentJobPayload, JobResult, AgentJobResult, WorkflowJobResult, SwarmJobResult, JobUsage, SwarmAgentJobResult, QueueConfig, WorkerConfig, WorkerRuntime, JobExecutionOptions, QueueMetrics, JobState, } from './types.js';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAC"}
package/dist/metrics.d.ts CHANGED
@@ -42,11 +42,25 @@ export declare class MetricsCollector {
42
42
  readonly jobDuration: DurationHistogram;
43
43
  private jobsByType;
44
44
  private failedJobsByType;
45
+ private tokensByType;
46
+ private inputTokensByType;
47
+ private outputTokensByType;
48
+ private costByType;
45
49
  constructor();
46
50
  /**
47
51
  * Record a completed job
48
52
  */
49
53
  recordJob(type: string, durationMs: number): void;
54
+ /**
55
+ * Record what a completed job used and cost. Input and output tokens are counted where the job
56
+ * reported them apart.
57
+ */
58
+ recordUsage(type: string, usage: {
59
+ inputTokens?: number;
60
+ outputTokens?: number;
61
+ totalTokens: number;
62
+ cost: number;
63
+ }): void;
50
64
  /**
51
65
  * Record a job that failed its last attempt
52
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuB5C;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,CAoCR;AAOD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQtC;;OAEG;IACH,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAWtC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAuB/C;;OAEG;IACH,KAAK,IAAI,IAAI;CAOd;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,gBAAgB,CAA6B;;IASrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKjD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAoB5E"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuB5C;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,CAoCR;AAOD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQtC;;OAEG;IACH,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAWtC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAuB/C;;OAEG;IACH,KAAK,IAAI,IAAI;CAOd;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,UAAU,CAA6B;;IAS/C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKjD;;;OAGG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACxF,IAAI;IASP;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CA4C5E"}
package/dist/metrics.js CHANGED
@@ -135,6 +135,10 @@ export class MetricsCollector {
135
135
  jobDuration;
136
136
  jobsByType = new Map();
137
137
  failedJobsByType = new Map();
138
+ tokensByType = new Map();
139
+ inputTokensByType = new Map();
140
+ outputTokensByType = new Map();
141
+ costByType = new Map();
138
142
  constructor() {
139
143
  this.jobDuration = new DurationHistogram('cogitator_job_duration_seconds', 'Job processing duration in seconds');
140
144
  }
@@ -145,6 +149,19 @@ export class MetricsCollector {
145
149
  this.jobDuration.observe(durationMs / 1000);
146
150
  this.jobsByType.set(type, (this.jobsByType.get(type) ?? 0) + 1);
147
151
  }
152
+ /**
153
+ * Record what a completed job used and cost. Input and output tokens are counted where the job
154
+ * reported them apart.
155
+ */
156
+ recordUsage(type, usage) {
157
+ const add = (counts, value) => counts.set(type, (counts.get(type) ?? 0) + value);
158
+ add(this.tokensByType, usage.totalTokens);
159
+ add(this.costByType, usage.cost);
160
+ if (usage.inputTokens !== undefined)
161
+ add(this.inputTokensByType, usage.inputTokens);
162
+ if (usage.outputTokens !== undefined)
163
+ add(this.outputTokensByType, usage.outputTokens);
164
+ }
148
165
  /**
149
166
  * Record a job that failed its last attempt
150
167
  */
@@ -156,7 +173,7 @@ export class MetricsCollector {
156
173
  */
157
174
  format(queueMetrics, labels) {
158
175
  const parts = [formatPrometheusMetrics(queueMetrics, labels), this.jobDuration.format(labels)];
159
- parts.push(...formatCounterByType('cogitator_jobs_by_type_total', 'Jobs processed by type', this.jobsByType, labels), ...formatCounterByType('cogitator_jobs_failed_total', 'Jobs that failed their last attempt, by type', this.failedJobsByType, labels));
176
+ parts.push(...formatCounterByType('cogitator_jobs_by_type_total', 'Jobs processed by type', this.jobsByType, labels), ...formatCounterByType('cogitator_jobs_failed_total', 'Jobs that failed their last attempt, by type', this.failedJobsByType, labels), ...formatCounterByType('cogitator_job_tokens_total', 'Tokens the agent runs of completed jobs used, by type', this.tokensByType, labels), ...formatCounterByType('cogitator_job_input_tokens_total', 'Input tokens the agent runs of completed jobs used, by type', this.inputTokensByType, labels), ...formatCounterByType('cogitator_job_output_tokens_total', 'Output tokens the agent runs of completed jobs used, by type', this.outputTokensByType, labels), ...formatCounterByType('cogitator_job_cost_usd_total', 'USD the agent runs of completed jobs cost, by type', this.costByType, labels));
160
177
  return parts.join('\n');
161
178
  }
162
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@
5
5
  * the job id so the swarm coordinator can match it; failures are reported as results with
6
6
  * an `error` field instead of being thrown.
7
7
  */
8
+ import { type SwarmResultClient } from '@cogitator-ai/swarms';
8
9
  import type { JobExecutionOptions, SwarmAgentJobPayload, SwarmAgentJobResult, WorkerRuntime } from '../types.js';
9
10
  export declare function executeSwarmAgentJob(payload: SwarmAgentJobPayload, runtime?: WorkerRuntime, execution?: JobExecutionOptions): Promise<SwarmAgentJobResult>;
10
11
  /**
11
- * Publishes a job result on the channel the swarm coordinator listens to.
12
+ * Hands a job result to the swarm coordinator: publishes it on the channel the coordinator
13
+ * listens to, and keeps it under the job's result key first when it can set keys.
12
14
  */
13
- export interface SwarmResultPublisher {
14
- publish(channel: string, message: string): Promise<unknown>;
15
- }
15
+ export type SwarmResultPublisher = SwarmResultClient;
16
16
  export interface SwarmAgentJobOptions extends WorkerRuntime, JobExecutionOptions {
17
17
  /** Connection used to publish the result back to the coordinator */
18
18
  publisher: SwarmResultPublisher;
@@ -23,7 +23,8 @@ export interface SwarmAgentJobOptions extends WorkerRuntime, JobExecutionOptions
23
23
  isFinalAttempt?: boolean;
24
24
  }
25
25
  /**
26
- * Execute a swarm agent job and publish its result to `payload.stateKeys.results`.
26
+ * Execute a swarm agent job and hand its result to the coordinator: kept under
27
+ * `payload.stateKeys.result` when the job names one, and published to `payload.stateKeys.results`.
27
28
  * Throws after publishing when the agent failed, so queues mark the job as failed.
28
29
  */
29
30
  export declare function processSwarmAgentJob(payload: SwarmAgentJobPayload, options: SwarmAgentJobOptions): Promise<SwarmAgentJobResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-agent.d.ts","sourceRoot":"","sources":["../../src/processors/swarm-agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,UAAU,CAAC;AAGlB,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,aAAkB,EAC3B,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAyC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa,EAAE,mBAAmB;IAC9E,oEAAoE;IACpE,SAAS,EAAE,oBAAoB,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAa9B"}
1
+ {"version":3,"file":"swarm-agent.d.ts","sourceRoot":"","sources":["../../src/processors/swarm-agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,UAAU,CAAC;AAGlB,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,aAAkB,EAC3B,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAyC9B;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,oBAAqB,SAAQ,aAAa,EAAE,mBAAmB;IAC9E,oEAAoE;IACpE,SAAS,EAAE,oBAAoB,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAe9B"}
@@ -6,6 +6,7 @@
6
6
  * an `error` field instead of being thrown.
7
7
  */
8
8
  import { toAgentWireRunResult } from '@cogitator-ai/core';
9
+ import { deliverSwarmJobResult } from '@cogitator-ai/swarms';
9
10
  import { createAgentFromConfig, resolveRuntime, toErrorMessage } from './shared.js';
10
11
  export async function executeSwarmAgentJob(payload, runtime = {}, execution = {}) {
11
12
  const { jobId, swarmId, agentName, agentConfig, input, context, runOptions } = payload;
@@ -49,14 +50,17 @@ export async function executeSwarmAgentJob(payload, runtime = {}, execution = {}
49
50
  }
50
51
  }
51
52
  /**
52
- * Execute a swarm agent job and publish its result to `payload.stateKeys.results`.
53
+ * Execute a swarm agent job and hand its result to the coordinator: kept under
54
+ * `payload.stateKeys.result` when the job names one, and published to `payload.stateKeys.results`.
53
55
  * Throws after publishing when the agent failed, so queues mark the job as failed.
54
56
  */
55
57
  export async function processSwarmAgentJob(payload, options) {
56
58
  const result = await executeSwarmAgentJob(payload, options, { signal: options.signal });
57
59
  const isFinal = options.isFinalAttempt ?? true;
58
60
  if (result.error === undefined || isFinal) {
59
- await options.publisher.publish(payload.stateKeys.results, JSON.stringify(result));
61
+ await deliverSwarmJobResult(options.publisher, payload, result, (error) => {
62
+ console.warn('[processSwarmAgentJob] Could not keep the result under its key:', error);
63
+ });
60
64
  }
61
65
  if (result.error !== undefined) {
62
66
  throw new Error(result.error);
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-agent.js","sourceRoot":"","sources":["../../src/processors/swarm-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-agent.js","sourceRoot":"","sources":["../../src/processors/swarm-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/processors/swarm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAiB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAEV,eAAe,EAEf,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AASlB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GACb,cAAc,CAqDhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,SAA+B,GAClC,WAAW,CAwDb;AAqBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,aAAkB,EAC3B,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,cAAc,CAAC,CAgCzB"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/processors/swarm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAiB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAEV,eAAe,EAEf,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AASlB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GACb,cAAc,CAqDhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,SAA+B,GAClC,WAAW,CAwDb;AAqBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,aAAkB,EAC3B,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,cAAc,CAAC,CA4CzB"}
@@ -142,6 +142,7 @@ export async function processSwarmJob(payload, runtime = {}, execution = {}) {
142
142
  input: payload.input,
143
143
  ...(execution.signal && { signal: execution.signal }),
144
144
  });
145
+ const spent = swarm.getResourceUsage();
145
146
  return {
146
147
  type: 'swarm',
147
148
  output: typeof result.output === 'string' ? result.output : JSON.stringify(result.output),
@@ -150,6 +151,15 @@ export async function processSwarmJob(payload, runtime = {}, execution = {}) {
150
151
  agent: stageAgents.get(key) ?? key,
151
152
  output: runResult.output,
152
153
  })),
154
+ usage: {
155
+ totalTokens: spent.totalTokens,
156
+ cost: spent.totalCost,
157
+ runs: [...spent.agentUsage.values()].reduce((sum, one) => sum + one.runs, 0),
158
+ byAgent: Object.fromEntries([...spent.agentUsage].map(([agent, one]) => [
159
+ agent,
160
+ { tokens: one.tokens, cost: one.cost, runs: one.runs },
161
+ ])),
162
+ },
153
163
  };
154
164
  }
155
165
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/processors/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/processors/swarm.ts"],"names":[],"mappings":"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"}