@cogitator-ai/swarms 0.4.20 → 0.6.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.
Files changed (140) hide show
  1. package/README.md +245 -897
  2. package/dist/agents.d.ts +13 -0
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/agents.js +70 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/assessor/assessor.d.ts +9 -2
  7. package/dist/assessor/assessor.d.ts.map +1 -1
  8. package/dist/assessor/assessor.js +72 -53
  9. package/dist/assessor/assessor.js.map +1 -1
  10. package/dist/assessor/model-discovery.d.ts.map +1 -1
  11. package/dist/assessor/model-discovery.js +40 -46
  12. package/dist/assessor/model-discovery.js.map +1 -1
  13. package/dist/assessor/role-matcher.d.ts +6 -24
  14. package/dist/assessor/role-matcher.d.ts.map +1 -1
  15. package/dist/assessor/role-matcher.js +9 -37
  16. package/dist/assessor/role-matcher.js.map +1 -1
  17. package/dist/assessor/scoring.d.ts.map +1 -1
  18. package/dist/assessor/scoring.js +23 -1
  19. package/dist/assessor/scoring.js.map +1 -1
  20. package/dist/base-coordinator.d.ts +117 -0
  21. package/dist/base-coordinator.d.ts.map +1 -0
  22. package/dist/base-coordinator.js +455 -0
  23. package/dist/base-coordinator.js.map +1 -0
  24. package/dist/communication/blackboard.d.ts +34 -4
  25. package/dist/communication/blackboard.d.ts.map +1 -1
  26. package/dist/communication/blackboard.js +81 -46
  27. package/dist/communication/blackboard.js.map +1 -1
  28. package/dist/communication/event-emitter.d.ts.map +1 -1
  29. package/dist/communication/event-emitter.js +6 -17
  30. package/dist/communication/event-emitter.js.map +1 -1
  31. package/dist/communication/index.d.ts +2 -2
  32. package/dist/communication/index.d.ts.map +1 -1
  33. package/dist/communication/index.js +2 -2
  34. package/dist/communication/index.js.map +1 -1
  35. package/dist/communication/message-bus.d.ts +48 -5
  36. package/dist/communication/message-bus.d.ts.map +1 -1
  37. package/dist/communication/message-bus.js +135 -50
  38. package/dist/communication/message-bus.js.map +1 -1
  39. package/dist/communication/redis-blackboard.d.ts +11 -5
  40. package/dist/communication/redis-blackboard.d.ts.map +1 -1
  41. package/dist/communication/redis-blackboard.js +159 -116
  42. package/dist/communication/redis-blackboard.js.map +1 -1
  43. package/dist/communication/redis-event-emitter.d.ts +12 -0
  44. package/dist/communication/redis-event-emitter.d.ts.map +1 -1
  45. package/dist/communication/redis-event-emitter.js +96 -54
  46. package/dist/communication/redis-event-emitter.js.map +1 -1
  47. package/dist/communication/redis-message-bus.d.ts +11 -6
  48. package/dist/communication/redis-message-bus.d.ts.map +1 -1
  49. package/dist/communication/redis-message-bus.js +88 -77
  50. package/dist/communication/redis-message-bus.js.map +1 -1
  51. package/dist/coordinator.d.ts +7 -41
  52. package/dist/coordinator.d.ts.map +1 -1
  53. package/dist/coordinator.js +17 -340
  54. package/dist/coordinator.js.map +1 -1
  55. package/dist/distributed/distributed-coordinator.d.ts +54 -51
  56. package/dist/distributed/distributed-coordinator.d.ts.map +1 -1
  57. package/dist/distributed/distributed-coordinator.js +166 -284
  58. package/dist/distributed/distributed-coordinator.js.map +1 -1
  59. package/dist/distributed/index.d.ts +1 -1
  60. package/dist/distributed/index.d.ts.map +1 -1
  61. package/dist/distributed/index.js +1 -1
  62. package/dist/distributed/index.js.map +1 -1
  63. package/dist/index.d.ts +4 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +4 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/resources/circuit-breaker.d.ts.map +1 -1
  68. package/dist/resources/circuit-breaker.js +3 -4
  69. package/dist/resources/circuit-breaker.js.map +1 -1
  70. package/dist/shared/hierarchy.d.ts +21 -0
  71. package/dist/shared/hierarchy.d.ts.map +1 -0
  72. package/dist/shared/hierarchy.js +27 -0
  73. package/dist/shared/hierarchy.js.map +1 -0
  74. package/dist/shared/negotiation.d.ts +27 -0
  75. package/dist/shared/negotiation.d.ts.map +1 -0
  76. package/dist/shared/negotiation.js +55 -0
  77. package/dist/shared/negotiation.js.map +1 -0
  78. package/dist/shared/voting.d.ts +6 -0
  79. package/dist/shared/voting.d.ts.map +1 -0
  80. package/dist/shared/voting.js +13 -0
  81. package/dist/shared/voting.js.map +1 -0
  82. package/dist/strategies/consensus.d.ts +12 -0
  83. package/dist/strategies/consensus.d.ts.map +1 -1
  84. package/dist/strategies/consensus.js +75 -47
  85. package/dist/strategies/consensus.js.map +1 -1
  86. package/dist/strategies/debate.d.ts.map +1 -1
  87. package/dist/strategies/debate.js +18 -8
  88. package/dist/strategies/debate.js.map +1 -1
  89. package/dist/strategies/hierarchical.d.ts.map +1 -1
  90. package/dist/strategies/hierarchical.js +29 -14
  91. package/dist/strategies/hierarchical.js.map +1 -1
  92. package/dist/strategies/negotiation/approval.d.ts.map +1 -1
  93. package/dist/strategies/negotiation/approval.js +22 -19
  94. package/dist/strategies/negotiation/approval.js.map +1 -1
  95. package/dist/strategies/negotiation-strategy.d.ts +24 -2
  96. package/dist/strategies/negotiation-strategy.d.ts.map +1 -1
  97. package/dist/strategies/negotiation-strategy.js +276 -141
  98. package/dist/strategies/negotiation-strategy.js.map +1 -1
  99. package/dist/strategies/pipeline.js +6 -6
  100. package/dist/strategies/pipeline.js.map +1 -1
  101. package/dist/swarm.d.ts +25 -11
  102. package/dist/swarm.d.ts.map +1 -1
  103. package/dist/swarm.js +195 -121
  104. package/dist/swarm.js.map +1 -1
  105. package/dist/tools/blackboard.d.ts +1 -1
  106. package/dist/tools/blackboard.d.ts.map +1 -1
  107. package/dist/tools/blackboard.js +26 -12
  108. package/dist/tools/blackboard.js.map +1 -1
  109. package/dist/tools/delegation.d.ts +17 -4
  110. package/dist/tools/delegation.d.ts.map +1 -1
  111. package/dist/tools/delegation.js +95 -88
  112. package/dist/tools/delegation.js.map +1 -1
  113. package/dist/tools/index.d.ts +3 -1
  114. package/dist/tools/index.d.ts.map +1 -1
  115. package/dist/tools/index.js +9 -4
  116. package/dist/tools/index.js.map +1 -1
  117. package/dist/tools/messaging.d.ts +38 -6
  118. package/dist/tools/messaging.d.ts.map +1 -1
  119. package/dist/tools/messaging.js +118 -41
  120. package/dist/tools/messaging.js.map +1 -1
  121. package/dist/tools/negotiation.d.ts +8 -4
  122. package/dist/tools/negotiation.d.ts.map +1 -1
  123. package/dist/tools/negotiation.js +138 -115
  124. package/dist/tools/negotiation.js.map +1 -1
  125. package/dist/tools/voting.d.ts +3 -0
  126. package/dist/tools/voting.d.ts.map +1 -1
  127. package/dist/tools/voting.js +13 -12
  128. package/dist/tools/voting.js.map +1 -1
  129. package/dist/utils/concurrency.d.ts +10 -0
  130. package/dist/utils/concurrency.d.ts.map +1 -0
  131. package/dist/utils/concurrency.js +28 -0
  132. package/dist/utils/concurrency.js.map +1 -0
  133. package/dist/utils/invoke.d.ts +2 -0
  134. package/dist/utils/invoke.d.ts.map +1 -0
  135. package/dist/utils/invoke.js +19 -0
  136. package/dist/utils/invoke.js.map +1 -0
  137. package/dist/workflow/swarm-node.d.ts.map +1 -1
  138. package/dist/workflow/swarm-node.js +55 -98
  139. package/dist/workflow/swarm-node.js.map +1 -1
  140. package/package.json +16 -14
