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,667 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SocietyPatterns = exports.Society = exports.AggregationStrategies = exports.FluentPipelineBuilder = exports.FluentStepBuilder = exports.FluentAgentBuilder = exports.FluentRoleBuilder = void 0;
4
+ exports.createRole = createRole;
5
+ exports.createAgent = createAgent;
6
+ const society_1 = require("./society");
7
+ const errors_1 = require("./errors");
8
+ class FluentRoleBuilder {
9
+ constructor() {
10
+ this._id = '';
11
+ this._name = '';
12
+ this._systemPrompt = '';
13
+ this._capabilities = [];
14
+ this._constraints = [];
15
+ }
16
+ withId(id) {
17
+ this._id = id;
18
+ if (!this._name)
19
+ this._name = id;
20
+ return this;
21
+ }
22
+ withName(name) {
23
+ this._name = name;
24
+ return this;
25
+ }
26
+ withDescription(description) {
27
+ this._description = description;
28
+ return this;
29
+ }
30
+ withSystemPrompt(prompt) {
31
+ this._systemPrompt = prompt;
32
+ return this;
33
+ }
34
+ withCapabilities(capabilities) {
35
+ this._capabilities = capabilities;
36
+ return this;
37
+ }
38
+ addCapability(capability) {
39
+ this._capabilities.push(capability);
40
+ return this;
41
+ }
42
+ withConstraints(constraints) {
43
+ this._constraints = constraints;
44
+ return this;
45
+ }
46
+ addConstraint(constraint) {
47
+ this._constraints.push(constraint);
48
+ return this;
49
+ }
50
+ withPromptTemplate(template) {
51
+ this._promptTemplate = template;
52
+ return this;
53
+ }
54
+ build() {
55
+ if (!this._id) {
56
+ this._id = `role-${Date.now()}-${Math.random().toString(36).substring(7)}`;
57
+ }
58
+ if (!this._name)
59
+ this._name = this._id;
60
+ if (!this._systemPrompt)
61
+ throw new errors_1.InvalidConfigurationError('Role systemPrompt is required');
62
+ return {
63
+ id: this._id,
64
+ name: this._name,
65
+ description: this._description,
66
+ systemPrompt: this._systemPrompt,
67
+ capabilities: this._capabilities.length > 0 ? this._capabilities : undefined,
68
+ constraints: this._constraints.length > 0 ? this._constraints : undefined,
69
+ promptTemplate: this._promptTemplate,
70
+ };
71
+ }
72
+ }
73
+ exports.FluentRoleBuilder = FluentRoleBuilder;
74
+ class FluentAgentBuilder {
75
+ constructor() {
76
+ this._id = '';
77
+ this._canCommunicateWith = [];
78
+ this._priority = 0;
79
+ this._initialContext = {};
80
+ this._tags = [];
81
+ this._metadata = {};
82
+ }
83
+ withId(id) {
84
+ this._id = id;
85
+ if (!this._name)
86
+ this._name = id;
87
+ return this;
88
+ }
89
+ withName(name) {
90
+ this._name = name;
91
+ return this;
92
+ }
93
+ withRole(builderFn) {
94
+ const builder = new FluentRoleBuilder();
95
+ this._role = builderFn(builder).build();
96
+ return this;
97
+ }
98
+ useRole(role) {
99
+ this._role = role;
100
+ return this;
101
+ }
102
+ withModel(model) {
103
+ this._model = model;
104
+ return this;
105
+ }
106
+ canCommunicateWith(agentIds) {
107
+ this._canCommunicateWith = agentIds;
108
+ return this;
109
+ }
110
+ withPriority(priority) {
111
+ this._priority = priority;
112
+ return this;
113
+ }
114
+ withInitialContext(context) {
115
+ this._initialContext = context;
116
+ return this;
117
+ }
118
+ addContext(key, value) {
119
+ this._initialContext[key] = value;
120
+ return this;
121
+ }
122
+ withRetry(config) {
123
+ this._retryConfig = config;
124
+ return this;
125
+ }
126
+ withTags(tags) {
127
+ this._tags = tags;
128
+ return this;
129
+ }
130
+ addTag(tag) {
131
+ this._tags.push(tag);
132
+ return this;
133
+ }
134
+ withMetadata(metadata) {
135
+ this._metadata = metadata;
136
+ return this;
137
+ }
138
+ build() {
139
+ if (!this._id)
140
+ throw new errors_1.InvalidConfigurationError('Agent id is required');
141
+ if (!this._role)
142
+ throw new errors_1.InvalidConfigurationError('Agent role is required');
143
+ if (!this._model)
144
+ throw new errors_1.InvalidConfigurationError('Agent model is required');
145
+ return {
146
+ id: this._id,
147
+ name: this._name,
148
+ role: this._role,
149
+ model: this._model,
150
+ canCommunicateWith: this._canCommunicateWith.length > 0 ? this._canCommunicateWith : undefined,
151
+ priority: this._priority,
152
+ initialContext: Object.keys(this._initialContext).length > 0 ? this._initialContext : undefined,
153
+ retryConfig: this._retryConfig,
154
+ tags: this._tags.length > 0 ? this._tags : undefined,
155
+ metadata: Object.keys(this._metadata).length > 0 ? this._metadata : undefined,
156
+ };
157
+ }
158
+ }
159
+ exports.FluentAgentBuilder = FluentAgentBuilder;
160
+ class FluentStepBuilder {
161
+ constructor() {
162
+ this._id = '';
163
+ this._name = '';
164
+ this._agentIds = [];
165
+ this._executionType = 'sequential';
166
+ }
167
+ withId(id) {
168
+ this._id = id;
169
+ if (!this._name)
170
+ this._name = id;
171
+ return this;
172
+ }
173
+ withName(name) {
174
+ this._name = name;
175
+ return this;
176
+ }
177
+ withDescription(description) {
178
+ this._description = description;
179
+ return this;
180
+ }
181
+ withAgents(agentIds) {
182
+ this._agentIds = agentIds;
183
+ return this;
184
+ }
185
+ addAgent(agentId) {
186
+ this._agentIds.push(agentId);
187
+ return this;
188
+ }
189
+ sequential() {
190
+ this._executionType = 'sequential';
191
+ return this;
192
+ }
193
+ parallel() {
194
+ this._executionType = 'parallel';
195
+ return this;
196
+ }
197
+ collaborative(maxIterations) {
198
+ this._executionType = 'collaborative';
199
+ if (maxIterations !== undefined)
200
+ this._maxIterations = maxIterations;
201
+ return this;
202
+ }
203
+ conditional(condition) {
204
+ this._executionType = 'conditional';
205
+ this._condition = condition;
206
+ return this;
207
+ }
208
+ withInstructions(instructions) {
209
+ this._instructions = instructions;
210
+ return this;
211
+ }
212
+ withPromptTemplate(template) {
213
+ this._promptTemplate = template;
214
+ return this;
215
+ }
216
+ withMaxIterations(max) {
217
+ this._maxIterations = max;
218
+ return this;
219
+ }
220
+ withCompletionCondition(condition) {
221
+ this._completionCondition = condition;
222
+ return this;
223
+ }
224
+ transformResults(transformer) {
225
+ this._resultTransformer = transformer;
226
+ return this;
227
+ }
228
+ thenGoto(stepIds) {
229
+ this._nextSteps = stepIds;
230
+ return this;
231
+ }
232
+ thenResolve(resolver) {
233
+ this._nextStepResolver = resolver;
234
+ return this;
235
+ }
236
+ withTimeout(ms) {
237
+ this._timeout = ms;
238
+ return this;
239
+ }
240
+ build() {
241
+ if (!this._id)
242
+ throw new errors_1.InvalidConfigurationError('Step id is required');
243
+ if (!this._name)
244
+ throw new errors_1.InvalidConfigurationError('Step name is required');
245
+ if (this._agentIds.length === 0)
246
+ throw new errors_1.InvalidConfigurationError('Step must have at least one agent');
247
+ return {
248
+ id: this._id,
249
+ name: this._name,
250
+ description: this._description,
251
+ agentIds: this._agentIds,
252
+ executionType: this._executionType,
253
+ instructions: this._instructions,
254
+ promptTemplate: this._promptTemplate,
255
+ maxIterations: this._maxIterations,
256
+ completionCondition: this._completionCondition,
257
+ resultTransformer: this._resultTransformer,
258
+ condition: this._condition,
259
+ nextSteps: this._nextSteps,
260
+ nextStepResolver: this._nextStepResolver,
261
+ timeout: this._timeout,
262
+ };
263
+ }
264
+ }
265
+ exports.FluentStepBuilder = FluentStepBuilder;
266
+ class FluentPipelineBuilder {
267
+ constructor() {
268
+ this._pattern = 'chain';
269
+ this._agentIds = [];
270
+ }
271
+ scatterGather(agentIds) {
272
+ this._pattern = 'scatter-gather';
273
+ this._agentIds = agentIds;
274
+ return this;
275
+ }
276
+ chain(agentIds) {
277
+ this._pattern = 'chain';
278
+ this._agentIds = agentIds;
279
+ return this;
280
+ }
281
+ router(agentIds, routerFn) {
282
+ this._pattern = 'router';
283
+ this._agentIds = agentIds;
284
+ this._router = routerFn;
285
+ return this;
286
+ }
287
+ fallback(agentIds) {
288
+ this._pattern = 'fallback';
289
+ this._agentIds = agentIds;
290
+ return this;
291
+ }
292
+ race(agentIds) {
293
+ this._pattern = 'race';
294
+ this._agentIds = agentIds;
295
+ return this;
296
+ }
297
+ aggregate(aggregator) {
298
+ this._aggregator = aggregator;
299
+ return this;
300
+ }
301
+ withTimeout(ms) {
302
+ this._timeout = ms;
303
+ return this;
304
+ }
305
+ onAllFailed(handler) {
306
+ this._fallbackHandler = handler;
307
+ return this;
308
+ }
309
+ build() {
310
+ return {
311
+ pattern: this._pattern,
312
+ agentIds: this._agentIds,
313
+ aggregator: this._aggregator,
314
+ router: this._router,
315
+ timeout: this._timeout,
316
+ fallbackHandler: this._fallbackHandler,
317
+ };
318
+ }
319
+ toSteps() {
320
+ const steps = [];
321
+ switch (this._pattern) {
322
+ case 'scatter-gather':
323
+ steps.push({
324
+ id: 'scatter',
325
+ name: 'Parallel Execution',
326
+ agentIds: this._agentIds,
327
+ executionType: 'parallel',
328
+ resultTransformer: this._aggregator
329
+ ? (results) => this._aggregator(results)
330
+ : undefined,
331
+ });
332
+ break;
333
+ case 'chain':
334
+ this._agentIds.forEach((agentId, index) => {
335
+ steps.push({
336
+ id: `chain-${index}`,
337
+ name: `Chain Step ${index + 1}`,
338
+ agentIds: [agentId],
339
+ executionType: 'sequential',
340
+ nextSteps: index < this._agentIds.length - 1 ? [`chain-${index + 1}`] : undefined,
341
+ });
342
+ });
343
+ break;
344
+ case 'fallback':
345
+ steps.push({
346
+ id: 'fallback',
347
+ name: 'Fallback Execution',
348
+ agentIds: this._agentIds,
349
+ executionType: 'sequential',
350
+ });
351
+ break;
352
+ case 'race':
353
+ steps.push({
354
+ id: 'race',
355
+ name: 'Race Execution',
356
+ agentIds: this._agentIds,
357
+ executionType: 'parallel',
358
+ });
359
+ break;
360
+ case 'router':
361
+ steps.push({
362
+ id: 'router',
363
+ name: 'Router',
364
+ agentIds: this._agentIds,
365
+ executionType: 'conditional',
366
+ });
367
+ break;
368
+ }
369
+ return steps;
370
+ }
371
+ }
372
+ exports.FluentPipelineBuilder = FluentPipelineBuilder;
373
+ exports.AggregationStrategies = {
374
+ concat: (separator = '\n\n') => (results) => {
375
+ return results
376
+ .filter((r) => r.success)
377
+ .map((r) => r.content)
378
+ .join(separator);
379
+ },
380
+ first: () => (results) => {
381
+ const first = results.find((r) => r.success);
382
+ return first?.content ?? '';
383
+ },
384
+ last: () => (results) => {
385
+ const successful = results.filter((r) => r.success);
386
+ return successful[successful.length - 1]?.content ?? '';
387
+ },
388
+ best: (scorer) => (results) => {
389
+ const scored = results
390
+ .filter((r) => r.success)
391
+ .map((r) => ({ result: r, score: scorer(r) }))
392
+ .sort((a, b) => b.score - a.score);
393
+ return scored[0]?.result.content ?? '';
394
+ },
395
+ reduce: (reducer, initial, finalize) => (results) => {
396
+ const accumulated = results.filter((r) => r.success).reduce(reducer, initial);
397
+ return finalize(accumulated);
398
+ },
399
+ structured: (format = 'markdown') => (results) => {
400
+ const successful = results.filter((r) => r.success);
401
+ switch (format) {
402
+ case 'json':
403
+ return JSON.stringify(successful.map((r) => ({ agent: r.agentId, content: r.content })), null, 2);
404
+ case 'list':
405
+ return successful.map((r) => `- [${r.agentId}]: ${r.content}`).join('\n');
406
+ case 'markdown':
407
+ default:
408
+ return successful.map((r) => `## ${r.agentId}\n\n${r.content}`).join('\n\n');
409
+ }
410
+ },
411
+ };
412
+ class Society {
413
+ constructor() {
414
+ this._id = '';
415
+ this._name = '';
416
+ this._agents = [];
417
+ this._steps = [];
418
+ this._globalContext = {};
419
+ }
420
+ static create(id) {
421
+ const society = new Society();
422
+ if (id) {
423
+ society._id = id;
424
+ society._name = id;
425
+ }
426
+ return society;
427
+ }
428
+ withId(id) {
429
+ this._id = id;
430
+ if (!this._name)
431
+ this._name = id;
432
+ return this;
433
+ }
434
+ withName(name) {
435
+ this._name = name;
436
+ if (!this._id)
437
+ this._id = name.toLowerCase().replace(/\s+/g, '-');
438
+ return this;
439
+ }
440
+ withDescription(description) {
441
+ this._description = description;
442
+ return this;
443
+ }
444
+ addAgent(builderFn) {
445
+ const builder = new FluentAgentBuilder();
446
+ this._agents.push(builderFn(builder).build());
447
+ return this;
448
+ }
449
+ useAgent(agent) {
450
+ this._agents.push(agent);
451
+ return this;
452
+ }
453
+ useAgents(agents) {
454
+ this._agents.push(...agents);
455
+ return this;
456
+ }
457
+ addStep(builderFn) {
458
+ const builder = new FluentStepBuilder();
459
+ this._steps.push(builderFn(builder).build());
460
+ return this;
461
+ }
462
+ useStep(step) {
463
+ this._steps.push(step);
464
+ return this;
465
+ }
466
+ useSteps(steps) {
467
+ this._steps.push(...steps);
468
+ return this;
469
+ }
470
+ usePipeline(builderFn) {
471
+ const builder = new FluentPipelineBuilder();
472
+ const pipeline = builderFn(builder);
473
+ this._steps = pipeline.toSteps();
474
+ return this;
475
+ }
476
+ startAt(stepId) {
477
+ this._entryStepId = stepId;
478
+ return this;
479
+ }
480
+ withGlobalContext(context) {
481
+ this._globalContext = context;
482
+ return this;
483
+ }
484
+ addGlobalContext(key, value) {
485
+ this._globalContext[key] = value;
486
+ return this;
487
+ }
488
+ withObserver(observer) {
489
+ this._observer = observer;
490
+ return this;
491
+ }
492
+ beforeStep(handler) {
493
+ this._onBeforeStep = handler;
494
+ return this;
495
+ }
496
+ afterStep(handler) {
497
+ this._onAfterStep = handler;
498
+ return this;
499
+ }
500
+ withFinalResultGenerator(generator) {
501
+ this._finalResultGenerator = generator;
502
+ return this;
503
+ }
504
+ withTimeout(ms) {
505
+ this._timeout = ms;
506
+ return this;
507
+ }
508
+ scatterGather(aggregator) {
509
+ const agentIds = this._agents.map((a) => a.id);
510
+ this._steps = [
511
+ {
512
+ id: 'scatter-gather',
513
+ name: 'Parallel Processing',
514
+ agentIds,
515
+ executionType: 'parallel',
516
+ resultTransformer: aggregator,
517
+ },
518
+ ];
519
+ return this;
520
+ }
521
+ chain() {
522
+ const agentIds = this._agents.map((a) => a.id);
523
+ this._steps = agentIds.map((agentId, index) => ({
524
+ id: `step-${index + 1}`,
525
+ name: `Step ${index + 1}`,
526
+ agentIds: [agentId],
527
+ executionType: 'sequential',
528
+ nextSteps: index < agentIds.length - 1 ? [`step-${index + 2}`] : undefined,
529
+ }));
530
+ return this;
531
+ }
532
+ collaborate(maxIterations = 3) {
533
+ const agentIds = this._agents.map((a) => a.id);
534
+ this._steps = [
535
+ {
536
+ id: 'collaborate',
537
+ name: 'Collaborative Processing',
538
+ agentIds,
539
+ executionType: 'collaborative',
540
+ maxIterations,
541
+ },
542
+ ];
543
+ return this;
544
+ }
545
+ build() {
546
+ if (!this._id) {
547
+ this._id = `society-${Date.now()}-${Math.random().toString(36).substring(7)}`;
548
+ }
549
+ if (!this._name)
550
+ this._name = this._id;
551
+ if (this._agents.length === 0)
552
+ throw new errors_1.InvalidConfigurationError('Society must have at least one agent');
553
+ if (this._steps.length === 0)
554
+ throw new errors_1.InvalidConfigurationError('Society must have at least one step');
555
+ return {
556
+ id: this._id,
557
+ name: this._name,
558
+ description: this._description,
559
+ agents: this._agents,
560
+ steps: this._steps,
561
+ entryStepId: this._entryStepId ?? this._steps[0].id,
562
+ globalContext: this._globalContext,
563
+ onBeforeStep: this._onBeforeStep,
564
+ onAfterStep: this._onAfterStep,
565
+ finalResultGenerator: this._finalResultGenerator,
566
+ };
567
+ }
568
+ async execute(input, signal) {
569
+ const workflow = this.build();
570
+ const executor = new society_1.DefaultWorkflowExecutor(this._observer);
571
+ let timeoutSignal = signal;
572
+ let timeoutId;
573
+ if (this._timeout) {
574
+ const controller = new AbortController();
575
+ timeoutId = setTimeout(() => controller.abort(), this._timeout);
576
+ if (signal) {
577
+ signal.addEventListener('abort', () => controller.abort());
578
+ }
579
+ timeoutSignal = controller.signal;
580
+ }
581
+ try {
582
+ const result = await executor.execute(workflow, input, timeoutSignal);
583
+ if (timeoutId)
584
+ clearTimeout(timeoutId);
585
+ return result;
586
+ }
587
+ catch (error) {
588
+ if (timeoutId)
589
+ clearTimeout(timeoutId);
590
+ throw error;
591
+ }
592
+ }
593
+ }
594
+ exports.Society = Society;
595
+ exports.SocietyPatterns = {
596
+ parallel: (agents) => {
597
+ return Society.create('parallel')
598
+ .withName('Parallel Society')
599
+ .useAgents(agents)
600
+ .scatterGather(exports.AggregationStrategies.concat('\n\n---\n\n'));
601
+ },
602
+ chain: (agents) => {
603
+ return Society.create('chain')
604
+ .withName('Chain Society')
605
+ .useAgents(agents)
606
+ .chain();
607
+ },
608
+ collaborative: (agents, maxIterations = 3) => {
609
+ return Society.create('collaborative')
610
+ .withName('Collaborative Society')
611
+ .useAgents(agents)
612
+ .collaborate(maxIterations);
613
+ },
614
+ review: (writer, reviewer) => {
615
+ return Society.create('review')
616
+ .withName('Review Pipeline')
617
+ .useAgents([writer, reviewer])
618
+ .addStep((s) => s
619
+ .withId('draft')
620
+ .withName('Create Draft')
621
+ .withAgents([writer.id])
622
+ .sequential())
623
+ .addStep((s) => s
624
+ .withId('review')
625
+ .withName('Review Draft')
626
+ .withAgents([reviewer.id])
627
+ .sequential()
628
+ .withInstructions('Review the previous draft and provide feedback'))
629
+ .addStep((s) => s
630
+ .withId('revise')
631
+ .withName('Revise Draft')
632
+ .withAgents([writer.id])
633
+ .sequential()
634
+ .withInstructions('Revise the draft based on the review feedback'));
635
+ },
636
+ };
637
+ function createRole(id, systemPrompt, options) {
638
+ const builder = new FluentRoleBuilder()
639
+ .withId(id)
640
+ .withSystemPrompt(systemPrompt);
641
+ if (options?.name)
642
+ builder.withName(options.name);
643
+ if (options?.description)
644
+ builder.withDescription(options.description);
645
+ if (options?.capabilities)
646
+ builder.withCapabilities(options.capabilities);
647
+ if (options?.constraints)
648
+ builder.withConstraints(options.constraints);
649
+ if (options?.promptTemplate)
650
+ builder.withPromptTemplate(options.promptTemplate);
651
+ return builder.build();
652
+ }
653
+ function createAgent(id, role, model, options) {
654
+ const builder = new FluentAgentBuilder()
655
+ .withId(id)
656
+ .useRole(role)
657
+ .withModel(model);
658
+ if (options?.name)
659
+ builder.withName(options.name);
660
+ if (options?.priority)
661
+ builder.withPriority(options.priority);
662
+ if (options?.canCommunicateWith) {
663
+ builder.canCommunicateWith(options.canCommunicateWith);
664
+ }
665
+ return builder.build();
666
+ }
667
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}