@zhixuan92/multi-model-agent-mcp 2.7.5 → 2.8.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.
Files changed (54) hide show
  1. package/README.md +11 -133
  2. package/dist/cli.js +6 -584
  3. package/package.json +8 -48
  4. package/dist/cli.d.ts +0 -58
  5. package/dist/cli.d.ts.map +0 -1
  6. package/dist/cli.js.map +0 -1
  7. package/dist/headline.d.ts +0 -25
  8. package/dist/headline.d.ts.map +0 -1
  9. package/dist/headline.js +0 -58
  10. package/dist/headline.js.map +0 -1
  11. package/dist/index.d.ts +0 -4
  12. package/dist/index.d.ts.map +0 -1
  13. package/dist/index.js +0 -3
  14. package/dist/index.js.map +0 -1
  15. package/dist/routing/render-provider-routing-matrix.d.ts +0 -7
  16. package/dist/routing/render-provider-routing-matrix.d.ts.map +0 -1
  17. package/dist/routing/render-provider-routing-matrix.js +0 -153
  18. package/dist/routing/render-provider-routing-matrix.js.map +0 -1
  19. package/dist/tools/audit-document.d.ts +0 -23
  20. package/dist/tools/audit-document.d.ts.map +0 -1
  21. package/dist/tools/audit-document.js +0 -123
  22. package/dist/tools/audit-document.js.map +0 -1
  23. package/dist/tools/batch-response.d.ts +0 -14
  24. package/dist/tools/batch-response.d.ts.map +0 -1
  25. package/dist/tools/batch-response.js +0 -42
  26. package/dist/tools/batch-response.js.map +0 -1
  27. package/dist/tools/confirm-clarifications.d.ts +0 -15
  28. package/dist/tools/confirm-clarifications.d.ts.map +0 -1
  29. package/dist/tools/confirm-clarifications.js +0 -95
  30. package/dist/tools/confirm-clarifications.js.map +0 -1
  31. package/dist/tools/debug-task.d.ts +0 -13
  32. package/dist/tools/debug-task.d.ts.map +0 -1
  33. package/dist/tools/debug-task.js +0 -63
  34. package/dist/tools/debug-task.js.map +0 -1
  35. package/dist/tools/execute-plan.d.ts +0 -12
  36. package/dist/tools/execute-plan.d.ts.map +0 -1
  37. package/dist/tools/execute-plan.js +0 -123
  38. package/dist/tools/execute-plan.js.map +0 -1
  39. package/dist/tools/review-code.d.ts +0 -17
  40. package/dist/tools/review-code.d.ts.map +0 -1
  41. package/dist/tools/review-code.js +0 -108
  42. package/dist/tools/review-code.js.map +0 -1
  43. package/dist/tools/shared.d.ts +0 -72
  44. package/dist/tools/shared.d.ts.map +0 -1
  45. package/dist/tools/shared.js +0 -160
  46. package/dist/tools/shared.js.map +0 -1
  47. package/dist/tools/truncation.d.ts +0 -18
  48. package/dist/tools/truncation.d.ts.map +0 -1
  49. package/dist/tools/truncation.js +0 -62
  50. package/dist/tools/truncation.js.map +0 -1
  51. package/dist/tools/verify-work.d.ts +0 -12
  52. package/dist/tools/verify-work.d.ts.map +0 -1
  53. package/dist/tools/verify-work.js +0 -85
  54. package/dist/tools/verify-work.js.map +0 -1
