@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.
@@ -1,13 +1,10 @@
1
1
  /**
2
- * Workflow job processor
3
- *
4
- * Executes a serialized workflow graph as a DAG over a shared state object. Nodes run as
5
- * soon as all of their predecessors have settled; independent branches run concurrently.
6
- * Condition nodes activate their `'true'` or `'false'` outgoing edges; nodes reachable only
7
- * through inactive edges are skipped.
2
+ * Workflow job processor: a serialized workflow graph run on the workflow executor of
3
+ * `@cogitator-ai/workflows`, over a shared state object, checkpointed for retries
8
4
  */
9
5
  import { z } from 'zod';
10
6
  import { AgentRunPausedError, agentWireSchema, isPausedRun, parseAgentWire, } from '@cogitator-ai/core';
7
+ import { WorkflowExecutor } from '@cogitator-ai/workflows';
11
8
  import { createAgentFromConfig, resolveRuntime } from './shared.js';
12
9
  const agentNodeSchema = z.object({
13
10
  agentConfig: agentWireSchema,
@@ -48,6 +45,13 @@ function stringifyValue(value) {
48
45
  export function renderTemplate(template, state) {
49
46
  return template.replace(/\{\{\s*([\w.-]+)\s*\}\}/g, (_match, path) => stringifyValue(readStatePath(state, path)));
50
47
  }
48
+ /** Prefix of the state keys a run keeps its own bookkeeping under, left out of the output */
49
+ const RUN_KEY = '__cogitator:';
50
+ const doneKey = (id) => `${RUN_KEY}done:${id}`;
51
+ const branchKey = (id) => `${RUN_KEY}branch:${id}`;
52
+ const usageKey = (id) => `${RUN_KEY}usage:${id}`;
53
+ /** The node a graph with many roots starts from, never one of its own */
54
+ const START = `${RUN_KEY}start`;
51
55
  function parseNodeConfig(node, schema) {
52
56
  const parsed = schema.safeParse(node.config);
53
57
  if (!parsed.success) {
@@ -59,7 +63,8 @@ function parseNodeConfig(node, schema) {
59
63
  }
60
64
  /**
61
65
  * Check the graph before running anything: unique ids, known edge endpoints, branch labels
62
- * only on condition nodes, valid node configs and no cycles.
66
+ * only on condition nodes, valid node configs and no cycles. Node ids and output keys must not
67
+ * start with `__cogitator:`, the prefix of the run's own state keys.
63
68
  */
64
69
  export function validateWorkflow(workflow) {
65
70
  const nodes = new Map();
@@ -67,6 +72,9 @@ export function validateWorkflow(workflow) {
67
72
  if (nodes.has(node.id)) {
68
73
  throw new Error(`Duplicate workflow node id '${node.id}'`);
69
74
  }
75
+ if (node.id.startsWith(RUN_KEY)) {
76
+ throw new Error(`Workflow node id '${node.id}' starts with '${RUN_KEY}', kept for the run`);
77
+ }
70
78
  nodes.set(node.id, node);
71
79
  }
72
80
  for (const edge of workflow.edges) {
@@ -88,6 +96,7 @@ export function validateWorkflow(workflow) {
88
96
  switch (node.type) {
89
97
  case 'agent': {
90
98
  const config = parseNodeConfig(node, agentNodeSchema);
99
+ refuseRunKey(node, config.outputKey);
91
100
  try {
92
101
  parseAgentWire(config.agentConfig);
93
102
  }
@@ -98,6 +107,7 @@ export function validateWorkflow(workflow) {
98
107
  }
99
108
  case 'transform': {
100
109
  const config = parseNodeConfig(node, transformNodeSchema);
110
+ refuseRunKey(node, config.outputKey);
101
111
  if (config.transform === 'template' && config.template === undefined) {
102
112
  throw new Error(`Transform node '${node.id}' uses 'template' but has no template`);
103
113
  }
@@ -130,6 +140,11 @@ export function validateWorkflow(workflow) {
130
140
  throw new Error(`Workflow '${workflow.name}' contains a cycle`);
131
141
  }
132
142
  }
143
+ function refuseRunKey(node, outputKey) {
144
+ if (outputKey?.startsWith(RUN_KEY)) {
145
+ throw new Error(`Output key '${outputKey}' of node '${node.id}' starts with '${RUN_KEY}', kept for the run`);
146
+ }
147
+ }
133
148
  function evaluateCondition(config, state) {
134
149
  const actual = readStatePath(state, config.key);
135
150
  switch (config.operator) {
@@ -174,149 +189,253 @@ function applyTransform(config, input, state) {
174
189
  return renderTemplate(config.template ?? '', state);
175
190
  }
176
191
  }
177
- class WorkflowRun {
178
- workflow;
179
- runtime;
180
- signal;
181
- nodes;
182
- outcomes = new Map();
183
- outputKeys = new Map();
184
- state;
185
- controller = new AbortController();
186
- constructor(workflow, input, runtime, signal) {
187
- this.workflow = workflow;
188
- this.runtime = runtime;
189
- this.signal = signal;
190
- this.nodes = new Map(workflow.nodes.map((n) => [n.id, n]));
191
- this.state = { ...input };
192
- }
193
- /**
194
- * Run the graph. Cancelling the job (`signal`) or a failing node aborts the agent runs still
195
- * in flight, and the run rejects once they have settled.
196
- */
197
- async execute() {
198
- const forwardAbort = () => this.controller.abort(this.signal?.reason);
199
- if (this.signal?.aborted)
200
- forwardAbort();
201
- this.signal?.addEventListener('abort', forwardAbort, { once: true });
202
- try {
203
- return await this.runGraph();
204
- }
205
- finally {
206
- this.signal?.removeEventListener('abort', forwardAbort);
207
- }
208
- }
209
- async runGraph() {
210
- const pending = new Set(this.nodes.keys());
211
- const running = new Map();
212
- while (pending.size > 0 || running.size > 0) {
213
- this.controller.signal.throwIfAborted();
214
- for (const id of [...pending]) {
215
- const incoming = this.workflow.edges.filter((e) => e.to === id);
216
- if (!incoming.every((e) => this.outcomes.has(e.from)))
217
- continue;
218
- pending.delete(id);
219
- const active = incoming.length === 0 || incoming.some((e) => this.isEdgeActive(e));
220
- if (!active) {
221
- this.outcomes.set(id, { status: 'skipped' });
222
- continue;
223
- }
224
- running.set(id, this.runNode(this.nodes.get(id), incoming).then((outcome) => {
225
- this.outcomes.set(id, outcome);
226
- running.delete(id);
227
- }));
228
- }
229
- if (running.size > 0) {
230
- try {
231
- await Promise.race(running.values());
232
- }
233
- catch (error) {
234
- this.controller.abort(error);
235
- await Promise.allSettled(running.values());
236
- throw error;
237
- }
238
- }
239
- else if (pending.size > 0 && ![...pending].some((id) => this.isReady(id))) {
240
- throw new Error(`Workflow '${this.workflow.name}' cannot make progress`);
241
- }
242
- }
243
- const nodeResults = {};
244
- for (const [id, outcome] of this.outcomes) {
245
- nodeResults[id] = outcome.status === 'completed' ? outcome.output : { skipped: true };
246
- }
247
- return { state: this.state, nodeResults };
192
+ function outputKeyOf(node) {
193
+ if (node.type === 'agent')
194
+ return parseNodeConfig(node, agentNodeSchema).outputKey ?? node.id;
195
+ if (node.type === 'transform') {
196
+ return parseNodeConfig(node, transformNodeSchema).outputKey ?? node.id;
248
197
  }
249
- isReady(id) {
250
- return this.workflow.edges.filter((e) => e.to === id).every((e) => this.outcomes.has(e.from));
251
- }
252
- isEdgeActive(edge) {
253
- const outcome = this.outcomes.get(edge.from);
254
- if (outcome?.status !== 'completed')
255
- return false;
256
- return outcome.branch === undefined || outcome.branch === edge.condition;
257
- }
258
- previousOutput(incoming) {
259
- for (const edge of incoming) {
260
- if (!this.isEdgeActive(edge))
198
+ return undefined;
199
+ }
200
+ /**
201
+ * The serialized graph as a workflow of `@cogitator-ai/workflows`. Each node keeps in the state
202
+ * that it ran (`__cogitator:done:<id>`), the branch a condition took (`__cogitator:branch:<id>`)
203
+ * and the usage of an agent run (`__cogitator:usage:<id>`), so a run resumed from a checkpoint
204
+ * knows them too. Agent runs stop on `ctx.signal` and on `siblings`, which a failing node aborts
205
+ * so the runs still in flight next to it stop too.
206
+ */
207
+ function workflowOf(serialized, runtime, siblings) {
208
+ const byId = new Map(serialized.nodes.map((node) => [node.id, node]));
209
+ const incomingOf = (id) => serialized.edges.filter((edge) => edge.to === id);
210
+ const active = (edge, state) => state[doneKey(edge.from)] === true &&
211
+ (byId.get(edge.from)?.type !== 'condition' || state[branchKey(edge.from)] === edge.condition);
212
+ const previousOutput = (id, state) => {
213
+ for (const edge of incomingOf(id)) {
214
+ if (!active(edge, state))
261
215
  continue;
262
- const key = this.outputKeys.get(edge.from);
216
+ const from = byId.get(edge.from);
217
+ const key = from ? outputKeyOf(from) : undefined;
263
218
  if (key !== undefined)
264
- return this.state[key];
219
+ return state[key];
265
220
  }
266
221
  return undefined;
267
- }
268
- async runNode(node, incoming) {
222
+ };
223
+ const run = async (node, ctx) => {
224
+ const state = ctx.state;
225
+ const done = { [doneKey(node.id)]: true };
269
226
  switch (node.type) {
270
227
  case 'agent': {
271
228
  const config = parseNodeConfig(node, agentNodeSchema);
272
- const agent = createAgentFromConfig(config.agentConfig, this.runtime);
229
+ const agent = createAgentFromConfig(config.agentConfig, runtime);
273
230
  const prompt = config.prompt
274
- ? renderTemplate(config.prompt, this.state)
275
- : JSON.stringify(this.state);
276
- const result = await this.runtime.cogitator.run(agent, {
231
+ ? renderTemplate(config.prompt, state)
232
+ : JSON.stringify(withoutRunKeys(state));
233
+ const result = await runtime.cogitator.run(agent, {
277
234
  input: prompt,
278
- signal: this.controller.signal,
235
+ signal: ctx.signal ? AbortSignal.any([ctx.signal, siblings.signal]) : siblings.signal,
279
236
  });
280
237
  if (isPausedRun(result)) {
281
- throw new AgentRunPausedError(result, agent.name, `workflow "${this.workflow.name}", node "${node.id}"`);
238
+ throw new AgentRunPausedError(result, agent.name, `workflow "${serialized.name}", node "${node.id}"`);
282
239
  }
283
240
  const answer = agent.config.responseFormat?.type === 'json_schema' && result.structured !== undefined
284
241
  ? result.structured
285
242
  : result.output;
286
- return this.store(node.id, config.outputKey, answer);
243
+ const usage = {
244
+ inputTokens: result.usage.inputTokens,
245
+ outputTokens: result.usage.outputTokens,
246
+ totalTokens: result.usage.totalTokens,
247
+ cost: result.usage.cost,
248
+ runs: 1,
249
+ };
250
+ return {
251
+ state: { ...done, [config.outputKey ?? node.id]: answer, [usageKey(node.id)]: usage },
252
+ output: answer,
253
+ };
287
254
  }
288
255
  case 'transform': {
289
256
  const config = parseNodeConfig(node, transformNodeSchema);
290
257
  const input = config.inputKey !== undefined
291
- ? readStatePath(this.state, config.inputKey)
292
- : this.previousOutput(incoming);
293
- return this.store(node.id, config.outputKey, applyTransform(config, input, this.state));
258
+ ? readStatePath(state, config.inputKey)
259
+ : previousOutput(node.id, state);
260
+ const value = applyTransform(config, input, state);
261
+ return { state: { ...done, [config.outputKey ?? node.id]: value }, output: value };
294
262
  }
295
263
  case 'condition': {
296
- const config = parseNodeConfig(node, conditionNodeSchema);
297
- const passed = evaluateCondition(config, this.state);
298
- return { status: 'completed', output: passed, branch: passed ? 'true' : 'false' };
264
+ const passed = evaluateCondition(parseNodeConfig(node, conditionNodeSchema), state);
265
+ return {
266
+ state: { ...done, [branchKey(node.id)]: passed ? 'true' : 'false' },
267
+ output: passed,
268
+ };
299
269
  }
300
270
  case 'parallel':
301
- return { status: 'completed', output: null };
271
+ return { state: done, output: null };
272
+ }
273
+ };
274
+ const nodes = new Map();
275
+ for (const node of serialized.nodes) {
276
+ nodes.set(node.id, {
277
+ name: node.id,
278
+ fn: async (ctx) => {
279
+ try {
280
+ return await run(node, ctx);
281
+ }
282
+ catch (error) {
283
+ if (!siblings.signal.aborted)
284
+ siblings.abort(error);
285
+ throw error;
286
+ }
287
+ },
288
+ });
289
+ }
290
+ const edges = [];
291
+ for (const node of serialized.nodes) {
292
+ const out = serialized.edges.filter((edge) => edge.from === node.id);
293
+ if (out.length === 0)
294
+ continue;
295
+ if (node.type === 'condition') {
296
+ edges.push({
297
+ type: 'conditional',
298
+ from: node.id,
299
+ targets: [...new Set(out.map((edge) => edge.to))],
300
+ condition: (state) => out
301
+ .filter((edge) => edge.condition === state[branchKey(node.id)])
302
+ .map((edge) => edge.to),
303
+ });
304
+ }
305
+ else if (out.length === 1) {
306
+ edges.push({ type: 'sequential', from: node.id, to: out[0].to });
307
+ }
308
+ else {
309
+ edges.push({ type: 'parallel', from: node.id, to: out.map((edge) => edge.to) });
302
310
  }
303
311
  }
304
- store(nodeId, outputKey, value) {
305
- const key = outputKey ?? nodeId;
306
- this.state[key] = value;
307
- this.outputKeys.set(nodeId, key);
308
- return { status: 'completed', output: value };
312
+ const roots = serialized.nodes.filter((node) => incomingOf(node.id).length === 0);
313
+ let entryPoint = roots[0]?.id ?? START;
314
+ if (roots.length !== 1) {
315
+ nodes.set(START, { name: START, fn: async () => ({ output: null }) });
316
+ if (roots.length > 0)
317
+ edges.push({ type: 'parallel', from: START, to: roots.map((r) => r.id) });
318
+ entryPoint = START;
309
319
  }
320
+ return { name: serialized.name, initialState: {}, nodes, edges, entryPoint };
321
+ }
322
+ function withoutRunKeys(state) {
323
+ return Object.fromEntries(Object.entries(state).filter(([key]) => !key.startsWith(RUN_KEY)));
324
+ }
325
+ /** The usage of the agent runs a finished state recorded */
326
+ function usageOf(state) {
327
+ const usage = {
328
+ inputTokens: 0,
329
+ outputTokens: 0,
330
+ totalTokens: 0,
331
+ cost: 0,
332
+ runs: 0,
333
+ };
334
+ const count = (value) => typeof value === 'number' && Number.isFinite(value) ? value : 0;
335
+ for (const [key, value] of Object.entries(state)) {
336
+ if (!key.startsWith(`${RUN_KEY}usage:`) || typeof value !== 'object' || value === null)
337
+ continue;
338
+ const one = value;
339
+ usage.inputTokens += count(one.inputTokens);
340
+ usage.outputTokens += count(one.outputTokens);
341
+ usage.totalTokens += count(one.totalTokens);
342
+ usage.cost += count(one.cost);
343
+ usage.runs += count(one.runs);
344
+ }
345
+ return usage;
346
+ }
347
+ /**
348
+ * Id of the one checkpoint a workflow job keeps, saved over after every node: the job's id and
349
+ * its `runId`, so jobs sharing a `runId` never resume from each other
350
+ */
351
+ export function workflowCheckpointId(payload) {
352
+ return `workflow-job:${payload.jobId}:run:${payload.runId}`;
310
353
  }
354
+ /** Delete the checkpoint of a workflow job, for a run no attempt goes on from */
355
+ export async function forgetWorkflowRun(payload, store) {
356
+ await store.delete(workflowCheckpointId(payload));
357
+ }
358
+ /**
359
+ * The store as the executor of one job sees it: every checkpoint saved under the job's id, one
360
+ * after the other so the last one saved is the newest, and a failed save aborts the agent runs
361
+ * in flight before it fails the job
362
+ */
363
+ function storeOfJob(store, id, siblings) {
364
+ let saving = Promise.resolve();
365
+ return {
366
+ save(checkpoint) {
367
+ const saved = saving.then(() => store.save({ ...checkpoint, id }));
368
+ saving = saved.catch(() => undefined);
369
+ return saved.catch((error) => {
370
+ if (!siblings.signal.aborted)
371
+ siblings.abort(error);
372
+ throw error;
373
+ });
374
+ },
375
+ load: (checkpointId) => store.load(checkpointId),
376
+ list: (name) => store.list(name),
377
+ delete: (checkpointId) => store.delete(checkpointId),
378
+ };
379
+ }
380
+ /**
381
+ * Runs a workflow job on the workflow executor of `@cogitator-ai/workflows`, over a shared state:
382
+ * in rounds, each running at once the nodes whose nodes before them all settled, a condition
383
+ * taking its `'true'` or `'false'` edges. Input keys starting with `__cogitator:` are refused,
384
+ * the run keeps its own bookkeeping under them. With `checkpoints` the job keeps one checkpoint,
385
+ * saved after every node, so an attempt that comes after a failure (`willRetry`) goes on from it
386
+ * instead of running its agents again, and the checkpoint goes once no attempt follows.
387
+ */
311
388
  export async function processWorkflowJob(payload, runtime = {}, execution = {}) {
312
389
  const started = Date.now();
313
390
  validateWorkflow(payload.workflowConfig);
314
- const { state, nodeResults } = await new WorkflowRun(payload.workflowConfig, payload.input, resolveRuntime(runtime), execution.signal).execute();
315
- return {
316
- type: 'workflow',
317
- output: state,
318
- nodeResults,
319
- duration: Date.now() - started,
391
+ const reserved = Object.keys(payload.input).find((key) => key.startsWith(RUN_KEY));
392
+ if (reserved !== undefined) {
393
+ throw new Error(`Workflow input key '${reserved}' starts with '${RUN_KEY}', kept for the run`);
394
+ }
395
+ const resolved = resolveRuntime(runtime);
396
+ const siblings = new AbortController();
397
+ const workflow = workflowOf(payload.workflowConfig, resolved, siblings);
398
+ const id = workflowCheckpointId(payload);
399
+ const store = runtime.checkpoints && storeOfJob(runtime.checkpoints, id, siblings);
400
+ const executor = new WorkflowExecutor(resolved.cogitator, store);
401
+ const options = {
402
+ workflowId: payload.runId,
403
+ maxConcurrency: workflow.nodes.size,
404
+ maxIterations: 2 * workflow.nodes.size + 2,
405
+ ...(execution.signal && { signal: execution.signal }),
406
+ ...(store && { checkpoint: true, checkpointStrategy: 'per-node' }),
320
407
  };
408
+ try {
409
+ const latest = store ? await store.load(id) : null;
410
+ const result = latest
411
+ ? await executor.resume(workflow, id, options)
412
+ : await executor.execute(workflow, payload.input, options);
413
+ if (result.error)
414
+ throw result.error;
415
+ execution.signal?.throwIfAborted();
416
+ const nodeResults = {};
417
+ for (const node of payload.workflowConfig.nodes) {
418
+ nodeResults[node.id] =
419
+ result.state[doneKey(node.id)] === true
420
+ ? result.nodeResults.get(node.id)?.output
421
+ : { skipped: true };
422
+ }
423
+ const done = {
424
+ type: 'workflow',
425
+ output: withoutRunKeys(result.state),
426
+ nodeResults,
427
+ usage: usageOf(result.state),
428
+ duration: Date.now() - started,
429
+ };
430
+ await store?.delete(id).catch(() => undefined);
431
+ return done;
432
+ }
433
+ catch (error) {
434
+ if (!siblings.signal.aborted)
435
+ siblings.abort(error);
436
+ if (store && !execution.willRetry?.(error))
437
+ await store.delete(id).catch(() => undefined);
438
+ throw error;
439
+ }
321
440
  }
322
441
  //# sourceMappingURL=workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/processors/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/processors/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAsB3D,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAC;AAI1F,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,eAAe;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3E,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAoB,EAAE,IAAY;IAC9D,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACtE,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAoB;IACnE,OAAO,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAC3E,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,OAAO,GAAG,cAAc,CAAC;AAC/B,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,OAAO,QAAQ,EAAE,EAAE,CAAC;AACvD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;AAC3D,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC;AACzD,yEAAyE;AACzE,MAAM,KAAK,GAAG,GAAG,OAAO,OAAO,CAAC;AAEhC,SAAS,eAAe,CAAI,IAA4B,EAAE,MAAoB;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM;aACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,EAAE,kBAAkB,OAAO,qBAAqB,CAAC,CAAC;QAC9F,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAEtF,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,IAAI,2CAA2C,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,yBAAyB,IAAI,CAAC,IAAI,2BAA2B,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBACtD,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC;oBACH,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,EAAE,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACvG,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC1D,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,uCAAuC,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW;gBACd,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,UAAU;gBACb,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC1B,OAAO,EAAE,CAAC;QACV,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACjC,IAAI,SAAS,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,oBAAoB,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAA4B,EAAE,SAA6B;IAC/E,IAAI,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,eAAe,SAAS,cAAc,IAAI,CAAC,EAAE,kBAAkB,OAAO,qBAAqB,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA2B,EAAE,KAAoB;IAC1E,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;QACjD,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;QACjC,KAAK,YAAY;YACf,OAAO,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;QACjC,KAAK,UAAU;YACb,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CACxF,CAAC;QACJ,KAAK,IAAI;YACP,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CACxF,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,MAA2B,EAC3B,KAAc,EACd,KAAoB;IAEpB,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,KAAK,YAAY;YACf,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;QACH,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAA4B;IAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;IAC9F,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,UAA8B,EAC9B,OAAwB,EACxB,QAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,CAAC,IAA4B,EAAE,KAAoB,EAAE,EAAE,CACpE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI;QAClC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;IAChG,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,KAAoB,EAAW,EAAE;QACnE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjD,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EACf,IAA4B,EAC5B,GAA0D,EACtB,EAAE;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;oBAC1B,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;oBACtC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;oBAChD,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;iBACtF,CAAC,CAAC;gBACH,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,mBAAmB,CAC3B,MAAM,EACN,KAAK,CAAC,IAAI,EACV,aAAa,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,GAAG,CACnD,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;oBACpF,CAAC,CAAC,MAAM,CAAC,UAAU;oBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACpB,MAAM,KAAK,GAAa;oBACtB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;oBACrC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;oBACvC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;oBACrC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;oBACvB,IAAI,EAAE,CAAC;iBACR,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE;oBACrF,MAAM,EAAE,MAAM;iBACf,CAAC;YACJ,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAwB,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC/E,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACvC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACnD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACrF,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpF,OAAO;oBACL,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;oBACnE,MAAM,EAAE,MAAM;iBACf,CAAC;YACJ,CAAC;YACD,KAAK,UAAU;gBACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC7D,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChB,IAAI,CAAC;oBACH,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,GAA4D,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;wBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,GAAG;qBACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAM,KAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;qBACjF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAClF,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IAC1C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,4DAA4D;AAC5D,SAAS,OAAO,CAAC,KAAoB;IACnC,MAAM,KAAK,GAAuB;QAChC,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;KACR,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,EAAE,CAC/B,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,QAAQ,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YACpF,SAAS;QACX,MAAM,GAAG,GAAG,KAAiD,CAAC;QAC9D,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoD;IACvF,OAAO,gBAAgB,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9D,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAoD,EACpD,KAAsB;IAEtB,MAAM,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CACjB,KAAsB,EACtB,EAAU,EACV,QAAyB;IAEzB,IAAI,MAAM,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO;QACL,IAAI,CAAC,UAA8B;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;oBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA2B,EAC3B,UAAyB,EAAE,EAC3B,YAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,kBAAkB,OAAO,qBAAqB,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,OAAO,CAAC,KAAK;QACzB,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;QACnC,aAAa,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;QAC1C,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAmB,EAAE,CAAC;KAC5E,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC;YAC9C,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC;QACrC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI;oBACrC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM;oBACzC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,WAAW;YACX,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SAC/B,CAAC;QACF,MAAM,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;YAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1F,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/queue.d.ts CHANGED
@@ -10,6 +10,11 @@
10
10
  import { Queue, type Job } from 'bullmq';
11
11
  import type { ToolApprovalDecision } from '@cogitator-ai/types';
12
12
  import type { JobState, QueueConfig, QueueMetrics, JobPayload, AgentJobPayload, AgentJobResult, WorkflowJobPayload, SwarmJobPayload, SwarmAgentJobPayload, SerializedAgent, SerializedWorkflow, SerializedSwarm } from './types.js';
13
+ /**
14
+ * A queue of agent, workflow and swarm jobs. Each `add*Job` takes a `jobId`: the job is added
15
+ * under it, and adding a job whose id the queue holds already gives the job it holds back instead
16
+ * of adding a second one, so producers can retry an add without running the work twice.
17
+ */
13
18
  export declare class JobQueue {
14
19
  private queue;
15
20
  private connection;
@@ -23,6 +28,8 @@ export declare class JobQueue {
23
28
  priority?: number;
24
29
  delay?: number;
25
30
  metadata?: Record<string, unknown>;
31
+ /** Id of the job, see {@link JobQueue} for adding one twice */
32
+ jobId?: string;
26
33
  }): Promise<Job<AgentJobPayload>>;
27
34
  /**
28
35
  * Continue an agent job whose run paused for tool approvals (its result has
@@ -53,6 +60,8 @@ export declare class JobQueue {
53
60
  priority?: number;
54
61
  delay?: number;
55
62
  metadata?: Record<string, unknown>;
63
+ /** Id of the job, see {@link JobQueue} for adding one twice */
64
+ jobId?: string;
56
65
  }): Promise<Job<AgentJobPayload>>;
57
66
  /**
58
67
  * Add a workflow execution job to the queue
@@ -62,6 +71,8 @@ export declare class JobQueue {
62
71
  priority?: number;
63
72
  delay?: number;
64
73
  metadata?: Record<string, unknown>;
74
+ /** Id of the job, see {@link JobQueue} for adding one twice */
75
+ jobId?: string;
65
76
  }): Promise<Job<WorkflowJobPayload>>;
66
77
  /**
67
78
  * Add a swarm execution job to the queue
@@ -70,6 +81,8 @@ export declare class JobQueue {
70
81
  priority?: number;
71
82
  delay?: number;
72
83
  metadata?: Record<string, unknown>;
84
+ /** Id of the job, see {@link JobQueue} for adding one twice */
85
+ jobId?: string;
73
86
  }): Promise<Job<SwarmJobPayload>>;
74
87
  /**
75
88
  * Queue one agent turn of a swarm as a BullMQ job. A `WorkerPool` runs it and publishes the
@@ -87,7 +100,19 @@ export declare class JobQueue {
87
100
  delay?: number;
88
101
  /** Agent run timeout in ms (shorthand for `runOptions.timeout`) */
89
102
  timeout?: number;
103
+ /** Id of the job, see {@link JobQueue} for adding one twice */
104
+ jobId?: string;
90
105
  }): Promise<Job<SwarmAgentJobPayload>>;
106
+ /**
107
+ * Add the job, and when the producer gave its id, hand back the job the queue holds under it:
108
+ * adding a job whose id the queue holds already adds nothing and gives that job back, so a
109
+ * producer that retries an add, such as after a timeout, does not run the work twice, even when
110
+ * the two adds race. A job the queue removed (after it completed or failed, past
111
+ * `removeOnComplete` or `removeOnFail`) is gone, and its id adds a new job.
112
+ *
113
+ * @throws Error when the queue holds the id as another kind of job
114
+ */
115
+ private add;
91
116
  /**
92
117
  * Get job by ID
93
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}