societyai 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/LICENSE +21 -0
  3. package/README.md +879 -0
  4. package/dist/builder.d.ts +181 -0
  5. package/dist/builder.d.ts.map +1 -0
  6. package/dist/builder.js +667 -0
  7. package/dist/builder.js.map +1 -0
  8. package/dist/config.d.ts +43 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +11 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/context.d.ts +107 -0
  13. package/dist/context.d.ts.map +1 -0
  14. package/dist/context.js +319 -0
  15. package/dist/context.js.map +1 -0
  16. package/dist/errors.d.ts +31 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +85 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/events.d.ts +219 -0
  21. package/dist/events.d.ts.map +1 -0
  22. package/dist/events.js +395 -0
  23. package/dist/events.js.map +1 -0
  24. package/dist/graph.d.ts +104 -0
  25. package/dist/graph.d.ts.map +1 -0
  26. package/dist/graph.js +366 -0
  27. package/dist/graph.js.map +1 -0
  28. package/dist/index.d.ts +28 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +113 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/logger.d.ts +13 -0
  33. package/dist/logger.d.ts.map +1 -0
  34. package/dist/logger.js +78 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/memory.d.ts +146 -0
  37. package/dist/memory.d.ts.map +1 -0
  38. package/dist/memory.js +353 -0
  39. package/dist/memory.js.map +1 -0
  40. package/dist/metrics.d.ts +143 -0
  41. package/dist/metrics.d.ts.map +1 -0
  42. package/dist/metrics.js +271 -0
  43. package/dist/metrics.js.map +1 -0
  44. package/dist/middleware.d.ts +147 -0
  45. package/dist/middleware.d.ts.map +1 -0
  46. package/dist/middleware.js +484 -0
  47. package/dist/middleware.js.map +1 -0
  48. package/dist/models.d.ts +32 -0
  49. package/dist/models.d.ts.map +1 -0
  50. package/dist/models.js +211 -0
  51. package/dist/models.js.map +1 -0
  52. package/dist/patterns.d.ts +6 -0
  53. package/dist/patterns.d.ts.map +1 -0
  54. package/dist/patterns.js +68 -0
  55. package/dist/patterns.js.map +1 -0
  56. package/dist/pipeline.d.ts +84 -0
  57. package/dist/pipeline.d.ts.map +1 -0
  58. package/dist/pipeline.js +569 -0
  59. package/dist/pipeline.js.map +1 -0
  60. package/dist/retry.d.ts +5 -0
  61. package/dist/retry.d.ts.map +1 -0
  62. package/dist/retry.js +70 -0
  63. package/dist/retry.js.map +1 -0
  64. package/dist/society.d.ts +94 -0
  65. package/dist/society.d.ts.map +1 -0
  66. package/dist/society.js +721 -0
  67. package/dist/society.js.map +1 -0
  68. package/dist/strategies.d.ts +55 -0
  69. package/dist/strategies.d.ts.map +1 -0
  70. package/dist/strategies.js +678 -0
  71. package/dist/strategies.js.map +1 -0
  72. package/dist/tools.d.ts +88 -0
  73. package/dist/tools.d.ts.map +1 -0
  74. package/dist/tools.js +366 -0
  75. package/dist/tools.js.map +1 -0
  76. package/dist/types.d.ts +213 -0
  77. package/dist/types.d.ts.map +1 -0
  78. package/dist/types.js +19 -0
  79. package/dist/types.js.map +1 -0
  80. package/dist/validation.d.ts +64 -0
  81. package/dist/validation.d.ts.map +1 -0
  82. package/dist/validation.js +334 -0
  83. package/dist/validation.js.map +1 -0
  84. package/dist/worker-pool.d.ts +17 -0
  85. package/dist/worker-pool.d.ts.map +1 -0
  86. package/dist/worker-pool.js +80 -0
  87. package/dist/worker-pool.js.map +1 -0
  88. package/docs/README.md +468 -0
  89. package/docs/advanced.md +616 -0
  90. package/docs/aggregation-strategies.md +926 -0
  91. package/docs/api-reference.md +771 -0
  92. package/docs/architecture.md +648 -0
  93. package/docs/context-system.md +642 -0
  94. package/docs/event-system.md +1047 -0
  95. package/docs/examples.md +576 -0
  96. package/docs/getting-started.md +564 -0
  97. package/docs/graph-execution.md +389 -0
  98. package/docs/memory-system.md +497 -0
  99. package/docs/metrics-observability.md +560 -0
  100. package/docs/middleware-system.md +1038 -0
  101. package/docs/migration.md +296 -0
  102. package/docs/pipeline-patterns.md +761 -0
  103. package/docs/structured-output.md +612 -0
  104. package/docs/tool-calling.md +491 -0
  105. package/docs/workflows.md +740 -0
  106. package/examples/README.md +234 -0
  107. package/examples/advanced-patterns.ts +115 -0
  108. package/examples/complete-integration.ts +327 -0
  109. package/examples/graph-workflow.ts +161 -0
  110. package/examples/memory-system.ts +155 -0
  111. package/examples/metrics-tracking.ts +243 -0
  112. package/examples/structured-output.ts +231 -0
  113. package/examples/tool-calling.ts +163 -0
  114. package/package.json +94 -0