package/dist/cli.d.ts DELETED
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env node
2
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- import { z } from 'zod';
4
- import { runTasks } from '@zhixuan92/multi-model-agent-core/run-tasks';
5
- import type { MultiModelConfig, DiagnosticLogger } from '@zhixuan92/multi-model-agent-core';
6
- export { computeTimings, computeBatchProgress, computeAggregateCost } from './tools/batch-response.js';
7
- export declare const SERVER_NAME = "multi-model-agent";
8
- export declare const ASSISTANT_MODEL_NAME = "GPT-5";
9
- export declare function buildCliGreeting(): string;
10
- export declare const SERVER_VERSION: string;
11
- export declare function buildTaskSchema(availableAgents: [string, ...string[]]): z.ZodObject<{
12
- prompt: z.ZodString;
13
- agentType: z.ZodOptional<z.ZodEnum<{
14
- [x: string]: string;
15
- }>>;
16
- filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
- done: z.ZodOptional<z.ZodString>;
18
- contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
- }, z.core.$strict>;
20
- export declare function buildMcpServer(config: Parameters<typeof runTasks>[1], logger: DiagnosticLogger, options?: {
21
- /** Character threshold that triggers auto-switch from 'full' to
22
- * 'summary' response mode when the caller uses `responseMode: 'auto'`
23
- * (the default). Defaults to 65_536, tuned for Claude Code's inline
24
- * rendering limit. Precedence (highest first): env var
25
- * MULTI_MODEL_LARGE_RESPONSE_THRESHOLD_CHARS > config file
26
- * defaults.largeResponseThresholdChars > this option > default. */
27
- largeResponseThresholdChars?: number;
28
- /** Internal test-only hook for injecting a stubbed runTasks implementation. */
29
- _testRunTasksOverride?: typeof runTasks;
30
- }): McpServer;
31
- /**
32
- * MCP CLI config discovery (owned by MCP, not core):
33
- * 1. --config <path> argument (explicit)
34
- * 2. MULTI_MODEL_CONFIG environment variable
35
- * 3. ~/.multi-model/config.json (default home-directory location)
36
- */
37
- export declare function discoverConfig(): Promise<MultiModelConfig>;
38
- /**
39
- * Install safety nets for the stdio transport lifecycle. The MCP SDK's
40
- * StdioServerTransport writes every JSON-RPC frame to `process.stdout`
41
- * but never attaches an error handler to it, so when the Claude Code
42
- * client closes the read end of our stdout (reconnect, /mcp restart,
43
- * extension reload, client crash, long-running-call abort) the next
44
- * write emits an `EPIPE` error with no listener, which Node turns into
45
- * `uncaughtException` and — absent a handler — terminates the process.
46
- * That is the observed "MCP dies every ~2 calls" failure mode.
47
- *
48
- * Single-install contract: calling this more than once in one process is a
49
- * programmer error. The healthy-server contract ("one stderr line at startup")
50
- * covers only the first install. A second call writes a warning to stderr
51
- * and returns — it does not register duplicate handlers. This warning path is
52
- * outside the healthy-server contract; in normal operation `main()` is the only
53
- * caller and is invoked exactly once per process.
54
- */
55
- export declare function installStdioLifecycleHandlers(logger: DiagnosticLogger): void;
56
- /** Test-only. Not exported from the package public surface. */
57
- export declare function __resetStdioLifecycleHandlersForTests(): void;
58
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
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,EAOhB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAoB3C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvG,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAG5C,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAmBD,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,wBAAgB,eAAe,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;;;;;;;;mBAkBrE;AAkCD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE;IACR;;;;;wEAKoE;IACpE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,OAAO,QAAQ,CAAC;CACzC,aA+XF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA4BhE;AAWD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAoE5E;AAED,+DAA+D;AAC/D,wBAAgB,qCAAqC,IAAI,IAAI,CAa5D"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { BatchTimings, BatchProgress, BatchAggregateCost } from '@zhixuan92/multi-model-agent-core';
2
- export interface ComposeHeadlineInput {
3
- timings: BatchTimings;
4
- batchProgress: BatchProgress;
5
- aggregateCost: BatchAggregateCost;
6
- parentModel?: string;
7
- }
8
- /**
9
- * Format a USD amount as `$X.YZ` — two decimals, no trailing-zero trimming
10
- * beyond two. Matches the currency-rendering rule in spec §1.
11
- */
12
- export declare function formatCurrency(usd: number): string;
13
- /**
14
- * Format a duration in ms using unit-aware human-readable rules:
15
- * d < 1m → "Ns" (sub-minute: seconds only)
16
- * 1m ≤ d < 1h → "Nm Ns" (minute-scale: minutes and seconds, no zero-pad)
17
- * d ≥ 1h → "Nh Nm" (hour-scale: hours and minutes, seconds dropped)
18
- * Seconds are truncated (Math.floor) to avoid overstating wall-clock.
19
- */
20
- export declare function formatDuration(ms: number): string;
21
- /**
22
- * Compose the one-line ROI headline. See spec §1 for the decision table.
23
- */
24
- export declare function composeHeadline(input: ComposeHeadlineInput): string;
25
- //# sourceMappingURL=headline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headline.d.ts","sourceRoot":"","sources":["../src/headline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;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,CAoCnE"}
package/dist/headline.js DELETED
@@ -1,58 +0,0 @@
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, parentModel } = 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 — collapse to "$0.00 actual" for zero-cost batches.
39
- if (aggregateCost.totalActualCostUSD === 0) {
40
- parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual`);
41
- return parts.join(', ');
42
- }
43
- // Parallel savings clause — omitted when single task or savings <= 0
44
- if (batchProgress.totalTasks > 1 && timings.estimatedParallelSavingsMs > 0) {
45
- parts.push(`saved ~${formatDuration(timings.estimatedParallelSavingsMs)} vs serial`);
46
- }
47
- // Cost clause: with parentModel show saved + ROI, without show actual only.
48
- if (!parentModel) {
49
- parts.push(`${formatCurrency(aggregateCost.totalActualCostUSD)} actual`);
50
- }
51
- else {
52
- const ratio = (aggregateCost.totalActualCostUSD + aggregateCost.totalSavedCostUSD) /
53
- aggregateCost.totalActualCostUSD;
54
- parts.push(`${formatCurrency(aggregateCost.totalSavedCostUSD)} saved vs ${parentModel} (${ratio.toFixed(1)}x ROI)`);
55
- }
56
- return parts.join(', ');
57
- }
58
- //# sourceMappingURL=headline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headline.js","sourceRoot":"","sources":["../src/headline.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,EAAE;QAAE,OAAO,GAAG,YAAY,GAAG,CAAC;IAEjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACnD,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;QAC3C,OAAO,GAAG,YAAY,KAAK,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;IACpC,OAAO,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,4BAA4B;IAC5B,KAAK,CAAC,IAAI,CACR,GAAG,aAAa,CAAC,UAAU,WAAW,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,UAAU,QAAQ,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAClJ,CAAC;IAEF,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,QAAQ,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE1D,2EAA2E;IAC3E,IAAI,aAAa,CAAC,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,IAAI,aAAa,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,0BAA0B,GAAG,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,UAAU,cAAc,CAAC,OAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACvF,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GACT,CAAC,aAAa,CAAC,kBAAkB,GAAG,aAAa,CAAC,iBAAiB,CAAC;YACpE,aAAa,CAAC,kBAAkB,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,GAAG,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,WAAW,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CACxG,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
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';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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 DELETED
@@ -1,3 +0,0 @@
1
- export { buildMcpServer, buildTaskSchema, SERVER_NAME, SERVER_VERSION, computeTimings, computeBatchProgress, computeAggregateCost } from './cli.js';
2
- export { composeHeadline, formatCurrency, formatDuration } from './headline.js';
3
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
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,7 +0,0 @@
1
- import type { MultiModelConfig } from '@zhixuan92/multi-model-agent-core';
2
- /**
3
- * Renders the full routing matrix for the MCP tool description.
4
- * Helps the consuming LLM understand agent capabilities and routing rules.
5
- */
6
- export declare function renderProviderRoutingMatrix(config: MultiModelConfig): string;
7
- //# sourceMappingURL=render-provider-routing-matrix.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-provider-routing-matrix.d.ts","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAyIvF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAuB5E"}
@@ -1,153 +0,0 @@
1
- import { findModelCapabilities, findModelProfile } from '@zhixuan92/multi-model-agent-core/routing/model-profiles';
2
- const ROUTING_RECIPE = `How to route a task:
3
- 1. Select the agent type based on required capabilities.
4
- 2. If the selected agent lacks required capabilities, auto-escalate to the other agent type.
5
- 3. Among available agents, prefer the one that meets capability requirements.
6
-
7
- Agent guidance:
8
- - 'standard' — most code work. Clear spec, multiple valid approaches.
9
- - 'complex' — ambiguous, architectural, research, or high-stakes tasks requiring more reasoning.
10
-
11
- Optional 'effort' knob (per task):
12
- - Only agents marked 'effort: supported' in the matrix honor this field.
13
- - Use 'high' for complex tasks when you want maximum depth,
14
- 'medium' for balanced, 'low' for fast-but-shallow, 'none' to disable
15
- thinking entirely on agents that default it on.`;
16
- const TOOL_NOTES = `Sub-agent tool notes (apply to every agent):
17
- - 'grep' accepts a file OR a directory. When given a directory it searches
18
- recursively (output is prefixed file:line). Prefer one recursive grep over
19
- many readFile calls when the worker needs to find usages or patterns.
20
- - Worker output is captured from the final assistant message when present,
21
- otherwise salvaged from a running scratchpad. You ALWAYS get text back,
22
- even on 'incomplete' / 'timeout' / 'api_error' / 'network_error' paths.
23
- - Tasks that need shell ('pnpm', 'pytest', 'tsc', 'git') only work on
24
- agents configured with sandboxPolicy: 'none'. Otherwise keep shell
25
- work on the parent session, not in a delegated sub-agent.
26
-
27
- Escalation, statuses, streaming, and batch helpers:
28
- - Auto-routed tasks (no 'agentType' set) use 'standard' agent.
29
- - If the selected agent lacks required capabilities, auto-escalate to 'complex'.
30
- - If every agent fails, the best salvage is returned and the
31
- per-task 'escalationLog' shows every attempt.
32
- - Status values: 'ok', 'incomplete', 'max_turns', 'timeout',
33
- 'api_aborted', 'api_error', 'network_error', 'error'.
34
- 'incomplete' = scratchpad salvage after a degenerate completion;
35
- 'api_aborted' = agent-side abort; 'api_error' = HTTP error with
36
- a numeric .status; 'network_error' = transport failure
37
- (ECONNREFUSED / ENOTFOUND / /network/i).
38
- - Streaming: if your MCP client passes '_meta.progressToken' on the
39
- tool call, delegate_tasks forwards per-task progress notifications
40
- (turn_start, tool_call, text_emission, turn_complete, injection,
41
- escalation_start, done) back over the MCP progress channel. No
42
- opt-in needed beyond sending the token.
43
- - Batch helpers: every delegate_tasks response carries a 'batchId'.
44
- Use 'retry_tasks' with that batchId + a list of 0-based task
45
- indices to re-run just the failing subset without re-transmitting
46
- the original briefs. Cache is 30-minute TTL, 100-batch LRU.
47
- - Context blocks (register_context_block + contextBlockIds):
48
- 'register_context_block' stores text on the server and returns an id.
49
- Pass that id in 'contextBlockIds' on any delegate_tasks task and the
50
- server prepends the content to the prompt before dispatch.
51
-
52
- Common patterns:
53
- • Delta audit: Register the prior audit report as a context block.
54
- In the prompt, instruct: "Only report NEW findings not in the
55
- prior report, findings NOT fixed, and confirm which were fixed."
56
- This avoids a full re-audit and cuts cost in half on rounds 2+.
57
- • Diff-scoped review: Register the git diff as a context block.
58
- In the prompt, instruct: "Review only the changes in the diff,
59
- not the entire file." This focuses the reviewer on what changed.
60
- • Shared spec across tasks: Register a spec/plan once, reference
61
- it from multiple parallel tasks that all need the same context.
62
- 3 tasks × 25K tokens = 75K transmitted; with a context block,
63
- 25K stored once + 3 × reference ≈ 25K total.
64
- • Multi-round verification: Register a checklist of findings, then
65
- dispatch a verify_work-style task via delegate_tasks to check
66
- each finding was addressed — cheaper than a full re-audit.
67
-
68
- RESPONSE SHAPE (v1.0+): Every delegate_tasks response includes a top-level
69
- batchId, mode ('full' or 'summary'), timings ({wallClockMs, sumOfTaskMs,
70
- estimatedParallelSavingsMs}), batchProgress ({totalTasks, completedTasks,
71
- incompleteTasks, failedTasks, successPercent}), and aggregateCost
72
- ({totalActualCostUSD, totalSavedCostUSD}). If the combined output across tasks is small,
73
- mode: 'full' with inline outputs; if it exceeds the server's threshold
74
- (default 64 KB, configurable via env MULTI_MODEL_LARGE_RESPONSE_THRESHOLD_CHARS
75
- / config defaults.largeResponseThresholdChars / buildMcpServer option),
76
- mode: 'summary' with per-task outputLength + outputSha256 + _fetchWith
77
- hint — fetch individual outputs with get_batch_slice({ batchId, slice: 'output', taskIndex }),
78
- or per-task details with get_batch_slice({ batchId, slice: 'detail', taskIndex }).
79
- Set responseMode: 'full' to force inline, 'summary' to force summary, or
80
- omit for auto-escape.
81
-
82
- COVERAGE DECLARATION (v1.0+): For tasks with enumerable deliverables
83
- (multi-file refactors, test generation across many functions, multi-PR
84
- review, per-endpoint reports, per-function test stubs, audit checklists),
85
- set expectedCoverage on the task spec with either minSections: N,
86
- sectionPattern: '<regex>' (default ^##), or requiredMarkers: [...] — the
87
- identifier strings that must all appear in the output. The supervision
88
- layer will re-prompt the model with specific missing items and classify
89
- thin responses as insufficient_coverage instead of silently accepting them.
90
- Do NOT set expectedCoverage for one-shot tasks (bug fixes, single
91
- implementations, prose, creative writing) — the field is opt-in and has
92
- no meaning for deliverables you can't enumerate ahead of time.
93
-
94
- COST + TIME VISIBILITY (v1.0+): Set parentModel on the task spec (e.g.
95
- 'claude-opus-4-6') to get usage.savedCostUSD — the ESTIMATED cost
96
- difference vs running the same token volume on that parent model.
97
- Positive means delegation was cheaper. Both usage.costUSD (actual) and
98
- usage.savedCostUSD (estimate) are estimates for budgeting and debugging,
99
- not accounting numbers. Per-task durationMs is always populated.
100
- Batch-level timings.estimatedParallelSavingsMs tells you how much
101
- wall-clock time concurrent dispatch bought back vs a hypothetical
102
- serial for-loop. batchProgress.successPercent is a clean-success rate
103
- (the batch is always 100% done by the time you see the response —
104
- successPercent measures how many finished cleanly, NOT progress).
105
-
106
- AVAILABLE TOOLS: delegate_tasks (this one), register_context_block
107
- (stash reusable brief content referenced via TaskSpec.contextBlockIds),
108
- retry_tasks (re-dispatch specific indices from a previous batch),
109
- get_batch_slice (fetch outputs/details/telemetry when a response was in
110
- summary mode or for per-task introspection).`;
111
- function renderAgentBlock(name, config, capabilities, profile) {
112
- const effortLabel = profile.supportsEffort ? 'supported' : 'not supported';
113
- const lines = [
114
- `${name} (${config.model})`,
115
- ` capabilities: ${capabilities.join(', ') || '(none)'}`,
116
- ` cost: ${profile.defaultCost} | effort: ${effortLabel}`,
117
- ` best for: ${profile.bestFor}`,
118
- ];
119
- if (profile.notes) {
120
- lines.push(` note: ${profile.notes}`);
121
- }
122
- if (profile.avoidFor) {
123
- lines.push(` avoid for: ${profile.avoidFor}`);
124
- }
125
- return lines.join('\n');
126
- }
127
- /**
128
- * Renders the full routing matrix for the MCP tool description.
129
- * Helps the consuming LLM understand agent capabilities and routing rules.
130
- */
131
- export function renderProviderRoutingMatrix(config) {
132
- if (!config.agents) {
133
- return 'No agents configured.';
134
- }
135
- const blocks = Object.entries(config.agents).map(([name, agentConfig]) => {
136
- const capabilities = agentConfig.capabilities ?? findModelCapabilities(agentConfig.model);
137
- const profile = findModelProfile(agentConfig.model);
138
- return renderAgentBlock(name, agentConfig, capabilities, profile);
139
- });
140
- return [
141
- 'Delegate tasks to sub-agents running on different LLM models.',
142
- 'All tasks execute concurrently.',
143
- '',
144
- 'Available agents:',
145
- '',
146
- blocks.join('\n\n'),
147
- '',
148
- ROUTING_RECIPE,
149
- '',
150
- TOOL_NOTES,
151
- ].join('\n');
152
- }
153
- //# sourceMappingURL=render-provider-routing-matrix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-provider-routing-matrix.js","sourceRoot":"","sources":["../../src/routing/render-provider-routing-matrix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAGnH,MAAM,cAAc,GAAG;;;;;;;;;;;;;kDAa2B,CAAC;AAEnD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA8F0B,CAAC;AAE9C,SAAS,gBAAgB,CACvB,IAAY,EACZ,MAAmB,EACnB,YAA4C,EAC5C,OAAqB;IAErB,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,mBAAmB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;QACxD,WAAW,OAAO,CAAC,WAAW,cAAc,WAAW,EAAE;QACzD,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,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;QACvE,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,IAAI,qBAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,+DAA+D;QAC/D,iCAAiC;QACjC,EAAE;QACF,mBAAmB;QACnB,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,23 +0,0 @@
1
- import { z } from 'zod';
2
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- import type { MultiModelConfig, ContextBlockStore, DiagnosticLogger } from '@zhixuan92/multi-model-agent-core';
4
- export declare const auditDocumentSchema: z.ZodObject<{
5
- filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
- contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
- document: z.ZodOptional<z.ZodString>;
8
- auditType: z.ZodUnion<readonly [z.ZodEnum<{
9
- security: "security";
10
- performance: "performance";
11
- correctness: "correctness";
12
- style: "style";
13
- general: "general";
14
- }>, z.ZodArray<z.ZodEnum<{
15
- security: "security";
16
- performance: "performance";
17
- correctness: "correctness";
18
- style: "style";
19
- }>>]>;
20
- }, z.core.$strip>;
21
- export type AuditDocumentParams = z.infer<typeof auditDocumentSchema>;
22
- export declare function registerAuditDocument(server: McpServer, config: MultiModelConfig, logger: DiagnosticLogger, contextBlockStore?: ContextBlockStore): void;
23
- //# sourceMappingURL=audit-document.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-document.d.ts","sourceRoot":"","sources":["../../src/tools/audit-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAY,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAezH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAwDtE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,QA4EjJ"}
@@ -1,123 +0,0 @@
1
- import { z } from 'zod';
2
- import { randomUUID } from 'node:crypto';
3
- import { runTasks } from '@zhixuan92/multi-model-agent-core/run-tasks';
4
- import { commonToolFields, validateInput, resolveDispatchMode, buildUnifiedResponse, buildFilePathsPrompt, buildPerFilePrompt, buildRunTasksOptions, resolveParentModel, autoRegisterContextBlock, withDiagnostics, } from './shared.js';
5
- export const auditDocumentSchema = z.object({
6
- document: z.string().optional().describe('Inline document content to audit'),
7
- auditType: z.union([
8
- z.enum(['security', 'performance', 'correctness', 'style', 'general']),
9
- z.array(z.enum(['security', 'performance', 'correctness', 'style'])).min(1),
10
- ]).describe('Audit focus.'),
11
- ...commonToolFields,
12
- });
13
- function resolveAuditTypeText(auditType) {
14
- if (auditType === 'general')
15
- return 'security, performance, correctness, and style';
16
- if (Array.isArray(auditType))
17
- return auditType.join(', ');
18
- return auditType;
19
- }
20
- const AUDIT_DONE_CONDITIONS = {
21
- security: 'Identify all security vulnerabilities (injection, auth bypass, data exposure, OWASP top 10). Each finding has severity (critical/high/medium/low), location, and remediation.',
22
- performance: 'Identify all performance issues (O(n²) loops, unnecessary allocations, missing caching, blocking I/O). Each finding has impact level, location, and fix recommendation.',
23
- correctness: 'Identify all logic errors, off-by-one bugs, unhandled edge cases, type mismatches, and contract violations. Each finding has severity, location, and correct behavior.',
24
- style: 'Identify all style issues (naming, formatting, dead code, inconsistent patterns). Each finding has location and recommended fix.',
25
- general: 'Identify issues across security, performance, correctness, and style. Each finding has category, severity, location, and remediation.',
26
- };
27
- const DELTA_AUDIT_SUFFIX = ' Perform a full audit (do not reduce thoroughness). Verify each prior finding as fixed or unfixed. Omit fixed prior findings from the main report. Include unfixed prior findings and new findings. End with a summary of which prior findings were resolved.';
28
- function resolveAuditDoneCondition(auditType, hasContextBlocks) {
29
- let base;
30
- if (auditType === 'general') {
31
- base = AUDIT_DONE_CONDITIONS.general;
32
- }
33
- else if (Array.isArray(auditType)) {
34
- base = auditType.map(t => AUDIT_DONE_CONDITIONS[t]).join(' ');
35
- }
36
- else {
37
- base = AUDIT_DONE_CONDITIONS[auditType] ?? AUDIT_DONE_CONDITIONS.general;
38
- }
39
- return hasContextBlocks ? base + DELTA_AUDIT_SUFFIX : base;
40
- }
41
- function buildAuditPrompt(auditTypeText, document, filePaths, hasContextBlocks) {
42
- const parts = [`Audit for ${auditTypeText} issues.`];
43
- if (document)
44
- parts.push(`Document:\n\n${document}`);
45
- const fileSection = buildFilePathsPrompt(filePaths);
46
- if (fileSection)
47
- parts.push(fileSection);
48
- if (hasContextBlocks) {
49
- parts.push('A prior audit report is provided as context above.', 'First, verify which prior findings have been fixed. Then perform a full audit as normal — do not skip areas or reduce thoroughness.', 'In your output:', '- **Omit** prior findings that have been fixed — do not re-report them.', '- **Include** prior findings that are still present (mark as "unfixed from prior audit").', '- **Include** any new findings not in the prior report.', '- End with a **Fixed** summary listing which prior findings were resolved.');
50
- }
51
- else {
52
- parts.push('Provide a structured audit report with findings and severity.');
53
- }
54
- return parts.join('\n\n');
55
- }
56
- export function registerAuditDocument(server, config, logger, contextBlockStore) {
57
- server.tool('audit_document', 'Audit documents for issues. Accepts inline content or file paths (multiple files audit in parallel). Preset: complex agent, no review. For delta audits (round 2+), register the prior audit report as a context block and pass its id in contextBlockIds — the tool automatically switches to delta mode, reporting only new findings, unfixed findings, and confirming fixes.', auditDocumentSchema.shape, withDiagnostics('audit_document', logger, (async (params, extra) => {
58
- const runOptions = buildRunTasksOptions(extra);
59
- const validation = validateInput(params.document, params.filePaths);
60
- if (!validation.valid) {
61
- return { content: [{ type: 'text', text: `Error: ${validation.message}` }], isError: true };
62
- }
63
- const hasContextBlocks = Array.isArray(params.contextBlockIds) && params.contextBlockIds.length > 0;
64
- const baseTaskSpec = {
65
- agentType: 'complex',
66
- reviewPolicy: 'off',
67
- briefQualityPolicy: 'off',
68
- done: resolveAuditDoneCondition(params.auditType, hasContextBlocks),
69
- tools: config.defaults?.tools ?? 'full',
70
- timeoutMs: config.defaults?.timeoutMs ?? 1_800_000,
71
- maxCostUSD: config.defaults?.maxCostUSD ?? 10,
72
- sandboxPolicy: config.defaults?.sandboxPolicy ?? 'cwd-only',
73
- cwd: process.cwd(),
74
- contextBlockIds: params.contextBlockIds,
75
- parentModel: resolveParentModel(config),
76
- };
77
- const runtime = contextBlockStore ? { contextBlockStore } : undefined;
78
- const parentModel = baseTaskSpec.parentModel;
79
- try {
80
- const mode = resolveDispatchMode(params.document, params.filePaths);
81
- if (mode === 'fan_out') {
82
- const validPaths = params.filePaths.filter(p => p.trim().length > 0);
83
- const auditTypeText = resolveAuditTypeText(params.auditType);
84
- const promptTemplate = buildAuditPrompt(auditTypeText, undefined, undefined, hasContextBlocks);
85
- const tasks = validPaths.map(fp => ({
86
- ...baseTaskSpec,
87
- prompt: buildPerFilePrompt(fp, promptTemplate),
88
- }));
89
- const startMs = Date.now();
90
- const results = await runTasks(tasks, config, { ...runOptions, runtime });
91
- const ctxId = autoRegisterContextBlock(results, contextBlockStore);
92
- return buildUnifiedResponse({
93
- batchId: randomUUID(),
94
- results,
95
- tasks,
96
- wallClockMs: Date.now() - startMs,
97
- parentModel,
98
- contextBlockId: ctxId,
99
- });
100
- }
101
- // Single-task mode
102
- const auditTypeText = resolveAuditTypeText(params.auditType);
103
- const prompt = buildAuditPrompt(auditTypeText, params.document, params.filePaths, hasContextBlocks);
104
- const results = await runTasks([{ ...baseTaskSpec, prompt }], config, { ...runOptions, runtime });
105
- const ctxId = autoRegisterContextBlock(results, contextBlockStore);
106
- return buildUnifiedResponse({
107
- batchId: randomUUID(),
108
- results,
109
- tasks: [{ ...baseTaskSpec, prompt }],
110
- wallClockMs: 0,
111
- parentModel,
112
- contextBlockId: ctxId,
113
- });
114
- }
115
- catch (err) {
116
- return {
117
- content: [{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` }],
118
- isError: true,
119
- };
120
- }
121
- })));
122
- }
123
- //# sourceMappingURL=audit-document.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-document.js","sourceRoot":"","sources":["../../src/tools/audit-document.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { RunResult, BatchTimings, BatchProgress, BatchAggregateCost } from '@zhixuan92/multi-model-agent-core';
2
- /**
3
- * Compute per-batch timing metrics.
4
- */
5
- export declare function computeTimings(wallClockMs: number, results: RunResult[]): BatchTimings;
6
- /**
7
- * Compute per-batch progress summary.
8
- */
9
- export declare function computeBatchProgress(results: RunResult[]): BatchProgress;
10
- /**
11
- * Compute aggregate cost across all tasks.
12
- */
13
- export declare function computeAggregateCost(results: RunResult[]): BatchAggregateCost;
14
- //# sourceMappingURL=batch-response.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-response.d.ts","sourceRoot":"","sources":["../../src/tools/batch-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,YAAY,CAItF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAgBxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAiB7E"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Compute per-batch timing metrics.
3
- */
4
- export function computeTimings(wallClockMs, results) {
5
- const sumOfTaskMs = results.reduce((sum, r) => sum + (r.durationMs ?? 0), 0);
6
- const estimatedParallelSavingsMs = Math.max(0, sumOfTaskMs - wallClockMs);
7
- return { wallClockMs, sumOfTaskMs, estimatedParallelSavingsMs };
8
- }
9
- /**
10
- * Compute per-batch progress summary.
11
- */
12
- export function computeBatchProgress(results) {
13
- const totalTasks = results.length;
14
- const completedTasks = results.filter((r) => r.status === 'ok').length;
15
- const incompleteTasks = results.filter((r) => r.status === 'incomplete' || r.status === 'timeout').length;
16
- const failedTasks = results.filter((r) => r.status === 'error' ||
17
- r.status === 'api_aborted' ||
18
- r.status === 'api_error' ||
19
- r.status === 'network_error').length;
20
- const successPercent = totalTasks === 0 ? 0 : Math.round((completedTasks / totalTasks) * 1000) / 10;
21
- return { totalTasks, completedTasks, incompleteTasks, failedTasks, successPercent };
22
- }
23
- /**
24
- * Compute aggregate cost across all tasks.
25
- */
26
- export function computeAggregateCost(results) {
27
- let totalActualCostUSD = 0;
28
- let totalSavedCostUSD = 0;
29
- for (const r of results) {
30
- if (r.usage.costUSD !== null && r.usage.costUSD !== undefined) {
31
- totalActualCostUSD += r.usage.costUSD;
32
- }
33
- if (r.usage.savedCostUSD !== null && r.usage.savedCostUSD !== undefined) {
34
- totalSavedCostUSD += r.usage.savedCostUSD;
35
- }
36
- }
37
- return {
38
- totalActualCostUSD,
39
- totalSavedCostUSD,
40
- };
41
- }
42
- //# sourceMappingURL=batch-response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-response.js","sourceRoot":"","sources":["../../src/tools/batch-response.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,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;;GAEG;AACH,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,SAAS,CAC3D,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;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,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,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,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}