@zhixuan92/multi-model-agent-mcp 0.4.0 → 1.1.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.
Files changed (34) hide show
  1. package/README.md +18 -220
  2. package/dist/cli.d.ts +20 -22
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +183 -154
  5. package/dist/cli.js.map +1 -1
  6. package/dist/routing/render-provider-routing-matrix.d.ts +1 -1
  7. package/dist/routing/render-provider-routing-matrix.d.ts.map +1 -1
  8. package/dist/routing/render-provider-routing-matrix.js +38 -67
  9. package/dist/routing/render-provider-routing-matrix.js.map +1 -1
  10. package/dist/tools/audit-document.d.ts +37 -0
  11. package/dist/tools/audit-document.d.ts.map +1 -0
  12. package/dist/tools/audit-document.js +76 -0
  13. package/dist/tools/audit-document.js.map +1 -0
  14. package/dist/tools/batch-response.d.ts +21 -0
  15. package/dist/tools/batch-response.d.ts.map +1 -0
  16. package/dist/tools/batch-response.js +78 -0
  17. package/dist/tools/batch-response.js.map +1 -0
  18. package/dist/tools/debug-task.d.ts +23 -0
  19. package/dist/tools/debug-task.d.ts.map +1 -0
  20. package/dist/tools/debug-task.js +38 -0
  21. package/dist/tools/debug-task.js.map +1 -0
  22. package/dist/tools/review-code.d.ts +31 -0
  23. package/dist/tools/review-code.d.ts.map +1 -0
  24. package/dist/tools/review-code.js +65 -0
  25. package/dist/tools/review-code.js.map +1 -0
  26. package/dist/tools/shared.d.ts +31 -0
  27. package/dist/tools/shared.d.ts.map +1 -0
  28. package/dist/tools/shared.js +72 -0
  29. package/dist/tools/shared.js.map +1 -0
  30. package/dist/tools/verify-work.d.ts +22 -0
  31. package/dist/tools/verify-work.d.ts.map +1 -0
  32. package/dist/tools/verify-work.js +57 -0
  33. package/dist/tools/verify-work.js.map +1 -0
  34. package/package.json +19 -3
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import type { TaskSpec, ToolMode, RunResult } from '@zhixuan92/multi-model-agent-core';
3
+ export declare const commonToolFields: {
4
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ cwd: z.ZodOptional<z.ZodString>;
6
+ contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ tools: z.ZodOptional<z.ZodEnum<{
8
+ readonly: "readonly";
9
+ none: "none";
10
+ full: "full";
11
+ }>>;
12
+ };
13
+ export declare function validateInput(inlineContent: string | undefined, filePaths: string[] | undefined): {
14
+ valid: true;
15
+ } | {
16
+ valid: false;
17
+ message: string;
18
+ };
19
+ export declare function resolveDispatchMode(inlineContent: string | undefined, filePaths: string[] | undefined): 'single' | 'fan_out';
20
+ export declare function buildMetadataBlock(result: RunResult): {
21
+ type: 'text';
22
+ text: string;
23
+ };
24
+ export declare function buildFilePathsPrompt(filePaths?: string[]): string;
25
+ export declare function buildPerFilePrompt(filePath: string, promptTemplate: string): string;
26
+ export declare function applyCommonFields(taskSpec: Partial<TaskSpec>, params: {
27
+ cwd?: string;
28
+ contextBlockIds?: string[];
29
+ tools?: ToolMode;
30
+ }): Partial<TaskSpec>;
31
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEvF,eAAO,MAAM,gBAAgB;;;;;;;;;CAS5B,CAAC;AAUF,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAC9B;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAKrD;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAC9B,QAAQ,GAAG,SAAS,CAKtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBpF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAAE,GACrE,OAAO,CAAC,QAAQ,CAAC,CAMnB"}
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ export const commonToolFields = {
3
+ filePaths: z.array(z.string()).optional()
4
+ .describe('File paths for the agent to work with. When provided without inline content, each file becomes a separate parallel task.'),
5
+ cwd: z.string().optional()
6
+ .describe('Working directory for file access. Defaults to server process.cwd().'),
7
+ contextBlockIds: z.array(z.string()).optional()
8
+ .describe('IDs of registered context blocks to prepend to prompt.'),
9
+ tools: z.enum(['none', 'readonly', 'full']).optional()
10
+ .describe('Tool access level for the sub-agent. Defaults to full.'),
11
+ };
12
+ function hasContent(value) {
13
+ return value !== undefined && value.trim().length > 0;
14
+ }
15
+ function hasValidPaths(paths) {
16
+ return Array.isArray(paths) && paths.some(p => p.trim().length > 0);
17
+ }
18
+ export function validateInput(inlineContent, filePaths) {
19
+ if (hasContent(inlineContent) || hasValidPaths(filePaths)) {
20
+ return { valid: true };
21
+ }
22
+ return { valid: false, message: 'Provide content or filePaths (or both)' };
23
+ }
24
+ export function resolveDispatchMode(inlineContent, filePaths) {
25
+ if (hasContent(inlineContent))
26
+ return 'single';
27
+ const validPaths = (filePaths ?? []).filter(p => p.trim().length > 0);
28
+ if (validPaths.length >= 2)
29
+ return 'fan_out';
30
+ return 'single';
31
+ }
32
+ export function buildMetadataBlock(result) {
33
+ return {
34
+ type: 'text',
35
+ text: JSON.stringify({
36
+ status: result.status,
37
+ workerStatus: result.workerStatus,
38
+ specReviewStatus: result.specReviewStatus,
39
+ qualityReviewStatus: result.qualityReviewStatus,
40
+ usage: {
41
+ inputTokens: result.usage.inputTokens,
42
+ outputTokens: result.usage.outputTokens,
43
+ costUSD: result.usage.costUSD,
44
+ },
45
+ turns: result.turns,
46
+ durationMs: result.durationMs,
47
+ filesRead: result.filesRead,
48
+ filesWritten: result.filesWritten,
49
+ directoriesListed: result.directoriesListed ?? [],
50
+ toolCalls: result.toolCalls,
51
+ }, null, 2),
52
+ };
53
+ }
54
+ export function buildFilePathsPrompt(filePaths) {
55
+ if (!filePaths || filePaths.length === 0)
56
+ return '';
57
+ return `Read and analyze these files:\n${filePaths.map(p => `- ${p}`).join('\n')}`;
58
+ }
59
+ export function buildPerFilePrompt(filePath, promptTemplate) {
60
+ return `${promptTemplate}\n\nRead and analyze this file:\n- ${filePath}`;
61
+ }
62
+ export function applyCommonFields(taskSpec, params) {
63
+ const result = { ...taskSpec };
64
+ if (params.cwd !== undefined)
65
+ result.cwd = params.cwd;
66
+ if (params.contextBlockIds !== undefined)
67
+ result.contextBlockIds = params.contextBlockIds;
68
+ if (params.tools !== undefined)
69
+ result.tools = params.tools;
70
+ return result;
71
+ }
72
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import type { MultiModelConfig } from '@zhixuan92/multi-model-agent-core';
4
+ export declare const verifyWorkSchema: z.ZodObject<{
5
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ cwd: z.ZodOptional<z.ZodString>;
7
+ contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
+ tools: z.ZodOptional<z.ZodEnum<{
9
+ readonly: "readonly";
10
+ none: "none";
11
+ full: "full";
12
+ }>>;
13
+ work: z.ZodOptional<z.ZodString>;
14
+ checklist: z.ZodArray<z.ZodString>;
15
+ agentType: z.ZodOptional<z.ZodEnum<{
16
+ standard: "standard";
17
+ complex: "complex";
18
+ }>>;
19
+ }, z.core.$strip>;
20
+ export type VerifyWorkParams = z.infer<typeof verifyWorkSchema>;
21
+ export declare function registerVerifyWork(server: McpServer, config: MultiModelConfig): void;
22
+ //# sourceMappingURL=verify-work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-work.d.ts","sourceRoot":"","sources":["../../src/tools/verify-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,mCAAmC,CAAC;AAapF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAK3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiBhE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QA6C7E"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { runTasks } from '@zhixuan92/multi-model-agent-core/run-tasks';
3
+ import { commonToolFields, validateInput, resolveDispatchMode, buildMetadataBlock, buildFilePathsPrompt, buildPerFilePrompt, applyCommonFields, } from './shared.js';
4
+ import { buildFanOutResponse } from './batch-response.js';
5
+ export const verifyWorkSchema = z.object({
6
+ work: z.string().optional().describe('Inline work product to verify'),
7
+ checklist: z.array(z.string()).min(1).describe('Verification checklist items (at least 1)'),
8
+ agentType: z.enum(['standard', 'complex']).optional(),
9
+ ...commonToolFields,
10
+ });
11
+ function buildVerifyPrompt(work, filePaths, checklist) {
12
+ const parts = ['Verify this work:'];
13
+ if (work)
14
+ parts.push(work);
15
+ const fileSection = buildFilePathsPrompt(filePaths);
16
+ if (fileSection)
17
+ parts.push(fileSection);
18
+ const checklistText = checklist.map((item, i) => `${i + 1}. ${item}`).join('\n');
19
+ parts.push(`Checklist:\n${checklistText}`);
20
+ parts.push('For each checklist item, indicate pass/fail and provide evidence.');
21
+ return parts.join('\n\n');
22
+ }
23
+ export function registerVerifyWork(server, config) {
24
+ server.tool('verify_work', 'Verify completed work against a checklist with pass/fail evidence. Accepts inline description or file paths \u2014 multiple files are verified in parallel, each against the same checklist. Preset: standard agent, spec review only. Use delegate_tasks only for custom pipeline config.', verifyWorkSchema.shape, async (params) => {
25
+ const validation = validateInput(params.work, params.filePaths);
26
+ if (!validation.valid) {
27
+ return { content: [{ type: 'text', text: `Error: ${validation.message}` }], isError: true };
28
+ }
29
+ const agentType = params.agentType ?? 'standard';
30
+ const baseTaskSpec = applyCommonFields({ agentType, reviewPolicy: 'spec_only' }, params);
31
+ try {
32
+ const mode = resolveDispatchMode(params.work, params.filePaths);
33
+ if (mode === 'fan_out') {
34
+ const validPaths = params.filePaths.filter(p => p.trim().length > 0);
35
+ const promptTemplate = buildVerifyPrompt(undefined, undefined, params.checklist);
36
+ const tasks = validPaths.map(fp => ({
37
+ ...baseTaskSpec,
38
+ prompt: buildPerFilePrompt(fp, promptTemplate),
39
+ }));
40
+ const startMs = Date.now();
41
+ const results = await runTasks(tasks, config);
42
+ return { content: [buildFanOutResponse(results, tasks, Date.now() - startMs)] };
43
+ }
44
+ const prompt = buildVerifyPrompt(params.work, params.filePaths, params.checklist);
45
+ const results = await runTasks([{ ...baseTaskSpec, prompt }], config);
46
+ const result = results[0];
47
+ return { content: [{ type: 'text', text: result.output }, buildMetadataBlock(result)] };
48
+ }
49
+ catch (err) {
50
+ return {
51
+ content: [{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` }],
52
+ isError: true,
53
+ };
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=verify-work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-work.js","sourceRoot":"","sources":["../../src/tools/verify-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC3F,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,GAAG,gBAAgB;CACpB,CAAC,CAAC;AAIH,SAAS,iBAAiB,CACxB,IAAwB,EACxB,SAA+B,EAC/B,SAAmB;IAEnB,MAAM,KAAK,GAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,eAAe,aAAa,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAwB;IAC5E,MAAM,CAAC,IAAI,CACT,aAAa,EACb,4RAA4R,EAC5R,gBAAgB,CAAC,KAAK,EACtB,KAAK,EAAE,MAAwB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvG,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;QACjD,MAAM,YAAY,GAAsB,iBAAiB,CACvD,EAAE,SAAS,EAAE,YAAY,EAAE,WAAoB,EAAE,EACjD,MAAM,CACP,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAEhE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,MAAM,CAAC,SAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtE,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAe,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC9C,GAAG,YAAY;oBACf,MAAM,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC;iBAClC,CAAA,CAAC,CAAC;gBAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;YAClF,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAClF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,MAAM,EAAc,CAAC,EAAE,MAAM,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACnG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACxG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent-mcp",
3
- "version": "0.4.0",
3
+ "version": "1.1.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.",
@@ -39,6 +39,22 @@
39
39
  "./routing/render-provider-routing-matrix": {
40
40
  "types": "./dist/routing/render-provider-routing-matrix.d.ts",
41
41
  "import": "./dist/routing/render-provider-routing-matrix.js"
42
+ },
43
+ "./tools/audit-document": {
44
+ "types": "./dist/tools/audit-document.d.ts",
45
+ "import": "./dist/tools/audit-document.js"
46
+ },
47
+ "./tools/debug-task": {
48
+ "types": "./dist/tools/debug-task.d.ts",
49
+ "import": "./dist/tools/debug-task.js"
50
+ },
51
+ "./tools/review-code": {
52
+ "types": "./dist/tools/review-code.d.ts",
53
+ "import": "./dist/tools/review-code.js"
54
+ },
55
+ "./tools/verify-work": {
56
+ "types": "./dist/tools/verify-work.d.ts",
57
+ "import": "./dist/tools/verify-work.js"
42
58
  }
43
59
  },
44
60
  "scripts": {
@@ -50,7 +66,7 @@
50
66
  },
51
67
  "dependencies": {
52
68
  "@modelcontextprotocol/sdk": "^1.0.0",
53
- "@zhixuan92/multi-model-agent-core": "^0.4.0",
69
+ "@zhixuan92/multi-model-agent-core": "^1.1.0",
54
70
  "zod": "^4.0.0"
55
71
  }
56
- }
72
+ }