@trishchuk/codex-mcp-tool 1.6.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -13
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js +35 -13
- package/dist/index.js.map +1 -1
- package/dist/tools/ask-codex.tool.d.ts.map +1 -1
- package/dist/tools/ask-codex.tool.js +35 -3
- package/dist/tools/ask-codex.tool.js.map +1 -1
- package/dist/tools/batch-codex.tool.d.ts.map +1 -1
- package/dist/tools/batch-codex.tool.js +26 -1
- package/dist/tools/batch-codex.tool.js.map +1 -1
- package/dist/tools/brainstorm.tool.d.ts.map +1 -1
- package/dist/tools/brainstorm.tool.js +16 -2
- package/dist/tools/brainstorm.tool.js.map +1 -1
- package/dist/tools/do-act.tool.d.ts +3 -0
- package/dist/tools/do-act.tool.d.ts.map +1 -0
- package/dist/tools/do-act.tool.js +179 -0
- package/dist/tools/do-act.tool.js.map +1 -0
- package/dist/tools/fetch-chunk.tool.d.ts.map +1 -1
- package/dist/tools/fetch-chunk.tool.js +5 -0
- package/dist/tools/fetch-chunk.tool.js.map +1 -1
- package/dist/tools/health.tool.d.ts.map +1 -1
- package/dist/tools/health.tool.js +21 -1
- package/dist/tools/health.tool.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-sessions.tool.d.ts.map +1 -1
- package/dist/tools/list-sessions.tool.js +49 -5
- package/dist/tools/list-sessions.tool.js.map +1 -1
- package/dist/tools/list-skills.tool.d.ts +3 -0
- package/dist/tools/list-skills.tool.d.ts.map +1 -0
- package/dist/tools/list-skills.tool.js +125 -0
- package/dist/tools/list-skills.tool.js.map +1 -0
- package/dist/tools/registry.d.ts +14 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +6 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/review-codex.tool.d.ts.map +1 -1
- package/dist/tools/review-codex.tool.js +74 -49
- package/dist/tools/review-codex.tool.js.map +1 -1
- package/dist/tools/simple-tools.d.ts.map +1 -1
- package/dist/tools/simple-tools.js +53 -9
- package/dist/tools/simple-tools.js.map +1 -1
- package/dist/tools/timeout-test.tool.d.ts.map +1 -1
- package/dist/tools/timeout-test.tool.js +5 -0
- package/dist/tools/timeout-test.tool.js.map +1 -1
- package/dist/utils/codexCommandBuilder.d.ts +29 -1
- package/dist/utils/codexCommandBuilder.d.ts.map +1 -1
- package/dist/utils/codexCommandBuilder.js +157 -14
- package/dist/utils/codexCommandBuilder.js.map +1 -1
- package/dist/utils/codexExecutor.d.ts +6 -0
- package/dist/utils/codexExecutor.d.ts.map +1 -1
- package/dist/utils/codexExecutor.js +13 -5
- package/dist/utils/codexExecutor.js.map +1 -1
- package/dist/utils/commandExecutor.d.ts +1 -0
- package/dist/utils/commandExecutor.d.ts.map +1 -1
- package/dist/utils/commandExecutor.js +4 -2
- package/dist/utils/commandExecutor.js.map +1 -1
- package/dist/utils/completions.d.ts +7 -0
- package/dist/utils/completions.d.ts.map +1 -0
- package/dist/utils/completions.js +19 -0
- package/dist/utils/completions.js.map +1 -0
- package/dist/utils/errorTypes.d.ts +1 -0
- package/dist/utils/errorTypes.d.ts.map +1 -1
- package/dist/utils/errorTypes.js +40 -7
- package/dist/utils/errorTypes.js.map +1 -1
- package/dist/utils/modelDetection.d.ts.map +1 -1
- package/dist/utils/modelDetection.js +4 -3
- package/dist/utils/modelDetection.js.map +1 -1
- package/dist/utils/versionDetection.d.ts +59 -4
- package/dist/utils/versionDetection.d.ts.map +1 -1
- package/dist/utils/versionDetection.js +39 -2
- package/dist/utils/versionDetection.js.map +1 -1
- package/package.json +16 -6
- package/server.json +40 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAY,MAAM,KAAK,CAAC;AAG3C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAEF,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,EAAE,CACP,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KACrC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;CAC3C;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,EAAO,CAAC;AAE9C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,kBAAkB,IAAI,IAAI,EAAE,CAoB3C;AAkBD,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAS/C;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAsBpF"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -14,11 +14,16 @@ export function getToolDefinitions() {
|
|
|
14
14
|
properties: def.properties || {},
|
|
15
15
|
required: def.required || [],
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
const toolDef = {
|
|
18
18
|
name: tool.name,
|
|
19
19
|
description: tool.description,
|
|
20
20
|
inputSchema,
|
|
21
21
|
};
|
|
22
|
+
if (tool.annotations)
|
|
23
|
+
toolDef.annotations = tool.annotations;
|
|
24
|
+
if (tool.outputSchema)
|
|
25
|
+
toolDef.outputSchema = tool.outputSchema;
|
|
26
|
+
return toolDef;
|
|
22
27
|
});
|
|
23
28
|
}
|
|
24
29
|
function extractPromptArguments(zodSchema) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-codex.tool.d.ts","sourceRoot":"","sources":["../../src/tools/review-codex.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"review-codex.tool.d.ts","sourceRoot":"","sources":["../../src/tools/review-codex.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAqC5C,eAAO,MAAM,eAAe,EAAE,WAsG7B,CAAC"}
|
|
@@ -1,90 +1,115 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { executeCommandDetailed } from '../utils/commandExecutor.js';
|
|
3
|
-
import {
|
|
4
|
-
import { MODELS } from '../constants.js';
|
|
3
|
+
import { MODELS, CLI } from '../constants.js';
|
|
5
4
|
import { Logger } from '../utils/logger.js';
|
|
5
|
+
import { resolveWorkingDirectory } from '../utils/workingDirResolver.js';
|
|
6
|
+
import { getModelWithFallback } from '../utils/modelDetection.js';
|
|
6
7
|
const reviewCodexArgsSchema = z.object({
|
|
7
8
|
prompt: z
|
|
8
9
|
.string()
|
|
9
|
-
.
|
|
10
|
-
.describe('
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('Custom review instructions or focus areas (cannot be used with uncommitted=true; use base/commit review instead)'),
|
|
12
|
+
uncommitted: z
|
|
13
|
+
.boolean()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Review staged, unstaged, and untracked changes (working tree) - cannot be combined with custom prompt'),
|
|
16
|
+
base: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Review changes against a specific base branch (e.g., "main", "develop")'),
|
|
20
|
+
commit: z.string().optional().describe('Review the changes introduced by a specific commit SHA'),
|
|
21
|
+
title: z.string().optional().describe('Optional title to display in the review summary'),
|
|
11
22
|
model: z
|
|
12
23
|
.string()
|
|
13
24
|
.optional()
|
|
14
25
|
.describe(`Model: ${Object.values(MODELS).join(', ')}. Default: uses Codex's default`),
|
|
26
|
+
workingDir: z
|
|
27
|
+
.string()
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('Working directory to run the review in (passed via -C as a global Codex option)'),
|
|
15
30
|
timeout: z.number().optional().describe('Maximum execution time in milliseconds'),
|
|
16
31
|
});
|
|
17
32
|
export const reviewCodexTool = {
|
|
18
33
|
name: 'review-changes',
|
|
19
|
-
description:
|
|
34
|
+
description: 'Run a code review against the current repository using Codex CLI native review subcommand',
|
|
20
35
|
zodSchema: reviewCodexArgsSchema,
|
|
36
|
+
annotations: {
|
|
37
|
+
readOnlyHint: true,
|
|
38
|
+
destructiveHint: false,
|
|
39
|
+
idempotentHint: true,
|
|
40
|
+
openWorldHint: true,
|
|
41
|
+
},
|
|
21
42
|
prompt: {
|
|
22
43
|
description: "Execute Codex's built-in code review on current changes",
|
|
23
44
|
},
|
|
24
45
|
category: 'codex',
|
|
25
46
|
execute: async (args, onProgress) => {
|
|
26
|
-
const { prompt, model, timeout } = args;
|
|
47
|
+
const { prompt, uncommitted, base, commit, title, model, workingDir, timeout } = args;
|
|
48
|
+
// Validation: prompt and uncommitted are mutually exclusive
|
|
49
|
+
if (prompt && uncommitted) {
|
|
50
|
+
return '❌ **Error**: The review prompt cannot be combined with uncommitted=true. Use a base/commit review or omit the prompt.';
|
|
51
|
+
}
|
|
27
52
|
try {
|
|
28
|
-
// Step 1: Prepare the review command
|
|
29
53
|
if (onProgress) {
|
|
30
|
-
onProgress('
|
|
54
|
+
onProgress('Starting code review...');
|
|
31
55
|
}
|
|
32
|
-
// Build command arguments for
|
|
33
|
-
const
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
|
|
56
|
+
// Build command arguments for codex review
|
|
57
|
+
const cmdArgs = [];
|
|
58
|
+
// Global flags (before subcommand)
|
|
59
|
+
const resolvedDir = resolveWorkingDirectory({ workingDir: workingDir });
|
|
60
|
+
if (resolvedDir) {
|
|
61
|
+
cmdArgs.push(CLI.FLAGS.WORKING_DIR, resolvedDir);
|
|
37
62
|
}
|
|
38
|
-
//
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
63
|
+
// Model selection via config
|
|
64
|
+
const selectedModel = model
|
|
65
|
+
? await getModelWithFallback(model)
|
|
66
|
+
: await getModelWithFallback();
|
|
67
|
+
cmdArgs.push(CLI.FLAGS.CONFIG, `model="${selectedModel}"`);
|
|
68
|
+
// The review subcommand
|
|
69
|
+
cmdArgs.push('review');
|
|
70
|
+
// Review-specific flags
|
|
71
|
+
if (uncommitted) {
|
|
72
|
+
cmdArgs.push('--uncommitted');
|
|
43
73
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
timeoutMs: timeout || 180000, // 3 minutes default for review
|
|
47
|
-
});
|
|
48
|
-
if (!result.ok) {
|
|
49
|
-
throw new Error(result.stderr || 'Codex review command failed');
|
|
74
|
+
if (base) {
|
|
75
|
+
cmdArgs.push('--base', base);
|
|
50
76
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (onProgress) {
|
|
54
|
-
onProgress('📝 Processing review results...');
|
|
77
|
+
if (commit) {
|
|
78
|
+
cmdArgs.push('--commit', commit);
|
|
55
79
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (reviewOutput) {
|
|
59
|
-
// Format the structured review
|
|
60
|
-
const formattedReview = formatReviewFindings(reviewOutput);
|
|
61
|
-
// Add summary statistics
|
|
62
|
-
const stats = [
|
|
63
|
-
`📊 **Review Statistics:**`,
|
|
64
|
-
`- Issues found: ${reviewOutput.findings.length}`,
|
|
65
|
-
`- High priority issues: ${reviewOutput.findings.filter(f => f.priority === 0 || f.priority === 1).length}`,
|
|
66
|
-
];
|
|
67
|
-
return `${formattedReview}\n\n${stats.join('\n')}`;
|
|
80
|
+
if (title) {
|
|
81
|
+
cmdArgs.push('--title', title);
|
|
68
82
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
// Custom review instructions (positional arg after flags)
|
|
84
|
+
if (prompt) {
|
|
85
|
+
cmdArgs.push(prompt);
|
|
86
|
+
}
|
|
87
|
+
if (onProgress) {
|
|
88
|
+
onProgress(`Executing: codex ${cmdArgs.join(' ')}`);
|
|
73
89
|
}
|
|
90
|
+
// Execute codex review
|
|
91
|
+
const result = await executeCommandDetailed(CLI.COMMANDS.CODEX, cmdArgs, {
|
|
92
|
+
onProgress,
|
|
93
|
+
timeoutMs: timeout || 180000, // 3 minutes default
|
|
94
|
+
cwd: resolvedDir || undefined,
|
|
95
|
+
});
|
|
96
|
+
// Codex CLI may output to stderr, so check both
|
|
97
|
+
const response = result.stdout || result.stderr || 'No review output from Codex';
|
|
98
|
+
if (!result.ok && !response) {
|
|
99
|
+
throw new Error(result.stderr || 'Codex review command failed');
|
|
100
|
+
}
|
|
101
|
+
return `## Code Review Results\n\n**Model:** ${selectedModel}\n${base ? `**Base:** ${base}\n` : ''}${commit ? `**Commit:** ${commit}\n` : ''}\n${response}`;
|
|
74
102
|
}
|
|
75
103
|
catch (error) {
|
|
76
104
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
77
105
|
Logger.error('Review failed:', error);
|
|
78
|
-
if (errorMessage.includes('command not found')) {
|
|
106
|
+
if (errorMessage.includes('command not found') || errorMessage.includes('not found')) {
|
|
79
107
|
return '❌ **Error**: Codex CLI not found. Install with: npm install -g @openai/codex';
|
|
80
108
|
}
|
|
81
109
|
if (errorMessage.includes('authentication') || errorMessage.includes('unauthorized')) {
|
|
82
110
|
return '❌ **Authentication Failed**: Run "codex login" first';
|
|
83
111
|
}
|
|
84
|
-
|
|
85
|
-
return "❌ **Error**: Review command not available. Make sure you're using the latest Codex version.";
|
|
86
|
-
}
|
|
87
|
-
return `❌ **Review Failed**: ${errorMessage}\n\nTip: Try running "codex exec /review" directly to test.`;
|
|
112
|
+
return `❌ **Review Failed**: ${errorMessage}`;
|
|
88
113
|
}
|
|
89
114
|
},
|
|
90
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-codex.tool.js","sourceRoot":"","sources":["../../src/tools/review-codex.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"review-codex.tool.js","sourceRoot":"","sources":["../../src/tools/review-codex.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kHAAkH,CACnH;IACH,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,uGAAuG,CACxG;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;IACtF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IACxF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC;IACxF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,2FAA2F;IAC7F,SAAS,EAAE,qBAAqB;IAChC,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,yDAAyD;KACvE;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAClC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEtF,4DAA4D;QAC5D,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAC1B,OAAO,uHAAuH,CAAC;QACjI,CAAC;QAED,IAAI,CAAC;YACH,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,yBAAyB,CAAC,CAAC;YACxC,CAAC;YAED,2CAA2C;YAC3C,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,mCAAmC;YACnC,MAAM,WAAW,GAAG,uBAAuB,CAAC,EAAE,UAAU,EAAE,UAAoB,EAAE,CAAC,CAAC;YAClF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACnD,CAAC;YAED,6BAA6B;YAC7B,MAAM,aAAa,GAAG,KAAK;gBACzB,CAAC,CAAC,MAAM,oBAAoB,CAAC,KAAe,CAAC;gBAC7C,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,aAAa,GAAG,CAAC,CAAC;YAE3D,wBAAwB;YACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvB,wBAAwB;YACxB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAc,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAgB,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAe,CAAC,CAAC;YAC3C,CAAC;YAED,0DAA0D;YAC1D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,oBAAoB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;gBACvE,UAAU;gBACV,SAAS,EAAG,OAAkB,IAAI,MAAM,EAAE,oBAAoB;gBAC9D,GAAG,EAAE,WAAW,IAAI,SAAS;aAC9B,CAAC,CAAC;YAEH,gDAAgD;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,6BAA6B,CAAC;YAEjF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,6BAA6B,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,wCAAwC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC9J,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAEtC,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrF,OAAO,8EAA8E,CAAC;YACxF,CAAC;YAED,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrF,OAAO,sDAAsD,CAAC;YAChE,CAAC;YAED,OAAO,wBAAwB,YAAY,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-tools.d.ts","sourceRoot":"","sources":["../../src/tools/simple-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"simple-tools.d.ts","sourceRoot":"","sources":["../../src/tools/simple-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAOlE,eAAO,MAAM,QAAQ,EAAE,WAkBtB,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,WAgBtB,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,WAiEzB,CAAC"}
|
|
@@ -7,11 +7,16 @@ export const pingTool = {
|
|
|
7
7
|
name: 'ping',
|
|
8
8
|
description: 'Echo',
|
|
9
9
|
zodSchema: pingArgsSchema,
|
|
10
|
+
annotations: {
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
idempotentHint: true,
|
|
13
|
+
openWorldHint: false,
|
|
14
|
+
},
|
|
10
15
|
prompt: {
|
|
11
16
|
description: 'Echo test message with structured response.',
|
|
12
17
|
},
|
|
13
18
|
category: 'simple',
|
|
14
|
-
execute: async (args,
|
|
19
|
+
execute: async (args, _onProgress) => {
|
|
15
20
|
const message = args.prompt || args.message || 'Pong!';
|
|
16
21
|
// Return message directly to avoid cross-platform issues with echo command
|
|
17
22
|
return message;
|
|
@@ -22,6 +27,11 @@ export const helpTool = {
|
|
|
22
27
|
name: 'Help',
|
|
23
28
|
description: 'receive help information',
|
|
24
29
|
zodSchema: helpArgsSchema,
|
|
30
|
+
annotations: {
|
|
31
|
+
readOnlyHint: true,
|
|
32
|
+
idempotentHint: true,
|
|
33
|
+
openWorldHint: false,
|
|
34
|
+
},
|
|
25
35
|
prompt: {
|
|
26
36
|
description: 'receive help information',
|
|
27
37
|
},
|
|
@@ -35,29 +45,63 @@ export const versionTool = {
|
|
|
35
45
|
name: 'version',
|
|
36
46
|
description: 'Display version and system information',
|
|
37
47
|
zodSchema: versionArgsSchema,
|
|
48
|
+
annotations: {
|
|
49
|
+
readOnlyHint: true,
|
|
50
|
+
idempotentHint: true,
|
|
51
|
+
openWorldHint: true,
|
|
52
|
+
},
|
|
53
|
+
outputSchema: {
|
|
54
|
+
type: 'object',
|
|
55
|
+
properties: {
|
|
56
|
+
codexCli: { type: 'string' },
|
|
57
|
+
nodeJs: { type: 'string' },
|
|
58
|
+
platform: { type: 'string' },
|
|
59
|
+
mcpServer: { type: 'string' },
|
|
60
|
+
},
|
|
61
|
+
required: ['nodeJs', 'platform', 'mcpServer'],
|
|
62
|
+
},
|
|
38
63
|
prompt: {
|
|
39
64
|
description: 'Get version information for Codex CLI and MCP server',
|
|
40
65
|
},
|
|
41
66
|
category: 'simple',
|
|
42
67
|
execute: async (args, onProgress) => {
|
|
68
|
+
const nodeVersion = process.version;
|
|
69
|
+
const platform = process.platform;
|
|
70
|
+
const mcpServer = '@trishchuk/codex-mcp-tool v2.1.1';
|
|
43
71
|
try {
|
|
44
72
|
const codexVersion = await executeCommand('codex', ['--version'], onProgress);
|
|
45
|
-
const
|
|
46
|
-
const platform = process.platform;
|
|
47
|
-
return `**System Information:**
|
|
73
|
+
const text = `**System Information:**
|
|
48
74
|
- Codex CLI: ${codexVersion.trim()}
|
|
49
75
|
- Node.js: ${nodeVersion}
|
|
50
76
|
- Platform: ${platform}
|
|
51
|
-
- MCP Server:
|
|
77
|
+
- MCP Server: ${mcpServer}`;
|
|
78
|
+
return {
|
|
79
|
+
text,
|
|
80
|
+
structuredContent: {
|
|
81
|
+
codexCli: codexVersion.trim(),
|
|
82
|
+
nodeJs: nodeVersion,
|
|
83
|
+
platform,
|
|
84
|
+
mcpServer,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
52
87
|
}
|
|
53
88
|
catch (error) {
|
|
54
|
-
|
|
89
|
+
const text = `**System Information:**
|
|
55
90
|
- Codex CLI: Not installed or not accessible
|
|
56
|
-
- Node.js: ${
|
|
57
|
-
- Platform: ${
|
|
58
|
-
- MCP Server:
|
|
91
|
+
- Node.js: ${nodeVersion}
|
|
92
|
+
- Platform: ${platform}
|
|
93
|
+
- MCP Server: ${mcpServer}
|
|
59
94
|
|
|
60
95
|
*Note: Install Codex CLI with: npm install -g @openai/codex*`;
|
|
96
|
+
return {
|
|
97
|
+
text,
|
|
98
|
+
structuredContent: {
|
|
99
|
+
codexCli: 'not installed',
|
|
100
|
+
nodeJs: nodeVersion,
|
|
101
|
+
platform,
|
|
102
|
+
mcpServer,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
61
105
|
}
|
|
62
106
|
},
|
|
63
107
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-tools.js","sourceRoot":"","sources":["../../src/tools/simple-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE;QACN,WAAW,EAAE,6CAA6C;KAC3D;IACD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"simple-tools.js","sourceRoot":"","sources":["../../src/tools/simple-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout-test.tool.d.ts","sourceRoot":"","sources":["../../src/tools/timeout-test.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"timeout-test.tool.d.ts","sourceRoot":"","sources":["../../src/tools/timeout-test.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,eAAe,EAAE,WAmC7B,CAAC"}
|
|
@@ -6,6 +6,11 @@ export const timeoutTestTool = {
|
|
|
6
6
|
name: 'timeout-test',
|
|
7
7
|
description: 'Test timeout prevention by running for a specified duration',
|
|
8
8
|
zodSchema: timeoutTestArgsSchema,
|
|
9
|
+
annotations: {
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
idempotentHint: true,
|
|
12
|
+
openWorldHint: false,
|
|
13
|
+
},
|
|
9
14
|
prompt: {
|
|
10
15
|
description: 'Test the timeout prevention system by running a long operation',
|
|
11
16
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout-test.tool.js","sourceRoot":"","sources":["../../src/tools/timeout-test.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE,qBAAqB;IAChC,MAAM,EAAE;QACN,WAAW,EAAE,gEAAgE;KAC9E;IACD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,2BAA2B;QACrE,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,6BAA6B,QAAQ,OAAO,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;QAE9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,yBAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,oBAAoB,YAAY,IAAI,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"timeout-test.tool.js","sourceRoot":"","sources":["../../src/tools/timeout-test.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE,qBAAqB;IAChC,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,gEAAgE;KAC9E;IACD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,2BAA2B;QACrE,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,6BAA6B,QAAQ,OAAO,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;QAE9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,yBAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,oBAAoB,YAAY,IAAI,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -15,6 +15,7 @@ export interface CodexCommandBuilderOptions {
|
|
|
15
15
|
readonly image?: string | string[];
|
|
16
16
|
readonly search?: boolean;
|
|
17
17
|
readonly oss?: boolean;
|
|
18
|
+
readonly localProvider?: 'lmstudio' | 'ollama';
|
|
18
19
|
readonly enableFeatures?: string[];
|
|
19
20
|
readonly disableFeatures?: string[];
|
|
20
21
|
readonly addDirs?: string[];
|
|
@@ -24,15 +25,21 @@ export interface CodexCommandBuilderOptions {
|
|
|
24
25
|
readonly concisePrompt?: boolean;
|
|
25
26
|
readonly useStdinForLongPrompts?: boolean;
|
|
26
27
|
readonly codexConversationId?: string;
|
|
28
|
+
readonly changeMode?: boolean;
|
|
29
|
+
readonly outputSchema?: string | Record<string, any>;
|
|
30
|
+
readonly personality?: 'pragmatic' | 'friendly';
|
|
31
|
+
readonly skipGitRepoCheck?: boolean;
|
|
32
|
+
readonly outputLastMessage?: string;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* Result of building a Codex command
|
|
30
36
|
*/
|
|
31
37
|
export interface BuildResult {
|
|
32
38
|
args: string[];
|
|
33
|
-
|
|
39
|
+
tempFiles: string[];
|
|
34
40
|
finalPrompt: string;
|
|
35
41
|
useResume: boolean;
|
|
42
|
+
workingDir?: string;
|
|
36
43
|
}
|
|
37
44
|
/**
|
|
38
45
|
* Builder class for constructing Codex CLI commands
|
|
@@ -40,7 +47,9 @@ export interface BuildResult {
|
|
|
40
47
|
*/
|
|
41
48
|
export declare class CodexCommandBuilder {
|
|
42
49
|
private args;
|
|
50
|
+
private tempFiles;
|
|
43
51
|
private useResumeMode;
|
|
52
|
+
private resolvedWorkingDir?;
|
|
44
53
|
/**
|
|
45
54
|
* Build a complete Codex CLI command with all options
|
|
46
55
|
* @param prompt User prompt
|
|
@@ -58,6 +67,8 @@ export declare class CodexCommandBuilder {
|
|
|
58
67
|
private validateOptions;
|
|
59
68
|
/**
|
|
60
69
|
* Add model argument with fallback chain
|
|
70
|
+
* @param model Requested model name
|
|
71
|
+
* @param skipValidation When true (OSS/local mode), pass model as-is without fallback checks
|
|
61
72
|
*/
|
|
62
73
|
private addModelArg;
|
|
63
74
|
/**
|
|
@@ -81,6 +92,23 @@ export declare class CodexCommandBuilder {
|
|
|
81
92
|
* Note: 'none' and 'minimal' are accepted by Codex CLI parser but rejected by OpenAI API for gpt-5.3-codex
|
|
82
93
|
*/
|
|
83
94
|
private addReasoningEffort;
|
|
95
|
+
/**
|
|
96
|
+
* Add --skip-git-repo-check flag (v0.75.0+)
|
|
97
|
+
*/
|
|
98
|
+
private addSkipGitCheck;
|
|
99
|
+
/**
|
|
100
|
+
* Add personality configuration (v0.94.0+)
|
|
101
|
+
*/
|
|
102
|
+
private addPersonality;
|
|
103
|
+
/**
|
|
104
|
+
* Add --output-schema flag (v0.95.0+)
|
|
105
|
+
* Accepts a file path (string) or inline schema (object → written to temp file)
|
|
106
|
+
*/
|
|
107
|
+
private addOutputSchema;
|
|
108
|
+
/**
|
|
109
|
+
* Add -o / --output-last-message flag (v0.95.0+)
|
|
110
|
+
*/
|
|
111
|
+
private addOutputLastMessage;
|
|
84
112
|
/**
|
|
85
113
|
* Handle prompt with concise mode and stdin for large prompts
|
|
86
114
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexCommandBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/codexCommandBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codexCommandBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/codexCommandBuilder.ts"],"names":[],"mappings":"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"}
|