@zhixuan92/multi-model-agent-mcp 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,21 +1,23 @@
1
1
  # @zhixuan92/multi-model-agent-mcp
2
2
 
3
- MCP stdio server for [`multi-model-agent`](https://github.com/zhixuan312/multi-model-agent). Exposes four tools `delegate_tasks`, `register_context_block`, `retry_tasks`, and `get_task_output` — that run work in parallel across multiple LLM providers (Claude, Codex, OpenAI-compatible) and auto-route each task to the cheapest provider that can handle it.
3
+ **Delegate work from your expensive parent-session model to a fleet of cheaper sub-agents, in parallel, from a single MCP tool call.**
4
4
 
5
- ## Features
5
+ This is the MCP stdio server for [`multi-model-agent`](https://github.com/zhixuan312/multi-model-agent). Your MCP client (Claude Code, Claude Desktop, Codex CLI, Cursor, …) spawns it on demand and gets six tools: `delegate_tasks`, `register_context_block`, `retry_tasks`, `get_task_output`, `get_task_detail`, and `get_batch_telemetry`. Each `delegate_tasks` call runs the supplied tasks in parallel across the providers you configured, auto-routing each to the cheapest one that has the required capabilities and quality tier — or pinning to a specific provider when you want control. Every response envelope carries a pre-computed `headline` field so the calling agent can narrate the ROI story in one line without any arithmetic.
6
6
 
7
- - **Auto-routing**: routes each task by capability filter → quality tier → cheapest qualifying provider
8
- - **Parallel execution**: independent tasks run concurrently via `Promise.all`
9
- - **Escalation on failure**: auto-routed tasks walk the full provider chain on failure, stopping at the first success
10
- - **Scratchpad salvage**: every termination path (incomplete, max_turns, timeout, error) populates output from the runner's scratchpad no bare failures
11
- - **Response pagination**: configurable `responseMode` (full/summary/auto) prevents Claude Code inline rendering limits on large combined outputs; use `get_task_output` to fetch individual results from summary-mode batches
12
- - **Declare enumerable-deliverable coverage** (`expectedCoverage`) and get semantic incompleteness detection via re-prompting
13
- - **Bounded post-hoc progress traces** (`includeProgressTrace`) for long-running task debugging
14
- - **Visible cost and time savings**: `parentModel` + `savedCostUSD` per task; `timings` and `aggregateCost` batch-level aggregates for delegation ROI visibility
7
+ ## Why use it
8
+
9
+ - **Cut cost and context.** Mechanical work (file edits, search, doc lookups) runs on cheap providers in a clean worker context. Your parent session's window stays lean and its judgment unblocked.
10
+ - **Run tasks in parallel.** Independent tasks in one call execute concurrently; wall-clock time drops with task count.
11
+ - **Mix providers in one config.** Claude, Codex, and any OpenAI-compatible endpoint (MiniMax, DeepSeek, Groq, local vLLM, …) live side-by-side.
12
+ - **Auto-route and escalate.** Capability filter tier filter cheapest qualifying provider; on failure the chain is walked automatically, stopping at the first success.
13
+ - **No bare failures.** Every termination path (incomplete, max_turns, timeout, error) populates `output` from the runner's scratchpad.
14
+ - **Sandboxed by default.** `cwd-only` file tool confinement and shell-disabled by default. Opt out per-task only when needed.
15
+ - **Pre-computed ROI headline**: every `delegate_tasks` response carries a `headline` field — a one-line summary of tasks, success rate, wall-clock, serial savings, cost, and ROI. Quote it verbatim; no arithmetic required.
16
+ - **Visible ROI.** Every response surfaces `aggregateCost`, `timings`, and per-task `savedCostUSD` for delegation savings.
15
17
 
16
18
  ## How it works
17
19
 
18
- You don't run this server yourself. Your MCP client (Claude Code, Claude Desktop, Cursor, …) spawns it over stdio whenever a session starts, using the config snippet below. No install step, no long-running process to manage — `npx` fetches the latest version on demand.
20
+ You don't run this server yourself. Your MCP client spawns it over stdio whenever a session starts, using the config snippets below. No install step, no long-running process to manage — `npx` fetches the latest version on demand each time.
19
21
 
20
22
  Requires Node `>= 22`.
21
23
 
@@ -83,6 +85,23 @@ claude mcp add multi-model-agent -s user \
83
85
 
84
86
  Without `-s user`, `claude mcp add` defaults to local scope and only registers the server in the current project.
85
87
 
88
+ ### Codex CLI
89
+
90
+ Codex CLI reads MCP servers from `~/.codex/config.toml`. Add this block:
91
+
92
+ ```toml
93
+ [mcp_servers.multi-model-agent]
94
+ command = "npx"
95
+ args = ["-y", "@zhixuan92/multi-model-agent-mcp", "serve"]
96
+
97
+ [mcp_servers.multi-model-agent.env]
98
+ OPENAI_API_KEY = "sk-..."
99
+ ANTHROPIC_API_KEY = "sk-ant-..."
100
+ MINIMAX_API_KEY = "..."
101
+ ```
102
+
103
+ Only set the env keys for the providers you actually configured. If you use `codex login`, the `codex` provider inside `multi-model-agent` reuses that auth automatically — but Claude, MiniMax, and other API-key providers still need to be passed through `[mcp_servers.multi-model-agent.env]` because the spawned MCP process does not inherit your shell environment. Restart `codex` after editing the file.
104
+
86
105
  ### Claude Desktop
87
106
 
88
107
  Add to `claude_desktop_config.json`:
@@ -105,6 +124,26 @@ Add to `claude_desktop_config.json`:
105
124
 
106
125
  Restart your MCP client after changing config.
107
126
 
127
+ ## Updating
128
+
129
+ `npx -y @zhixuan92/multi-model-agent-mcp serve` **always fetches the latest published version** on each spawn — you never need to run `npm update` or re-register the server to pick up a release.
130
+
131
+ To apply an update: **fully quit** your MCP client (⌘Q on macOS — just closing the window is not enough for Claude Code / Codex CLI because the MCP process lives with the session), then reopen. The next `delegate_tasks` call will spawn a fresh server from the latest npm version.
132
+
133
+ **Pinning a version** — if you need reproducibility (CI, shared team config, debugging a regression), add an explicit version tag to the spawn command:
134
+
135
+ ```bash
136
+ claude mcp add multi-model-agent -s user -- npx -y @zhixuan92/multi-model-agent-mcp@0.3.0 serve
137
+ ```
138
+
139
+ or in `config.toml` / `claude_desktop_config.json`:
140
+
141
+ ```toml
142
+ args = ["-y", "@zhixuan92/multi-model-agent-mcp@0.3.0", "serve"]
143
+ ```
144
+
145
+ **Breaking changes** — this project is on 0.x semver. MINOR bumps (`0.2.x → 0.3.0`) may change the config schema or the `delegate_tasks` tool input. PATCH bumps (`0.3.0 → 0.3.1`) are strictly backwards-compatible bug fixes. Skim the [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/HEAD/CHANGELOG.md) before adopting a new MINOR version and update `~/.multi-model/config.json` (and any stored `delegate_tasks` call shapes in your rules/prompts) if the changelog calls out a schema change. Provider auth, the config file path, and the MCP tool names themselves are stable across all 0.x releases.
146
+
108
147
  ## Recommended: delegation rule for Claude Code
109
148
 
110
149
  Claude Code's native `Task` / `Agent` subagents inherit your parent session's expensive model and eat its context window. We ship a drop-in rule file that teaches Claude Code **when** to delegate work through `delegate_tasks` instead — mechanical edits go to free providers, reasoning-tier work escalates only when needed, and independent tasks run in parallel.
@@ -152,12 +191,22 @@ Accepts an array of tasks and runs them concurrently. Auto-routes each task by c
152
191
  }
153
192
  ```
154
193
 
155
- Per-task fields: `prompt`, `tier`, `requiredCapabilities`, `provider?`, `tools?`, `maxTurns?`, `timeoutMs?`, `cwd?`, `effort?`, `sandboxPolicy?`, `contextBlockIds?`, `expectedCoverage?`, `includeProgressTrace?`, `parentModel?`.
194
+ Per-task fields: `prompt`, `tier`, `requiredCapabilities`, `provider?`, `tools?`, `maxTurns?`, `timeoutMs?`, `cwd?`, `effort?`, `sandboxPolicy?`, `contextBlockIds?`, `expectedCoverage?`, `includeProgressTrace?`, `parentModel?`, `skipCompletionHeuristic?`.
156
195
 
157
- `expectedCoverage` supports `minSections?`, `sectionPattern?`, and `requiredMarkers?`. `includeProgressTrace` opts a task into returning its bounded post-hoc progress trace. `parentModel` lets the server estimate `savedCostUSD` relative to the calling model.
196
+ `expectedCoverage` supports `minSections?`, `sectionPattern?`, and `requiredMarkers?`. `includeProgressTrace` opts a task into returning its bounded post-hoc progress trace. `parentModel` lets the server estimate `savedCostUSD` relative to the calling model. `skipCompletionHeuristic: true` disables the short-output completion heuristic in the runner's supervision layer — use for tight-format outputs (single-line verdicts, CSV rows, opaque identifiers) that don't follow prose conventions. The `empty` and `thinking_only` degeneracy checks still fire independently. If you also set `expectedCoverage`, the coverage contract is authoritative and the short-output heuristic is automatically skipped on coverage pass — you don't need both.
158
197
 
159
198
  Capabilities: `file_read`, `file_write`, `grep`, `glob`, `shell`, `web_search`, `web_fetch`.
160
199
 
200
+ ### ROI headline
201
+
202
+ Every `delegate_tasks` response envelope — both `full` mode and `summary` mode — carries a pre-computed `headline` field: a one-line summary of tasks / success rate / wall-clock / serial-savings / actual cost / saved cost / ROI multiplier (when a single baseline is declared). The calling agent is expected to quote it verbatim to the user after every dispatch, with no arithmetic. Example:
203
+
204
+ > *"11 tasks, 5/11 ok (45.5%), wall 5m 54s, saved ~18m 30s vs serial, $1.37 actual / $8.91 saved vs claude-opus-4-6 (7.5x ROI)"*
205
+
206
+ When a batch declares mixed parent models across its tasks, the ROI multiplier is suppressed (because a single ratio across different baselines is not coherent) and the cost clause reads `$X actual / $Y saved vs multiple baselines`. When no `parentModel` is declared, the cost clause collapses to `$X actual`.
207
+
208
+ If the primary response came back via summary mode or a client-side limit obscured the envelope, call `get_batch_telemetry(batchId)` — it returns the same `headline` plus the envelope with a ~600-byte header and ~200 bytes per task in `results[]`. A typical 10–30-task batch comes back at 2–7 KB, well under the client's tool-result size limit; very large batches (100+ tasks) scale linearly and may approach the limit.
209
+
161
210
  ## Security
162
211
 
163
212
  ### Sandbox enforcement
package/dist/cli.d.ts CHANGED
@@ -50,6 +50,7 @@ export declare function buildTaskSchema(availableProviders: [string, ...string[]
50
50
  sectionPattern: z.ZodOptional<z.ZodString>;
51
51
  requiredMarkers: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
52
  }, z.core.$strip>>;
53
+ skipCompletionHeuristic: z.ZodOptional<z.ZodBoolean>;
53
54
  includeProgressTrace: z.ZodOptional<z.ZodBoolean>;
54
55
  parentModel: z.ZodOptional<z.ZodString>;
55
56
  }, z.core.$strip>;
@@ -61,6 +62,8 @@ export declare function buildMcpServer(config: Parameters<typeof runTasks>[1], o
61
62
  * MULTI_MODEL_LARGE_RESPONSE_THRESHOLD_CHARS > config file
62
63
  * defaults.largeResponseThresholdChars > this option > default. */
63
64
  largeResponseThresholdChars?: number;
65
+ /** Internal test-only hook for injecting a stubbed runTasks implementation. */
66
+ _testRunTasksOverride?: typeof runTasks;
64
67
  }): McpServer;
65
68
  /**
66
69
  * MCP CLI config discovery (owned by MCP, not core):
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEvE,OAAO,KAAK,EACV,gBAAgB,EAGhB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAG3C,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAc/C,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,YAAY,CAItF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAgBxE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAyB7E;AAwFD,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,wBAAgB,eAAe,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwCxE;AAkCD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE;IACR;;;;;wEAKoE;IACpE,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,aAoXF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAuBhE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEvE,OAAO,KAAK,EACV,gBAAgB,EAGhB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAI3C,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAc/C,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,YAAY,CAItF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAgBxE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAyB7E;AAgGD,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,wBAAgB,eAAe,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6CxE;AAkCD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE;IACR;;;;;wEAKoE;IACpE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,OAAO,QAAQ,CAAC;CACzC,aAqeF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAuBhE"}
package/dist/cli.js CHANGED
@@ -13,6 +13,7 @@ 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';
16
17
  export const SERVER_NAME = 'multi-model-agent';
17
18
  const DEFAULT_LARGE_RESPONSE_THRESHOLD_CHARS = 65_536;
18
19
  function parsePositiveInt(s) {
@@ -72,6 +73,12 @@ function buildFullResponse(batchId, tasks, results, aggregates) {
72
73
  return {
73
74
  batchId,
74
75
  mode: 'full',
76
+ headline: composeHeadline({
77
+ timings: aggregates.timings,
78
+ batchProgress: aggregates.batchProgress,
79
+ aggregateCost: aggregates.aggregateCost,
80
+ taskSpecs: tasks,
81
+ }),
75
82
  timings: aggregates.timings,
76
83
  batchProgress: aggregates.batchProgress,
77
84
  aggregateCost: aggregates.aggregateCost,
@@ -96,8 +103,14 @@ function buildSummaryResponse(batchId, tasks, results, opts) {
96
103
  return {
97
104
  batchId,
98
105
  mode: 'summary',
106
+ headline: composeHeadline({
107
+ timings: opts.timings,
108
+ batchProgress: opts.batchProgress,
109
+ aggregateCost: opts.aggregateCost,
110
+ taskSpecs: tasks,
111
+ }),
99
112
  ...(opts.autoEscaped && {
100
- note: `Combined output was ${opts.totalOutputChars} chars (threshold: ${opts.threshold}). Auto-switched to summary mode. Use get_task_output({ batchId, taskIndex }) to fetch individual task outputs.`,
113
+ note: `Combined output was ${opts.totalOutputChars} chars (threshold: ${opts.threshold}). Auto-switched to summary mode. Use get_task_output({ batchId, taskIndex }) to fetch individual task outputs, or get_task_detail({ batchId, taskIndex }) for per-task metadata.`,
101
114
  }),
102
115
  timings: opts.timings,
103
116
  batchProgress: opts.batchProgress,
@@ -106,19 +119,15 @@ function buildSummaryResponse(batchId, tasks, results, opts) {
106
119
  taskIndex: i,
107
120
  provider: tasks[i].provider ?? '(auto)',
108
121
  status: r.status,
109
- outputLength: r.output.length,
110
- outputSha256: sha256Hex(r.output),
111
122
  turns: r.turns,
112
123
  durationMs: r.durationMs,
113
- filesRead: r.filesRead,
114
- filesWritten: r.filesWritten,
115
- directoriesListed: r.directoriesListed,
116
- toolCalls: r.toolCalls,
117
- escalationLog: r.escalationLog,
124
+ outputLength: r.output.length,
125
+ outputSha256: sha256Hex(r.output),
118
126
  usage: r.usage,
119
- ...(r.progressTrace && { progressTrace: r.progressTrace }),
127
+ escalationChain: r.escalationLog.map((a) => `${a.provider}:${a.status}`),
120
128
  ...(r.error && { error: r.error }),
121
- _fetchWith: `get_task_output({ batchId: "${batchId}", taskIndex: ${i} })`,
129
+ _fetchOutputWith: `get_task_output({ batchId: "${batchId}", taskIndex: ${i} })`,
130
+ _fetchDetailWith: `get_task_detail({ batchId: "${batchId}", taskIndex: ${i} })`,
122
131
  })),
123
132
  };
124
133
  }
@@ -162,6 +171,9 @@ export function buildTaskSchema(availableProviders) {
162
171
  requiredMarkers: z.array(z.string()).optional()
163
172
  .describe('Substrings that must all appear somewhere in the output.'),
164
173
  }).optional().describe('Optional caller-declared output expectations used for semantic incompleteness detection.'),
174
+ skipCompletionHeuristic: z.boolean().optional().describe('Opt-out: when true, the runner skips the no_terminator/fragment short-output ' +
175
+ 'heuristics. Use for tight-format outputs (verdicts, CSV rows, opaque ids). ' +
176
+ 'empty/thinking_only still fire. expectedCoverage passing is also authoritative.'),
165
177
  includeProgressTrace: z.boolean().optional().describe('Opt in to returning the bounded post-hoc progress trace for this task.'),
166
178
  parentModel: z.string().optional().describe('Optional parent-session model identifier used to estimate savedCostUSD.'),
167
179
  });
@@ -211,6 +223,7 @@ export function buildMcpServer(config, options) {
211
223
  ?? config.defaults.largeResponseThresholdChars
212
224
  ?? options?.largeResponseThresholdChars
213
225
  ?? DEFAULT_LARGE_RESPONSE_THRESHOLD_CHARS;
226
+ const runTasksImpl = options?._testRunTasksOverride ?? runTasks;
214
227
  const server = new McpServer({
215
228
  name: SERVER_NAME,
216
229
  version: SERVER_VERSION,
@@ -336,7 +349,7 @@ export function buildMcpServer(config, options) {
336
349
  const batchStartMs = Date.now();
337
350
  let results = [];
338
351
  try {
339
- results = await runTasks(tasks, config, {
352
+ results = await runTasksImpl(tasks, config, {
340
353
  onProgress: sendProgress,
341
354
  runtime: { contextBlockStore },
342
355
  });
@@ -427,7 +440,7 @@ export function buildMcpServer(config, options) {
427
440
  const batchStartMs = Date.now();
428
441
  let results = [];
429
442
  try {
430
- results = await runTasks(subset, config, {
443
+ results = await runTasksImpl(subset, config, {
431
444
  runtime: { contextBlockStore },
432
445
  });
433
446
  }
@@ -502,6 +515,84 @@ batch is expired or evicted, re-dispatch via delegate_tasks with the full specs.
502
515
  content: [{ type: 'text', text: JSON.stringify({ output: result.output }, null, 2) }],
503
516
  };
504
517
  });
518
+ server.tool('get_task_detail', `Retrieve per-task execution details (toolCalls, filesRead/Written/Listed, full escalationLog with reasons, progressTrace if opted in) for a task from a previous delegate_tasks batch. Use this when a batch returned in summary mode and you need to inspect what a specific task actually did — e.g., to debug a failure, verify file-write scope, or review the provider escalation chain. For the output text, use get_task_output instead. Batches live in an in-memory cache with a 30-minute TTL; if the batch is expired or evicted, re-dispatch via delegate_tasks with the full task specs.`, {
519
+ batchId: z.string().describe('Batch id returned from a previous delegate_tasks call'),
520
+ taskIndex: z.number().int().nonnegative().describe('Zero-based index of the task within the batch'),
521
+ }, async ({ batchId, taskIndex }) => {
522
+ const batch = batchCache.get(batchId);
523
+ if (!batch || batch.expiresAt < Date.now()) {
524
+ if (batch)
525
+ batchCache.delete(batchId);
526
+ throw new Error(`batch "${batchId}" is unknown or expired — re-dispatch with full task specs via delegate_tasks`);
527
+ }
528
+ touchBatch(batchId, batch);
529
+ if (batch.results === undefined) {
530
+ throw new Error(`batch "${batchId}" has no results yet — the original dispatch may still be running`);
531
+ }
532
+ if (taskIndex < 0 || taskIndex >= batch.results.length) {
533
+ throw new Error(`taskIndex ${taskIndex} is out of range for batch ${batchId} (batch has ${batch.results.length} tasks)`);
534
+ }
535
+ const result = batch.results[taskIndex];
536
+ const task = batch.tasks[taskIndex];
537
+ const detail = {
538
+ batchId,
539
+ taskIndex,
540
+ provider: task.provider ?? '(auto)',
541
+ filesRead: result.filesRead,
542
+ filesWritten: result.filesWritten,
543
+ directoriesListed: result.directoriesListed ?? [],
544
+ toolCalls: result.toolCalls,
545
+ escalationLog: result.escalationLog,
546
+ ...(result.progressTrace && { progressTrace: result.progressTrace }),
547
+ };
548
+ return {
549
+ content: [{ type: 'text', text: JSON.stringify(detail, null, 2) }],
550
+ };
551
+ });
552
+ server.tool('get_batch_telemetry', `Retrieve a compact ROI telemetry envelope for a previous delegate_tasks batch: the one-line headline (tasks/success/wall-clock/cost/ROI), wall-clock vs serial timings, per-task cost and savings, and provider escalation chains. Use this after every delegate_tasks call to surface the ROI story to the user — especially when the primary response came back in summary mode or hit a client-side size limit. Envelope size: a ~600-byte header plus ~200 bytes per task (so a 10-task batch is ~2.6 KB; a 50-task batch is ~10 KB). Bounded-small per task, but scales linearly, so enormous batches (100+ tasks) may approach the client's tool-result size limit. Batches live in an in-memory cache with a 30-minute TTL; if the batch is expired, the numbers are lost.`, {
553
+ batchId: z.string().describe('Batch id returned from a previous delegate_tasks call'),
554
+ }, async ({ batchId }) => {
555
+ const batch = batchCache.get(batchId);
556
+ if (!batch || batch.expiresAt < Date.now()) {
557
+ if (batch)
558
+ batchCache.delete(batchId);
559
+ throw new Error(`batch "${batchId}" is unknown or expired — re-dispatch with full task specs via delegate_tasks`);
560
+ }
561
+ touchBatch(batchId, batch);
562
+ if (batch.results === undefined) {
563
+ throw new Error(`batch "${batchId}" has no results yet — the original dispatch may still be running`);
564
+ }
565
+ const wallClockMsEstimate = Math.max(0, ...batch.results.map((r) => r.durationMs ?? 0));
566
+ const timings = computeTimings(wallClockMsEstimate, batch.results);
567
+ const batchProgress = computeBatchProgress(batch.results);
568
+ const aggregateCost = computeAggregateCost(batch.results);
569
+ const headline = composeHeadline({
570
+ timings,
571
+ batchProgress,
572
+ aggregateCost,
573
+ taskSpecs: batch.tasks,
574
+ });
575
+ const envelope = {
576
+ batchId,
577
+ headline,
578
+ timings,
579
+ batchProgress,
580
+ aggregateCost,
581
+ results: batch.results.map((r, i) => ({
582
+ taskIndex: i,
583
+ provider: batch.tasks[i].provider ?? '(auto)',
584
+ status: r.status,
585
+ turns: r.turns,
586
+ durationMs: r.durationMs,
587
+ usage: r.usage,
588
+ escalationChain: r.escalationLog.map((a) => `${a.provider}:${a.status}`),
589
+ ...(r.error && { error: r.error }),
590
+ })),
591
+ };
592
+ return {
593
+ content: [{ type: 'text', text: JSON.stringify(envelope, null, 2) }],
594
+ };
595
+ });
505
596
  return server;
