ai-consensus-core 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,11 +40,33 @@ ESM-only. Node ≥ 20. Runtime dependencies: `zod` + Node's built-in `events`. T
40
40
  ```ts
41
41
  import {
42
42
  ConsensusEngine,
43
- PERSONAS,
44
43
  type ModelCaller,
44
+ type Persona,
45
45
  } from "ai-consensus-core";
46
46
 
47
- // 1) Adapt your provider of choice to the ModelCaller shape.
47
+ // 1) Bring your own personas. The library ships only the non-voting
48
+ // JUDGE_PERSONA — debate personas are caller-owned content.
49
+ // See docs/personas.md for a copy-paste block of the seven defaults.
50
+ const riskAnalyst: Persona = {
51
+ id: "pessimist",
52
+ name: "Risk Analyst",
53
+ description: "Surfaces failure modes and tail risks.",
54
+ systemPrompt: "You are a rigorous Risk Analyst. Surface hidden dangers, second-order effects, and plausible failure modes. Be precise and constructive.",
55
+ };
56
+ const firstPrinciples: Persona = {
57
+ id: "first-principles",
58
+ name: "First-Principles Engineer",
59
+ description: "Decomposes every claim to axioms.",
60
+ systemPrompt: "You are a First-Principles Engineer. Decompose every claim into fundamental axioms. Reject analogies and expose hidden premises.",
61
+ };
62
+ const domainExpert: Persona = {
63
+ id: "domain-expert",
64
+ name: "Domain Expert",
65
+ description: "Practical implementation knowledge and edge cases.",
66
+ systemPrompt: "You are a seasoned Domain Expert. Ground your analysis in real-world implementation details, anti-patterns, and edge cases.",
67
+ };
68
+
69
+ // 2) Adapt your provider of choice to the ModelCaller shape.
48
70
  // This one targets any OpenAI-compatible endpoint (Grok, Claude, OpenAI, Groq…).
49
71
  const caller: ModelCaller = async ({ system, user, modelId, temperature, maxOutputTokens, signal }) => {
50
72
  const res = await fetch("https://api.x.ai/v1/chat/completions", {
@@ -68,7 +90,7 @@ const caller: ModelCaller = async ({ system, user, modelId, temperature, maxOutp
68
90
  return { content: json.choices[0].message.content };
69
91
  };
70
92
 
71
- // 2) Wire up observability.
93
+ // 3) Wire up observability.
72
94
  const engine = new ConsensusEngine(caller);
73
95
 
74
96
  engine.on("roundStart", (e) => console.log(`▶ ${e.label}`));
@@ -77,16 +99,16 @@ engine.on("disagreementDetected", (e) =>
77
99
  console.log(` ⚠ ${e.disagreement.label} (Δ=${e.disagreement.severity})`),
78
100
  );
79
101
 
80
- // 3) Run.
102
+ // 4) Run.
81
103
  const result = await engine.run({
82
104
  question: "Should early-stage startups adopt microservices from day one?",
83
105
  participants: [
84
- { id: "p1", modelId: "grok-4", persona: PERSONAS[0]! }, // Risk Analyst
85
- { id: "p2", modelId: "grok-4", persona: PERSONAS[1]! }, // First-Principles
86
- { id: "p3", modelId: "grok-4", persona: PERSONAS[6]! }, // Domain Expert
106
+ { id: "p1", modelId: "grok-4", persona: riskAnalyst },
107
+ { id: "p2", modelId: "grok-4", persona: firstPrinciples },
108
+ { id: "p3", modelId: "grok-4", persona: domainExpert },
87
109
  ],
88
110
  maxRounds: 4,
89
- judge: { modelId: "grok-4" },
111
+ judge: { modelId: "grok-4" }, // uses the shipped JUDGE_PERSONA
90
112
  });
91
113
 
92
114
  console.log(`Final score: ${result.finalScore}`);
@@ -211,6 +233,73 @@ export interface ModelCallResponse {
211
233
  4. **Don't swallow other errors.** Throw. The engine captures the error into `ParticipantResponse` and keeps running.
212
234
  5. **Return the full content verbatim.** Do not strip the trailing `CONFIDENCE:` line — the parser needs it.
213
235
 
236
+ ## Tool calling
237
+
238
+ Participants can invoke tools mid-turn. The library never executes a tool itself — it plumbs the request from the model to a host-supplied `ToolExecutor`, feeds the results back, and re-invokes the caller until the model returns final content (or `maxToolIterations` is exhausted).
239
+
240
+ ```ts
241
+ import { ConsensusEngine, type ToolDefinition, type ToolExecutor } from "ai-consensus-core";
242
+
243
+ const READ_FILE_TOOL: ToolDefinition = {
244
+ name: "read_file",
245
+ description: "Read a file by absolute path.",
246
+ parameters: { type: "object", properties: { path: { type: "string" } }, required: ["path"] },
247
+ };
248
+
249
+ const participants = [
250
+ {
251
+ id: "domain",
252
+ modelId: "claude-sonnet-4-6",
253
+ persona: domainExpertPersona,
254
+ tools: [READ_FILE_TOOL], // declared per-participant
255
+ },
256
+ // …
257
+ ];
258
+
259
+ const toolExecutor: ToolExecutor = async (call, ctx) => {
260
+ // ctx: { participantId, round, phase, signal? }
261
+ if (call.name === "read_file") {
262
+ const args = call.arguments as { path: string };
263
+ return { content: await readFile(args.path, "utf8") };
264
+ // …or { error: "permission denied" } to feed an error back into the conversation
265
+ }
266
+ return { error: `unknown tool ${call.name}` };
267
+ };
268
+
269
+ const engine = new ConsensusEngine(modelCaller);
270
+ const result = await engine.run({
271
+ question: "What does the build output say?",
272
+ participants,
273
+ toolExecutor,
274
+ maxToolIterations: 8, // optional, default 8, clamped to [1, 32]
275
+ });
276
+ ```
277
+
278
+ **ModelCaller responsibilities** (when `tools` is present on the request):
279
+
280
+ - Translate the `tools` array into whatever the underlying provider expects (OpenAI's `tools`, Anthropic's `tools`, etc.).
281
+ - Translate `toolCallTurns` (when present, on follow-up calls) into the conversation history the provider expects — typically: assistant message with tool_calls, then tool messages with results, in order.
282
+ - Parse the model's response and surface `toolCalls` on `ModelCallResponse` if the model wants to dispatch tools. Each `ToolCall` carries `{ id, name, arguments }` where `arguments` is **already JSON-parsed**. The library never parses the model's raw argument string.
283
+
284
+ **Engine guarantees:**
285
+
286
+ - The tool loop runs **per participant turn**, separately for each model call. Tool history does not leak between participants or between rounds.
287
+ - The executor receives a fresh `ToolCallContext` (with `participantId`, `round`, `phase`, `signal`) per call.
288
+ - An exception thrown by the executor is captured as a `{ error: message }` result and forwarded back into the conversation — the participant turn does not abort.
289
+ - `AbortError` thrown by the executor (or `signal` triggered) propagates up and aborts the whole run with `stopReason: "aborted"`.
290
+ - Hitting `maxToolIterations` breaks the loop and uses the last response's `content` — even if the model still wants more tools.
291
+ - Without `toolExecutor`, the engine ignores any `toolCalls` on the response: 0.10 behaviour preserved exactly.
292
+
293
+ **Events:**
294
+
295
+ ```ts
296
+ engine.on("toolCallStart", (e: ToolCallStartEvent) => void);
297
+ engine.on("toolCallComplete", (e: ToolCallCompleteEvent) => void); // ok: boolean, durationMs, preview (≤ 200 chars)
298
+ engine.on("toolError", (e: ToolErrorEvent) => void); // fires when ok === false
299
+ ```
300
+
301
+ `iteration` (1-based) on these events disambiguates round-trips within a single participant turn.
302
+
214
303
  ## Events
215
304
 
216
305
  ```ts
