@defai.digital/discussion-domain 13.0.3 → 13.1.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.
- package/dist/budget-manager.d.ts +79 -0
- package/dist/budget-manager.d.ts.map +1 -0
- package/dist/budget-manager.js +155 -0
- package/dist/budget-manager.js.map +1 -0
- package/dist/confidence-extractor.d.ts +60 -0
- package/dist/confidence-extractor.d.ts.map +1 -0
- package/dist/confidence-extractor.js +251 -0
- package/dist/confidence-extractor.js.map +1 -0
- package/dist/consensus/synthesis.d.ts.map +1 -1
- package/dist/consensus/synthesis.js +2 -0
- package/dist/consensus/synthesis.js.map +1 -1
- package/dist/consensus/voting.d.ts +3 -0
- package/dist/consensus/voting.d.ts.map +1 -1
- package/dist/consensus/voting.js +15 -4
- package/dist/consensus/voting.js.map +1 -1
- package/dist/context-tracker.d.ts +77 -0
- package/dist/context-tracker.d.ts.map +1 -0
- package/dist/context-tracker.js +177 -0
- package/dist/context-tracker.js.map +1 -0
- package/dist/cost-tracker.d.ts +123 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/cost-tracker.js +196 -0
- package/dist/cost-tracker.js.map +1 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +9 -0
- package/dist/executor.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/participant-resolver.d.ts +111 -0
- package/dist/participant-resolver.d.ts.map +1 -0
- package/dist/participant-resolver.js +160 -0
- package/dist/participant-resolver.js.map +1 -0
- package/dist/patterns/round-robin.d.ts +3 -0
- package/dist/patterns/round-robin.d.ts.map +1 -1
- package/dist/patterns/round-robin.js +41 -2
- package/dist/patterns/round-robin.js.map +1 -1
- package/dist/patterns/synthesis.d.ts +3 -0
- package/dist/patterns/synthesis.d.ts.map +1 -1
- package/dist/patterns/synthesis.js +77 -3
- package/dist/patterns/synthesis.js.map +1 -1
- package/dist/prompts/templates.d.ts +1 -0
- package/dist/prompts/templates.d.ts.map +1 -1
- package/dist/prompts/templates.js +3 -1
- package/dist/prompts/templates.js.map +1 -1
- package/dist/provider-bridge.d.ts +3 -1
- package/dist/provider-bridge.d.ts.map +1 -1
- package/dist/provider-bridge.js +48 -32
- package/dist/provider-bridge.js.map +1 -1
- package/dist/recursive-executor.d.ts +80 -0
- package/dist/recursive-executor.d.ts.map +1 -0
- package/dist/recursive-executor.js +354 -0
- package/dist/recursive-executor.js.map +1 -0
- package/dist/types.d.ts +83 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/src/budget-manager.ts +272 -0
- package/src/confidence-extractor.ts +321 -0
- package/src/consensus/synthesis.ts +2 -0
- package/src/consensus/voting.ts +22 -6
- package/src/context-tracker.ts +307 -0
- package/src/cost-tracker.ts +363 -0
- package/src/executor.ts +9 -0
- package/src/index.ts +72 -0
- package/src/participant-resolver.ts +297 -0
- package/src/patterns/round-robin.ts +48 -2
- package/src/patterns/synthesis.ts +89 -3
- package/src/prompts/templates.ts +4 -2
- package/src/provider-bridge.ts +52 -31
- package/src/recursive-executor.ts +510 -0
- package/src/types.ts +120 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discussion Cost Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks costs and resource usage across discussion execution.
|
|
5
|
+
* Enforces budget limits and provides visibility into spending.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-DISC-620: Total calls ≤ maxTotalCalls
|
|
9
|
+
* - INV-DISC-621: Abort if cost budget exceeded
|
|
10
|
+
*/
|
|
11
|
+
import { DEFAULT_MAX_TOTAL_CALLS } from '@defai.digital/contracts';
|
|
12
|
+
/**
|
|
13
|
+
* Cost per provider (approximate, in USD per 1K tokens)
|
|
14
|
+
* These are rough estimates for planning purposes
|
|
15
|
+
*/
|
|
16
|
+
export const PROVIDER_COSTS = {
|
|
17
|
+
claude: { input: 0.003, output: 0.015 },
|
|
18
|
+
gemini: { input: 0.0005, output: 0.0015 },
|
|
19
|
+
codex: { input: 0.003, output: 0.006 },
|
|
20
|
+
qwen: { input: 0.001, output: 0.002 },
|
|
21
|
+
glm: { input: 0.001, output: 0.002 },
|
|
22
|
+
grok: { input: 0.002, output: 0.004 },
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Default cost per provider if not in the map
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_COST = { input: 0.002, output: 0.004 };
|
|
28
|
+
/**
|
|
29
|
+
* Create a cost tracker for a discussion
|
|
30
|
+
*/
|
|
31
|
+
export function createCostTracker(config, parentTracker) {
|
|
32
|
+
const calls = [];
|
|
33
|
+
const maxTotalCalls = config.maxTotalCalls ?? DEFAULT_MAX_TOTAL_CALLS;
|
|
34
|
+
const budgetUsd = config.budgetUsd;
|
|
35
|
+
// Track inherited calls from parent
|
|
36
|
+
const parentCalls = parentTracker?.getTotalCalls() ?? 0;
|
|
37
|
+
return {
|
|
38
|
+
recordCall(record) {
|
|
39
|
+
const cost = estimateCallCost(record.providerId, record.inputTokens, record.outputTokens);
|
|
40
|
+
calls.push({
|
|
41
|
+
...record,
|
|
42
|
+
estimatedCostUsd: cost,
|
|
43
|
+
timestamp: new Date().toISOString(),
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
checkBudget(providerId, estimatedTokens = 1000) {
|
|
47
|
+
const currentCalls = calls.length + parentCalls;
|
|
48
|
+
const currentCost = calls.reduce((sum, c) => sum + c.estimatedCostUsd, 0);
|
|
49
|
+
// Check call limit
|
|
50
|
+
if (currentCalls >= maxTotalCalls) {
|
|
51
|
+
return {
|
|
52
|
+
allowed: false,
|
|
53
|
+
reason: `Call limit ${maxTotalCalls} reached`,
|
|
54
|
+
currentCalls,
|
|
55
|
+
currentCostUsd: currentCost,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Check budget limit if configured
|
|
59
|
+
if (budgetUsd !== undefined) {
|
|
60
|
+
const estimatedCost = estimateCallCost(providerId, estimatedTokens, estimatedTokens);
|
|
61
|
+
if (currentCost + estimatedCost > budgetUsd) {
|
|
62
|
+
return {
|
|
63
|
+
allowed: false,
|
|
64
|
+
reason: `Budget limit $${budgetUsd.toFixed(2)} would be exceeded`,
|
|
65
|
+
currentCalls,
|
|
66
|
+
currentCostUsd: currentCost,
|
|
67
|
+
estimatedCostUsd: estimatedCost,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
allowed: true,
|
|
73
|
+
currentCalls,
|
|
74
|
+
currentCostUsd: currentCost,
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
getSummary() {
|
|
78
|
+
const byProvider = {};
|
|
79
|
+
const byDepth = {};
|
|
80
|
+
let totalInputTokens = 0;
|
|
81
|
+
let totalOutputTokens = 0;
|
|
82
|
+
let totalCostUsd = 0;
|
|
83
|
+
for (const call of calls) {
|
|
84
|
+
// Aggregate by provider
|
|
85
|
+
if (!byProvider[call.providerId]) {
|
|
86
|
+
byProvider[call.providerId] = {
|
|
87
|
+
calls: 0,
|
|
88
|
+
inputTokens: 0,
|
|
89
|
+
outputTokens: 0,
|
|
90
|
+
costUsd: 0,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const providerStats = byProvider[call.providerId];
|
|
94
|
+
providerStats.calls++;
|
|
95
|
+
providerStats.inputTokens += call.inputTokens;
|
|
96
|
+
providerStats.outputTokens += call.outputTokens;
|
|
97
|
+
providerStats.costUsd += call.estimatedCostUsd;
|
|
98
|
+
// Aggregate by depth
|
|
99
|
+
if (!byDepth[call.depth]) {
|
|
100
|
+
byDepth[call.depth] = { calls: 0, costUsd: 0 };
|
|
101
|
+
}
|
|
102
|
+
const depthStats = byDepth[call.depth];
|
|
103
|
+
depthStats.calls++;
|
|
104
|
+
depthStats.costUsd += call.estimatedCostUsd;
|
|
105
|
+
// Totals
|
|
106
|
+
totalInputTokens += call.inputTokens;
|
|
107
|
+
totalOutputTokens += call.outputTokens;
|
|
108
|
+
totalCostUsd += call.estimatedCostUsd;
|
|
109
|
+
}
|
|
110
|
+
const totalCalls = calls.length + parentCalls;
|
|
111
|
+
return {
|
|
112
|
+
totalCalls,
|
|
113
|
+
totalInputTokens,
|
|
114
|
+
totalOutputTokens,
|
|
115
|
+
totalCostUsd,
|
|
116
|
+
byProvider,
|
|
117
|
+
byDepth,
|
|
118
|
+
budgetExceeded: budgetUsd !== undefined && totalCostUsd > budgetUsd,
|
|
119
|
+
callLimitExceeded: totalCalls >= maxTotalCalls,
|
|
120
|
+
remainingBudgetUsd: budgetUsd !== undefined ? Math.max(0, budgetUsd - totalCostUsd) : undefined,
|
|
121
|
+
remainingCalls: Math.max(0, maxTotalCalls - totalCalls),
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
getTotalCalls() {
|
|
125
|
+
return calls.length + parentCalls;
|
|
126
|
+
},
|
|
127
|
+
getRemainingCalls() {
|
|
128
|
+
return Math.max(0, maxTotalCalls - (calls.length + parentCalls));
|
|
129
|
+
},
|
|
130
|
+
isBudgetExceeded() {
|
|
131
|
+
if (budgetUsd === undefined)
|
|
132
|
+
return false;
|
|
133
|
+
const totalCost = calls.reduce((sum, c) => sum + c.estimatedCostUsd, 0);
|
|
134
|
+
return totalCost > budgetUsd;
|
|
135
|
+
},
|
|
136
|
+
isCallLimitExceeded() {
|
|
137
|
+
return calls.length + parentCalls > maxTotalCalls;
|
|
138
|
+
},
|
|
139
|
+
estimateCost(providerId, inputTokens, outputTokens) {
|
|
140
|
+
return estimateCallCost(providerId, inputTokens, outputTokens);
|
|
141
|
+
},
|
|
142
|
+
createChildTracker(depth) {
|
|
143
|
+
// Child tracker inherits call count from parent
|
|
144
|
+
const childConfig = { ...config };
|
|
145
|
+
const childTracker = createCostTracker(childConfig, this);
|
|
146
|
+
// Wrapper to set depth on all recorded calls
|
|
147
|
+
const originalRecord = childTracker.recordCall.bind(childTracker);
|
|
148
|
+
childTracker.recordCall = (record) => {
|
|
149
|
+
originalRecord({ ...record, depth });
|
|
150
|
+
};
|
|
151
|
+
return childTracker;
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Estimate cost for a provider call
|
|
157
|
+
*/
|
|
158
|
+
function estimateCallCost(providerId, inputTokens, outputTokens) {
|
|
159
|
+
const costs = PROVIDER_COSTS[providerId] || DEFAULT_COST;
|
|
160
|
+
const inputCost = (inputTokens / 1000) * costs.input;
|
|
161
|
+
const outputCost = (outputTokens / 1000) * costs.output;
|
|
162
|
+
return inputCost + outputCost;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Format cost for display
|
|
166
|
+
*/
|
|
167
|
+
export function formatCost(costUsd) {
|
|
168
|
+
if (costUsd < 0.01) {
|
|
169
|
+
// Display in cents without dollar sign
|
|
170
|
+
return `${(costUsd * 100).toFixed(2)}¢`;
|
|
171
|
+
}
|
|
172
|
+
return `$${costUsd.toFixed(4)}`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Format cost summary for CLI/logs
|
|
176
|
+
*/
|
|
177
|
+
export function formatCostSummary(summary) {
|
|
178
|
+
const lines = [
|
|
179
|
+
`Cost Summary:`,
|
|
180
|
+
` Total Calls: ${summary.totalCalls}`,
|
|
181
|
+
` Total Tokens: ${summary.totalInputTokens} in / ${summary.totalOutputTokens} out`,
|
|
182
|
+
` Estimated Cost: ${formatCost(summary.totalCostUsd)}`,
|
|
183
|
+
];
|
|
184
|
+
if (summary.remainingBudgetUsd !== undefined) {
|
|
185
|
+
lines.push(` Remaining Budget: ${formatCost(summary.remainingBudgetUsd)}`);
|
|
186
|
+
}
|
|
187
|
+
lines.push(` Remaining Calls: ${summary.remainingCalls}`);
|
|
188
|
+
if (Object.keys(summary.byProvider).length > 0) {
|
|
189
|
+
lines.push(` By Provider:`);
|
|
190
|
+
for (const [provider, data] of Object.entries(summary.byProvider)) {
|
|
191
|
+
lines.push(` ${provider}: ${data.calls} calls, ${formatCost(data.costUsd)}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return lines.join('\n');
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=cost-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../src/cost-tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/executor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,EAAE,yBAAyB;IAO9C;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,EAAE,yBAAyB;IAO9C;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAyB5B;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAsH5B;;OAEG;YACW,cAAc;IAuB5B;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAY5B;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,SAAS,SAAW,EACpB,QAAQ,SAAQ,EAChB,KAAK,SAAW,EAChB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IA4B5B;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;CAuB7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,0BAA0B,EAC5C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC,GACrE,kBAAkB,CAKpB"}
|
package/dist/executor.js
CHANGED
|
@@ -51,6 +51,7 @@ export class DiscussionExecutor {
|
|
|
51
51
|
continueOnProviderFailure: true,
|
|
52
52
|
minProviders: 2,
|
|
53
53
|
temperature: 0.7,
|
|
54
|
+
agentWeightMultiplier: 1.5,
|
|
54
55
|
};
|
|
55
56
|
return this.execute(config, options);
|
|
56
57
|
}
|
|
@@ -87,6 +88,7 @@ export class DiscussionExecutor {
|
|
|
87
88
|
abortSignal,
|
|
88
89
|
traceId: this.traceId,
|
|
89
90
|
onProgress,
|
|
91
|
+
// No cascading confidence for base executor (recursive executor handles this)
|
|
90
92
|
};
|
|
91
93
|
// Execute pattern
|
|
92
94
|
const patternResult = await patternExecutor.execute(patternContext);
|
|
@@ -100,6 +102,7 @@ export class DiscussionExecutor {
|
|
|
100
102
|
rounds: patternResult.rounds,
|
|
101
103
|
participatingProviders: patternResult.participatingProviders,
|
|
102
104
|
config: config.consensus,
|
|
105
|
+
agentWeightMultiplier: config.agentWeightMultiplier,
|
|
103
106
|
providerExecutor: this.providerExecutor,
|
|
104
107
|
abortSignal,
|
|
105
108
|
onProgress,
|
|
@@ -123,6 +126,10 @@ export class DiscussionExecutor {
|
|
|
123
126
|
startedAt,
|
|
124
127
|
completedAt: new Date().toISOString(),
|
|
125
128
|
traceId: this.traceId,
|
|
129
|
+
// Include early exit info if pattern triggered it
|
|
130
|
+
...(patternResult.earlyExit?.triggered ? {
|
|
131
|
+
earlyExit: patternResult.earlyExit,
|
|
132
|
+
} : {}),
|
|
126
133
|
},
|
|
127
134
|
};
|
|
128
135
|
return result;
|
|
@@ -184,6 +191,7 @@ export class DiscussionExecutor {
|
|
|
184
191
|
continueOnProviderFailure: false, // Debates require all participants
|
|
185
192
|
minProviders: 3,
|
|
186
193
|
temperature: 0.7,
|
|
194
|
+
agentWeightMultiplier: 1.5,
|
|
187
195
|
};
|
|
188
196
|
return this.execute(config, options);
|
|
189
197
|
}
|
|
@@ -207,6 +215,7 @@ export class DiscussionExecutor {
|
|
|
207
215
|
continueOnProviderFailure: true,
|
|
208
216
|
minProviders: 2,
|
|
209
217
|
temperature: 0.5, // Lower temperature for more consistent voting
|
|
218
|
+
agentWeightMultiplier: 1.5,
|
|
210
219
|
};
|
|
211
220
|
return this.execute(config, options);
|
|
212
221
|
}
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,GAI7B,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACZ,gBAAgB,CAA6B;IAC7C,gBAAgB,CAAS;IACzB,mBAAmB,CAAU;IAC7B,OAAO,CAAqB;IAE7C,YAAY,OAAkC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAA0B,EAC1B,OAGC;QAED,iCAAiC;QACjC,MAAM,MAAM,GAAsB;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,GAAG,iBAAiB,CAAC;YACtD,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,eAAe,IAAI,WAAW;gBAC9C,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,QAAQ,EAAE,sBAAsB;gBAC7C,cAAc,EAAE,IAAI;aACrB;YACD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,yBAAyB,EAAE,IAAI;YAC/B,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,10 +7,16 @@
|
|
|
7
7
|
* @module @defai.digital/discussion-domain
|
|
8
8
|
*/
|
|
9
9
|
export { DiscussionExecutor, createDiscussionExecutor } from './executor.js';
|
|
10
|
-
export
|
|
10
|
+
export { RecursiveDiscussionExecutor, createRecursiveDiscussionExecutor, type RecursiveDiscussionResult, } from './recursive-executor.js';
|
|
11
|
+
export { createContextTracker, DiscussionContextError, type DiscussionContextTracker, type SubDiscussionCheck, type ContextTrackerConfig, } from './context-tracker.js';
|
|
12
|
+
export { createBudgetManager, formatBudgetStatus, recommendProvidersForBudget, type DiscussionBudgetManager, type BudgetAllocation, type BudgetStatus, } from './budget-manager.js';
|
|
13
|
+
export type { DiscussionProviderExecutor, ProviderExecuteRequest, ProviderExecuteResult, PatternExecutor, PatternExecutionContext, PatternExecutionResult, ConsensusExecutor, ConsensusExecutionContext, ConsensusExecutionResult, DiscussionExecutorOptions, DiscussionProgressEvent, CascadingConfidenceOptions, EarlyExitInfo, RecursiveDiscussionExecutorOptions, RecursivePatternExecutionContext, RecursivePatternExecutionResult, SubDiscussionRequest, } from './types.js';
|
|
11
14
|
export { StubProviderExecutor } from './types.js';
|
|
15
|
+
export { extractConfidence, evaluateEarlyExit, calculateAgreementScore, DEFAULT_CASCADING_CONFIDENCE, type ExtractedConfidence, type EarlyExitDecision, } from './confidence-extractor.js';
|
|
16
|
+
export { createCostTracker, formatCost, formatCostSummary, PROVIDER_COSTS, type DiscussionCostTracker, type ProviderCallRecord, type CostSummary, type BudgetCheckResult, } from './cost-tracker.js';
|
|
12
17
|
export { RoundRobinPattern, SynthesisPattern, DebatePattern, CritiquePattern, VotingPattern, getPatternExecutor, isPatternSupported, getSupportedPatterns, } from './patterns/index.js';
|
|
13
18
|
export { SynthesisConsensus, VotingConsensus, ModeratorConsensus, getConsensusExecutor, isConsensusMethodSupported, getSupportedConsensusMethods, } from './consensus/index.js';
|
|
14
19
|
export { getProviderSystemPrompt, interpolate, formatPreviousResponses, formatVotingOptions, formatVotes, getRolePromptModifier, } from './prompts/index.js';
|
|
15
20
|
export { createProviderBridge, createSimpleProviderBridge, type ProviderRegistryLike, type ProviderBridgeOptions, } from './provider-bridge.js';
|
|
21
|
+
export { resolveParticipant, resolveParticipants, providersToParticipants, parseParticipantString, parseParticipantList, getProviderIds, buildEnhancedSystemPrompt, type ResolvedParticipant, type AgentProfileLike, type AgentRegistryLike, type AbilityManagerLike, type ParticipantResolverOptions, } from './participant-resolver.js';
|
|
16
22
|
//# 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":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG7E,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EAEvB,0BAA0B,EAC1B,aAAa,EAEb,kCAAkC,EAClC,gCAAgC,EAChC,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,8 +8,18 @@
|
|
|
8
8
|
*/
|
|
9
9
|
// Main executor
|
|
10
10
|
export { DiscussionExecutor, createDiscussionExecutor } from './executor.js';
|
|
11
|
+
// Recursive executor
|
|
12
|
+
export { RecursiveDiscussionExecutor, createRecursiveDiscussionExecutor, } from './recursive-executor.js';
|
|
13
|
+
// Context tracker for recursion management
|
|
14
|
+
export { createContextTracker, DiscussionContextError, } from './context-tracker.js';
|
|
15
|
+
// Budget manager for timeout cascade
|
|
16
|
+
export { createBudgetManager, formatBudgetStatus, recommendProvidersForBudget, } from './budget-manager.js';
|
|
11
17
|
// Stub implementation for testing
|
|
12
18
|
export { StubProviderExecutor } from './types.js';
|
|
19
|
+
// Confidence extraction and early exit
|
|
20
|
+
export { extractConfidence, evaluateEarlyExit, calculateAgreementScore, DEFAULT_CASCADING_CONFIDENCE, } from './confidence-extractor.js';
|
|
21
|
+
// Cost tracking
|
|
22
|
+
export { createCostTracker, formatCost, formatCostSummary, PROVIDER_COSTS, } from './cost-tracker.js';
|
|
13
23
|
// Pattern executors
|
|
14
24
|
export { RoundRobinPattern, SynthesisPattern, DebatePattern, CritiquePattern, VotingPattern, getPatternExecutor, isPatternSupported, getSupportedPatterns, } from './patterns/index.js';
|
|
15
25
|
// Consensus executors
|
|
@@ -18,4 +28,6 @@ export { SynthesisConsensus, VotingConsensus, ModeratorConsensus, getConsensusEx
|
|
|
18
28
|
export { getProviderSystemPrompt, interpolate, formatPreviousResponses, formatVotingOptions, formatVotes, getRolePromptModifier, } from './prompts/index.js';
|
|
19
29
|
// Provider bridge (for connecting to provider-adapters)
|
|
20
30
|
export { createProviderBridge, createSimpleProviderBridge, } from './provider-bridge.js';
|
|
31
|
+
// Participant resolution (for agent/provider mixing)
|
|
32
|
+
export { resolveParticipant, resolveParticipants, providersToParticipants, parseParticipantString, parseParticipantList, getProviderIds, buildEnhancedSystemPrompt, } from './participant-resolver.js';
|
|
21
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE7E,qBAAqB;AACrB,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,yBAAyB,CAAC;AAEjC,2CAA2C;AAC3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAIvB,MAAM,sBAAsB,CAAC;AAE9B,qCAAqC;AACrC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,GAI5B,MAAM,qBAAqB,CAAC;AAyB7B,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,GAG7B,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,cAAc,GAKf,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,mBAAmB;AACnB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,wDAAwD;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,sBAAsB,CAAC;AAE9B,qDAAqD;AACrD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,yBAAyB,GAM1B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Participant Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves discussion participants (providers and agents) to their execution config.
|
|
5
|
+
* Handles agent-to-provider mapping using providerAffinity.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-DISC-640: Agent uses providerAffinity.preferred[0] for provider selection
|
|
9
|
+
* - INV-DISC-641: Agent abilities injected with max 10K tokens
|
|
10
|
+
* - INV-DISC-642: Agent weight multiplier between 0.5-3.0 (default 1.5)
|
|
11
|
+
*/
|
|
12
|
+
import type { DiscussionParticipant } from '@defai.digital/contracts';
|
|
13
|
+
/**
|
|
14
|
+
* Resolved participant ready for discussion execution
|
|
15
|
+
*/
|
|
16
|
+
export interface ResolvedParticipant {
|
|
17
|
+
/** Original participant identifier */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Whether this is an agent (vs raw provider) */
|
|
20
|
+
isAgent: boolean;
|
|
21
|
+
/** Provider ID to use for LLM calls */
|
|
22
|
+
providerId: string;
|
|
23
|
+
/** Agent ID (if isAgent) */
|
|
24
|
+
agentId?: string | undefined;
|
|
25
|
+
/** System prompt override (from agent config) */
|
|
26
|
+
systemPromptOverride?: string | undefined;
|
|
27
|
+
/** Injected ability content */
|
|
28
|
+
abilityContent?: string | undefined;
|
|
29
|
+
/** Temperature override (from agent config) */
|
|
30
|
+
temperatureOverride?: number | undefined;
|
|
31
|
+
/** Weight multiplier for consensus (agents typically get higher weight) */
|
|
32
|
+
weightMultiplier: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Agent profile interface (subset needed for resolution)
|
|
36
|
+
*/
|
|
37
|
+
export interface AgentProfileLike {
|
|
38
|
+
agentId: string;
|
|
39
|
+
systemPrompt?: string | undefined;
|
|
40
|
+
providerAffinity?: {
|
|
41
|
+
preferred?: string[] | undefined;
|
|
42
|
+
defaultSynthesizer?: string | undefined;
|
|
43
|
+
temperatureOverrides?: Record<string, number> | undefined;
|
|
44
|
+
} | undefined;
|
|
45
|
+
temperature?: number | undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Agent registry interface for looking up agents
|
|
49
|
+
*/
|
|
50
|
+
export interface AgentRegistryLike {
|
|
51
|
+
get(agentId: string): Promise<AgentProfileLike | null>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Ability manager interface for injecting abilities
|
|
55
|
+
*/
|
|
56
|
+
export interface AbilityManagerLike {
|
|
57
|
+
injectAbilities(agentId: string, task: string, coreAbilities: string[], options: {
|
|
58
|
+
maxAbilities: number;
|
|
59
|
+
maxTokens: number;
|
|
60
|
+
}): Promise<{
|
|
61
|
+
combinedContent: string;
|
|
62
|
+
injectedAbilities: string[];
|
|
63
|
+
}>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Options for participant resolution
|
|
67
|
+
*/
|
|
68
|
+
export interface ParticipantResolverOptions {
|
|
69
|
+
/** Agent registry for looking up agents */
|
|
70
|
+
agentRegistry?: AgentRegistryLike | undefined;
|
|
71
|
+
/** Ability manager for injecting abilities */
|
|
72
|
+
abilityManager?: AbilityManagerLike | undefined;
|
|
73
|
+
/** Default provider to use when agent has no preference */
|
|
74
|
+
defaultProvider?: string | undefined;
|
|
75
|
+
/** Default weight multiplier for agent participants */
|
|
76
|
+
agentWeightMultiplier?: number | undefined;
|
|
77
|
+
/** Maximum tokens for ability injection */
|
|
78
|
+
maxAbilityTokens?: number | undefined;
|
|
79
|
+
/** Topic for ability matching */
|
|
80
|
+
topic?: string | undefined;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Resolve a single participant to execution config
|
|
84
|
+
*/
|
|
85
|
+
export declare function resolveParticipant(participant: DiscussionParticipant, options?: ParticipantResolverOptions): Promise<ResolvedParticipant>;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve multiple participants
|
|
88
|
+
*/
|
|
89
|
+
export declare function resolveParticipants(participants: DiscussionParticipant[], options?: ParticipantResolverOptions): Promise<ResolvedParticipant[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Convert legacy string provider list to participant array
|
|
92
|
+
*/
|
|
93
|
+
export declare function providersToParticipants(providers: string[]): DiscussionParticipant[];
|
|
94
|
+
/**
|
|
95
|
+
* Parse participant string (e.g., "claude" or "reviewer:agent")
|
|
96
|
+
*/
|
|
97
|
+
export declare function parseParticipantString(input: string): DiscussionParticipant;
|
|
98
|
+
/**
|
|
99
|
+
* Parse participant list from CLI input
|
|
100
|
+
* Format: "claude,glm,reviewer:agent,security:agent"
|
|
101
|
+
*/
|
|
102
|
+
export declare function parseParticipantList(input: string): DiscussionParticipant[];
|
|
103
|
+
/**
|
|
104
|
+
* Get provider IDs from resolved participants
|
|
105
|
+
*/
|
|
106
|
+
export declare function getProviderIds(participants: ResolvedParticipant[]): string[];
|
|
107
|
+
/**
|
|
108
|
+
* Build enhanced system prompt with agent context
|
|
109
|
+
*/
|
|
110
|
+
export declare function buildEnhancedSystemPrompt(basePrompt: string, participant: ResolvedParticipant): string;
|
|
111
|
+
//# sourceMappingURL=participant-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"participant-resolver.d.ts","sourceRoot":"","sources":["../src/participant-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IAEX,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IAEjB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzC,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KAC3D,GAAG,SAAS,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,CACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,aAAa,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAE9C,8CAA8C;IAC9C,cAAc,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEhD,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3C,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAiBD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,qBAAqB,EAClC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAqF9B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,qBAAqB,EAAE,EACrC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAEpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQ3E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAM3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAa5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB,GAC/B,MAAM,CAmBR"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Participant Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves discussion participants (providers and agents) to their execution config.
|
|
5
|
+
* Handles agent-to-provider mapping using providerAffinity.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-DISC-640: Agent uses providerAffinity.preferred[0] for provider selection
|
|
9
|
+
* - INV-DISC-641: Agent abilities injected with max 10K tokens
|
|
10
|
+
* - INV-DISC-642: Agent weight multiplier between 0.5-3.0 (default 1.5)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Default provider when agent has no preference
|
|
14
|
+
*/
|
|
15
|
+
const DEFAULT_PROVIDER = 'claude';
|
|
16
|
+
/**
|
|
17
|
+
* Default agent weight multiplier (INV-DISC-642)
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_AGENT_WEIGHT = 1.5;
|
|
20
|
+
/**
|
|
21
|
+
* Maximum tokens for ability injection (INV-DISC-641)
|
|
22
|
+
*/
|
|
23
|
+
const DEFAULT_MAX_ABILITY_TOKENS = 10000;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a single participant to execution config
|
|
26
|
+
*/
|
|
27
|
+
export async function resolveParticipant(participant, options = {}) {
|
|
28
|
+
const { agentRegistry, abilityManager, defaultProvider = DEFAULT_PROVIDER, agentWeightMultiplier = DEFAULT_AGENT_WEIGHT, maxAbilityTokens = DEFAULT_MAX_ABILITY_TOKENS, topic = '', } = options;
|
|
29
|
+
// Provider participant - simple resolution
|
|
30
|
+
if (participant.type === 'provider') {
|
|
31
|
+
return {
|
|
32
|
+
id: participant.id,
|
|
33
|
+
isAgent: false,
|
|
34
|
+
providerId: participant.id,
|
|
35
|
+
weightMultiplier: 1.0, // Base weight for providers
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Agent participant - resolve via registry
|
|
39
|
+
const agentId = participant.id;
|
|
40
|
+
// If no registry, fall back to default provider with agent weight
|
|
41
|
+
if (!agentRegistry) {
|
|
42
|
+
return {
|
|
43
|
+
id: agentId,
|
|
44
|
+
isAgent: true,
|
|
45
|
+
providerId: defaultProvider,
|
|
46
|
+
agentId,
|
|
47
|
+
weightMultiplier: agentWeightMultiplier,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Look up agent
|
|
51
|
+
const agent = await agentRegistry.get(agentId);
|
|
52
|
+
if (!agent) {
|
|
53
|
+
// Agent not found, fall back to default provider
|
|
54
|
+
return {
|
|
55
|
+
id: agentId,
|
|
56
|
+
isAgent: true,
|
|
57
|
+
providerId: defaultProvider,
|
|
58
|
+
agentId,
|
|
59
|
+
weightMultiplier: agentWeightMultiplier,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// INV-DISC-640: Use providerAffinity.preferred[0] or fallback to default
|
|
63
|
+
const providerId = agent.providerAffinity?.preferred?.[0] ?? defaultProvider;
|
|
64
|
+
// Get temperature override if configured
|
|
65
|
+
const temperatureOverride = agent.providerAffinity?.temperatureOverrides?.[providerId]
|
|
66
|
+
?? agent.temperature;
|
|
67
|
+
// Build resolved participant
|
|
68
|
+
const resolved = {
|
|
69
|
+
id: agentId,
|
|
70
|
+
isAgent: true,
|
|
71
|
+
providerId,
|
|
72
|
+
agentId,
|
|
73
|
+
systemPromptOverride: agent.systemPrompt,
|
|
74
|
+
temperatureOverride,
|
|
75
|
+
weightMultiplier: agentWeightMultiplier,
|
|
76
|
+
};
|
|
77
|
+
// INV-DISC-641: Inject abilities if ability manager available
|
|
78
|
+
if (abilityManager && topic) {
|
|
79
|
+
try {
|
|
80
|
+
const injection = await abilityManager.injectAbilities(agentId, topic, [], // coreAbilities
|
|
81
|
+
{ maxAbilities: 5, maxTokens: maxAbilityTokens });
|
|
82
|
+
if (injection.combinedContent) {
|
|
83
|
+
resolved.abilityContent = injection.combinedContent;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Ability injection failed, continue without abilities
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return resolved;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Resolve multiple participants
|
|
94
|
+
*/
|
|
95
|
+
export async function resolveParticipants(participants, options = {}) {
|
|
96
|
+
const resolved = await Promise.all(participants.map(p => resolveParticipant(p, options)));
|
|
97
|
+
return resolved;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Convert legacy string provider list to participant array
|
|
101
|
+
*/
|
|
102
|
+
export function providersToParticipants(providers) {
|
|
103
|
+
return providers.map(id => ({ type: 'provider', id }));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parse participant string (e.g., "claude" or "reviewer:agent")
|
|
107
|
+
*/
|
|
108
|
+
export function parseParticipantString(input) {
|
|
109
|
+
const parts = input.split(':');
|
|
110
|
+
if (parts.length === 2 && parts[1] === 'agent') {
|
|
111
|
+
return { type: 'agent', id: parts[0] };
|
|
112
|
+
}
|
|
113
|
+
return { type: 'provider', id: parts[0] };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Parse participant list from CLI input
|
|
117
|
+
* Format: "claude,glm,reviewer:agent,security:agent"
|
|
118
|
+
*/
|
|
119
|
+
export function parseParticipantList(input) {
|
|
120
|
+
return input
|
|
121
|
+
.split(',')
|
|
122
|
+
.map(s => s.trim())
|
|
123
|
+
.filter(s => s.length > 0)
|
|
124
|
+
.map(parseParticipantString);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get provider IDs from resolved participants
|
|
128
|
+
*/
|
|
129
|
+
export function getProviderIds(participants) {
|
|
130
|
+
// Unique provider IDs preserving order
|
|
131
|
+
const seen = new Set();
|
|
132
|
+
const result = [];
|
|
133
|
+
for (const p of participants) {
|
|
134
|
+
if (!seen.has(p.providerId)) {
|
|
135
|
+
seen.add(p.providerId);
|
|
136
|
+
result.push(p.providerId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Build enhanced system prompt with agent context
|
|
143
|
+
*/
|
|
144
|
+
export function buildEnhancedSystemPrompt(basePrompt, participant) {
|
|
145
|
+
const parts = [];
|
|
146
|
+
// Add ability content first (provides domain knowledge)
|
|
147
|
+
if (participant.abilityContent) {
|
|
148
|
+
parts.push(participant.abilityContent);
|
|
149
|
+
parts.push('---');
|
|
150
|
+
}
|
|
151
|
+
// Add agent system prompt
|
|
152
|
+
if (participant.systemPromptOverride) {
|
|
153
|
+
parts.push(participant.systemPromptOverride);
|
|
154
|
+
parts.push('---');
|
|
155
|
+
}
|
|
156
|
+
// Add base system prompt
|
|
157
|
+
parts.push(basePrompt);
|
|
158
|
+
return parts.join('\n\n');
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=participant-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"participant-resolver.js","sourceRoot":"","sources":["../src/participant-resolver.ts"],"names":[],"mappings":"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"}
|