@zhixuan92/multi-model-agent-mcp 0.3.1 → 1.0.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 +30 -28
- package/dist/cli.d.ts +19 -17
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +233 -81
- package/dist/cli.js.map +1 -1
- package/dist/headline.d.ts +30 -0
- package/dist/headline.d.ts.map +1 -0
- package/dist/headline.js +73 -0
- package/dist/headline.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/routing/render-provider-routing-matrix.d.ts +1 -1
- package/dist/routing/render-provider-routing-matrix.d.ts.map +1 -1
- package/dist/routing/render-provider-routing-matrix.js +37 -65
- package/dist/routing/render-provider-routing-matrix.js.map +1 -1
- package/dist/tools/audit-document.d.ts +19 -0
- package/dist/tools/audit-document.d.ts.map +1 -0
- package/dist/tools/audit-document.js +30 -0
- package/dist/tools/audit-document.js.map +1 -0
- package/dist/tools/debug-task.d.ts +15 -0
- package/dist/tools/debug-task.d.ts.map +1 -0
- package/dist/tools/debug-task.js +33 -0
- package/dist/tools/debug-task.js.map +1 -0
- package/dist/tools/execute-plan-task.d.ts +26 -0
- package/dist/tools/execute-plan-task.d.ts.map +1 -0
- package/dist/tools/execute-plan-task.js +49 -0
- package/dist/tools/execute-plan-task.js.map +1 -0
- package/dist/tools/review-code.d.ts +19 -0
- package/dist/tools/review-code.d.ts.map +1 -0
- package/dist/tools/review-code.js +31 -0
- package/dist/tools/review-code.js.map +1 -0
- package/dist/tools/verify-work.d.ts +14 -0
- package/dist/tools/verify-work.d.ts.map +1 -0
- package/dist/tools/verify-work.js +32 -0
- package/dist/tools/verify-work.js.map +1 -0
- package/package.json +22 -2
package/dist/cli.js
CHANGED
|
@@ -13,6 +13,12 @@ import { parseConfig } from '@zhixuan92/multi-model-agent-core/config/schema';
|
|
|
13
13
|
import { runTasks } from '@zhixuan92/multi-model-agent-core/run-tasks';
|
|
14
14
|
import { InMemoryContextBlockStore } from '@zhixuan92/multi-model-agent-core';
|
|
15
15
|
import { renderProviderRoutingMatrix } from './routing/render-provider-routing-matrix.js';
|
|
16
|
+
import { composeHeadline } from './headline.js';
|
|
17
|
+
import { registerExecutePlanTask } from './tools/execute-plan-task.js';
|
|
18
|
+
import { registerAuditDocument } from './tools/audit-document.js';
|
|
19
|
+
import { registerDebugTask } from './tools/debug-task.js';
|
|
20
|
+
import { registerReviewCode } from './tools/review-code.js';
|
|
21
|
+
import { registerVerifyWork } from './tools/verify-work.js';
|
|
16
22
|
export const SERVER_NAME = 'multi-model-agent';
|
|
17
23
|
const DEFAULT_LARGE_RESPONSE_THRESHOLD_CHARS = 65_536;
|
|
18
24
|
function parsePositiveInt(s) {
|
|
@@ -45,38 +51,35 @@ export function computeBatchProgress(results) {
|
|
|
45
51
|
export function computeAggregateCost(results) {
|
|
46
52
|
let totalActualCostUSD = 0;
|
|
47
53
|
let totalSavedCostUSD = 0;
|
|
48
|
-
let actualCostUnavailableTasks = 0;
|
|
49
|
-
let savedCostUnavailableTasks = 0;
|
|
50
54
|
for (const r of results) {
|
|
51
|
-
if (r.usage.costUSD
|
|
52
|
-
actualCostUnavailableTasks += 1;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
+
if (r.usage.costUSD !== null && r.usage.costUSD !== undefined) {
|
|
55
56
|
totalActualCostUSD += r.usage.costUSD;
|
|
56
57
|
}
|
|
57
|
-
if (r.usage.savedCostUSD
|
|
58
|
-
savedCostUnavailableTasks += 1;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
58
|
+
if (r.usage.savedCostUSD !== null && r.usage.savedCostUSD !== undefined) {
|
|
61
59
|
totalSavedCostUSD += r.usage.savedCostUSD;
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
62
|
return {
|
|
65
63
|
totalActualCostUSD,
|
|
66
64
|
totalSavedCostUSD,
|
|
67
|
-
actualCostUnavailableTasks,
|
|
68
|
-
savedCostUnavailableTasks,
|
|
69
65
|
};
|
|
70
66
|
}
|
|
71
67
|
function buildFullResponse(batchId, tasks, results, aggregates) {
|
|
72
68
|
return {
|
|
69
|
+
schemaVersion: '1.0.0',
|
|
73
70
|
batchId,
|
|
74
71
|
mode: 'full',
|
|
72
|
+
headline: composeHeadline({
|
|
73
|
+
timings: aggregates.timings,
|
|
74
|
+
batchProgress: aggregates.batchProgress,
|
|
75
|
+
aggregateCost: aggregates.aggregateCost,
|
|
76
|
+
taskSpecs: tasks,
|
|
77
|
+
}),
|
|
75
78
|
timings: aggregates.timings,
|
|
76
79
|
batchProgress: aggregates.batchProgress,
|
|
77
80
|
aggregateCost: aggregates.aggregateCost,
|
|
78
81
|
results: results.map((r, i) => ({
|
|
79
|
-
|
|
82
|
+
agentType: tasks[i].agentType ?? '(auto)',
|
|
80
83
|
status: r.status,
|
|
81
84
|
output: r.output,
|
|
82
85
|
turns: r.turns,
|
|
@@ -87,38 +90,51 @@ function buildFullResponse(batchId, tasks, results, aggregates) {
|
|
|
87
90
|
toolCalls: r.toolCalls,
|
|
88
91
|
escalationLog: r.escalationLog,
|
|
89
92
|
usage: r.usage,
|
|
90
|
-
|
|
93
|
+
workerStatus: r.workerStatus,
|
|
94
|
+
specReviewStatus: r.specReviewStatus,
|
|
95
|
+
qualityReviewStatus: r.qualityReviewStatus,
|
|
96
|
+
agents: r.agents,
|
|
97
|
+
implementationReport: r.implementationReport,
|
|
98
|
+
specReviewReport: r.specReviewReport,
|
|
99
|
+
qualityReviewReport: r.qualityReviewReport,
|
|
91
100
|
...(r.error && { error: r.error }),
|
|
92
101
|
})),
|
|
93
102
|
};
|
|
94
103
|
}
|
|
95
104
|
function buildSummaryResponse(batchId, tasks, results, opts) {
|
|
96
105
|
return {
|
|
106
|
+
schemaVersion: '1.0.0',
|
|
97
107
|
batchId,
|
|
98
108
|
mode: 'summary',
|
|
109
|
+
headline: composeHeadline({
|
|
110
|
+
timings: opts.timings,
|
|
111
|
+
batchProgress: opts.batchProgress,
|
|
112
|
+
aggregateCost: opts.aggregateCost,
|
|
113
|
+
taskSpecs: tasks,
|
|
114
|
+
}),
|
|
99
115
|
...(opts.autoEscaped && {
|
|
100
|
-
note: `Combined output was ${opts.totalOutputChars} chars (threshold: ${opts.threshold}). Auto-switched to summary mode. Use
|
|
116
|
+
note: `Combined output was ${opts.totalOutputChars} chars (threshold: ${opts.threshold}). Auto-switched to summary mode. Use get_batch_slice({ batchId, slice: 'output', taskIndex }) to fetch individual task outputs, or get_batch_slice({ batchId, slice: 'detail', taskIndex }) for per-task metadata.`,
|
|
101
117
|
}),
|
|
102
118
|
timings: opts.timings,
|
|
103
119
|
batchProgress: opts.batchProgress,
|
|
104
120
|
aggregateCost: opts.aggregateCost,
|
|
105
121
|
results: results.map((r, i) => ({
|
|
106
122
|
taskIndex: i,
|
|
107
|
-
|
|
123
|
+
agentType: tasks[i].agentType ?? '(auto)',
|
|
108
124
|
status: r.status,
|
|
109
|
-
outputLength: r.output.length,
|
|
110
|
-
outputSha256: sha256Hex(r.output),
|
|
111
125
|
turns: r.turns,
|
|
112
126
|
durationMs: r.durationMs,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
directoriesListed: r.directoriesListed,
|
|
116
|
-
toolCalls: r.toolCalls,
|
|
117
|
-
escalationLog: r.escalationLog,
|
|
127
|
+
outputLength: r.output.length,
|
|
128
|
+
outputSha256: sha256Hex(r.output),
|
|
118
129
|
usage: r.usage,
|
|
119
|
-
|
|
130
|
+
escalationChain: r.escalationLog.map((a) => `${a.provider}:${a.status}`),
|
|
131
|
+
workerStatus: r.workerStatus,
|
|
132
|
+
specReviewStatus: r.specReviewStatus,
|
|
133
|
+
qualityReviewStatus: r.qualityReviewStatus,
|
|
120
134
|
...(r.error && { error: r.error }),
|
|
121
|
-
|
|
135
|
+
...(r.errorCode && { errorCode: r.errorCode }),
|
|
136
|
+
...(r.retryable !== undefined && { retryable: r.retryable }),
|
|
137
|
+
_fetchWith: `get_batch_slice({ batchId: "${batchId}", slice: "output", taskIndex: ${i} })`,
|
|
122
138
|
})),
|
|
123
139
|
};
|
|
124
140
|
}
|
|
@@ -133,37 +149,89 @@ function buildSummaryResponse(batchId, tasks, results, opts) {
|
|
|
133
149
|
const packageRequire = createRequire(import.meta.url);
|
|
134
150
|
const pkg = packageRequire('../package.json');
|
|
135
151
|
export const SERVER_VERSION = pkg.version;
|
|
136
|
-
export function buildTaskSchema(
|
|
152
|
+
export function buildTaskSchema(availableAgents) {
|
|
137
153
|
return z.object({
|
|
138
|
-
prompt: z.string().describe('
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
'
|
|
144
|
-
'
|
|
145
|
-
|
|
146
|
-
tools: z.enum(['none', 'full']).optional().describe('
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
'
|
|
156
|
-
'
|
|
154
|
+
prompt: z.string().describe('WHAT: The natural-language instruction that tells the sub-agent what task to perform.\n' +
|
|
155
|
+
'WHEN: Always required; this is the primary input for every task.\n' +
|
|
156
|
+
'DEFAULT: Required — no default, must be provided.\n' +
|
|
157
|
+
'INTERACTION: Concatenated with expanded context blocks (if contextBlockIds is set) before dispatch.'),
|
|
158
|
+
agentType: z.enum(availableAgents).optional().describe('WHAT: Selects which labor agent handles this task — standard (cheap, straightforward) or complex (expensive, harder reasoning).\n' +
|
|
159
|
+
'WHEN: Always declare explicitly. The parent decides whether this is standard or complex labor.\n' +
|
|
160
|
+
'DEFAULT: standard (when omitted, routes to the standard agent).\n' +
|
|
161
|
+
'INTERACTION: The system enforces capability floors — if the task requires web_search and standard lacks it, silently routes to complex.'),
|
|
162
|
+
tools: z.enum(['none', 'full']).optional().describe('WHAT: Controls whether the sub-agent has access to tool APIs (read, write, bash, etc).\n' +
|
|
163
|
+
'WHEN: Set to none when the task is purely prompt-only (e.g., translation, summarization).\n' +
|
|
164
|
+
'DEFAULT: full — agent has access to all configured tools.\n' +
|
|
165
|
+
'INTERACTION: When tools is none, the runner bypasses tool-capability checks even if the agent config declares tools.'),
|
|
166
|
+
maxTurns: z.number().int().positive().optional().describe('WHAT: Caps the number of agent loop turns (prompt → model → tool_calls → ...) before termination.\n' +
|
|
167
|
+
'WHEN: Use to bound execution length for tasks that risk running away (e.g., deep research).\n' +
|
|
168
|
+
'DEFAULT: 200 — inherited from server-level defaults if not specified.\n' +
|
|
169
|
+
'INTERACTION: When maxTurns is reached, the task terminates with status max_turns rather than ok.'),
|
|
170
|
+
timeoutMs: z.number().int().positive().optional().describe('WHAT: Wall-clock time limit in milliseconds for the entire task execution.\n' +
|
|
171
|
+
'WHEN: Use to prevent runaway tasks from consuming budget indefinitely.\n' +
|
|
172
|
+
'DEFAULT: 600000 (10 minutes) — inherited from server-level defaults if not specified.\n' +
|
|
173
|
+
'INTERACTION: When timeoutMs is reached, the task terminates with status timeout regardless of progress.'),
|
|
174
|
+
cwd: z.string().optional().describe('WHAT: Working directory that file/shell tools resolve relative to for this task.\n' +
|
|
175
|
+
'WHEN: Set when tasks run in different directories or you need isolation from the server process cwd.\n' +
|
|
176
|
+
'DEFAULT: Server process cwd (inherited from the running process environment).\n' +
|
|
177
|
+
'INTERACTION: sandboxPolicy further constrains what paths are accessible; cwd does not bypass sandbox restrictions.'),
|
|
178
|
+
effort: z.enum(['none', 'low', 'medium', 'high']).optional().describe('WHAT: Controls how much reasoning effort the model applies before responding.\n' +
|
|
179
|
+
'WHEN: Higher effort costs more but produces better results for complex tasks; none skips extended reasoning.\n' +
|
|
180
|
+
'DEFAULT: low — minimal reasoning unless the task demands more.\n' +
|
|
181
|
+
'INTERACTION: effort maps to model-side extended thinking settings; not all providers support all effort levels.'),
|
|
182
|
+
sandboxPolicy: z.enum(['none', 'cwd-only']).optional().describe('WHAT: File-system confinement policy controlling what paths the sub-agent can access.\n' +
|
|
183
|
+
'WHEN: Set to cwd-only when untrusted prompts could attempt path traversal attacks.\n' +
|
|
184
|
+
'DEFAULT: cwd-only — agent restricted to cwd and descendants only.\n' +
|
|
185
|
+
'INTERACTION: sandboxPolicy is enforced before tool execution; cwd-only does not restrict network access.'),
|
|
186
|
+
requiredCapabilities: z.array(z.string()).optional().describe('WHAT: List of capability identifiers the assigned agent must possess to handle this task.\n' +
|
|
187
|
+
'WHEN: Use when a task requires specific abilities like web_search or web_fetch that not all agents have.\n' +
|
|
188
|
+
'DEFAULT: No required capabilities (any agent can be selected).\n' +
|
|
189
|
+
'INTERACTION: If no agent satisfies requiredCapabilities, the batch dispatch returns a no_capable_agent error.'),
|
|
190
|
+
contextBlockIds: z.array(z.string()).optional().describe('WHAT: References to context blocks previously stored via register_context_block.\n' +
|
|
191
|
+
'WHEN: Use to inject long briefing material without re-transmitting it across multiple calls.\n' +
|
|
192
|
+
'DEFAULT: No context blocks — prompt is sent as-is.\n' +
|
|
193
|
+
'INTERACTION: Server resolves each id in order, concatenates content separated by "\\n\\n---\\n\\n", and prepends to prompt before dispatch.'),
|
|
157
194
|
expectedCoverage: z.object({
|
|
158
|
-
minSections: z.number().int().positive().optional()
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
195
|
+
minSections: z.number().int().positive().optional().describe('WHAT: Minimum number of output sections the task must produce to be considered complete.\n' +
|
|
196
|
+
'WHEN: Use when tasks should produce multi-section deliverables (reports, docs with distinct parts).\n' +
|
|
197
|
+
'DEFAULT: No minimum — not required to pass coverage check.\n' +
|
|
198
|
+
'INTERACTION: Checked after syntactic completion heuristics; if minSections is set but not met, task may be marked incomplete.'),
|
|
199
|
+
sectionPattern: z.string().optional().describe('WHAT: Regex pattern applied with multiline flag to identify section headings in the output.\n' +
|
|
200
|
+
'WHEN: Use when output sections must follow a specific heading format (e.g., markdown ## headers).\n' +
|
|
201
|
+
'DEFAULT: No pattern — section boundaries are inferred only by minSections count.\n' +
|
|
202
|
+
'INTERACTION: Each match increments the section count toward minSections; used for coverage validation.'),
|
|
203
|
+
requiredMarkers: z.array(z.string()).optional().describe('WHAT: Substrings that must all appear somewhere in the output for coverage to pass.\n' +
|
|
204
|
+
'WHEN: Use when output must contain specific terms, filenames, or anchors (e.g., "Conclusion", "Usage").\n' +
|
|
205
|
+
'DEFAULT: No required markers — coverage passes on syntactic completion alone.\n' +
|
|
206
|
+
'INTERACTION: If any requiredMarkers entry is absent, coverage check fails and task may be marked incomplete.'),
|
|
207
|
+
}).optional().describe('WHAT: Caller-declared output expectations used for semantic completeness checking beyond syntactic heuristics.\n' +
|
|
208
|
+
'WHEN: Use when output has enumerable deliverables (sections, keywords, specific values) that the model should produce.\n' +
|
|
209
|
+
'DEFAULT: No expected coverage — task is judged complete purely on syntactic signals (has output, has terminator).\n' +
|
|
210
|
+
'INTERACTION: expectedCoverage results are authoritative alongside skipCompletionHeuristic; both must pass for the task to be deemed complete.'),
|
|
211
|
+
skipCompletionHeuristic: z.boolean().optional().describe('WHAT: Disables the no_terminator and fragment short-output heuristics for this task.\n' +
|
|
212
|
+
'WHEN: Use for tight-format outputs (single-line verdicts, CSV rows, opaque ids) that break prose heuristics.\n' +
|
|
213
|
+
'DEFAULT: false — short-output heuristics are active.\n' +
|
|
214
|
+
'INTERACTION: The empty and thinking_only degeneracy checks still fire independently; expectedCoverage passing remains authoritative when set.'),
|
|
215
|
+
parentModel: z.string().optional().describe('WHAT: Identifier for the parent session model used to estimate saved cost when reusing prior context.\n' +
|
|
216
|
+
'WHEN: Set when you want accurate savedCostUSD figures in batch results and have the parent session model info.\n' +
|
|
217
|
+
'DEFAULT: No parent model — savedCostUSD will be null in results.\n' +
|
|
218
|
+
'INTERACTION: Used to look up parent context length for context-length-based cost estimation; influences headline ROI display.'),
|
|
219
|
+
maxCostUSD: z.number().nonnegative().optional().describe('WHAT: Cost ceiling in USD for this task\'s execution.\n' +
|
|
220
|
+
'WHEN: Use when you want to cap spend on expensive operations or prevent runaway token usage.\n' +
|
|
221
|
+
'DEFAULT: No cost ceiling — unlimited spend allowed.\n' +
|
|
222
|
+
'INTERACTION: When maxCostUSD is reached, the task terminates with status cost_exceeded rather than ok.'),
|
|
223
|
+
reviewPolicy: z.enum(['full', 'spec_only', 'off']).optional().describe('WHAT: Quality review policy controlling whether spec and quality review steps run after task completion.\n' +
|
|
224
|
+
'WHEN: Set to off for fire-and-forget tasks; set to spec_only to skip quality review but keep spec review.\n' +
|
|
225
|
+
'DEFAULT: full — both spec review and quality review run when configured.\n' +
|
|
226
|
+
'INTERACTION: reviewPolicy is enforced at the runner level; off skips all review even if reviewPolicy is configured in defaults.'),
|
|
227
|
+
maxReviewRounds: z.number().int().nonnegative().optional().describe('WHAT: Maximum number of spec review rework rounds before the loop terminates.\n' +
|
|
228
|
+
'WHEN: Use to bound iterative refinement cycles for tasks that could otherwise run indefinitely.\n' +
|
|
229
|
+
'DEFAULT: 2 rework rounds — inherited from server-level defaults if not specified.\n' +
|
|
230
|
+
'INTERACTION: When maxReviewRounds is exhausted, the task moves to the next step regardless of spec review outcome.'),
|
|
231
|
+
briefQualityPolicy: z.enum(['normalize', 'strict', 'warn', 'off']).optional().describe('WHAT: Controls how readiness evaluation handles vague briefs before dispatch.\n' +
|
|
232
|
+
'WHEN: Set to normalize to auto-enrich vague briefs; strict to refuse them; warn to evaluate and surface warnings; off to skip.\n' +
|
|
233
|
+
'DEFAULT: warn — readiness evaluates every brief and surfaces warnings, but does not block dispatch.\n' +
|
|
234
|
+
'INTERACTION: When strict, a vague brief returns status brief_too_vague without spending any tokens. When normalize, the system enriches the brief via a normalization pass before dispatch.'),
|
|
167
235
|
});
|
|
168
236
|
}
|
|
169
237
|
/**
|
|
@@ -198,9 +266,9 @@ export function buildTaskSchema(availableProviders) {
|
|
|
198
266
|
const BATCH_TTL_MS = 30 * 60 * 1000;
|
|
199
267
|
const BATCH_MAX = 100;
|
|
200
268
|
export function buildMcpServer(config, options) {
|
|
201
|
-
const
|
|
202
|
-
if (
|
|
203
|
-
throw new Error('buildMcpServer requires at least one configured
|
|
269
|
+
const agentKeys = config.agents ? Object.keys(config.agents) : [];
|
|
270
|
+
if (agentKeys.length === 0) {
|
|
271
|
+
throw new Error('buildMcpServer requires at least one configured agent.');
|
|
204
272
|
}
|
|
205
273
|
// Resolve the threshold once at server startup
|
|
206
274
|
const envThreshold = parsePositiveInt(process.env.MULTI_MODEL_LARGE_RESPONSE_THRESHOLD_CHARS);
|
|
@@ -211,6 +279,7 @@ export function buildMcpServer(config, options) {
|
|
|
211
279
|
?? config.defaults.largeResponseThresholdChars
|
|
212
280
|
?? options?.largeResponseThresholdChars
|
|
213
281
|
?? DEFAULT_LARGE_RESPONSE_THRESHOLD_CHARS;
|
|
282
|
+
const runTasksImpl = options?._testRunTasksOverride ?? runTasks;
|
|
214
283
|
const server = new McpServer({
|
|
215
284
|
name: SERVER_NAME,
|
|
216
285
|
version: SERVER_VERSION,
|
|
@@ -248,12 +317,12 @@ export function buildMcpServer(config, options) {
|
|
|
248
317
|
batchCache.delete(id);
|
|
249
318
|
batchCache.set(id, entry);
|
|
250
319
|
};
|
|
251
|
-
const
|
|
320
|
+
const availableAgents = agentKeys;
|
|
252
321
|
server.tool('delegate_tasks', renderProviderRoutingMatrix(config), {
|
|
253
|
-
tasks: z.array(buildTaskSchema(
|
|
322
|
+
tasks: z.array(buildTaskSchema(availableAgents)).describe('Array of tasks to execute in parallel'),
|
|
254
323
|
responseMode: z.enum(['full', 'summary', 'auto']).optional().describe(`How to shape the response envelope. 'full' (default via 'auto') includes each task's output inline. ` +
|
|
255
324
|
`'summary' returns per-task metadata + outputLength + outputSha256, with full outputs fetchable via ` +
|
|
256
|
-
`
|
|
325
|
+
`get_batch_slice. 'auto' (the default) returns 'full' when combined output fits under the server's ` +
|
|
257
326
|
`threshold (default 65 KB; configurable via env / config / buildMcpServer option), otherwise 'summary' ` +
|
|
258
327
|
`with an auto-escape note.`),
|
|
259
328
|
}, async ({ tasks, responseMode = 'auto' }, extra) => {
|
|
@@ -336,14 +405,14 @@ export function buildMcpServer(config, options) {
|
|
|
336
405
|
const batchStartMs = Date.now();
|
|
337
406
|
let results = [];
|
|
338
407
|
try {
|
|
339
|
-
results = await
|
|
408
|
+
results = await runTasksImpl(tasks, config, {
|
|
340
409
|
onProgress: sendProgress,
|
|
341
410
|
runtime: { contextBlockStore },
|
|
342
411
|
});
|
|
343
412
|
}
|
|
344
413
|
finally {
|
|
345
414
|
// Always attach `results ?? []` so a mid-flight throw does not leave
|
|
346
|
-
// a dangling batchCache entry that `
|
|
415
|
+
// a dangling batchCache entry that `get_batch_slice` can't distinguish
|
|
347
416
|
// from "dispatch still in progress". Per spec §3.5 / §3.9 item 3.
|
|
348
417
|
const batchEntry = batchCache.get(batchId);
|
|
349
418
|
if (batchEntry)
|
|
@@ -422,12 +491,12 @@ export function buildMcpServer(config, options) {
|
|
|
422
491
|
}
|
|
423
492
|
const subset = taskIndices.map((i) => batch.tasks[i]);
|
|
424
493
|
// Create a fresh batch for the retried tasks so the original batch
|
|
425
|
-
// entry is preserved and
|
|
494
|
+
// entry is preserved and get_batch_slice can still retrieve it.
|
|
426
495
|
const retryBatchId = rememberBatch(subset);
|
|
427
496
|
const batchStartMs = Date.now();
|
|
428
497
|
let results = [];
|
|
429
498
|
try {
|
|
430
|
-
results = await
|
|
499
|
+
results = await runTasksImpl(subset, config, {
|
|
431
500
|
runtime: { contextBlockStore },
|
|
432
501
|
});
|
|
433
502
|
}
|
|
@@ -471,37 +540,111 @@ export function buildMcpServer(config, options) {
|
|
|
471
540
|
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
472
541
|
};
|
|
473
542
|
});
|
|
474
|
-
server.tool('
|
|
543
|
+
server.tool('get_batch_slice', `Retrieve a specific "slice" of data from a previous delegate_tasks batch.
|
|
475
544
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
545
|
+
Three slices are available:
|
|
546
|
+
- \`output\`: The full text output of a specific task (requires taskIndex).
|
|
547
|
+
- \`detail\`: Per-task execution details including toolCalls, filesRead/Written/Listed,
|
|
548
|
+
escalationLog, review statuses (workerStatus, specReviewStatus,
|
|
549
|
+
qualityReviewStatus), agents provenance, and implementation/spec/quality reports
|
|
550
|
+
(requires taskIndex).
|
|
551
|
+
- \`telemetry\`: Batch-wide ROI telemetry envelope with headline, timings, batchProgress,
|
|
552
|
+
and aggregateCost (taskIndex not needed).
|
|
479
553
|
|
|
480
554
|
Batches are cached in memory per MCP server instance with a 30-minute TTL from creation
|
|
481
555
|
and a 100-entry LRU cap. Access touches the LRU order but does not refresh TTL. If the
|
|
482
556
|
batch is expired or evicted, re-dispatch via delegate_tasks with the full specs.`, {
|
|
483
557
|
batchId: z.string().describe('Batch id returned from a previous delegate_tasks call'),
|
|
484
|
-
|
|
485
|
-
|
|
558
|
+
slice: z.enum(['output', 'detail', 'telemetry']).describe('Which slice to retrieve'),
|
|
559
|
+
taskIndex: z.number().int().nonnegative().optional().describe('Zero-based index of the task (required for output and detail slices)'),
|
|
560
|
+
}, async ({ batchId, slice, taskIndex }) => {
|
|
486
561
|
const batch = batchCache.get(batchId);
|
|
487
562
|
if (!batch || batch.expiresAt < Date.now()) {
|
|
488
563
|
if (batch)
|
|
489
564
|
batchCache.delete(batchId);
|
|
490
565
|
throw new Error(`batch "${batchId}" is unknown or expired — re-dispatch with full task specs via delegate_tasks`);
|
|
491
566
|
}
|
|
492
|
-
// Touch LRU order but NOT TTL
|
|
493
567
|
touchBatch(batchId, batch);
|
|
494
568
|
if (batch.results === undefined) {
|
|
495
|
-
throw new Error(`batch "${batchId}" has no
|
|
569
|
+
throw new Error(`batch "${batchId}" has no results yet — the original dispatch may still be running`);
|
|
570
|
+
}
|
|
571
|
+
if (slice === 'output' || slice === 'detail') {
|
|
572
|
+
if (taskIndex === undefined) {
|
|
573
|
+
throw new Error(`taskIndex is required for slice "${slice}" — please specify which task to retrieve`);
|
|
574
|
+
}
|
|
575
|
+
if (taskIndex < 0 || taskIndex >= batch.results.length) {
|
|
576
|
+
throw new Error(`index ${taskIndex} is out of range for batch ${batchId} (size ${batch.results.length})`);
|
|
577
|
+
}
|
|
496
578
|
}
|
|
497
|
-
if (
|
|
498
|
-
|
|
579
|
+
if (slice === 'output') {
|
|
580
|
+
const result = batch.results[taskIndex];
|
|
581
|
+
return {
|
|
582
|
+
content: [{ type: 'text', text: JSON.stringify({ output: result.output }, null, 2) }],
|
|
583
|
+
};
|
|
499
584
|
}
|
|
500
|
-
|
|
585
|
+
if (slice === 'detail') {
|
|
586
|
+
const result = batch.results[taskIndex];
|
|
587
|
+
const task = batch.tasks[taskIndex];
|
|
588
|
+
const detail = {
|
|
589
|
+
batchId,
|
|
590
|
+
taskIndex: taskIndex,
|
|
591
|
+
agentType: task.agentType ?? '(auto)',
|
|
592
|
+
filesRead: result.filesRead,
|
|
593
|
+
filesWritten: result.filesWritten,
|
|
594
|
+
directoriesListed: result.directoriesListed ?? [],
|
|
595
|
+
toolCalls: result.toolCalls,
|
|
596
|
+
escalationLog: result.escalationLog,
|
|
597
|
+
workerStatus: result.workerStatus,
|
|
598
|
+
specReviewStatus: result.specReviewStatus,
|
|
599
|
+
qualityReviewStatus: result.qualityReviewStatus,
|
|
600
|
+
agents: result.agents,
|
|
601
|
+
implementationReport: result.implementationReport,
|
|
602
|
+
specReviewReport: result.specReviewReport,
|
|
603
|
+
qualityReviewReport: result.qualityReviewReport,
|
|
604
|
+
};
|
|
605
|
+
return {
|
|
606
|
+
content: [{ type: 'text', text: JSON.stringify(detail, null, 2) }],
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
// slice === 'telemetry'
|
|
610
|
+
const wallClockMsEstimate = Math.max(0, ...batch.results.map((r) => r.durationMs ?? 0));
|
|
611
|
+
const timings = computeTimings(wallClockMsEstimate, batch.results);
|
|
612
|
+
const batchProgress = computeBatchProgress(batch.results);
|
|
613
|
+
const aggregateCost = computeAggregateCost(batch.results);
|
|
614
|
+
const headline = composeHeadline({
|
|
615
|
+
timings,
|
|
616
|
+
batchProgress,
|
|
617
|
+
aggregateCost,
|
|
618
|
+
taskSpecs: batch.tasks,
|
|
619
|
+
});
|
|
620
|
+
const envelope = {
|
|
621
|
+
batchId,
|
|
622
|
+
headline,
|
|
623
|
+
timings,
|
|
624
|
+
batchProgress,
|
|
625
|
+
aggregateCost,
|
|
626
|
+
results: batch.results.map((r, i) => ({
|
|
627
|
+
taskIndex: i,
|
|
628
|
+
agentType: batch.tasks[i].agentType ?? '(auto)',
|
|
629
|
+
status: r.status,
|
|
630
|
+
turns: r.turns,
|
|
631
|
+
durationMs: r.durationMs,
|
|
632
|
+
usage: r.usage,
|
|
633
|
+
escalationChain: r.escalationLog.map((a) => `${a.provider}:${a.status}`),
|
|
634
|
+
...(r.error && { error: r.error }),
|
|
635
|
+
...(r.errorCode && { errorCode: r.errorCode }),
|
|
636
|
+
...(r.retryable !== undefined && { retryable: r.retryable }),
|
|
637
|
+
})),
|
|
638
|
+
};
|
|
501
639
|
return {
|
|
502
|
-
content: [{ type: 'text', text: JSON.stringify(
|
|
640
|
+
content: [{ type: 'text', text: JSON.stringify(envelope, null, 2) }],
|
|
503
641
|
};
|
|
504
642
|
});
|
|
643
|
+
registerExecutePlanTask(server, config);
|
|
644
|
+
registerAuditDocument(server, config);
|
|
645
|
+
registerDebugTask(server, config);
|
|
646
|
+
registerReviewCode(server, config);
|
|
647
|
+
registerVerifyWork(server, config);
|
|
505
648
|
return server;
|
|
506
649
|
}
|
|
507
650
|
/**
|
|
@@ -527,19 +670,28 @@ export async function discoverConfig() {
|
|
|
527
670
|
if (fs.existsSync(defaultPath)) {
|
|
528
671
|
return loadConfigFromFile(defaultPath);
|
|
529
672
|
}
|
|
530
|
-
// Fallback: empty config
|
|
531
|
-
return parseConfig({
|
|
673
|
+
// Fallback: empty config with required agents
|
|
674
|
+
return parseConfig({
|
|
675
|
+
agents: {
|
|
676
|
+
standard: { type: 'claude', model: 'claude-sonnet-4-6' },
|
|
677
|
+
complex: { type: 'claude', model: 'claude-sonnet-4-6' },
|
|
678
|
+
},
|
|
679
|
+
});
|
|
532
680
|
}
|
|
533
681
|
async function main() {
|
|
534
682
|
const args = process.argv.slice(2);
|
|
683
|
+
if (args[0] === '--help' || args[0] === '-h') {
|
|
684
|
+
console.log('Usage: multi-model-agent serve [--config <path>]');
|
|
685
|
+
process.exit(0);
|
|
686
|
+
}
|
|
535
687
|
if (args[0] !== 'serve') {
|
|
536
688
|
console.error('Usage: multi-model-agent serve [--config <path>]');
|
|
537
689
|
process.exit(1);
|
|
538
690
|
}
|
|
539
691
|
const config = await discoverConfig();
|
|
540
|
-
const
|
|
541
|
-
if (
|
|
542
|
-
console.error('No
|
|
692
|
+
const agentNames = config.agents ? Object.keys(config.agents) : [];
|
|
693
|
+
if (agentNames.length === 0) {
|
|
694
|
+
console.error('No agents configured. Create ~/.multi-model/config.json or pass --config <path>.');
|
|
543
695
|
process.exit(1);
|
|
544
696
|
}
|
|
545
697
|
const server = buildMcpServer(config);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BatchTimings, BatchProgress, BatchAggregateCost, TaskSpec } from '@zhixuan92/multi-model-agent-core';
|
|
2
|
+
/**
|
|
3
|
+
* Input for {@link composeHeadline}. `taskSpecs` is passed so the function can
|
|
4
|
+
* derive the `parentModel` label internally (set of distinct non-null values
|
|
5
|
+
* across the batch — see spec §1). Callers do not pre-compute the label.
|
|
6
|
+
*/
|
|
7
|
+
export interface ComposeHeadlineInput {
|
|
8
|
+
timings: BatchTimings;
|
|
9
|
+
batchProgress: BatchProgress;
|
|
10
|
+
aggregateCost: BatchAggregateCost;
|
|
11
|
+
taskSpecs: Pick<TaskSpec, 'parentModel'>[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Format a USD amount as `$X.YZ` — two decimals, no trailing-zero trimming
|
|
15
|
+
* beyond two. Matches the currency-rendering rule in spec §1.
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatCurrency(usd: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Format a duration in ms using unit-aware human-readable rules:
|
|
20
|
+
* d < 1m → "Ns" (sub-minute: seconds only)
|
|
21
|
+
* 1m ≤ d < 1h → "Nm Ns" (minute-scale: minutes and seconds, no zero-pad)
|
|
22
|
+
* d ≥ 1h → "Nh Nm" (hour-scale: hours and minutes, seconds dropped)
|
|
23
|
+
* Seconds are truncated (Math.floor) to avoid overstating wall-clock.
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatDuration(ms: number): string;
|
|
26
|
+
/**
|
|
27
|
+
* Compose the one-line ROI headline. See spec §1 for the decision table.
|
|
28
|
+
*/
|
|
29
|
+
export declare function composeHeadline(input: ComposeHeadlineInput): string;
|
|
30
|
+
//# sourceMappingURL=headline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headline.d.ts","sourceRoot":"","sources":["../src/headline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,mCAAmC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,kBAAkB,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAajD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAuDnE"}
|