@@ -226,6 +315,9 @@ engine.on("synthesisStart", (e: SynthesisStartEvent) => void);
226
315
  engine.on("synthesisToken", (e: SynthesisTokenEvent) => void);
227
316
  engine.on("synthesisComplete", (e: SynthesisCompleteEvent) => void);
228
317
  engine.on("finalResult", (e: FinalResultEvent) => void);
318
+ engine.on("toolCallStart", (e: ToolCallStartEvent) => void); // per dispatch
319
+ engine.on("toolCallComplete", (e: ToolCallCompleteEvent) => void);
320
+ engine.on("toolError", (e: ToolErrorEvent) => void); // ok === false
229
321
  engine.on("error", (err: Error) => void);
230
322
  ```
231
323
 
@@ -275,28 +367,32 @@ interface ConsensusOptions {
275
367
 
276
368
  ## Personas
277
369
 
278
- Exactly the seven personas from the battle-tested Roundtable playbook:
370
+ The library ships **only** the non-voting judge persona (`JUDGE_PERSONA`).
371
+ Debate personas are caller-owned content — construct any object matching
372
+ `PersonaSchema` and pass it on each `Participant`.
279
373
 
280
- | id | Name | Role |
281
- | --------------------- | -------------------------- | ------------------------------------------------------------------------ |
282
- | `pessimist` | Risk Analyst | Surfaces failure modes, tail risks, second-order effects. |
283
- | `first-principles` | First-Principles Engineer | Decomposes every claim to axioms; rejects analogies. |
284
- | `vc-specialist` | VC Funds Specialist | Markets, moats, unit economics, defensibility. |
285
- | `scientific-skeptic` | Scientific Skeptic | Demands evidence, questions methodology, flags fallacies. |
286
- | `optimistic-futurist` | Optimistic Futurist | Exponential trends, paradigm shifts, grounded upside. |
287
- | `devils-advocate` | Devil's Advocate | Constructs the strongest counter-arguments. |
288
- | `domain-expert` | Domain Expert | Practical implementation knowledge, edge cases, reality checks. |
374
+ For a copy-paste block of the seven debate personas from the Roundtable
375
+ playbook (Risk Analyst, First-Principles Engineer, VC Specialist,
376
+ Scientific Skeptic, Optimistic Futurist, Devil's Advocate, Domain Expert),
377
+ see [`docs/personas.md`](./docs/personas.md).
289
378
 
290
- Plus one judge:
379
+ The judge:
291
380
 
292
381
  | id | Name | Role |
293
382
  | ------- | ---------------- | --------------------------------------------------------------------------- |
294
383
  | `judge` | Consensus Judge | Non-voting synthesizer. Produces Majority / Minority / Unresolved sections. |
295
384
 
385
+ `JUDGE_PERSONA.systemPrompt` is the engine's default when
386
+ `ConsensusOptions.judge.systemPrompt` is omitted. Override it only if the
387
+ replacement emits the same four `##` headings and trailing
388
+ `JUDGE_CONFIDENCE: N` line — `extractJudgeSection` /
389
+ `extractJudgeConfidence` key off that contract.
390
+
296
391
  ```ts
297
- import { PERSONAS, JUDGE_PERSONA, getPersonaById } from "ai-consensus-core";
392
+ import { JUDGE_PERSONA, PersonaSchema, type Persona } from "ai-consensus-core";
298
393
 
299
- const riskAnalyst = getPersonaById("pessimist");
394
+ // Validate caller-supplied personas at the boundary:
395
+ const persona = PersonaSchema.parse(untrusted);
300
396
  ```