506
597
  }
507
598
  /**
@@ -532,6 +623,10 @@ export async function discoverConfig() {
532
623
  }
533
624
  async function main() {
534
625
  const args = process.argv.slice(2);
626
+ if (args[0] === '--help' || args[0] === '-h') {
627
+ console.log('Usage: multi-model-agent serve [--config <path>]');
628
+ process.exit(0);
629
+ }
535
630
  if (args[0] !== 'serve') {
536
631
  console.error('Usage: multi-model-agent serve [--config <path>]');
537
632
  process.exit(1);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAU9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE1F,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,sCAAsC,GAAG,MAAM,CAAC;AAEtD,SAAS,gBAAgB,CAAC,CAAqB;IAC7C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,OAAoB;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;IAC1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACvF,CAAC,MAAM,CAAC;IACT,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,OAAO;QACpB,CAAC,CAAC,MAAM,KAAK,aAAa;QAC1B,CAAC,CAAC,MAAM,KAAK,WAAW;QACxB,CAAC,CAAC,MAAM,KAAK,eAAe,CAC/B,CAAC,MAAM,CAAC;IACT,MAAM,cAAc,GAClB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9D,0BAA0B,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,kBAAkB,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACxE,yBAAyB,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,iBAAiB;QACjB,0BAA0B;QAC1B,yBAAyB;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAe,EACf,KAAiB,EACjB,OAAoB,EACpB,UAIC;IAED,OAAO;QACL,OAAO;QACP,IAAI,EAAE,MAAe;QACrB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ;YACvC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1D,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACnC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAe,EACf,KAAiB,EACjB,OAAoB,EACpB,IAOC;IAED,OAAO;QACL,OAAO;QACP,IAAI,EAAE,SAAkB;QACxB,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI;YACtB,IAAI,EAAE,uBAAuB,IAAI,CAAC,gBAAgB,sBAAsB,IAAI,CAAC,SAAS,iHAAiH;SACxM,CAAC;QACF,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ;YACvC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;YAC7B,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1D,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,UAAU,EAAE,+BAA+B,OAAO,iBAAiB,CAAC,KAAK;SAC1E,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AACD,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,uEAAuE;AACvE,kEAAkE;AAClE,wEAAwE;AACxE,uEAAuE;AACvE,+BAA+B;AAC/B,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,GAAG,GAAG,cAAc,CAAC,iBAAiB,CAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,eAAe,CAAC,kBAAyC;IACvE,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QACzE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;aAC/C,QAAQ,CAAC,wBAAwB,CAAC;QACrC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;YACzC,OAAO,EAAE,YAAY,EAAE,WAAW;SACnC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACrE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC/F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC5F,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC7E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;aACzD,QAAQ,CAAC,mBAAmB,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACpH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACtD,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,sEAAsE,CACvE;QACD,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;iBAChD,QAAQ,CAAC,+CAA+C,CAAC;YAC5D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAClC,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;iBAC5C,QAAQ,CAAC,0DAA0D,CAAC;SACxE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpB,0FAA0F,CAC3F;QACD,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnD,wEAAwE,CACzE;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACzC,yEAAyE,CAC1E;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,UAAU,cAAc,CAC5B,MAAsC,EACtC,OAQC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,+CAA+C;IAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC9F,IAAI,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACvG,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2EAA2E,OAAO,CAAC,GAAG,CAAC,0CAA0C,wCAAwC,CAC1K,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GACrB,YAAY;WACT,MAAM,CAAC,QAAQ,CAAC,2BAA2B;WAC3C,OAAO,EAAE,2BAA2B;WACpC,sCAAsC,CAAC;IAE5C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,qEAAqE;IACrE,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAE1D,sEAAsE;IACtE,gCAAgC;IAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAItB,CAAC;IAEL,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAU,EAAE;QAClD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,wDAAwD;QACxD,OAAO,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC3C,IAAI,GAAG;gBAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAC3B,MAAM;QACb,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,KAAsE,EAAQ,EAAE;QAC9G,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,YAAqC,CAAC;IAEjE,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,2BAA2B,CAAC,MAAM,CAAC,EACnC;QACE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACrG,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnE,sGAAsG;YACtG,qGAAqG;YACrG,oGAAoG;YACpG,wGAAwG;YACxG,2BAA2B,CAC5B;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE;QAChD,6DAA6D;QAC7D,EAAE;QACF,sEAAsE;QACtE,oEAAoE;QACpE,4EAA4E;QAC5E,4EAA4E;QAC5E,kEAAkE;QAClE,EAAE;QACF,wCAAwC;QACxC,uEAAuE;QACvE,iEAAiE;QACjE,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,qDAAqD;QACrD,2EAA2E;QAC3E,kEAAkE;QAClE,8BAA8B;QAC9B,EAAE;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,uEAAuE;QACvE,oEAAoE;QACpE,gEAAgE;QAChE,EAAE;QACF,qEAAqE;QACrE,EAAE;QACF,gBAAgB;QAChB,uEAAuE;QACvE,yEAAyE;QACzE,kCAAkC;QAClC,6EAA6E;QAC7E,yEAAyE;QACzE,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,4CAA4C;QAC5C,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QAC5C,MAAM,aAAa,GACjB,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC1D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,YAAY,GAAG,aAAa,KAAK,SAAS;YAC9C,CAAC,CAAC,CAAC,SAAiB,EAAE,KAAoB,EAAE,EAAE;gBAC1C,eAAe,IAAI,CAAC,CAAC;gBACrB,+DAA+D;gBAC/D,gEAAgE;gBAChE,+DAA+D;gBAC/D,KAAK;qBACF,gBAAgB,CAAC;oBAChB,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE;wBACN,aAAa;wBACb,QAAQ,EAAE,eAAe;wBACzB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;qBAC9C;iBACF,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;oBACV,sCAAsC;gBACxC,CAAC,CAAC,CAAC;YACP,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,mEAAmE;QACnE,+DAA+D;QAC/D,6DAA6D;QAC7D,kEAAkE;QAClE,kEAAkE;QAClE,iEAAiE;QACjE,0CAA0C;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAmB,CAAC,CAAC;QAEnD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,GAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAmB,EAAE,MAAM,EAAE;gBACpD,UAAU,EAAE,YAAY;gBACxB,OAAO,EAAE,EAAE,iBAAiB,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,qEAAqE;YACrE,uEAAuE;YACvE,kEAAkE;YAClE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,UAAU;gBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAE9C,wEAAwE;QACxE,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,aAAa,GACjB,YAAY,KAAK,MAAM;YACrB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,YAAY,KAAK,SAAS;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,gBAAgB,GAAG,iBAAiB;oBACpC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,CAAC;QAEjB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,QAAQ,GACZ,aAAa,KAAK,MAAM;YACtB,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;YACvF,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC5C,WAAW,EAAE,YAAY,KAAK,MAAM,IAAI,gBAAgB,GAAG,iBAAiB;gBAC5E,gBAAgB;gBAChB,SAAS,EAAE,iBAAiB;gBAC5B,OAAO;gBACP,aAAa;gBACb,aAAa;aACd,CAAC,CAAC;QAET,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,sGAAsG;QACpG,gGAAgG;QAChG,+FAA+F;QAC/F,+FAA+F;QAC/F,+CAA+C,EACjD;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACrD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,uFAAuF;QACrF,qFAAqF;QACrF,sFAAsF;QACtF,yFAAyF;QACzF,qBAAqB,EACvB;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACrF,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACrC,QAAQ,CAAC,qEAAqE,CAAC;QAClF,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnE,yFAAyF;YACzF,kGAAkG,CACnG;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3C,+DAA+D;YAC/D,8DAA8D;YAC9D,gDAAgD;YAChD,IAAI,KAAK;gBAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,+EAA+E,CACjG,CAAC;QACJ,CAAC;QACD,0DAA0D;QAC1D,8DAA8D;QAC9D,gEAAgE;QAChE,wDAAwD;QACxD,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,8BAA8B,OAAO,UAAU,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,GAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE;gBACvC,OAAO,EAAE,EAAE,iBAAiB,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,UAAU;gBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAE9C,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,aAAa,GACjB,YAAY,KAAK,MAAM;YACrB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,YAAY,KAAK,SAAS;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,gBAAgB,GAAG,iBAAiB;oBACpC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,CAAC;QAEjB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,QAAQ,GACZ,aAAa,KAAK,MAAM;YACtB,CAAC,CAAC;gBACE,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;gBAC9F,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,WAAW;aAC7B;YACH,CAAC,CAAC;gBACE,GAAG,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;oBACrD,WAAW,EAAE,YAAY,KAAK,MAAM,IAAI,gBAAgB,GAAG,iBAAiB;oBAC5E,gBAAgB;oBAChB,SAAS,EAAE,iBAAiB;oBAC5B,OAAO;oBACP,aAAa;oBACb,aAAa;iBACd,CAAC;gBACF,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,WAAW;aAC7B,CAAC;QAER,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB;;;;;;;;iFAQ6E,EAC7E;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACpG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK;gBAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,+EAA+E,CACjG,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,gEAAgE,CAAC,CAAC;QACrG,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,SAAS,SAAS,8BAA8B,OAAO,UAAU,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CACzF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC/F,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,uBAAuB;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,kBAAkB,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,4CAA4C;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,yBAAyB;IACzB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,uCAAuC;AACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AACL,IAAI,WAAW,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Format a USD amount as `$X.YZ` — two decimals, no trailing-zero trimming
3
+ * beyond two. Matches the currency-rendering rule in spec §1.
4
+ */
5
+ export function formatCurrency(usd) {
6
+ return `$${usd.toFixed(2)}`;
7
+ }
8
+ /**
9
+ * Format a duration in ms using unit-aware human-readable rules:
10
+ * d < 1m → "Ns" (sub-minute: seconds only)
11
+ * 1m ≤ d < 1h → "Nm Ns" (minute-scale: minutes and seconds, no zero-pad)
12
+ * d ≥ 1h → "Nh Nm" (hour-scale: hours and minutes, seconds dropped)
13
+ * Seconds are truncated (Math.floor) to avoid overstating wall-clock.
14
+ */
15
+ export function formatDuration(ms) {
16
+ const totalSeconds = Math.floor(ms / 1000);
17
+ if (totalSeconds < 60)
18
+ return `${totalSeconds}s`;
19
+ const totalMinutes = Math.floor(totalSeconds / 60);
20
+ if (totalMinutes < 60) {
21
+ const s = totalSeconds - totalMinutes * 60;
22
+ return `${totalMinutes}m ${s}s`;
23
+ }
24
+ const hours = Math.floor(totalMinutes / 60);
25
+ const m = totalMinutes - hours * 60;
26
+ return `${hours}h ${m}m`;
27
+ }
28
+ /**
29
+ * Compose the one-line ROI headline. See spec §1 for the decision table.
30
+ */
31
+ export function composeHeadline(input) {
32
+ const { timings, batchProgress, aggregateCost, taskSpecs } = input;
33
+ const parts = [];
34
+ // Task count + success rate
35
+ parts.push(`${batchProgress.totalTasks} tasks, ${batchProgress.completedTasks}/${batchProgress.totalTasks} ok (${batchProgress.successPercent.toFixed(1)}%)`);
36
+ // Wall clock
37
+ parts.push(`wall ${formatDuration(timings.wallClockMs)}`);
38
+ // Divide-by-zero guard — before any other cost or savings clause.
39
+ // If totalActualCostUSD === 0, we collapse to "$0.00 actual" regardless
40
+ // of parentModel set size (rows 6, 7, 8). This check must come BEFORE the
41
+ // parallel savings clause so we don't emit "saved ~Xs" for zero-cost batches.
42
+ if (aggregateCost.totalActualCostUSD === 0) {
43
+ parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual`);
44
+ return parts.join(', ');
45
+ }
46
+ // Parallel savings clause — omitted when single task or savings <= 0
47
+ if (taskSpecs.length > 1 && timings.estimatedParallelSavingsMs > 0) {
48
+ parts.push(`saved ~${formatDuration(timings.estimatedParallelSavingsMs)} vs serial`);
49
+ }
50
+ // Cost clause — six-branch decision table from spec §1.
51
+ const parentSet = new Set(taskSpecs
52
+ .map((t) => t.parentModel)
53
+ .filter((m) => typeof m === 'string' && m.length > 0));
54
+ if (parentSet.size === 0) {
55
+ // Row 2: no parentModel declared, positive cost. Show actual only.
56
+ parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual`);
57
+ }
58
+ else if (parentSet.size === 1) {
59
+ // Rows 1, 3, 4: single baseline, positive cost. Emit full clause with ROI.
60
+ const parentLabel = [...parentSet][0];
61
+ const ratio = (aggregateCost.totalActualCostUSD + aggregateCost.totalSavedCostUSD) /
62
+ aggregateCost.totalActualCostUSD;
63
+ parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual / ${formatCurrency(aggregateCost.totalSavedCostUSD)} saved vs ${parentLabel} (${ratio.toFixed(1)}x ROI)`);
64
+ }
65
+ else {
66
+ // Row 5: mixed baselines, positive cost. ROI multiplier is NOT coherent
67
+ // across different parent baselines (different denominators), so we drop
68
+ // it. The $saved number is still valid as an additive dollar quantity.
69
+ parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual / ${formatCurrency(aggregateCost.totalSavedCostUSD)} saved vs multiple baselines`);
70
+ }
71
+ return parts.join(', ');
72
+ }
73
+ //# sourceMappingURL=headline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headline.js","sourceRoot":"","sources":["../src/headline.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export { buildMcpServer, buildTaskSchema, SERVER_NAME, SERVER_VERSION, computeTimings, computeBatchProgress, computeAggregateCost } from './cli.js';
2
+ export { composeHeadline, formatCurrency, formatDuration } from './headline.js';
3
+ export type { ComposeHeadlineInput } from './headline.js';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { buildMcpServer, buildTaskSchema, SERVER_NAME, SERVER_VERSION, computeTimings, computeBatchProgress, computeAggregateCost } from './cli.js';
2
+ export { composeHeadline, formatCurrency, formatDuration } from './headline.js';
2
3
  //# 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,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-provider-routing-matrix.d.ts","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,gBAAgB,EAAkB,MAAM,mCAAmC,CAAC;AA0JtG;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAoB5E"}
1
+ {"version":3,"file":"render-provider-routing-matrix.d.ts","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,gBAAgB,EAAkB,MAAM,mCAAmC,CAAC;AA2JtG;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAoB5E"}
@@ -68,8 +68,9 @@ savedCostUnavailableTasks}). If the combined output across tasks is small,
68
68
  mode: 'full' with inline outputs; if it exceeds the server's threshold
69
69
  (default 64 KB, configurable via env MULTI_MODEL_LARGE_RESPONSE_THRESHOLD_CHARS
70
70
  / config defaults.largeResponseThresholdChars / buildMcpServer option),
71
- mode: 'summary' with per-task outputLength + outputSha256 + _fetchWith
72
- hint — fetch individual outputs with get_task_output({ batchId, taskIndex }).
71
+ mode: 'summary' with per-task outputLength + outputSha256 + _fetchOutputWith
72
+ hint — fetch individual outputs with get_task_output({ batchId, taskIndex }),
73
+ or per-task metadata with get_task_detail({ batchId, taskIndex }).
73
74
  Set responseMode: 'full' to force inline, 'summary' to force summary, or
74
75
  omit for auto-escape.
75
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"render-provider-routing-matrix.js","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAGlH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;oCAmBa,CAAC;AAErC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAqGJ,CAAC;AAEhB,SAAS,mBAAmB,CAC1B,IAAY,EACZ,MAAsB,EACtB,YAA0B,EAC1B,OAAqB,EACrB,UAAgC;IAEhC,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;IAC3E,MAAM,KAAK,GAAG;QACZ,GAAG,IAAI,KAAK,MAAM,CAAC,KAAK,GAAG;QAC3B,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrC,WAAW,OAAO,CAAC,IAAI,YAAY,IAAI,GAAG,UAAU,cAAc,WAAW,EAAE;QAC/E,eAAe,OAAO,CAAC,OAAO,EAAE;KACjC,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAwB;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE;QAC7E,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,UAAU,GAAyB,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,OAAO,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,kEAAkE;QAClE,iCAAiC;QACjC,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,cAAc;QACd,EAAE;QACF,UAAU;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"render-provider-routing-matrix.js","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAGlH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;oCAmBa,CAAC;AAErC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsGJ,CAAC;AAEhB,SAAS,mBAAmB,CAC1B,IAAY,EACZ,MAAsB,EACtB,YAA0B,EAC1B,OAAqB,EACrB,UAAgC;IAEhC,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;IAC3E,MAAM,KAAK,GAAG;QACZ,GAAG,IAAI,KAAK,MAAM,CAAC,KAAK,GAAG;QAC3B,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrC,WAAW,OAAO,CAAC,IAAI,YAAY,IAAI,GAAG,UAAU,cAAc,WAAW,EAAE;QAC/E,eAAe,OAAO,CAAC,OAAO,EAAE;KACjC,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAwB;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE;QAC7E,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,UAAU,GAAyB,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,OAAO,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,kEAAkE;QAClE,iCAAiC;QACjC,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,cAAc;QACd,EAAE;QACF,UAAU;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "MCP server for multi-model-agent. Exposes a delegate_tasks tool that routes work to Claude, Codex, or OpenAI-compatible sub-agents based on capability, quality tier, and cost.",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.0.0",
53
- "@zhixuan92/multi-model-agent-core": "^0.3.0",
53
+ "@zhixuan92/multi-model-agent-core": "^0.4.0",
54
54
  "zod": "^4.0.0"
55
55
  }
56
56
  }