@@ -0,0 +1,569 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pipelines = exports.PipelineBuilder = void 0;
4
+ exports.composePipelines = composePipelines;
5
+ exports.parallelPipelines = parallelPipelines;
6
+ const strategies_1 = require("./strategies");
7
+ const logger_1 = require("./logger");
8
+ const worker_pool_1 = require("./worker-pool");
9
+ class PipelineBuilder {
10
+ constructor() {
11
+ this.steps = [];
12
+ this._name = 'pipeline';
13
+ }
14
+ static create(name) {
15
+ const builder = new PipelineBuilder();
16
+ if (name)
17
+ builder._name = name;
18
+ return builder;
19
+ }
20
+ withName(name) {
21
+ this._name = name;
22
+ return this;
23
+ }
24
+ withTimeout(ms) {
25
+ this._timeout = ms;
26
+ return this;
27
+ }
28
+ onStepComplete(handler) {
29
+ this._onStepComplete = handler;
30
+ return this;
31
+ }
32
+ chain(agentIds, name) {
33
+ this.steps.push({
34
+ type: 'chain',
35
+ agentIds,
36
+ name: name ?? `chain-${this.steps.length}`,
37
+ });
38
+ return this;
39
+ }
40
+ then(agentId, name) {
41
+ return this.chain([agentId], name);
42
+ }
43
+ scatter(agentIds, name) {
44
+ this.steps.push({
45
+ type: 'scatter',
46
+ agentIds,
47
+ name: name ?? `scatter-${this.steps.length}`,
48
+ });
49
+ return this;
50
+ }
51
+ gather(strategy = strategies_1.Strategies.concat('\n\n'), name) {
52
+ this.steps.push({
53
+ type: 'gather',
54
+ strategy,
55
+ name: name ?? `gather-${this.steps.length}`,
56
+ });
57
+ return this;
58
+ }
59
+ scatterGather(agentIds, strategy = strategies_1.Strategies.concat('\n\n'), name) {
60
+ return this.scatter(agentIds, name ? `${name}-scatter` : undefined)
61
+ .gather(strategy, name ? `${name}-gather` : undefined);
62
+ }
63
+ route(agentIds, router, name) {
64
+ this.steps.push({
65
+ type: 'router',
66
+ agentIds,
67
+ router,
68
+ name: name ?? `router-${this.steps.length}`,
69
+ });
70
+ return this;
71
+ }
72
+ routeByContent(routes, defaultAgentId, name) {
73
+ return this.route([...routes.map((r) => r.agentId), defaultAgentId], (input) => {
74
+ for (const route of routes) {
75
+ if (typeof route.match === 'string') {
76
+ if (input.includes(route.match))
77
+ return route.agentId;
78
+ }
79
+ else {
80
+ if (route.match.test(input))
81
+ return route.agentId;
82
+ }
83
+ }
84
+ return defaultAgentId;
85
+ }, name);
86
+ }
87
+ split(agentId, splitter, name) {
88
+ this.steps.push({
89
+ type: 'splitter',
90
+ agentIds: [agentId],
91
+ splitter,
92
+ name: name ?? `splitter-${this.steps.length}`,
93
+ });
94
+ return this;
95
+ }
96
+ splitByDelimiter(agentId, delimiter, name) {
97
+ return this.split(agentId, (input) => input.split(delimiter).filter((s) => s.trim() !== ''), name);
98
+ }
99
+ splitByLines(agentId, name) {
100
+ return this.splitByDelimiter(agentId, '\n', name);
101
+ }
102
+ aggregate(strategy, name) {
103
+ this.steps.push({
104
+ type: 'aggregator',
105
+ strategy,
106
+ name: name ?? `aggregator-${this.steps.length}`,
107
+ });
108
+ return this;
109
+ }
110
+ transform(transformer, name) {
111
+ this.steps.push({
112
+ type: 'transform',
113
+ transformer,
114
+ name: name ?? `transform-${this.steps.length}`,
115
+ });
116
+ return this;
117
+ }
118
+ prefix(text) {
119
+ return this.transform((result) => `${text}${result}`, 'prefix');
120
+ }
121
+ suffix(text) {
122
+ return this.transform((result) => `${result}${text}`, 'suffix');
123
+ }
124
+ wrap(before, after) {
125
+ return this.transform((result) => `${before}${result}${after}`, 'wrap');
126
+ }
127
+ when(condition, thenPipeline, elsePipeline, name) {
128
+ const thenBuilder = thenPipeline(PipelineBuilder.create());
129
+ const elseBuilder = elsePipeline ? elsePipeline(PipelineBuilder.create()) : undefined;
130
+ this.steps.push({
131
+ type: 'condition',
132
+ condition,
133
+ thenPipeline: thenBuilder.build(),
134
+ elsePipeline: elseBuilder?.build(),
135
+ name: name ?? `condition-${this.steps.length}`,
136
+ });
137
+ return this;
138
+ }
139
+ onlyIf(condition, agentIds, name) {
140
+ return this.when(condition, (builder) => builder.chain(agentIds), undefined, name);
141
+ }
142
+ build() {
143
+ return new ExecutablePipeline(this._name, [...this.steps], this._timeout, this._onStepComplete);
144
+ }
145
+ }
146
+ exports.PipelineBuilder = PipelineBuilder;
147
+ class ExecutablePipeline {
148
+ constructor(name, steps, timeout, onStepComplete) {
149
+ this.name = name;
150
+ this.steps = steps;
151
+ this.timeout = timeout;
152
+ this.onStepComplete = onStepComplete;
153
+ this.logger = (0, logger_1.getLogger)();
154
+ }
155
+ getName() {
156
+ return this.name;
157
+ }
158
+ getSteps() {
159
+ return this.steps;
160
+ }
161
+ async execute(input, agents, signal) {
162
+ const startTime = Date.now();
163
+ const ctx = {
164
+ input,
165
+ currentResult: input,
166
+ stepResults: [],
167
+ sharedData: new Map(),
168
+ metadata: new Map(),
169
+ startTime,
170
+ signal,
171
+ };
172
+ const errors = [];
173
+ try {
174
+ let timeoutSignal = signal;
175
+ let timeoutId;
176
+ if (this.timeout) {
177
+ const controller = new AbortController();
178
+ timeoutId = setTimeout(() => controller.abort(), this.timeout);
179
+ if (signal) {
180
+ signal.addEventListener('abort', () => controller.abort());
181
+ }
182
+ timeoutSignal = controller.signal;
183
+ ctx.signal = timeoutSignal;
184
+ }
185
+ try {
186
+ for (const step of this.steps) {
187
+ if (ctx.signal?.aborted) {
188
+ throw new Error('Pipeline execution cancelled');
189
+ }
190
+ this.logger.debug(`Executing pipeline step: ${step.name}`);
191
+ const stepResults = await this.executeStep(step, ctx, agents);
192
+ ctx.stepResults.push(...stepResults);
193
+ this.onStepComplete?.(step, stepResults);
194
+ }
195
+ if (timeoutId)
196
+ clearTimeout(timeoutId);
197
+ }
198
+ catch (error) {
199
+ if (timeoutId)
200
+ clearTimeout(timeoutId);
201
+ throw error;
202
+ }
203
+ return {
204
+ output: ctx.currentResult,
205
+ success: true,
206
+ stepResults: ctx.stepResults,
207
+ duration: Date.now() - startTime,
208
+ metadata: Object.fromEntries(ctx.metadata),
209
+ };
210
+ }
211
+ catch (error) {
212
+ errors.push(error);
213
+ return {
214
+ output: ctx.currentResult,
215
+ success: false,
216
+ stepResults: ctx.stepResults,
217
+ duration: Date.now() - startTime,
218
+ errors,
219
+ metadata: Object.fromEntries(ctx.metadata),
220
+ };
221
+ }
222
+ }
223
+ async executeStep(step, ctx, agents) {
224
+ switch (step.type) {
225
+ case 'chain':
226
+ return this.executeChain(step, ctx, agents);
227
+ case 'scatter':
228
+ return this.executeScatter(step, ctx, agents);
229
+ case 'gather':
230
+ return this.executeGather(step, ctx);
231
+ case 'router':
232
+ return this.executeRouter(step, ctx, agents);
233
+ case 'splitter':
234
+ return this.executeSplitter(step, ctx, agents);
235
+ case 'aggregator':
236
+ return this.executeAggregator(step, ctx);
237
+ case 'transform':
238
+ return this.executeTransform(step, ctx);
239
+ case 'condition':
240
+ return this.executeCondition(step, ctx, agents);
241
+ default:
242
+ throw new Error(`Unknown step type: ${step.type}`);
243
+ }
244
+ }
245
+ async executeChain(step, ctx, agents) {
246
+ const results = [];
247
+ for (const agentId of step.agentIds ?? []) {
248
+ if (ctx.signal?.aborted)
249
+ throw new Error('Cancelled');
250
+ const agent = agents.get(agentId);
251
+ if (!agent) {
252
+ this.logger.error(`Agent ${agentId} not found`);
253
+ continue;
254
+ }
255
+ const prompt = this.buildPrompt(agent, ctx.currentResult, ctx);
256
+ try {
257
+ const content = await agent.model.process(prompt, ctx.signal);
258
+ const result = {
259
+ agentId,
260
+ stepId: step.name ?? 'chain',
261
+ content,
262
+ timestamp: Date.now(),
263
+ success: true,
264
+ };
265
+ results.push(result);
266
+ ctx.currentResult = content;
267
+ }
268
+ catch (error) {
269
+ results.push({
270
+ agentId,
271
+ stepId: step.name ?? 'chain',
272
+ content: '',
273
+ timestamp: Date.now(),
274
+ success: false,
275
+ error: error,
276
+ });
277
+ }
278
+ }
279
+ return results;
280
+ }
281
+ async executeScatter(step, ctx, agents) {
282
+ const pool = new worker_pool_1.WorkerPool(step.agentIds?.length ?? 5, ctx.signal);
283
+ const results = [];
284
+ const tasks = (step.agentIds ?? []).map((agentId) => async () => {
285
+ const agent = agents.get(agentId);
286
+ if (!agent) {
287
+ return {
288
+ agentId,
289
+ stepId: step.name ?? 'scatter',
290
+ content: '',
291
+ timestamp: Date.now(),
292
+ success: false,
293
+ error: new Error(`Agent ${agentId} not found`),
294
+ };
295
+ }
296
+ const prompt = this.buildPrompt(agent, ctx.currentResult, ctx);
297
+ try {
298
+ const content = await agent.model.process(prompt, ctx.signal);
299
+ return {
300
+ agentId,
301
+ stepId: step.name ?? 'scatter',
302
+ content,
303
+ timestamp: Date.now(),
304
+ success: true,
305
+ };
306
+ }
307
+ catch (error) {
308
+ return {
309
+ agentId,
310
+ stepId: step.name ?? 'scatter',
311
+ content: '',
312
+ timestamp: Date.now(),
313
+ success: false,
314
+ error: error,
315
+ };
316
+ }
317
+ });
318
+ const taskResults = await Promise.all(tasks.map((task) => pool.submit(task)));
319
+ await pool.waitAll();
320
+ results.push(...taskResults);
321
+ ctx.sharedData.set('scatterResults', results);
322
+ return results;
323
+ }
324
+ async executeGather(step, ctx) {
325
+ const scatterResults = ctx.sharedData.get('scatterResults');
326
+ if (!scatterResults) {
327
+ this.logger.debug('No scatter results to gather');
328
+ return [];
329
+ }
330
+ const strategy = step.strategy ?? strategies_1.Strategies.concat('\n\n');
331
+ ctx.currentResult = strategy.aggregate(scatterResults);
332
+ ctx.sharedData.delete('scatterResults');
333
+ return [{
334
+ agentId: 'gather',
335
+ stepId: step.name ?? 'gather',
336
+ content: ctx.currentResult,
337
+ timestamp: Date.now(),
338
+ success: true,
339
+ metadata: { strategy: strategy.name },
340
+ }];
341
+ }
342
+ async executeRouter(step, ctx, agents) {
343
+ if (!step.router) {
344
+ throw new Error('Router step requires a router function');
345
+ }
346
+ const selectedAgentId = step.router(ctx.currentResult, ctx);
347
+ const agent = agents.get(selectedAgentId);
348
+ if (!agent) {
349
+ throw new Error(`Routed agent ${selectedAgentId} not found`);
350
+ }
351
+ const prompt = this.buildPrompt(agent, ctx.currentResult, ctx);
352
+ const content = await agent.model.process(prompt, ctx.signal);
353
+ ctx.currentResult = content;
354
+ return [{
355
+ agentId: selectedAgentId,
356
+ stepId: step.name ?? 'router',
357
+ content,
358
+ timestamp: Date.now(),
359
+ success: true,
360
+ metadata: { routed: true },
361
+ }];
362
+ }
363
+ async executeSplitter(step, ctx, agents) {
364
+ if (!step.splitter) {
365
+ throw new Error('Splitter step requires a splitter function');
366
+ }
367
+ const parts = step.splitter(ctx.currentResult);
368
+ const agentId = step.agentIds?.[0];
369
+ if (!agentId) {
370
+ throw new Error('Splitter step requires at least one agent');
371
+ }
372
+ const agent = agents.get(agentId);
373
+ if (!agent) {
374
+ throw new Error(`Agent ${agentId} not found`);
375
+ }
376
+ const results = [];
377
+ for (let i = 0; i < parts.length; i++) {
378
+ if (ctx.signal?.aborted)
379
+ throw new Error('Cancelled');
380
+ const part = parts[i];
381
+ const prompt = this.buildPrompt(agent, part, ctx);
382
+ try {
383
+ const content = await agent.model.process(prompt, ctx.signal);
384
+ results.push({
385
+ agentId,
386
+ stepId: `${step.name ?? 'splitter'}-${i}`,
387
+ content,
388
+ timestamp: Date.now(),
389
+ success: true,
390
+ metadata: { partIndex: i },
391
+ });
392
+ }
393
+ catch (error) {
394
+ results.push({
395
+ agentId,
396
+ stepId: `${step.name ?? 'splitter'}-${i}`,
397
+ content: '',
398
+ timestamp: Date.now(),
399
+ success: false,
400
+ error: error,
401
+ metadata: { partIndex: i },
402
+ });
403
+ }
404
+ }
405
+ ctx.currentResult = results
406
+ .filter((r) => r.success)
407
+ .map((r) => r.content)
408
+ .join('\n\n');
409
+ return results;
410
+ }
411
+ async executeAggregator(step, ctx) {
412
+ const strategy = step.strategy ?? strategies_1.Strategies.concat('\n\n');
413
+ ctx.currentResult = strategy.aggregate(ctx.stepResults);
414
+ return [{
415
+ agentId: 'aggregator',
416
+ stepId: step.name ?? 'aggregator',
417
+ content: ctx.currentResult,
418
+ timestamp: Date.now(),
419
+ success: true,
420
+ metadata: { strategy: strategy.name },
421
+ }];
422
+ }
423
+ async executeTransform(step, ctx) {
424
+ if (!step.transformer) {
425
+ throw new Error('Transform step requires a transformer function');
426
+ }
427
+ ctx.currentResult = step.transformer(ctx.currentResult, ctx);
428
+ return [{
429
+ agentId: 'transform',
430
+ stepId: step.name ?? 'transform',
431
+ content: ctx.currentResult,
432
+ timestamp: Date.now(),
433
+ success: true,
434
+ }];
435
+ }
436
+ async executeCondition(step, ctx, agents) {
437
+ if (!step.condition) {
438
+ throw new Error('Condition step requires a condition function');
439
+ }
440
+ const conditionResult = step.condition(ctx);
441
+ const pipeline = conditionResult ? step.thenPipeline : step.elsePipeline;
442
+ if (!pipeline) {
443
+ return [];
444
+ }
445
+ const result = await pipeline.execute(ctx.currentResult, agents, ctx.signal);
446
+ ctx.currentResult = result.output;
447
+ return result.stepResults;
448
+ }
449
+ buildPrompt(agent, input, ctx) {
450
+ const template = agent.role.promptTemplate ?? '{systemPrompt}\n\n{input}';
451
+ return template
452
+ .replace('{systemPrompt}', agent.role.systemPrompt)
453
+ .replace('{input}', input)
454
+ .replace('{context}', JSON.stringify(Object.fromEntries(ctx.sharedData)));
455
+ }
456
+ }
457
+ exports.Pipelines = {
458
+ chain: (...agentIds) => PipelineBuilder.create('chain').chain(agentIds).build(),
459
+ scatterGather: (agentIds, strategy) => PipelineBuilder.create('scatter-gather')
460
+ .scatterGather(agentIds, strategy)
461
+ .build(),
462
+ roundRobin: (agentIds, rounds = 1) => {
463
+ const builder = PipelineBuilder.create('round-robin');
464
+ for (let i = 0; i < rounds; i++) {
465
+ builder.chain(agentIds, `round-${i + 1}`);
466
+ }
467
+ return builder.build();
468
+ },
469
+ fanOutFanIn: (scatterAgentIds, processAgentId, strategy) => PipelineBuilder.create('fan-out-fan-in')
470
+ .scatter(scatterAgentIds)
471
+ .gather(strategy)
472
+ .then(processAgentId)
473
+ .build(),
474
+ review: (drafterId, reviewerId) => PipelineBuilder.create('review')
475
+ .then(drafterId, 'draft')
476
+ .then(reviewerId, 'review')
477
+ .then(drafterId, 'revise')
478
+ .build(),
479
+ consensus: (agentIds, finalizerId, threshold = 0.6) => PipelineBuilder.create('consensus')
480
+ .scatter(agentIds)
481
+ .gather(strategies_1.Strategies.consensus(threshold))
482
+ .then(finalizerId, 'finalize')
483
+ .build(),
484
+ expertRouting: (routes, defaultAgentId) => PipelineBuilder.create('expert-routing')
485
+ .routeByContent(routes, defaultAgentId)
486
+ .build(),
487
+ iterativeRefinement: (agentId, iterations = 3) => {
488
+ const builder = PipelineBuilder.create('iterative-refinement');
489
+ for (let i = 0; i < iterations; i++) {
490
+ builder.then(agentId, `iteration-${i + 1}`);
491
+ }
492
+ return builder.build();
493
+ },
494
+ debate: (agent1Id, agent2Id, judgeId, rounds = 2) => {
495
+ const builder = PipelineBuilder.create('debate');
496
+ for (let i = 0; i < rounds; i++) {
497
+ builder
498
+ .scatter([agent1Id, agent2Id], `debate-round-${i + 1}`)
499
+ .gather(strategies_1.Strategies.format('markdown'), `gather-round-${i + 1}`);
500
+ }
501
+ return builder.then(judgeId, 'judge').build();
502
+ },
503
+ };
504
+ function composePipelines(...pipelines) {
505
+ const allSteps = [];
506
+ for (const pipeline of pipelines) {
507
+ allSteps.push(...pipeline.getSteps());
508
+ }
509
+ return {
510
+ getName: () => 'composed-pipeline',
511
+ getSteps: () => allSteps,
512
+ execute: async (input, agents, signal) => {
513
+ let currentInput = input;
514
+ const allResults = [];
515
+ const startTime = Date.now();
516
+ for (const pipeline of pipelines) {
517
+ const result = await pipeline.execute(currentInput, agents, signal);
518
+ allResults.push(...result.stepResults);
519
+ currentInput = result.output;
520
+ if (!result.success) {
521
+ return {
522
+ output: currentInput,
523
+ success: false,
524
+ stepResults: allResults,
525
+ duration: Date.now() - startTime,
526
+ errors: result.errors,
527
+ metadata: {},
528
+ };
529
+ }
530
+ }
531
+ return {
532
+ output: currentInput,
533
+ success: true,
534
+ stepResults: allResults,
535
+ duration: Date.now() - startTime,
536
+ metadata: {},
537
+ };
538
+ },
539
+ };
540
+ }
541
+ function parallelPipelines(pipelines, strategy = strategies_1.Strategies.concat('\n\n')) {
542
+ return {
543
+ getName: () => 'parallel-pipelines',
544
+ getSteps: () => pipelines.flatMap((p) => p.getSteps()),
545
+ execute: async (input, agents, signal) => {
546
+ const startTime = Date.now();
547
+ const results = await Promise.all(pipelines.map((p) => p.execute(input, agents, signal)));
548
+ const allStepResults = results.flatMap((r) => r.stepResults);
549
+ const stepResultsForAggregation = results.map((r, i) => ({
550
+ agentId: `pipeline-${i}`,
551
+ stepId: pipelines[i].getName(),
552
+ content: r.output,
553
+ timestamp: Date.now(),
554
+ success: r.success,
555
+ }));
556
+ const output = strategy.aggregate(stepResultsForAggregation);
557
+ const success = results.every((r) => r.success);
558
+ return {
559
+ output,
560
+ success,
561
+ stepResults: allStepResults,
562
+ duration: Date.now() - startTime,
563
+ errors: results.flatMap((r) => r.errors ?? []),
564
+ metadata: {},
565
+ };
566
+ },
567
+ };
568
+ }
569
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { RetryOptions } from './config';
2
+ export declare function defaultRetryOptions(): RetryOptions;
3
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>, signal?: AbortSignal): Promise<T>;
4
+ export declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
5
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC,wBAAgB,mBAAmB,IAAI,YAAY,CAQlD;AASD,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC/B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAsDZ;AAOD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrE"}
package/dist/retry.js ADDED
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultRetryOptions = defaultRetryOptions;
4
+ exports.withRetry = withRetry;
5
+ exports.sleep = sleep;
6
+ const logger_1 = require("./logger");
7
+ const errors_1 = require("./errors");
8
+ function defaultRetryOptions() {
9
+ return {
10
+ maxRetries: 3,
11
+ initialBackoff: 500,
12
+ maxBackoff: 10000,
13
+ backoffFactor: 1.5,
14
+ jitter: true,
15
+ };
16
+ }
17
+ async function withRetry(fn, options, signal) {
18
+ const opts = { ...defaultRetryOptions(), ...options };
19
+ const logger = (0, logger_1.getLogger)();
20
+ let retryCount = 0;
21
+ let backoff = opts.initialBackoff;
22
+ let lastError = null;
23
+ while (retryCount <= opts.maxRetries) {
24
+ if (signal?.aborted) {
25
+ throw new Error('Operation cancelled');
26
+ }
27
+ try {
28
+ if (retryCount > 0) {
29
+ logger.info(`Retry ${retryCount}/${opts.maxRetries} après erreur: ${lastError?.message}`);
30
+ }
31
+ return await fn();
32
+ }
33
+ catch (error) {
34
+ lastError = error;
35
+ if ((0, errors_1.isAbortError)(lastError)) {
36
+ throw lastError;
37
+ }
38
+ if (retryCount >= opts.maxRetries) {
39
+ logger.error(`Max retries atteint (${opts.maxRetries}). Dernière erreur: ${lastError.message}`);
40
+ throw (0, errors_1.wrapError)(lastError, 'Nombre maximum de tentatives atteint');
41
+ }
42
+ let nextBackoff = backoff;
43
+ if (opts.jitter) {
44
+ const jitterFactor = 0.8 + Math.random() * 0.4;
45
+ nextBackoff = Math.floor(backoff * jitterFactor);
46
+ }
47
+ await sleep(nextBackoff, signal);
48
+ retryCount++;
49
+ backoff = Math.min(opts.maxBackoff, Math.floor(backoff * opts.backoffFactor));
50
+ }
51
+ }
52
+ throw lastError || new Error('Erreur inconnue lors du retry');
53
+ }
54
+ function sleep(ms, signal) {
55
+ return new Promise((resolve, reject) => {
56
+ if (signal?.aborted) {
57
+ reject(new Error('Operation cancelled'));
58
+ return;
59
+ }
60
+ const timeout = setTimeout(resolve, ms);
61
+ if (signal) {
62
+ const abortHandler = () => {
63
+ clearTimeout(timeout);
64
+ reject(new Error('Operation cancelled'));
65
+ };
66
+ signal.addEventListener('abort', abortHandler, { once: true });
67
+ }
68
+ });
69
+ }
70
+ //# sourceMappingURL=retry.js.map