301
397
 
302
398
  ## Scoring
package/dist/engine.d.ts CHANGED
@@ -11,8 +11,10 @@ declare const DEFAULTS: {
11
11
  readonly maxOutputTokens: 1500;
12
12
  readonly judgeTemperature: 0.3;
13
13
  readonly judgeMaxOutputTokens: 1500;
14
+ readonly maxToolIterations: 8;
14
15
  };
15
16
  declare const MAX_ROUNDS_CAP = 10;
17
+ declare const MAX_TOOL_ITERATIONS_CAP = 32;
16
18
  export declare class ConsensusEngine extends TypedEventEmitter<ConsensusEventMap> {
17
19
  #private;
18
20
  constructor(caller: ModelCaller);
@@ -26,5 +28,5 @@ export declare class ConsensusEngine extends TypedEventEmitter<ConsensusEventMap
26
28
  */
27
29
  run(options: ConsensusOptions): Promise<ConsensusResult>;
28
30
  }
29
- export { DEFAULTS as CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP };
31
+ export { DEFAULTS as CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP, MAX_TOOL_ITERATIONS_CAP };
30
32
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqBhD,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEf,WAAW,EAOZ,MAAM,YAAY,CAAC;AAIpB,QAAA,MAAM,QAAQ;;;;;;;;;;;CAWJ,CAAC;AAEX,QAAA,MAAM,cAAc,KAAK,CAAC;AAK1B,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC;;gBAG3D,MAAM,EAAE,WAAW;IAK/B;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAyb/D;AA+ED,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqBhD,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAIf,WAAW,EAaZ,MAAM,YAAY,CAAC;AAIpB,QAAA,MAAM,QAAQ;;;;;;;;;;;;CAYJ,CAAC;AAEX,QAAA,MAAM,cAAc,KAAK,CAAC;AAE1B,QAAA,MAAM,uBAAuB,KAAK,CAAC;AAKnC,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC;;gBAG3D,MAAM,EAAE,WAAW;IAK/B;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAynB/D;AAwGD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,cAAc,EAAE,uBAAuB,EAAE,CAAC"}
package/dist/engine.js CHANGED
@@ -24,9 +24,12 @@ const DEFAULTS = {
24
24
  maxOutputTokens: 1500,
25
25
  judgeTemperature: 0.3,
26
26
  judgeMaxOutputTokens: 1500,
27
+ maxToolIterations: 8,
27
28
  };
28
29
  const MAX_ROUNDS_CAP = 10;
29
30
  const MIN_PARTICIPANTS = 2;
31
+ const MAX_TOOL_ITERATIONS_CAP = 32;
32
+ const TOOL_RESULT_PREVIEW_CHARS = 200;
30
33
  // ── Public engine ──────────────────────────────────────────
31
34
  export class ConsensusEngine extends TypedEventEmitter {
32
35
  #caller;
@@ -79,6 +82,8 @@ export class ConsensusEngine extends TypedEventEmitter {
79
82
  temperature: opts.participantTemperature,
80
83
  maxOutputTokens: opts.maxOutputTokens,
81
84
  signal: opts.signal,
85
+ toolExecutor: opts.toolExecutor,
86
+ maxToolIterations: opts.maxToolIterations,
82
87
  });
83
88
  const roundCompletedAt = Date.now();
84
89
  allResponses.push(...roundResponses);
@@ -147,6 +152,7 @@ export class ConsensusEngine extends TypedEventEmitter {
147
152
  judgeCaller: opts.judge.caller ?? this.#caller,
148
153
  judgeTemperature: opts.judge.temperature ?? DEFAULTS.judgeTemperature,
149
154
  judgeMaxOutputTokens: opts.judge.maxOutputTokens ?? DEFAULTS.judgeMaxOutputTokens,
155
+ judgeSystemPrompt: opts.judge.systemPrompt ?? JUDGE_PERSONA.systemPrompt,
150
156
  finalResponses: lastRound.responses,
151
157
  participants: opts.participants,
152
158
  question: opts.question,
@@ -207,7 +213,7 @@ export class ConsensusEngine extends TypedEventEmitter {
207
213
  }
208
214
  // ── Round orchestration ──────────────────────────────────
209
215
  async #runRound(args) {
210
- const { round, phase, blind, order, previousResponses, totalRounds, question, temperature, maxOutputTokens, signal, } = args;
216
+ const { round, phase, blind, order, previousResponses, totalRounds, question, temperature, maxOutputTokens, signal, toolExecutor, maxToolIterations, } = args;
211
217
  if (blind) {
212
218
  const promises = order.map((participant) => this.#callParticipant({
213
219
  participant,
@@ -220,6 +226,8 @@ export class ConsensusEngine extends TypedEventEmitter {
220
226
  maxOutputTokens,
221
227
  signal,
222
228
  runningConfidences: [],
229
+ toolExecutor,
230
+ maxToolIterations,
223
231
  }));
224
232
  return Promise.all(promises);
225
233
  }
@@ -227,9 +235,7 @@ export class ConsensusEngine extends TypedEventEmitter {
227
235
  for (const participant of order) {
228
236
  throwIfAborted(signal);
229
237
  const visible = [...previousResponses, ...collected];
230
- const confidencesSoFar = collected
231
- .filter((r) => !r.error)
232
- .map((r) => r.confidence);
238
+ const confidencesSoFar = collected.filter((r) => !r.error).map((r) => r.confidence);
233
239
  const response = await this.#callParticipant({
234
240
  participant,
235
241
  round,
@@ -241,6 +247,8 @@ export class ConsensusEngine extends TypedEventEmitter {
241
247
  maxOutputTokens,
242
248
  signal,
243
249
  runningConfidences: confidencesSoFar,
250
+ toolExecutor,
251
+ maxToolIterations,
244
252
  });
245
253
  collected.push(response);
246
254
  }
@@ -248,7 +256,7 @@ export class ConsensusEngine extends TypedEventEmitter {
248
256
  }
249
257
  // ── Single participant call ──────────────────────────────
250
258
  async #callParticipant(args) {
251
- const { participant, round, phase, totalRounds, question, previousResponses, temperature, maxOutputTokens, signal, runningConfidences, } = args;
259
+ const { participant, round, phase, totalRounds, question, previousResponses, temperature, maxOutputTokens, signal, runningConfidences, toolExecutor, maxToolIterations, } = args;
252
260
  const system = buildParticipantSystemPrompt({
253
261
  personaSystemPrompt: participant.persona.systemPrompt,
254
262
  phase,
@@ -268,26 +276,20 @@ export class ConsensusEngine extends TypedEventEmitter {
268
276
  let error;
269
277
  let usage;
270
278
  try {
271
- const result = await this.#caller({
272
- participantId: participant.id,
273
- modelId: participant.modelId,
279
+ const turn = await this.#runParticipantTurn({
280
+ participant,
274
281
  round,
275
282
  phase,
276
283
  system,
277
- user: question,
284
+ question,
278
285
  temperature,
279
286
  maxOutputTokens,
280
287
  signal,
281
- onToken: (token) => {
282
- this.emit("participantToken", {
283
- round,
284
- participantId: participant.id,
285
- token,
286
- });
287
- },
288
+ toolExecutor,
289
+ maxToolIterations,
288
290
  });
289
- content = result.content;
290
- usage = result.usage;
291
+ content = turn.content;
292
+ usage = turn.usage;
291
293
  }
292
294
  catch (err) {
293
295
  if (isAbortError(err))
@@ -323,12 +325,154 @@ export class ConsensusEngine extends TypedEventEmitter {
323
325
  }
324
326
  return response;
325
327
  }
328
+ // ── Participant turn (handles the tool-call loop) ────────
329
+ /**
330
+ * Runs a participant's turn end-to-end. When `toolExecutor` is provided
331
+ * AND the participant declares tools AND the model returns tool-call
332
+ * requests, the engine loops:
333
+ * 1. Dispatch each tool call to the executor.
334
+ * 2. Append the (calls, results) pair to `toolCallTurns`.
335
+ * 3. Re-invoke the caller with the accumulated history.
336
+ * 4. Repeat until the response carries no tool calls or `maxToolIterations`
337
+ * is exceeded.
338
+ *
339
+ * Without an executor, this runs exactly one model call — preserving the
340
+ * 0.10 single-call behaviour byte-for-byte.
341
+ *
342
+ * Token usage from each iteration is summed; the final response's
343
+ * `content` is what becomes the participant's turn output.
344
+ */
345
+ async #runParticipantTurn(args) {
346
+ const { participant, round, phase, system, question, temperature, maxOutputTokens, signal, toolExecutor, maxToolIterations, } = args;
347
+ const tools = participant.tools && participant.tools.length > 0 ? participant.tools : undefined;
348
+ const useToolLoop = Boolean(toolExecutor) && tools !== undefined;
349
+ const toolCallTurns = [];
350
+ let mergedUsage;
351
+ let lastResponse;
352
+ let iter = 0;
353
+ while (true) {
354
+ const req = {
355
+ participantId: participant.id,
356
+ modelId: participant.modelId,
357
+ round,
358
+ phase,
359
+ system,
360
+ user: question,
361
+ temperature,
362
+ maxOutputTokens,
363
+ signal,
364
+ onToken: (token) => {
365
+ this.emit("participantToken", {
366
+ round,
367
+ participantId: participant.id,
368
+ token,
369
+ });
370
+ },
371
+ ...(tools !== undefined ? { tools } : {}),
372
+ ...(toolCallTurns.length > 0
373
+ ? { toolCallTurns: toolCallTurns.map((t) => ({ ...t })) }
374
+ : {}),
375
+ };
376
+ lastResponse = await this.#caller(req);
377
+ mergedUsage = mergeUsage(mergedUsage, lastResponse.usage);
378
+ const calls = lastResponse.toolCalls ?? [];
379
+ if (!useToolLoop || calls.length === 0)
380
+ break;
381
+ if (iter >= maxToolIterations)
382
+ break;
383
+ iter += 1;
384
+ const results = await this.#dispatchToolCalls({
385
+ participant,
386
+ round,
387
+ phase,
388
+ iteration: iter,
389
+ calls,
390
+ toolExecutor: toolExecutor,
391
+ signal,
392
+ });
393
+ toolCallTurns.push({ toolCalls: calls, toolResults: results });
394
+ }
395
+ return {
396
+ content: lastResponse?.content ?? "",
397
+ usage: mergedUsage,
398
+ };
399
+ }
400
+ /**
401
+ * Dispatch the tool calls of a single iteration through the host executor.
402
+ * Errors thrown by the executor are caught and converted into
403
+ * `{ error: message }` results so the conversation can continue. Aborts
404
+ * propagate up so the engine's outer abort handling can finalise the run.
405
+ */
406
+ async #dispatchToolCalls(args) {
407
+ const { participant, round, phase, iteration, calls, toolExecutor, signal } = args;
408
+ const ctx = {
409
+ participantId: participant.id,
410
+ round,
411
+ phase,
412
+ ...(signal ? { signal } : {}),
413
+ };
414
+ const results = [];
415
+ for (const call of calls) {
416
+ throwIfAborted(signal);
417
+ this.emit("toolCallStart", {
418
+ participantId: participant.id,
419
+ round,
420
+ phase,
421
+ iteration,
422
+ call,
423
+ });
424
+ const startedAt = Date.now();
425
+ let result;
426
+ try {
427
+ result = await toolExecutor(call, ctx);
428
+ }
429
+ catch (err) {
430
+ if (isAbortError(err))
431
+ throw err;
432
+ const message = err instanceof Error ? err.message : String(err);
433
+ result = { error: message };
434
+ }
435
+ results.push(result);
436
+ const ok = !("error" in result);
437
+ const previewSource = ok
438
+ ? "content" in result
439
+ ? result.content
440
+ : ""
441
+ : "error" in result
442
+ ? result.error
443
+ : "";
444
+ const preview = truncate(previewSource, TOOL_RESULT_PREVIEW_CHARS);
445
+ const durationMs = Date.now() - startedAt;
446
+ this.emit("toolCallComplete", {
447
+ participantId: participant.id,
448
+ round,
449
+ phase,
450
+ iteration,
451
+ call,
452
+ durationMs,
453
+ ok,
454
+ preview,
455
+ });
456
+ if (!ok) {
457
+ const error = "error" in result ? result.error : "unknown";
458
+ this.emit("toolError", {
459
+ participantId: participant.id,
460
+ round,
461
+ phase,
462
+ iteration,
463
+ call,
464
+ error,
465
+ });
466
+ }
467
+ }
468
+ return results;
469
+ }
326
470
  // ── Judge synthesizer ────────────────────────────────────
327
471
  async #runJudge(args) {
328
- const { judgeModelId, judgeCaller, judgeTemperature, judgeMaxOutputTokens, finalResponses, participants, question, lastRoundNumber, signal, } = args;
472
+ const { judgeModelId, judgeCaller, judgeTemperature, judgeMaxOutputTokens, judgeSystemPrompt, finalResponses, participants, question, lastRoundNumber, signal, } = args;
329
473
  this.emit("synthesisStart", { modelId: judgeModelId });
330
474
  const system = buildJudgeSystemPrompt({
331
- judgeSystemPrompt: JUDGE_PERSONA.systemPrompt,
475
+ judgeSystemPrompt,
332
476
  question,
333
477
  });
334
478
  const user = buildJudgeUserPrompt({
@@ -394,6 +538,7 @@ function normalizeOptions(options) {
394
538
  ids.add(p.id);
395
539
  }
396
540
  const maxRounds = clampInt(options.maxRounds ?? DEFAULTS.maxRounds, 1, MAX_ROUNDS_CAP);
541
+ const maxToolIterations = clampInt(options.maxToolIterations ?? DEFAULTS.maxToolIterations, 1, MAX_TOOL_ITERATIONS_CAP);
397
542
  return {
398
543
  question: options.question,
399
544
  participants: options.participants.slice(),
@@ -408,6 +553,8 @@ function normalizeOptions(options) {
408
553
  judge: options.judge,
409
554
  randomSeed: options.randomSeed,
410
555
  signal: options.signal,
556
+ toolExecutor: options.toolExecutor,
557
+ maxToolIterations,
411
558
  };
412
559
  }
413
560
  function clampInt(n, lo, hi) {
@@ -422,7 +569,24 @@ function throwIfAborted(signal) {
422
569
  }
423
570
  }
424
571
  function isAbortError(err) {
425
- return (err instanceof DOMException && err.name === "AbortError") || (err instanceof Error && err.name === "AbortError");
572
+ return ((err instanceof DOMException && err.name === "AbortError") ||
573
+ (err instanceof Error && err.name === "AbortError"));
574
+ }
575
+ function mergeUsage(acc, next) {
576
+ if (!next)
577
+ return acc;
578
+ if (!acc)
579
+ return next;
580
+ return {
581
+ inputTokens: acc.inputTokens + next.inputTokens,
582
+ outputTokens: acc.outputTokens + next.outputTokens,
583
+ totalTokens: acc.totalTokens + next.totalTokens,
584
+ };
585
+ }
586
+ function truncate(s, n) {
587
+ if (typeof s !== "string")
588
+ return "";
589
+ return s.length <= n ? s : `${s.slice(0, n)}…`;
426
590
  }
427
- export { DEFAULTS as CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP };
591
+ export { DEFAULTS as CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP, MAX_TOOL_ITERATIONS_CAP };
428
592
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { ConsensusEngine, CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP } from "./engine.js";
2
- export { PERSONAS, JUDGE_PERSONA, getPersonaById, getPersonaOrDefault, } from "./personas.js";
1
+ export { ConsensusEngine, CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP, MAX_TOOL_ITERATIONS_CAP, } from "./engine.js";
2
+ export { JUDGE_PERSONA } from "./personas.js";
3
3
  export { buildParticipantSystemPrompt, buildJudgeSystemPrompt, buildJudgeUserPrompt, formatPreviousResponses, getRoundMeta, } from "./prompts.js";
4
4
  export { extractConfidence, extractJudgeConfidence, extractJudgeSection, stripConfidenceLine, } from "./parser.js";
5
5
  export { average, stddev, consensusScore, detectDisagreements, shuffle, mulberry32, } from "./stats.js";
6
6
  export { TypedEventEmitter } from "./events.js";
7
7
  export type { ConsensusEmitter } from "./events.js";
8
- export { PersonaSchema, ParticipantSchema, PHASES } from "./types.js";
9
- export type { Persona, Participant, Phase, TokenUsage, ModelCaller, ModelCallRequest, ModelCallResponse, ParticipantResponse, Disagreement, RoundResult, SynthesisResult, ConsensusResult, ConsensusOptions, StopReason, ConsensusEventMap, ConsensusEventName, RoundStartEvent, ParticipantStartEvent, ParticipantTokenEvent, ParticipantCompleteEvent, ConfidenceUpdateEvent, DisagreementDetectedEvent, RoundCompleteEvent, EarlyStopEvent, SynthesisStartEvent, SynthesisTokenEvent, SynthesisCompleteEvent, FinalResultEvent, } from "./types.js";
8
+ export { PersonaSchema, ParticipantSchema, ToolDefinitionSchema, PHASES } from "./types.js";
9
+ export type { Persona, Participant, Phase, TokenUsage, ModelCaller, ModelCallRequest, ModelCallResponse, ParticipantResponse, Disagreement, RoundResult, SynthesisResult, ConsensusResult, ConsensusOptions, StopReason, ToolDefinition, ToolCall, ToolCallTurn, ToolCallContext, ToolExecutionResult, ToolExecutor, ConsensusEventMap, ConsensusEventName, RoundStartEvent, ParticipantStartEvent, ParticipantTokenEvent, ParticipantCompleteEvent, ConfidenceUpdateEvent, DisagreementDetectedEvent, RoundCompleteEvent, EarlyStopEvent, SynthesisStartEvent, SynthesisTokenEvent, SynthesisCompleteEvent, FinalResultEvent, ToolCallStartEvent, ToolCallCompleteEvent, ToolErrorEvent, } from "./types.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGtE,YAAY,EACV,OAAO,EACP,WAAW,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG5F,YAAY,EACV,OAAO,EACP,WAAW,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EAEV,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EAEZ,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // ─────────────────────────────────────────────────────────────
2
2
  // ai-consensus-core — public API
3
3
  // ─────────────────────────────────────────────────────────────
4
- export { ConsensusEngine, CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP } from "./engine.js";
5
- export { PERSONAS, JUDGE_PERSONA, getPersonaById, getPersonaOrDefault, } from "./personas.js";
4
+ export { ConsensusEngine, CONSENSUS_DEFAULTS, MAX_ROUNDS_CAP, MAX_TOOL_ITERATIONS_CAP, } from "./engine.js";
5
+ export { JUDGE_PERSONA } from "./personas.js";
6
6
  export { buildParticipantSystemPrompt, buildJudgeSystemPrompt, buildJudgeUserPrompt, formatPreviousResponses, getRoundMeta, } from "./prompts.js";
7
7
  export { extractConfidence, extractJudgeConfidence, extractJudgeSection, stripConfidenceLine, } from "./parser.js";
8
8
  export { average, stddev, consensusScore, detectDisagreements, shuffle, mulberry32, } from "./stats.js";
9
9
  export { TypedEventEmitter } from "./events.js";
10
10
  // Schemas (zod) — exported for callers that want boundary validation.
11
- export { PersonaSchema, ParticipantSchema, PHASES } from "./types.js";
11
+ export { PersonaSchema, ParticipantSchema, ToolDefinitionSchema, PHASES } from "./types.js";
12
12
  //# sourceMappingURL=index.js.map