@trishchuk/codex-mcp-tool 2.1.1 → 2.3.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 (37) hide show
  1. package/README.md +18 -11
  2. package/dist/constants.d.ts +2 -3
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +6 -7
  5. package/dist/constants.js.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/tools/ask-codex.tool.d.ts.map +1 -1
  8. package/dist/tools/ask-codex.tool.js +9 -4
  9. package/dist/tools/ask-codex.tool.js.map +1 -1
  10. package/dist/tools/batch-codex.tool.d.ts.map +1 -1
  11. package/dist/tools/batch-codex.tool.js +75 -26
  12. package/dist/tools/batch-codex.tool.js.map +1 -1
  13. package/dist/tools/brainstorm.tool.d.ts.map +1 -1
  14. package/dist/tools/brainstorm.tool.js +3 -3
  15. package/dist/tools/brainstorm.tool.js.map +1 -1
  16. package/dist/tools/do-act.tool.d.ts.map +1 -1
  17. package/dist/tools/do-act.tool.js +4 -4
  18. package/dist/tools/do-act.tool.js.map +1 -1
  19. package/dist/tools/review-codex.tool.d.ts.map +1 -1
  20. package/dist/tools/review-codex.tool.js +21 -9
  21. package/dist/tools/review-codex.tool.js.map +1 -1
  22. package/dist/utils/codexCommandBuilder.d.ts +5 -3
  23. package/dist/utils/codexCommandBuilder.d.ts.map +1 -1
  24. package/dist/utils/codexCommandBuilder.js +19 -22
  25. package/dist/utils/codexCommandBuilder.js.map +1 -1
  26. package/dist/utils/errorTypes.js +1 -1
  27. package/dist/utils/errorTypes.js.map +1 -1
  28. package/dist/utils/modelDetection.d.ts +13 -37
  29. package/dist/utils/modelDetection.d.ts.map +1 -1
  30. package/dist/utils/modelDetection.js +13 -138
  31. package/dist/utils/modelDetection.js.map +1 -1
  32. package/dist/utils/outputParser.d.ts +9 -2
  33. package/dist/utils/outputParser.d.ts.map +1 -1
  34. package/dist/utils/outputParser.js +136 -19
  35. package/dist/utils/outputParser.js.map +1 -1
  36. package/package.json +1 -1
  37. package/server.json +3 -3
@@ -1,5 +1,55 @@
1
1
  import { Logger } from './logger.js';
