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 +117 -21
- package/dist/engine.d.ts +3 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +186 -22
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/parser.d.ts +12 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +55 -16
- package/dist/parser.js.map +1 -1
- package/dist/personas.d.ts +0 -6
- package/dist/personas.d.ts.map +1 -1
- package/dist/personas.js +11 -72
- package/dist/personas.js.map +1 -1
- package/dist/types.d.ts +184 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +34 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
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)
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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:
|
|
85
|
-
{ id: "p2", modelId: "grok-4", persona:
|
|
86
|
-
{ id: "p3", modelId: "grok-4", persona:
|
|
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
|
-
|
|
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
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
-
|
|
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 {
|
|
392
|
+
import { JUDGE_PERSONA, PersonaSchema, type Persona } from "ai-consensus-core";
|
|
298
393
|
|
|
299
|
-
|
|
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
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
272
|
-
|
|
273
|
-
modelId: participant.modelId,
|
|
279
|
+
const turn = await this.#runParticipantTurn({
|
|
280
|
+
participant,
|
|
274
281
|
round,
|
|
275
282
|
phase,
|
|
276
283
|
system,
|
|
277
|
-
|
|
284
|
+
question,
|
|
278
285
|
temperature,
|
|
279
286
|
maxOutputTokens,
|
|
280
287
|
signal,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
round,
|
|
284
|
-
participantId: participant.id,
|
|
285
|
-
token,
|
|
286
|
-
});
|
|
287
|
-
},
|
|
288
|
+
toolExecutor,
|
|
289
|
+
maxToolIterations,
|
|
288
290
|
});
|
|
289
|
-
content =
|
|
290
|
-
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
|
|
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") ||
|
|
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
|
package/dist/engine.js.map
CHANGED
|
@@ -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 {
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
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 {
|
|
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
|