@cogitator-ai/worker 0.9.24 → 0.10.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.
- package/README.md +59 -20
- package/dist/distributed-swarm-worker.d.ts.map +1 -1
- package/dist/distributed-swarm-worker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/metrics.d.ts +14 -0
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +18 -1
- package/dist/metrics.js.map +1 -1
- package/dist/processors/swarm.d.ts.map +1 -1
- package/dist/processors/swarm.js +10 -0
- package/dist/processors/swarm.js.map +1 -1
- package/dist/processors/workflow.d.ts +20 -7
- package/dist/processors/workflow.d.ts.map +1 -1
- package/dist/processors/workflow.js +238 -119
- package/dist/processors/workflow.js.map +1 -1
- package/dist/queue.d.ts +25 -0
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +82 -28
- package/dist/queue.js.map +1 -1
- package/dist/types.d.ts +43 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.d.ts +12 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +59 -3
- package/dist/worker.js.map +1 -1
- package/package.json +6 -5
package/dist/queue.js
CHANGED
|
@@ -10,6 +10,55 @@
|
|
|
10
10
|
import { Queue } from 'bullmq';
|
|
11
11
|
import { nanoid } from 'nanoid';
|
|
12
12
|
import { DEFAULT_QUEUE_NAME, createBullConnection, queuePrefix, } from './connection.js';
|
|
13
|
+
/**
|
|
14
|
+
* Names BullMQ keeps next to the jobs of a queue, under the same prefix: a job under one of them
|
|
15
|
+
* would overwrite a key of the queue itself
|
|
16
|
+
*/
|
|
17
|
+
const QUEUE_KEYS = new Set([
|
|
18
|
+
'active',
|
|
19
|
+
'wait',
|
|
20
|
+
'waiting-children',
|
|
21
|
+
'paused',
|
|
22
|
+
'id',
|
|
23
|
+
'delayed',
|
|
24
|
+
'prioritized',
|
|
25
|
+
'stalled-check',
|
|
26
|
+
'completed',
|
|
27
|
+
'failed',
|
|
28
|
+
'stalled',
|
|
29
|
+
'repeat',
|
|
30
|
+
'limiter',
|
|
31
|
+
'meta',
|
|
32
|
+
'events',
|
|
33
|
+
'pc',
|
|
34
|
+
'marker',
|
|
35
|
+
'de',
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* The id a producer gave a job, once checked: BullMQ builds Redis keys from it, so it must be a
|
|
39
|
+
* non-empty string without ':', not an integer and not a name of the queue's own keys
|
|
40
|
+
*/
|
|
41
|
+
function checkJobId(jobId) {
|
|
42
|
+
if (jobId === '' || jobId.includes(':')) {
|
|
43
|
+
throw new Error(`A job id must be a non-empty string without ':', got '${jobId}'`);
|
|
44
|
+
}
|
|
45
|
+
if (`${Number.parseInt(jobId, 10)}` === jobId) {
|
|
46
|
+
throw new Error(`A job id must not be an integer, got '${jobId}'`);
|
|
47
|
+
}
|
|
48
|
+
if (QUEUE_KEYS.has(jobId)) {
|
|
49
|
+
throw new Error(`A job id must not be '${jobId}', a key the queue keeps for itself`);
|
|
50
|
+
}
|
|
51
|
+
return jobId;
|
|
52
|
+
}
|
|
53
|
+
const isResume = (payload) => payload.type === 'agent' && payload.resume !== undefined;
|
|
54
|
+
const describe = (payload) => isResume(payload)
|
|
55
|
+
? 'a resumed agent job'
|
|
56
|
+
: `${payload.type === 'agent' ? 'an' : 'a'} ${payload.type} job`;
|
|
57
|
+
/**
|
|
58
|
+
* A queue of agent, workflow and swarm jobs. Each `add*Job` takes a `jobId`: the job is added
|
|
59
|
+
* under it, and adding a job whose id the queue holds already gives the job it holds back instead
|
|
60
|
+
* of adding a second one, so producers can retry an add without running the work twice.
|
|
61
|
+
*/
|
|
13
62
|
export class JobQueue {
|
|
14
63
|
queue;
|
|
15
64
|
connection;
|
|
@@ -33,7 +82,7 @@ export class JobQueue {
|
|
|
33
82
|
* Add an agent execution job to the queue
|
|
34
83
|
*/
|
|
35
84
|
async addAgentJob(agentConfig, input, options) {
|
|
36
|
-
const jobId = nanoid();
|
|
85
|
+
const jobId = options?.jobId === undefined ? nanoid() : checkJobId(options.jobId);
|
|
37
86
|
const threadId = options?.threadId ?? nanoid();
|
|
38
87
|
const payload = {
|
|
39
88
|
type: 'agent',
|
|
@@ -44,11 +93,7 @@ export class JobQueue {
|
|
|
44
93
|
...(options?.userId !== undefined && { userId: options.userId }),
|
|
45
94
|
metadata: options?.metadata,
|
|
46
95
|
};
|
|
47
|
-
return this.
|
|
48
|
-
jobId,
|
|
49
|
-
priority: options?.priority,
|
|
50
|
-
delay: options?.delay,
|
|
51
|
-
});
|
|
96
|
+
return this.add(payload, options);
|
|
52
97
|
}
|
|
53
98
|
/**
|
|
54
99
|
* Continue an agent job whose run paused for tool approvals (its result has
|
|
@@ -77,7 +122,7 @@ export class JobQueue {
|
|
|
77
122
|
if (!threadId) {
|
|
78
123
|
throw new Error('Cannot resume an agent job without the checkpoint or thread of its run');
|
|
79
124
|
}
|
|
80
|
-
const jobId = nanoid();
|
|
125
|
+
const jobId = options?.jobId === undefined ? nanoid() : checkJobId(options.jobId);
|
|
81
126
|
const payload = {
|
|
82
127
|
type: 'agent',
|
|
83
128
|
jobId,
|
|
@@ -92,17 +137,13 @@ export class JobQueue {
|
|
|
92
137
|
},
|
|
93
138
|
metadata: options?.metadata,
|
|
94
139
|
};
|
|
95
|
-
return this.
|
|
96
|
-
jobId,
|
|
97
|
-
priority: options?.priority,
|
|
98
|
-
delay: options?.delay,
|
|
99
|
-
});
|
|
140
|
+
return this.add(payload, options);
|
|
100
141
|
}
|
|
101
142
|
/**
|
|
102
143
|
* Add a workflow execution job to the queue
|
|
103
144
|
*/
|
|
104
145
|
async addWorkflowJob(workflowConfig, input, options) {
|
|
105
|
-
const jobId = nanoid();
|
|
146
|
+
const jobId = options?.jobId === undefined ? nanoid() : checkJobId(options.jobId);
|
|
106
147
|
const runId = options?.runId ?? nanoid();
|
|
107
148
|
const payload = {
|
|
108
149
|
type: 'workflow',
|
|
@@ -112,17 +153,13 @@ export class JobQueue {
|
|
|
112
153
|
runId,
|
|
113
154
|
metadata: options?.metadata,
|
|
114
155
|
};
|
|
115
|
-
return this.
|
|
116
|
-
jobId,
|
|
117
|
-
priority: options?.priority,
|
|
118
|
-
delay: options?.delay,
|
|
119
|
-
});
|
|
156
|
+
return this.add(payload, options);
|
|
120
157
|
}
|
|
121
158
|
/**
|
|
122
159
|
* Add a swarm execution job to the queue
|
|
123
160
|
*/
|
|
124
161
|
async addSwarmJob(swarmConfig, input, options) {
|
|
125
|
-
const jobId = nanoid();
|
|
162
|
+
const jobId = options?.jobId === undefined ? nanoid() : checkJobId(options.jobId);
|
|
126
163
|
const payload = {
|
|
127
164
|
type: 'swarm',
|
|
128
165
|
jobId,
|
|
@@ -130,11 +167,7 @@ export class JobQueue {
|
|
|
130
167
|
input,
|
|
131
168
|
metadata: options?.metadata,
|
|
132
169
|
};
|
|
133
|
-
return this.
|
|
134
|
-
jobId,
|
|
135
|
-
priority: options?.priority,
|
|
136
|
-
delay: options?.delay,
|
|
137
|
-
});
|
|
170
|
+
return this.add(payload, options);
|
|
138
171
|
}
|
|
139
172
|
/**
|
|
140
173
|
* Queue one agent turn of a swarm as a BullMQ job. A `WorkerPool` runs it and publishes the
|
|
@@ -143,7 +176,7 @@ export class JobQueue {
|
|
|
143
176
|
* to a Redis list that `DistributedSwarmWorker` consumes, so run that worker for them.
|
|
144
177
|
*/
|
|
145
178
|
async addSwarmAgentJob(swarmId, agentName, agentConfig, input, options) {
|
|
146
|
-
const jobId = nanoid();
|
|
179
|
+
const jobId = options?.jobId === undefined ? nanoid() : checkJobId(options.jobId);
|
|
147
180
|
const keyPrefix = options?.keyPrefix ?? 'swarm';
|
|
148
181
|
const payload = {
|
|
149
182
|
type: 'swarm-agent',
|
|
@@ -162,11 +195,32 @@ export class JobQueue {
|
|
|
162
195
|
results: `${keyPrefix}:${swarmId}:results`,
|
|
163
196
|
},
|
|
164
197
|
};
|
|
165
|
-
return this.
|
|
166
|
-
|
|
198
|
+
return this.add(payload, options);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Add the job, and when the producer gave its id, hand back the job the queue holds under it:
|
|
202
|
+
* adding a job whose id the queue holds already adds nothing and gives that job back, so a
|
|
203
|
+
* producer that retries an add, such as after a timeout, does not run the work twice, even when
|
|
204
|
+
* the two adds race. A job the queue removed (after it completed or failed, past
|
|
205
|
+
* `removeOnComplete` or `removeOnFail`) is gone, and its id adds a new job.
|
|
206
|
+
*
|
|
207
|
+
* @throws Error when the queue holds the id as another kind of job
|
|
208
|
+
*/
|
|
209
|
+
async add(payload, options) {
|
|
210
|
+
const added = (await this.queue.add(payload.type, payload, {
|
|
211
|
+
jobId: payload.jobId,
|
|
167
212
|
priority: options?.priority,
|
|
168
213
|
delay: options?.delay,
|
|
169
|
-
});
|
|
214
|
+
}));
|
|
215
|
+
if (options?.jobId === undefined)
|
|
216
|
+
return added;
|
|
217
|
+
const held = (await this.queue.getJob(payload.jobId));
|
|
218
|
+
if (!held)
|
|
219
|
+
return added;
|
|
220
|
+
if (held.data.type !== payload.type || isResume(held.data) !== isResume(payload)) {
|
|
221
|
+
throw new Error(`The queue holds job '${payload.jobId}' as ${describe(held.data)}, not as ${describe(payload)}`);
|
|
222
|
+
}
|
|
223
|
+
return held;
|
|
170
224
|
}
|
|
171
225
|
/**
|
|
172
226
|
* Get job by ID
|
package/dist/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAY,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAgBhC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,GAEZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,QAAQ;IACX,KAAK,CAAoB;IACzB,UAAU,CAAiB;IAEnC,YAAY,MAAmB;QAC7B,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,kBAAkB,EAAE;YACxD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YACtC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CAAC;gBACjD,OAAO,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,IAAI;oBAC5C,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,IAAI;iBACZ;gBACD,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,IAAI,GAAG;gBACnE,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,YAAY,IAAI,GAAG;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,WAA4B,EAC5B,KAAa,EACb,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Worker types for distributed job processing
|
|
3
3
|
*/
|
|
4
4
|
import type { Cogitator } from '@cogitator-ai/core';
|
|
5
|
-
import type { AgentWireConfig, AgentWireResponseFormat, AgentWireRunResult, AgentWireUsage, RunCheckpoint, Tool, ToolApprovalDecision } from '@cogitator-ai/types';
|
|
5
|
+
import type { AgentWireConfig, AgentWireResponseFormat, AgentWireRunResult, AgentWireUsage, CheckpointStore, RunCheckpoint, Tool, ToolApprovalDecision } from '@cogitator-ai/types';
|
|
6
6
|
import type { SwarmAgentJobPayload as SwarmAgentJobContract, SwarmAgentJobResult as SwarmAgentJobResultContract } from '@cogitator-ai/swarms';
|
|
7
7
|
/**
|
|
8
8
|
* An agent's response format in a form that travels through the queue: a Zod schema becomes
|
|
@@ -161,16 +161,39 @@ export interface AgentJobResult extends AgentWireRunResult {
|
|
|
161
161
|
total: number;
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* What a job used and cost, summed over its agent runs. `inputTokens` and `outputTokens` are
|
|
166
|
+
* absent where the runs reported only their totals.
|
|
167
|
+
*/
|
|
168
|
+
export interface JobUsage {
|
|
169
|
+
inputTokens?: number;
|
|
170
|
+
outputTokens?: number;
|
|
171
|
+
totalTokens: number;
|
|
172
|
+
/** USD */
|
|
173
|
+
cost: number;
|
|
174
|
+
/** Agent runs counted */
|
|
175
|
+
runs: number;
|
|
176
|
+
}
|
|
164
177
|
export interface WorkflowJobResult {
|
|
165
178
|
type: 'workflow';
|
|
166
179
|
output: Record<string, unknown>;
|
|
167
180
|
nodeResults: Record<string, unknown>;
|
|
181
|
+
/** What the agent nodes used and cost */
|
|
182
|
+
usage: JobUsage;
|
|
168
183
|
duration: number;
|
|
169
184
|
}
|
|
170
185
|
export interface SwarmJobResult {
|
|
171
186
|
type: 'swarm';
|
|
172
187
|
output: string;
|
|
173
188
|
rounds: number;
|
|
189
|
+
/** What the swarm's agent runs used and cost, in all and by agent */
|
|
190
|
+
usage: JobUsage & {
|
|
191
|
+
byAgent: Record<string, {
|
|
192
|
+
tokens: number;
|
|
193
|
+
cost: number;
|
|
194
|
+
runs: number;
|
|
195
|
+
}>;
|
|
196
|
+
};
|
|
174
197
|
agentOutputs: {
|
|
175
198
|
agent: string;
|
|
176
199
|
output: string;
|
|
@@ -229,6 +252,13 @@ export interface JobExecutionOptions {
|
|
|
229
252
|
* `WorkerPool.cancelJob()` and a shutdown that runs out of time stop the work
|
|
230
253
|
*/
|
|
231
254
|
signal?: AbortSignal;
|
|
255
|
+
/**
|
|
256
|
+
* Whether the queue runs the job again after it failed with `error`: a workflow job keeps its
|
|
257
|
+
* checkpoint for that attempt, and lets it go when none follows. `WorkerPool` answers no for
|
|
258
|
+
* the last attempt, a cancelled job and a paused agent run, and yes for a job a shutdown
|
|
259
|
+
* stopped, which another worker takes up. Default: no attempt follows
|
|
260
|
+
*/
|
|
261
|
+
willRetry?: (error: unknown) => boolean;
|
|
232
262
|
}
|
|
233
263
|
/**
|
|
234
264
|
* Runtime dependencies used to execute jobs on a worker
|
|
@@ -241,6 +271,12 @@ export interface WorkerRuntime {
|
|
|
241
271
|
* name; a job that needs a tool missing from this list fails.
|
|
242
272
|
*/
|
|
243
273
|
tools?: Tool[];
|
|
274
|
+
/**
|
|
275
|
+
* Where workflow jobs keep their checkpoint, saved after every node, so a retried job goes on
|
|
276
|
+
* from it. `WorkerPool` keeps them in its Redis by default, a processor called on its own runs
|
|
277
|
+
* without them.
|
|
278
|
+
*/
|
|
279
|
+
checkpoints?: CheckpointStore;
|
|
244
280
|
}
|
|
245
281
|
export interface WorkerConfig extends QueueConfig, WorkerRuntime {
|
|
246
282
|
/** Number of worker instances */
|
|
@@ -251,6 +287,12 @@ export interface WorkerConfig extends QueueConfig, WorkerRuntime {
|
|
|
251
287
|
lockDuration?: number;
|
|
252
288
|
/** Stalled job check interval */
|
|
253
289
|
stalledInterval?: number;
|
|
290
|
+
/**
|
|
291
|
+
* Seconds the default Redis store keeps a workflow checkpoint after its last save, for a run
|
|
292
|
+
* that is never resumed or let go, such as one whose worker crashed on its last attempt.
|
|
293
|
+
* Ignored with `checkpoints`. Default: 7 days
|
|
294
|
+
*/
|
|
295
|
+
checkpointTtl?: number;
|
|
254
296
|
}
|
|
255
297
|
/**
|
|
256
298
|
* State of a queued job, as `JobQueue.getJobState()` reports it:
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare class WorkerPool {
|
|
|
19
19
|
private readonly events;
|
|
20
20
|
private readonly runtime;
|
|
21
21
|
private publisher?;
|
|
22
|
+
private checkpointStore?;
|
|
22
23
|
private isRunning;
|
|
23
24
|
/** Job duration and per-type counters, ready for Prometheus exposition */
|
|
24
25
|
readonly metrics: MetricsCollector;
|
|
@@ -37,6 +38,12 @@ export declare class WorkerPool {
|
|
|
37
38
|
*/
|
|
38
39
|
private processJob;
|
|
39
40
|
private runJob;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the queue runs a job again after it failed with `error`, as `processJob` hands the
|
|
43
|
+
* failure on: a job a shutdown stopped is taken up by another worker, one cancelled or whose
|
|
44
|
+
* agent run paused fails for good, any other gets the attempts it has left
|
|
45
|
+
*/
|
|
46
|
+
private willRetry;
|
|
40
47
|
/**
|
|
41
48
|
* Cancel a job this pool is running: its agent runs, workflow nodes and swarm turns are
|
|
42
49
|
* aborted and the job fails without retries.
|
|
@@ -45,6 +52,11 @@ export declare class WorkerPool {
|
|
|
45
52
|
*/
|
|
46
53
|
cancelJob(jobId: string, reason?: string): boolean;
|
|
47
54
|
private getPublisher;
|
|
55
|
+
/**
|
|
56
|
+
* Where workflow jobs keep their checkpoints: `checkpoints` of the config, else this pool's
|
|
57
|
+
* Redis, under the queue's prefix and name, so queues sharing a Redis keep theirs apart
|
|
58
|
+
*/
|
|
59
|
+
private workflowCheckpoints;
|
|
48
60
|
/**
|
|
49
61
|
* Get current worker count
|
|
50
62
|
*/
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AAKhG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUhD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAaD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuE;IAC/F,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAE1B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,mBAA0B;gBAE9B,MAAM,EAAE,YAAY,EAAE,MAAM,GAAE,gBAAqB;IAS/D;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0D5B;;;;;;;OAOG;YACW,UAAU;IAexB,OAAO,CAAC,MAAM;IA2Bd;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAMjB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,OAAO;IAQvD,OAAO,CAAC,YAAY;IAKpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAOvF;;;;;OAKG;IACG,IAAI,CAAC,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YASlB,kBAAkB;YAOlB,cAAc;CAQ7B"}
|
package/dist/worker.js
CHANGED
|
@@ -6,12 +6,21 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { UnrecoverableError, Worker } from 'bullmq';
|
|
8
8
|
import { Cogitator, findAgentRunPausedError } from '@cogitator-ai/core';
|
|
9
|
+
import { RedisCheckpointStore } from '@cogitator-ai/workflows';
|
|
9
10
|
import { processAgentJob } from './processors/agent.js';
|
|
10
|
-
import { processWorkflowJob } from './processors/workflow.js';
|
|
11
|
+
import { forgetWorkflowRun, processWorkflowJob } from './processors/workflow.js';
|
|
11
12
|
import { processSwarmJob } from './processors/swarm.js';
|
|
12
13
|
import { processSwarmAgentJob } from './processors/swarm-agent.js';
|
|
13
14
|
import { MetricsCollector } from './metrics.js';
|
|
14
15
|
import { DEFAULT_QUEUE_NAME, createBullConnection, createRedisClient, queuePrefix, } from './connection.js';
|
|
16
|
+
/** Seconds the default store keeps a workflow checkpoint nobody resumes or lets go */
|
|
17
|
+
const DEFAULT_CHECKPOINT_TTL = 7 * 24 * 60 * 60;
|
|
18
|
+
/** What a job result reports it used, in the shape the metrics count */
|
|
19
|
+
function usageOf(result) {
|
|
20
|
+
if (!('usage' in result) || !result.usage)
|
|
21
|
+
return undefined;
|
|
22
|
+
return result.usage;
|
|
23
|
+
}
|
|
15
24
|
export class WorkerPool {
|
|
16
25
|
workers = [];
|
|
17
26
|
connections = [];
|
|
@@ -19,6 +28,7 @@ export class WorkerPool {
|
|
|
19
28
|
events;
|
|
20
29
|
runtime;
|
|
21
30
|
publisher;
|
|
31
|
+
checkpointStore;
|
|
22
32
|
isRunning = false;
|
|
23
33
|
/** Job duration and per-type counters, ready for Prometheus exposition */
|
|
24
34
|
metrics = new MetricsCollector();
|
|
@@ -52,12 +62,21 @@ export class WorkerPool {
|
|
|
52
62
|
if (job.processedOn !== undefined && job.finishedOn !== undefined) {
|
|
53
63
|
this.metrics.recordJob(job.data.type, job.finishedOn - job.processedOn);
|
|
54
64
|
}
|
|
65
|
+
const usage = usageOf(result);
|
|
66
|
+
if (usage)
|
|
67
|
+
this.metrics.recordUsage(job.data.type, usage);
|
|
55
68
|
this.events.onJobCompleted?.(job.id ?? job.data.jobId, result);
|
|
56
69
|
});
|
|
57
70
|
worker.on('failed', (job, error) => {
|
|
58
71
|
if (job) {
|
|
59
|
-
if (job.finishedOn !== undefined)
|
|
72
|
+
if (job.finishedOn !== undefined) {
|
|
60
73
|
this.metrics.recordFailure(job.data.type);
|
|
74
|
+
if (job.data.type === 'workflow' && this.isRunning) {
|
|
75
|
+
forgetWorkflowRun(job.data, this.workflowCheckpoints()).catch((cause) => this.events.onWorkerError?.(new Error(`Could not delete the checkpoint of workflow job ${job.data.jobId}`, {
|
|
76
|
+
cause,
|
|
77
|
+
})));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
61
80
|
this.events.onJobFailed?.(job.id ?? job.data.jobId, error);
|
|
62
81
|
}
|
|
63
82
|
});
|
|
@@ -97,7 +116,7 @@ export class WorkerPool {
|
|
|
97
116
|
case 'agent':
|
|
98
117
|
return processAgentJob(job.data, this.runtime, execution);
|
|
99
118
|
case 'workflow':
|
|
100
|
-
return processWorkflowJob(job.data, this.runtime, execution);
|
|
119
|
+
return processWorkflowJob(job.data, { ...this.runtime, checkpoints: this.workflowCheckpoints() }, { ...execution, willRetry: (error) => this.willRetry(job, error, signal) });
|
|
101
120
|
case 'swarm':
|
|
102
121
|
return processSwarmJob(job.data, this.runtime, execution);
|
|
103
122
|
case 'swarm-agent':
|
|
@@ -113,6 +132,18 @@ export class WorkerPool {
|
|
|
113
132
|
}
|
|
114
133
|
}
|
|
115
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Whether the queue runs a job again after it failed with `error`, as `processJob` hands the
|
|
137
|
+
* failure on: a job a shutdown stopped is taken up by another worker, one cancelled or whose
|
|
138
|
+
* agent run paused fails for good, any other gets the attempts it has left
|
|
139
|
+
*/
|
|
140
|
+
willRetry(job, error, signal) {
|
|
141
|
+
if (error instanceof UnrecoverableError || findAgentRunPausedError(error))
|
|
142
|
+
return false;
|
|
143
|
+
if (signal?.aborted)
|
|
144
|
+
return !this.isRunning;
|
|
145
|
+
return job.attemptsMade + 1 < (job.opts.attempts ?? 1);
|
|
146
|
+
}
|
|
116
147
|
/**
|
|
117
148
|
* Cancel a job this pool is running: its agent runs, workflow nodes and swarm turns are
|
|
118
149
|
* aborted and the job fails without retries.
|
|
@@ -131,6 +162,30 @@ export class WorkerPool {
|
|
|
131
162
|
this.publisher ??= createRedisClient(this.config.redis);
|
|
132
163
|
return this.publisher;
|
|
133
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Where workflow jobs keep their checkpoints: `checkpoints` of the config, else this pool's
|
|
167
|
+
* Redis, under the queue's prefix and name, so queues sharing a Redis keep theirs apart
|
|
168
|
+
*/
|
|
169
|
+
workflowCheckpoints() {
|
|
170
|
+
if (this.config.checkpoints)
|
|
171
|
+
return this.config.checkpoints;
|
|
172
|
+
const redis = this.getPublisher();
|
|
173
|
+
this.checkpointStore ??= new RedisCheckpointStore({
|
|
174
|
+
client: {
|
|
175
|
+
get: (key) => redis.get(key),
|
|
176
|
+
set: (key, value) => redis.set(key, value),
|
|
177
|
+
del: (...keys) => redis.del(...keys),
|
|
178
|
+
zadd: (key, score, member) => redis.zadd(key, score, member),
|
|
179
|
+
zrange: (key, start, stop) => redis.zrange(key, String(start), String(stop)),
|
|
180
|
+
zrem: (key, ...members) => redis.zrem(key, ...members),
|
|
181
|
+
expire: (key, seconds) => redis.expire(key, seconds),
|
|
182
|
+
zrangebyscore: (key, min, max) => redis.zrangebyscore(key, min, max),
|
|
183
|
+
},
|
|
184
|
+
keyPrefix: `${queuePrefix(this.config.redis)}:${this.config.name ?? DEFAULT_QUEUE_NAME}:workflow-checkpoints`,
|
|
185
|
+
ttl: this.config.checkpointTtl ?? DEFAULT_CHECKPOINT_TTL,
|
|
186
|
+
});
|
|
187
|
+
return this.checkpointStore;
|
|
188
|
+
}
|
|
134
189
|
/**
|
|
135
190
|
* Get current worker count
|
|
136
191
|
*/
|
|
@@ -201,6 +256,7 @@ export class WorkerPool {
|
|
|
201
256
|
async closePublisher() {
|
|
202
257
|
const publisher = this.publisher;
|
|
203
258
|
this.publisher = undefined;
|
|
259
|
+
this.checkpointStore = undefined;
|
|
204
260
|
if (publisher) {
|
|
205
261
|
await publisher.quit();
|
|
206
262
|
}
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Distributed job queue for Cogitator agent execution",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cogitator",
|
|
@@ -29,15 +29,16 @@
|
|
|
29
29
|
"node": ">=22.12.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cogitator-ai/core": "0.56.
|
|
33
|
-
"@cogitator-ai/swarms": "0.13.
|
|
34
|
-
"@cogitator-ai/types": "0.
|
|
32
|
+
"@cogitator-ai/core": "0.56.2",
|
|
33
|
+
"@cogitator-ai/swarms": "0.13.12",
|
|
34
|
+
"@cogitator-ai/types": "0.60.0",
|
|
35
|
+
"@cogitator-ai/workflows": "0.14.0",
|
|
35
36
|
"bullmq": "^6.3.11",
|
|
36
37
|
"nanoid": "^6.0.1",
|
|
37
38
|
"zod": "^4.6.5"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
|
-
"@cogitator-ai/test-utils": "0.11.
|
|
41
|
+
"@cogitator-ai/test-utils": "0.11.1",
|
|
41
42
|
"ioredis": "^6.0.0",
|
|
42
43
|
"typescript": "^6.0.3",
|
|
43
44
|
"vitest": "^5.0.3"
|