@@ -0,0 +1,2 @@
1
+ export declare function invokeSafely<A extends unknown[]>(handler: (...args: A) => unknown, args: A, label: string): void;
2
+ //# sourceMappingURL=invoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/utils/invoke.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAC9C,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,EAChC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,GACZ,IAAI,CAWN"}
@@ -0,0 +1,19 @@
1
+ function isPromiseLike(value) {
2
+ return (typeof value === 'object' &&
3
+ value !== null &&
4
+ typeof value.then === 'function');
5
+ }
6
+ export function invokeSafely(handler, args, label) {
7
+ try {
8
+ const result = handler(...args);
9
+ if (isPromiseLike(result)) {
10
+ Promise.resolve(result).catch((error) => {
11
+ console.warn(`${label}:`, error);
12
+ });
13
+ }
14
+ }
15
+ catch (error) {
16
+ console.warn(`${label}:`, error);
17
+ }
18
+ }
19
+ //# sourceMappingURL=invoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/utils/invoke.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAgC,EAChC,IAAO,EACP,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-node.d.ts","sourceRoot":"","sources":["../../src/workflow/swarm-node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,WAAW,EACX,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,aAAa,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACzE,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,aAAa;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAErD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAEpD;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAC/D,aAAa,EAAE,KAAK,GAAG,WAAW,EAClC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,CAoDjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAC1E,aAAa,EAAE,KAAK,GAAG,WAAW,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EACrD,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,CAcjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EACxE,MAAM,EAAE;IACN,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,EAAE,EACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACrE,YAAY,CAAC,CAAC,CAAC,CA+EjB"}
1
+ {"version":3,"file":"swarm-node.d.ts","sourceRoot":"","sources":["../../src/workflow/swarm-node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,WAAW,EACX,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,aAAa,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACzE,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,aAAa;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAErD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAEpD;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACvC;AAiDD;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAC/D,aAAa,EAAE,KAAK,GAAG,WAAW,EAClC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,CAWjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAC1E,aAAa,EAAE,KAAK,GAAG,WAAW,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EACrD,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,CAcjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EACxE,MAAM,EAAE;IACN,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,EAAE,EACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACrE,YAAY,CAAC,CAAC,CAAC,CAmCjB"}
@@ -2,56 +2,57 @@
2
2
  * SwarmNode - Run a swarm as a workflow node
3
3
  */
4
4
  import { Swarm } from '../swarm.js';
5
+ function resolveSwarmInput(ctx, options) {
6
+ if (options?.inputMapper)
7
+ return options.inputMapper(ctx.state, ctx.input);
8
+ if (typeof ctx.input === 'string')
9
+ return ctx.input;
10
+ if (ctx.input !== undefined)
11
+ return JSON.stringify(ctx.input);
12
+ return JSON.stringify(ctx.state);
13
+ }
14
+ function requireCogitator(ctx) {
15
+ if (!('cogitator' in ctx)) {
16
+ throw new Error('SwarmNode requires cogitator in context');
17
+ }
18
+ return ctx.cogitator;
19
+ }
20
+ async function runSwarmForNode(swarmOrConfig, ctx, options) {
21
+ const cogitator = requireCogitator(ctx);
22
+ const isOwned = !(swarmOrConfig instanceof Swarm);
23
+ const swarm = swarmOrConfig instanceof Swarm ? swarmOrConfig : new Swarm(cogitator, swarmOrConfig);
24
+ try {
25
+ return await swarm.run({
26
+ input: resolveSwarmInput(ctx, options),
27
+ ...options?.runOptions,
28
+ context: {
29
+ ...options?.runOptions?.context,
30
+ workflowContext: {
31
+ nodeId: ctx.nodeId,
32
+ step: ctx.step,
33
+ workflowState: ctx.state,
34
+ },
35
+ },
36
+ });
37
+ }
38
+ finally {
39
+ if (isOwned) {
40
+ await swarm.close();
41
+ }
42
+ }
43
+ }
5
44
  /**
6
45
  * Create a workflow node that runs a swarm
7
46
  */
8
47
  export function swarmNode(swarmOrConfig, options) {
9
- const name = swarmOrConfig instanceof Swarm ? swarmOrConfig.name : swarmOrConfig.name;
10
48
  return {
11
- name: `swarm:${name}`,
49
+ name: `swarm:${swarmOrConfig.name}`,
12
50
  fn: async (ctx) => {
13
- if (!('cogitator' in ctx)) {
14
- throw new Error('SwarmNode requires cogitator in context');
15
- }
16
- const extCtx = ctx;
17
- const isOwned = !(swarmOrConfig instanceof Swarm);
18
- const swarm = swarmOrConfig instanceof Swarm ? swarmOrConfig : new Swarm(extCtx.cogitator, swarmOrConfig);
19
- try {
20
- let input;
21
- if (options?.inputMapper) {
22
- input = options.inputMapper(ctx.state, ctx.input);
23
- }
24
- else if (typeof ctx.input === 'string') {
25
- input = ctx.input;
26
- }
27
- else if (ctx.input !== undefined) {
28
- input = JSON.stringify(ctx.input);
29
- }
30
- else {
31
- input = JSON.stringify(ctx.state);
32
- }
33
- const result = await swarm.run({
34
- input,
35
- context: {
36
- workflowContext: {
37
- nodeId: ctx.nodeId,
38
- step: ctx.step,
39
- workflowState: ctx.state,
40
- },
41
- },
42
- ...options?.runOptions,
43
- });
44
- const stateUpdate = options?.stateMapper?.(result);
45
- return {
46
- state: stateUpdate,
47
- output: result.output,
48
- };
49
- }
50
- finally {
51
- if (isOwned) {
52
- await swarm.close();
53
- }
54
- }
51
+ const result = await runSwarmForNode(swarmOrConfig, ctx, options);
52
+ return {
53
+ state: options?.stateMapper?.(result),
54
+ output: result.output,
55
+ };
55
56
  },
56
57
  };
57
58
  }
@@ -77,70 +78,26 @@ export function conditionalSwarmNode(swarmOrConfig, condition, options) {
77
78
  */
78
79
  export function parallelSwarmsNode(swarms, mergeResults) {
79
80
  return {
80
- name: `parallel-swarms:${swarms
81
- .map((s) => {
82
- return s.swarm instanceof Swarm ? s.swarm.name : s.swarm.name;
83
- })
84
- .join(',')}`,
81
+ name: `parallel-swarms:${swarms.map((s) => s.swarm.name).join(',')}`,
85
82
  fn: async (ctx) => {
86
- if (!('cogitator' in ctx)) {
87
- throw new Error('SwarmNode requires cogitator in context');
88
- }
89
- const extCtx = ctx;
83
+ requireCogitator(ctx);
84
+ const settled = await Promise.allSettled(swarms.map(({ swarm, options }) => runSwarmForNode(swarm, ctx, options)));
90
85
  const results = {};
91
86
  const errors = [];
92
- const settled = await Promise.allSettled(swarms.map(async ({ swarm: swarmOrConfig, key, options }) => {
93
- const isOwned = !(swarmOrConfig instanceof Swarm);
94
- const swarm = swarmOrConfig instanceof Swarm
95
- ? swarmOrConfig
96
- : new Swarm(extCtx.cogitator, swarmOrConfig);
97
- try {
98
- let input;
99
- if (options?.inputMapper) {
100
- input = options.inputMapper(ctx.state, ctx.input);
101
- }
102
- else if (typeof ctx.input === 'string') {
103
- input = ctx.input;
104
- }
105
- else if (ctx.input !== undefined) {
106
- input = JSON.stringify(ctx.input);
107
- }
108
- else {
109
- input = JSON.stringify(ctx.state);
110
- }
111
- const result = await swarm.run({
112
- input,
113
- context: {
114
- workflowContext: {
115
- nodeId: ctx.nodeId,
116
- step: ctx.step,
117
- workflowState: ctx.state,
118
- },
119
- },
120
- ...options?.runOptions,
121
- });
122
- return { key, result };
123
- }
124
- finally {
125
- if (isOwned) {
126
- await swarm.close();
127
- }
128
- }
129
- }));
130
- for (const outcome of settled) {
87
+ settled.forEach((outcome, index) => {
88
+ const { key } = swarms[index];
131
89
  if (outcome.status === 'fulfilled') {
132
- results[outcome.value.key] = outcome.value.result;
90
+ results[key] = outcome.value;
133
91
  }
134
92
  else {
135
- errors.push({ key: 'unknown', error: outcome.reason });
93
+ errors.push({ key, error: outcome.reason });
136
94
  }
137
- }
95
+ });
138
96
  if (errors.length > 0 && Object.keys(results).length === 0) {
139
- throw new AggregateError(errors.map((e) => e.error), 'All parallel swarms failed');
97
+ throw new AggregateError(errors.map((e) => e.error), `All parallel swarms failed: ${errors.map((e) => e.key).join(', ')}`);
140
98
  }
141
- const stateUpdate = mergeResults?.(results);
142
99
  return {
143
- state: stateUpdate,
100
+ state: mergeResults?.(results),
144
101
  output: results,
145
102
  };
146
103
  },
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-node.js","sourceRoot":"","sources":["../../src/workflow/swarm-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-node.js","sourceRoot":"","sources":["../../src/workflow/swarm-node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/swarms",
3
- "version": "0.4.20",
3
+ "version": "0.6.0",
4
4
  "description": "Multi-agent swarm coordination for Cogitator",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -14,18 +14,21 @@
14
14
  "files": [
15
15
  "dist"
16
16
  ],
17
+ "engines": {
18
+ "node": ">=22.12.0"
19
+ },
17
20
  "dependencies": {
18
- "@types/node": "^25.0.10",
19
- "ioredis": "^5.9.3",
20
- "nanoid": "^5.0.4",
21
- "zod": "^4.3.6",
22
- "@cogitator-ai/core": "0.19.4",
23
- "@cogitator-ai/types": "0.22.3",
24
- "@cogitator-ai/workflows": "0.5.17"
21
+ "@cogitator-ai/core": "0.21.0",
22
+ "@cogitator-ai/types": "0.24.0",
23
+ "@cogitator-ai/workflows": "0.7.0",
24
+ "@types/node": "^22.20.4",
25
+ "ioredis": "^6.0.0",
26
+ "nanoid": "^6.0.1",
27
+ "zod": "^4.6.5"
25
28
  },
26
29
  "devDependencies": {
27
- "typescript": "^5.3.0",
28
- "vitest": "^4.0.18"
30
+ "typescript": "^6.0.3",
31
+ "vitest": "^5.0.3"
29
32
  },
30
33
  "repository": {
31
34
  "type": "git",
@@ -33,16 +36,15 @@
33
36
  "directory": "packages/swarms"
34
37
  },
35
38
  "publishConfig": {
36
- "access": "public",
37
- "registry": "https://npm.pkg.github.com"
39
+ "access": "public"
38
40
  },
39
41
  "license": "MIT",
40
42
  "scripts": {
41
- "build": "tsc",
43
+ "build": "tsc && tsx ../../scripts/fix-esm-imports.ts .",
42
44
  "dev": "tsc --watch",
43
45
  "clean": "rm -rf dist",
44
46
  "typecheck": "tsc --noEmit",
45
- "test": "bash scripts/test.sh",
47
+ "test": "vitest run",
46
48
  "test:watch": "vitest"
47
49
  }
48
50
  }