2
- export function parseCodexOutput(rawOutput) {
2
+ /**
3
+ * Detect whether raw output contains Codex CLI section markers (interactive format).
4
+ * Codex CLI v0.114.0+ sends interactive output (header, metadata, thinking, tool executions)
5
+ * to stderr, while stdout contains only the clean final response.
6
+ */
7
+ function hasInteractiveFormat(rawOutput) {
8
+ return rawOutput.includes('OpenAI Codex') || rawOutput.includes('--------');
9
+ }
10
+ export function parseCodexOutput(rawOutput, rawStderr) {
11
+ // Codex CLI v0.114.0+: stdout = clean response, stderr = interactive output.
12
+ // If stdout has no section markers, treat it as the clean final response directly.
13
+ if (!hasInteractiveFormat(rawOutput) && rawOutput.trim()) {
14
+ // Extract tokens and metadata from stderr if available
15
+ let tokensUsed;
16
+ let metadata = {};
17
+ if (rawStderr) {
18
+ const tokensMatch = rawStderr.match(/tokens used[:\s]*(\d[\d\s]*\d|\d+)/);
19
+ if (tokensMatch) {
20
+ tokensUsed = parseInt(tokensMatch[1].replace(/\s/g, ''), 10);
21
+ }
22
+ // Parse metadata from stderr (interactive format)
23
+ if (hasInteractiveFormat(rawStderr)) {
24
+ const parsed = parseInteractiveOutput(rawStderr);
25
+ metadata = parsed.metadata;
26
+ }
27
+ }
28
+ const output = {
29
+ metadata,
30
+ userInstructions: '',
31
+ thinking: undefined,
32
+ response: rawOutput.trim(),
33
+ tokensUsed,
34
+ timestamps: [],
35
+ rawOutput,
36
+ rawStderr,
37
+ };
38
+ Logger.codexResponse(output.response, tokensUsed);
39
+ return output;
40
+ }
41
+ // Fallback: if stdout is empty but stderr has content, try stderr
42
+ const effectiveOutput = rawOutput.trim() ? rawOutput : rawStderr || rawOutput;
43
+ const parsed = parseInteractiveOutput(effectiveOutput);
44
+ parsed.rawStderr = rawStderr;
45
+ return parsed;
46
+ }
47
+ /**
48
+ * Parse Codex CLI interactive output format (header + metadata + thinking + response).
49
+ * Used for older CLI versions where everything goes to stdout,
50
+ * or for parsing stderr in newer versions.
51
+ */
52
+ function parseInteractiveOutput(rawOutput) {
3
53
  const lines = rawOutput.split('\n');
4
54
  const timestamps = [];
5
55
  let metadata = {};
@@ -11,20 +61,24 @@ export function parseCodexOutput(rawOutput) {
11
61
  let metadataLines = [];
12
62
  let thinkingLines = [];
13
63
  let responseLines = [];
64
+ // Section marker patterns — must match ONLY standalone markers, not content lines.
65
+ // Codex CLI uses these as speaker/action labels on their own line.
66
+ const STANDALONE_MARKERS = /^(codex|assistant|user|exec|thinking)$/;
14
67
  for (let i = 0; i < lines.length; i++) {
15
68
  const line = lines[i];
69
+ const trimmed = line.trim();
16
70
  // Extract timestamps
17
71
  const timestampMatch = line.match(/^\[([^\]]+)\]/);
18
72
  if (timestampMatch) {
19
73
  timestamps.push(timestampMatch[1]);
20
74
  }
21
- // Extract tokens used
22
- const tokensMatch = line.match(/tokens used:\s*(\d+)/);
75
+ // Extract tokens used (with or without colon, handle space-separated numbers like "7 951")
76
+ const tokensMatch = line.match(/tokens used[:\s]*(\d[\d\s]*\d|\d+)/);
23
77
  if (tokensMatch) {
24
- tokensUsed = parseInt(tokensMatch[1], 10);
78
+ tokensUsed = parseInt(tokensMatch[1].replace(/\s/g, ''), 10);
25
79
  continue;
26
80
  }
27
- // Identify sections
81
+ // Identify sections by standalone markers and structural patterns
28
82
  if (line.includes('OpenAI Codex') || line.includes('Codex CLI')) {
29
83
  currentSection = 'header';
30
84
  continue;
@@ -42,40 +96,57 @@ export function parseCodexOutput(rawOutput) {
42
96
  currentSection = 'userInstructions';
43
97
  continue;
44
98
  }
45
- else if (line.includes('thinking')) {
99
+ else if (trimmed === 'user') {
100
+ // User prompt section — skip user's input
101
+ currentSection = 'user';
102
+ continue;
103
+ }
104
+ else if (trimmed === 'thinking') {
46
105
  currentSection = 'thinking';
47
106
  continue;
48
107
  }
49
- else if (line.includes('codex') || line.includes('assistant')) {
108
+ else if (trimmed === 'codex' || trimmed === 'assistant') {
50
109
  currentSection = 'response';
51
110
  continue;
52
111
  }
112
+ else if (trimmed === 'exec' ||
113
+ trimmed.startsWith('collab ') ||
114
+ trimmed.startsWith('Plan ') ||
115
+ trimmed.startsWith('mcp:') ||
116
+ trimmed.startsWith('mcp startup:') ||
117
+ trimmed.startsWith('spawn_agent(')) {
118
+ // Skip tool execution, collaboration, planning, and MCP lifecycle lines
119
+ currentSection = 'exec';
120
+ continue;
121
+ }
53
122
  // Parse based on current section
54
123
  switch (currentSection) {
55
124
  case 'metadata':
56
- if (line.trim()) {
57
- metadataLines.push(line.trim());
125
+ if (trimmed) {
126
+ metadataLines.push(trimmed);
58
127
  }
59
128
  break;
60
129
  case 'userInstructions':
61
- if (line.trim() && !line.includes('User instructions:')) {
130
+ if (trimmed && !line.includes('User instructions:')) {
62
131
  userInstructions += line + '\n';
63
132
  }
64
133
  break;
65
134
  case 'thinking':
66
- if (line.trim() && !line.includes('thinking')) {
135
+ if (trimmed) {
67
136
  thinkingLines.push(line);
68
137
  }
69
138
  break;
70
139
  case 'response':
71
140
  case 'content':
72
- if (line.trim() &&
73
- !line.includes('codex') &&
74
- !line.includes('assistant') &&
75
- !line.includes('tokens used:')) {
141
+ // Only filter standalone markers and token lines, not content containing keywords
142
+ if (trimmed && !STANDALONE_MARKERS.test(trimmed)) {
76
143
  responseLines.push(line);
77
144
  }
78
145
  break;
146
+ case 'user':
147
+ case 'exec':
148
+ // Skip user prompt and exec output lines
149
+ break;
79
150
  }
80
151
  }
81
152
  // Parse metadata
@@ -136,15 +207,61 @@ export function formatCodexResponse(output, includeThinking = true, includeMetad
136
207
  }
137
208
  return formatted;
138
209
  }
139
- export function formatCodexResponseForMCP(result, includeThinking = true, includeMetadata = true) {
210
+ /**
211
+ * Format full execution log from stderr (interactive output).
212
+ * Shows the complete Codex CLI session: metadata, thinking, tool executions, and final response.
213
+ */
214
+ export function formatCodexResponseFull(output) {
215
+ const stderr = output.rawStderr || '';
216
+ const stdout = output.rawOutput || '';
217
+ if (!stderr.trim() && !stdout.trim()) {
218
+ return '(empty response)';
219
+ }
220
+ let formatted = '';
221
+ // Include metadata header
222
+ if (output.metadata.model || output.metadata.sandbox) {
223
+ formatted += `**Codex Configuration:**\n`;
224
+ if (output.metadata.model)
225
+ formatted += `- Model: ${output.metadata.model}\n`;
226
+ if (output.metadata.sandbox)
227
+ formatted += `- Sandbox: ${output.metadata.sandbox}\n`;
228
+ if (output.metadata.approval)
229
+ formatted += `- Approval: ${output.metadata.approval}\n`;
230
+ if (output.metadata.reasoning_effort)
231
+ formatted += `- Reasoning: ${output.metadata.reasoning_effort}\n`;
232
+ formatted += '\n';
233
+ }
234
+ // Full execution log from stderr
235
+ if (stderr.trim()) {
236
+ formatted += `**Execution Log:**\n`;
237
+ formatted += '```\n' + stderr.trim() + '\n```\n\n';
238
+ }
239
+ // Final response from stdout
240
+ if (stdout.trim()) {
241
+ formatted += `**Final Response:**\n`;
242
+ formatted += stdout.trim();
243
+ }
244
+ // Token usage
245
+ if (output.tokensUsed) {
246
+ formatted += `\n\n*Tokens used: ${output.tokensUsed}*`;
247
+ }
248
+ return formatted;
249
+ }
250
+ export function formatCodexResponseForMCP(result, includeThinking = true, includeMetadata = true, stderr, responseMode = 'clean') {
140
251
  // Try to parse the output first
141
252
  try {
142
- const parsed = parseCodexOutput(result);
253
+ const parsed = parseCodexOutput(result, stderr);
254
+ if (responseMode === 'full') {
255
+ return formatCodexResponseFull(parsed);
256
+ }
143
257
  return formatCodexResponse(parsed, includeThinking, includeMetadata);
144
258
  }
145
259
  catch {
146
- // If parsing fails, return the raw output
147
- return result;
260
+ // If parsing fails, return the raw output (prefer non-empty source)
261
+ if (responseMode === 'full' && stderr?.trim()) {
262
+ return `**Execution Log:**\n\`\`\`\n${stderr.trim()}\n\`\`\`\n\n**Final Response:**\n${result.trim() || '(empty)'}`;
263
+ }
264
+ return result.trim() || stderr?.trim() || result;
148
265
  }
149
266
  }
150
267
  export function extractCodeBlocks(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"outputParser.js","sourceRoot":"","sources":["../../src/utils/outputParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputParser.js","sourceRoot":"","sources":["../../src/utils/outputParser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trishchuk/codex-mcp-tool",
3
- "version": "2.1.1",
3
+ "version": "2.3.0",
4
4
  "mcpName": "io.github.x51xxx/codex-mcp-tool",
5
5
  "description": "MCP server for Codex CLI integration",
6
6
  "type": "module",
package/server.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.x51xxx/codex-mcp-tool",
4
- "description": "MCP server bridging Claude, Cursor, and other AI assistants to OpenAI Codex CLI. Enables non-interactive code analysis, review, refactoring, brainstorming, and batch operations with sandboxed execution and structured output.",
4
+ "description": "MCP server bridging AI assistants to OpenAI Codex CLI for code analysis and review",
5
5
  "repository": {
6
6
  "url": "https://github.com/x51xxx/codex-mcp-tool",
7
7
  "source": "github"
8
8
  },
9
- "version": "2.1.1",
9
+ "version": "2.3.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@trishchuk/codex-mcp-tool",
14
- "version": "2.1.1",
14
+ "version": "2.3.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },