@trishchuk/codex-mcp-tool 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -247
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -2
- 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 +67 -52
- package/dist/tools/ask-codex.tool.js.map +1 -1
- package/dist/tools/batch-codex.tool.js +1 -1
- package/dist/tools/batch-codex.tool.js.map +1 -1
- package/dist/tools/health.tool.d.ts +3 -0
- package/dist/tools/health.tool.d.ts.map +1 -0
- package/dist/tools/health.tool.js +189 -0
- package/dist/tools/health.tool.js.map +1 -0
- 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 +3 -0
- package/dist/tools/list-sessions.tool.d.ts.map +1 -0
- package/dist/tools/list-sessions.tool.js +71 -0
- package/dist/tools/list-sessions.tool.js.map +1 -0
- package/dist/utils/codexCommandBuilder.d.ts +7 -0
- package/dist/utils/codexCommandBuilder.d.ts.map +1 -1
- package/dist/utils/codexCommandBuilder.js +40 -14
- package/dist/utils/codexCommandBuilder.js.map +1 -1
- package/dist/utils/codexExecutor.d.ts +10 -1
- package/dist/utils/codexExecutor.d.ts.map +1 -1
- package/dist/utils/codexExecutor.js +6 -2
- package/dist/utils/codexExecutor.js.map +1 -1
- package/dist/utils/errorTypes.d.ts +74 -0
- package/dist/utils/errorTypes.d.ts.map +1 -0
- package/dist/utils/errorTypes.js +268 -0
- package/dist/utils/errorTypes.js.map +1 -0
- package/dist/utils/sessionStorage.d.ts +79 -0
- package/dist/utils/sessionStorage.d.ts.map +1 -0
- package/dist/utils/sessionStorage.js +276 -0
- package/dist/utils/sessionStorage.js.map +1 -0
- package/dist/utils/versionDetection.d.ts +17 -2
- package/dist/utils/versionDetection.d.ts.map +1 -1
- package/dist/utils/versionDetection.js +30 -2
- package/dist/utils/versionDetection.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { CLI } from '../constants.js';
|
|
|
2
2
|
import { Logger } from './logger.js';
|
|
3
3
|
import { resolveWorkingDirectory } from './workingDirResolver.js';
|
|
4
4
|
import { getModelWithFallback } from './modelDetection.js';
|
|
5
|
-
import { supportsNativeSearch, supportsAddDir, supportsToolTokenLimit, } from './versionDetection.js';
|
|
5
|
+
import { supportsNativeSearch, supportsAddDir, supportsToolTokenLimit, supportsResume, } from './versionDetection.js';
|
|
6
6
|
import { writeFileSync, unlinkSync } from 'fs';
|
|
7
7
|
import { tmpdir } from 'os';
|
|
8
8
|
import { join } from 'path';
|
|
@@ -13,6 +13,7 @@ import { randomBytes } from 'crypto';
|
|
|
13
13
|
*/
|
|
14
14
|
export class CodexCommandBuilder {
|
|
15
15
|
args = [];
|
|
16
|
+
useResumeMode = false;
|
|
16
17
|
/**
|
|
17
18
|
* Build a complete Codex CLI command with all options
|
|
18
19
|
* @param prompt User prompt
|
|
@@ -21,29 +22,32 @@ export class CodexCommandBuilder {
|
|
|
21
22
|
*/
|
|
22
23
|
async build(prompt, options) {
|
|
23
24
|
this.args = []; // Reset args for fresh build
|
|
25
|
+
this.useResumeMode = false;
|
|
24
26
|
// 1. Validation
|
|
25
27
|
this.validateOptions(options);
|
|
26
|
-
// 2.
|
|
28
|
+
// 2. Check if we should use resume mode
|
|
29
|
+
await this.checkResumeMode(options);
|
|
30
|
+
// 3. Model selection with fallback
|
|
27
31
|
await this.addModelArg(options?.model);
|
|
28
|
-
//
|
|
32
|
+
// 4. Safety controls (yolo, fullAuto, approval, sandbox)
|
|
29
33
|
this.addSafetyArgs(options);
|
|
30
|
-
//
|
|
34
|
+
// 5. Working directory
|
|
31
35
|
this.addWorkingDir(options, prompt);
|
|
32
|
-
//
|
|
36
|
+
// 6. OSS mode
|
|
33
37
|
if (options?.oss) {
|
|
34
38
|
this.args.push(CLI.FLAGS.OSS);
|
|
35
39
|
}
|
|
36
|
-
//
|
|
40
|
+
// 7. Search + Feature flags (shared 69-line logic)
|
|
37
41
|
await this.addSearchAndFeatures(options);
|
|
38
|
-
//
|
|
42
|
+
// 8. Disable features
|
|
39
43
|
if (options?.disableFeatures && Array.isArray(options.disableFeatures)) {
|
|
40
44
|
for (const feature of options.disableFeatures) {
|
|
41
45
|
this.args.push(CLI.FLAGS.DISABLE, feature);
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
|
-
//
|
|
48
|
+
// 9. Advanced features (addDirs + tokenLimit)
|
|
45
49
|
await this.addAdvancedFeatures(options);
|
|
46
|
-
//
|
|
50
|
+
// 10. Configuration
|
|
47
51
|
if (options?.config) {
|
|
48
52
|
if (typeof options.config === 'string') {
|
|
49
53
|
this.args.push(CLI.FLAGS.CONFIG, options.config);
|
|
@@ -55,24 +59,45 @@ export class CodexCommandBuilder {
|
|
|
55
59
|
this.args.push(CLI.FLAGS.CONFIG, configStr);
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
|
-
//
|
|
62
|
+
// 11. Profile
|
|
59
63
|
if (options?.profile) {
|
|
60
64
|
this.args.push(CLI.FLAGS.PROFILE, options.profile);
|
|
61
65
|
}
|
|
62
|
-
//
|
|
66
|
+
// 12. Images
|
|
63
67
|
if (options?.image) {
|
|
64
68
|
const images = Array.isArray(options.image) ? options.image : [options.image];
|
|
65
69
|
for (const img of images) {
|
|
66
70
|
this.args.push(CLI.FLAGS.IMAGE, img);
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
|
-
//
|
|
70
|
-
if (options?.
|
|
73
|
+
// 13. Command mode (exec or exec resume)
|
|
74
|
+
if (this.useResumeMode && options?.codexConversationId) {
|
|
75
|
+
// Use "exec resume <session_id>" for non-interactive resume
|
|
76
|
+
this.args.push('exec', CLI.FLAGS.RESUME, options.codexConversationId);
|
|
77
|
+
Logger.debug(`Using exec resume mode with conversation ID: ${options.codexConversationId}`);
|
|
78
|
+
}
|
|
79
|
+
else if (options?.useExec !== false) {
|
|
80
|
+
// Default to exec mode
|
|
71
81
|
this.args.push('exec');
|
|
72
82
|
}
|
|
73
|
-
//
|
|
83
|
+
// 14. Handle prompt (concise mode, stdin for large prompts)
|
|
74
84
|
return this.handlePrompt(prompt, options);
|
|
75
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Check if resume mode should be used
|
|
88
|
+
*/
|
|
89
|
+
async checkResumeMode(options) {
|
|
90
|
+
if (options?.codexConversationId) {
|
|
91
|
+
const resumeSupported = await supportsResume();
|
|
92
|
+
if (resumeSupported) {
|
|
93
|
+
this.useResumeMode = true;
|
|
94
|
+
Logger.debug('Resume mode enabled (Codex CLI v0.36.0+)');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
Logger.warn('Resume mode requested but not supported (requires Codex CLI v0.36.0+). Falling back to exec mode.');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
76
101
|
/**
|
|
77
102
|
* Validate options for conflicts
|
|
78
103
|
*/
|
|
@@ -241,6 +266,7 @@ export class CodexCommandBuilder {
|
|
|
241
266
|
args: this.args,
|
|
242
267
|
tempFile,
|
|
243
268
|
finalPrompt,
|
|
269
|
+
useResume: this.useResumeMode,
|
|
244
270
|
};
|
|
245
271
|
}
|
|
246
272
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexCommandBuilder.js","sourceRoot":"","sources":["../../src/utils/codexCommandBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,sBAAsB,
|
|
1
|
+
{"version":3,"file":"codexCommandBuilder.js","sourceRoot":"","sources":["../../src/utils/codexCommandBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { RetryOptions } from './commandExecutor.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extended result from Codex execution with stderr for conversation ID parsing
|
|
4
|
+
*/
|
|
5
|
+
export interface CodexExecutionResult {
|
|
6
|
+
output: string;
|
|
7
|
+
stderr: string;
|
|
8
|
+
}
|
|
2
9
|
export declare enum ApprovalPolicy {
|
|
3
10
|
Never = "never",
|
|
4
11
|
OnRequest = "on-request",
|
|
@@ -34,6 +41,7 @@ export interface CodexExecOptions {
|
|
|
34
41
|
readonly disableFeatures?: string[];
|
|
35
42
|
readonly addDirs?: string[];
|
|
36
43
|
readonly toolOutputTokenLimit?: number;
|
|
44
|
+
readonly codexConversationId?: string;
|
|
37
45
|
}
|
|
38
46
|
/**
|
|
39
47
|
* Execute Codex CLI with enhanced error handling and memory efficiency
|
|
@@ -41,8 +49,9 @@ export interface CodexExecOptions {
|
|
|
41
49
|
export declare function executeCodexCLI(prompt: string, options?: CodexExecOptions, onProgress?: (newOutput: string) => void): Promise<string>;
|
|
42
50
|
/**
|
|
43
51
|
* High-level executeCodex function with comprehensive options support
|
|
52
|
+
* Returns both stdout and stderr for conversation ID parsing
|
|
44
53
|
*/
|
|
45
54
|
export declare function executeCodex(prompt: string, options?: CodexExecOptions & {
|
|
46
55
|
[key: string]: any;
|
|
47
|
-
}, onProgress?: (newOutput: string) => void): Promise<
|
|
56
|
+
}, onProgress?: (newOutput: string) => void): Promise<CodexExecutionResult>;
|
|
48
57
|
//# sourceMappingURL=codexExecutor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAM5E,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,SAAS,cAAc;CACxB;AAED,oBAAY,WAAW;IACrB,QAAQ,cAAc;IACtB,cAAc,oBAAoB;IAClC,gBAAgB,uBAAuB;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"codexExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAM5E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,SAAS,cAAc;CACxB;AAED,oBAAY,WAAW;IACrB,QAAQ,cAAc;IACtB,cAAc,oBAAoB;IAClC,gBAAgB,uBAAuB;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAEvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,EAC1B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACvC,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACnD,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAoD/B"}
|
|
@@ -2,7 +2,6 @@ import { executeCommandDetailed } from './commandExecutor.js';
|
|
|
2
2
|
import { Logger } from './logger.js';
|
|
3
3
|
import { CLI } from '../constants.js';
|
|
4
4
|
import { CodexCommandBuilder } from './codexCommandBuilder.js';
|
|
5
|
-
// Type-safe enums
|
|
6
5
|
export var ApprovalPolicy;
|
|
7
6
|
(function (ApprovalPolicy) {
|
|
8
7
|
ApprovalPolicy["Never"] = "never";
|
|
@@ -60,6 +59,7 @@ export async function executeCodexCLI(prompt, options, onProgress) {
|
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
61
|
* High-level executeCodex function with comprehensive options support
|
|
62
|
+
* Returns both stdout and stderr for conversation ID parsing
|
|
63
63
|
*/
|
|
64
64
|
export async function executeCodex(prompt, options, onProgress) {
|
|
65
65
|
const builder = new CodexCommandBuilder();
|
|
@@ -93,7 +93,11 @@ export async function executeCodex(prompt, options, onProgress) {
|
|
|
93
93
|
}
|
|
94
94
|
throw new Error(`Codex CLI failed: ${errorMessage}`);
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
// Return both stdout and stderr for conversation ID parsing
|
|
97
|
+
return {
|
|
98
|
+
output: result.stdout,
|
|
99
|
+
stderr: result.stderr,
|
|
100
|
+
};
|
|
97
101
|
}
|
|
98
102
|
catch (error) {
|
|
99
103
|
Logger.error('Codex execution failed:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexExecutor.js","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAgB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"codexExecutor.js","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Error Types for Codex MCP Tool
|
|
3
|
+
* Provides typed error handling with 8 categories for better debugging and user feedback
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error categories for classification
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ErrorCategory {
|
|
9
|
+
CLI_NOT_FOUND = "CLI_NOT_FOUND",
|
|
10
|
+
AUTHENTICATION = "AUTHENTICATION",
|
|
11
|
+
RATE_LIMIT = "RATE_LIMIT",
|
|
12
|
+
TIMEOUT = "TIMEOUT",
|
|
13
|
+
SANDBOX = "SANDBOX",
|
|
14
|
+
NETWORK = "NETWORK",
|
|
15
|
+
SESSION = "SESSION",
|
|
16
|
+
UNKNOWN = "UNKNOWN"
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* User-friendly error messages by category
|
|
20
|
+
*/
|
|
21
|
+
export declare const ERROR_MESSAGES: Record<ErrorCategory, {
|
|
22
|
+
title: string;
|
|
23
|
+
description: string;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Solutions/suggestions by error category
|
|
27
|
+
*/
|
|
28
|
+
export declare const ERROR_SOLUTIONS: Record<ErrorCategory, string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Custom error class with category and structured data
|
|
31
|
+
*/
|
|
32
|
+
export declare class CodexError extends Error {
|
|
33
|
+
readonly category: ErrorCategory;
|
|
34
|
+
readonly originalError?: Error;
|
|
35
|
+
readonly context?: Record<string, unknown>;
|
|
36
|
+
constructor(category: ErrorCategory, message?: string, originalError?: Error, context?: Record<string, unknown>);
|
|
37
|
+
/**
|
|
38
|
+
* Get user-friendly error title
|
|
39
|
+
*/
|
|
40
|
+
get title(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Get solutions/suggestions for this error
|
|
43
|
+
*/
|
|
44
|
+
get solutions(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Format error for display
|
|
47
|
+
*/
|
|
48
|
+
toUserFriendlyString(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Format as markdown
|
|
51
|
+
*/
|
|
52
|
+
toMarkdown(): string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Classify error message into category
|
|
56
|
+
*/
|
|
57
|
+
export declare function classifyError(errorMessage: string): ErrorCategory;
|
|
58
|
+
/**
|
|
59
|
+
* Create CodexError from generic error
|
|
60
|
+
*/
|
|
61
|
+
export declare function createCodexError(error: Error | string, context?: Record<string, unknown>): CodexError;
|
|
62
|
+
/**
|
|
63
|
+
* Format any error for user-friendly display
|
|
64
|
+
*/
|
|
65
|
+
export declare function formatErrorForUser(error: Error | string | CodexError): string;
|
|
66
|
+
/**
|
|
67
|
+
* Check if error is retryable
|
|
68
|
+
*/
|
|
69
|
+
export declare function isRetryableError(error: CodexError | ErrorCategory): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get retry delay based on error category (in milliseconds)
|
|
72
|
+
*/
|
|
73
|
+
export declare function getRetryDelay(error: CodexError | ErrorCategory, attempt?: number): number;
|
|
74
|
+
//# sourceMappingURL=errorTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorTypes.d.ts","sourceRoot":"","sources":["../../src/utils/errorTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,aAAa;IACvB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAiCxF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CA2C3D,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,QAAQ,EAAE,aAAa,CAAC;IACxC,SAAgB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGhD,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,KAAK,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUnC;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAW9B;;OAEG;IACH,UAAU,IAAI,MAAM;CAgBrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAuEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,UAAU,CAMZ;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAO7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,OAAO,CAU3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,EAAE,OAAO,GAAE,MAAU,GAAG,MAAM,CAmB5F"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Error Types for Codex MCP Tool
|
|
3
|
+
* Provides typed error handling with 8 categories for better debugging and user feedback
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error categories for classification
|
|
7
|
+
*/
|
|
8
|
+
export var ErrorCategory;
|
|
9
|
+
(function (ErrorCategory) {
|
|
10
|
+
ErrorCategory["CLI_NOT_FOUND"] = "CLI_NOT_FOUND";
|
|
11
|
+
ErrorCategory["AUTHENTICATION"] = "AUTHENTICATION";
|
|
12
|
+
ErrorCategory["RATE_LIMIT"] = "RATE_LIMIT";
|
|
13
|
+
ErrorCategory["TIMEOUT"] = "TIMEOUT";
|
|
14
|
+
ErrorCategory["SANDBOX"] = "SANDBOX";
|
|
15
|
+
ErrorCategory["NETWORK"] = "NETWORK";
|
|
16
|
+
ErrorCategory["SESSION"] = "SESSION";
|
|
17
|
+
ErrorCategory["UNKNOWN"] = "UNKNOWN";
|
|
18
|
+
})(ErrorCategory || (ErrorCategory = {}));
|
|
19
|
+
/**
|
|
20
|
+
* User-friendly error messages by category
|
|
21
|
+
*/
|
|
22
|
+
export const ERROR_MESSAGES = {
|
|
23
|
+
[ErrorCategory.CLI_NOT_FOUND]: {
|
|
24
|
+
title: 'Codex CLI Not Found',
|
|
25
|
+
description: 'Codex CLI is not installed or not in PATH.',
|
|
26
|
+
},
|
|
27
|
+
[ErrorCategory.AUTHENTICATION]: {
|
|
28
|
+
title: 'Authentication Failed',
|
|
29
|
+
description: 'API key is invalid or authentication is required.',
|
|
30
|
+
},
|
|
31
|
+
[ErrorCategory.RATE_LIMIT]: {
|
|
32
|
+
title: 'Rate Limit Exceeded',
|
|
33
|
+
description: 'Too many requests. Please wait and try again.',
|
|
34
|
+
},
|
|
35
|
+
[ErrorCategory.TIMEOUT]: {
|
|
36
|
+
title: 'Request Timeout',
|
|
37
|
+
description: 'Operation took longer than expected.',
|
|
38
|
+
},
|
|
39
|
+
[ErrorCategory.SANDBOX]: {
|
|
40
|
+
title: 'Sandbox Permission Error',
|
|
41
|
+
description: 'Operation blocked by sandbox restrictions.',
|
|
42
|
+
},
|
|
43
|
+
[ErrorCategory.NETWORK]: {
|
|
44
|
+
title: 'Network Error',
|
|
45
|
+
description: 'Failed to connect to API server.',
|
|
46
|
+
},
|
|
47
|
+
[ErrorCategory.SESSION]: {
|
|
48
|
+
title: 'Session Error',
|
|
49
|
+
description: 'Session is invalid, expired, or not found.',
|
|
50
|
+
},
|
|
51
|
+
[ErrorCategory.UNKNOWN]: {
|
|
52
|
+
title: 'Unknown Error',
|
|
53
|
+
description: 'An unexpected error occurred.',
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Solutions/suggestions by error category
|
|
58
|
+
*/
|
|
59
|
+
export const ERROR_SOLUTIONS = {
|
|
60
|
+
[ErrorCategory.CLI_NOT_FOUND]: [
|
|
61
|
+
'Install Codex CLI: `npm install -g @openai/codex`',
|
|
62
|
+
'Verify installation: `codex --version`',
|
|
63
|
+
'Check PATH environment variable',
|
|
64
|
+
],
|
|
65
|
+
[ErrorCategory.AUTHENTICATION]: [
|
|
66
|
+
'Run `codex login` to authenticate',
|
|
67
|
+
'Set `OPENAI_API_KEY` environment variable',
|
|
68
|
+
'Verify API key has Codex access in OpenAI dashboard',
|
|
69
|
+
],
|
|
70
|
+
[ErrorCategory.RATE_LIMIT]: [
|
|
71
|
+
'Wait a few minutes before retrying',
|
|
72
|
+
'Check usage quotas in OpenAI dashboard',
|
|
73
|
+
'Consider using a less powerful model',
|
|
74
|
+
],
|
|
75
|
+
[ErrorCategory.TIMEOUT]: [
|
|
76
|
+
'Increase timeout: `timeout: 300000` (5 minutes)',
|
|
77
|
+
'Simplify request or break into smaller parts',
|
|
78
|
+
'Check network connectivity',
|
|
79
|
+
],
|
|
80
|
+
[ErrorCategory.SANDBOX]: [
|
|
81
|
+
'Use `sandboxMode: "workspace-write"` for file operations',
|
|
82
|
+
'Use `approval: "on-request"` for interactive approval',
|
|
83
|
+
'Use `fullAuto: true` for automated operations',
|
|
84
|
+
],
|
|
85
|
+
[ErrorCategory.NETWORK]: [
|
|
86
|
+
'Check internet connection',
|
|
87
|
+
'Verify firewall/proxy settings',
|
|
88
|
+
'Try again later - API may be experiencing issues',
|
|
89
|
+
],
|
|
90
|
+
[ErrorCategory.SESSION]: [
|
|
91
|
+
'Session may have expired (default TTL: 24 hours)',
|
|
92
|
+
'Use `list-sessions` to check active sessions',
|
|
93
|
+
'Create new session by omitting `sessionId`',
|
|
94
|
+
'Use `resetSession: true` to start fresh',
|
|
95
|
+
],
|
|
96
|
+
[ErrorCategory.UNKNOWN]: [
|
|
97
|
+
'Check Codex CLI: `codex --version`',
|
|
98
|
+
'Run `codex login` to verify authentication',
|
|
99
|
+
'Try simpler query to isolate the issue',
|
|
100
|
+
'Use `health` tool to diagnose',
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Custom error class with category and structured data
|
|
105
|
+
*/
|
|
106
|
+
export class CodexError extends Error {
|
|
107
|
+
category;
|
|
108
|
+
originalError;
|
|
109
|
+
context;
|
|
110
|
+
constructor(category, message, originalError, context) {
|
|
111
|
+
const errorInfo = ERROR_MESSAGES[category];
|
|
112
|
+
super(message || errorInfo.description);
|
|
113
|
+
this.name = 'CodexError';
|
|
114
|
+
this.category = category;
|
|
115
|
+
this.originalError = originalError;
|
|
116
|
+
this.context = context;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get user-friendly error title
|
|
120
|
+
*/
|
|
121
|
+
get title() {
|
|
122
|
+
return ERROR_MESSAGES[this.category].title;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get solutions/suggestions for this error
|
|
126
|
+
*/
|
|
127
|
+
get solutions() {
|
|
128
|
+
return ERROR_SOLUTIONS[this.category];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Format error for display
|
|
132
|
+
*/
|
|
133
|
+
toUserFriendlyString() {
|
|
134
|
+
const lines = [];
|
|
135
|
+
lines.push(`**${this.title}**: ${this.message}`);
|
|
136
|
+
lines.push('');
|
|
137
|
+
lines.push('**Solutions:**');
|
|
138
|
+
for (const solution of this.solutions) {
|
|
139
|
+
lines.push(`- ${solution}`);
|
|
140
|
+
}
|
|
141
|
+
return lines.join('\n');
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Format as markdown
|
|
145
|
+
*/
|
|
146
|
+
toMarkdown() {
|
|
147
|
+
const emoji = this.category === ErrorCategory.UNKNOWN ? '?' : '';
|
|
148
|
+
let output = `## ${emoji} ${this.title}\n\n`;
|
|
149
|
+
output += `${this.message}\n\n`;
|
|
150
|
+
output += `### Recommended Actions\n\n`;
|
|
151
|
+
for (const solution of this.solutions) {
|
|
152
|
+
output += `- ${solution}\n`;
|
|
153
|
+
}
|
|
154
|
+
if (this.context) {
|
|
155
|
+
output += `\n### Context\n\n`;
|
|
156
|
+
output += '```json\n';
|
|
157
|
+
output += JSON.stringify(this.context, null, 2);
|
|
158
|
+
output += '\n```\n';
|
|
159
|
+
}
|
|
160
|
+
return output;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Classify error message into category
|
|
165
|
+
*/
|
|
166
|
+
export function classifyError(errorMessage) {
|
|
167
|
+
const message = errorMessage.toLowerCase();
|
|
168
|
+
// CLI not found
|
|
169
|
+
if (message.includes('command not found') ||
|
|
170
|
+
message.includes('not found') ||
|
|
171
|
+
message.includes('enoent')) {
|
|
172
|
+
return ErrorCategory.CLI_NOT_FOUND;
|
|
173
|
+
}
|
|
174
|
+
// Authentication
|
|
175
|
+
if (message.includes('authentication') ||
|
|
176
|
+
message.includes('unauthorized') ||
|
|
177
|
+
message.includes('api key') ||
|
|
178
|
+
message.includes('401')) {
|
|
179
|
+
return ErrorCategory.AUTHENTICATION;
|
|
180
|
+
}
|
|
181
|
+
// Rate limiting
|
|
182
|
+
if (message.includes('rate limit') ||
|
|
183
|
+
message.includes('quota') ||
|
|
184
|
+
message.includes('too many requests') ||
|
|
185
|
+
message.includes('429')) {
|
|
186
|
+
return ErrorCategory.RATE_LIMIT;
|
|
187
|
+
}
|
|
188
|
+
// Timeout
|
|
189
|
+
if (message.includes('timeout') ||
|
|
190
|
+
message.includes('timed out') ||
|
|
191
|
+
message.includes('etimedout')) {
|
|
192
|
+
return ErrorCategory.TIMEOUT;
|
|
193
|
+
}
|
|
194
|
+
// Sandbox/Permission
|
|
195
|
+
if (message.includes('sandbox') ||
|
|
196
|
+
message.includes('permission') ||
|
|
197
|
+
message.includes('denied') ||
|
|
198
|
+
message.includes('access')) {
|
|
199
|
+
return ErrorCategory.SANDBOX;
|
|
200
|
+
}
|
|
201
|
+
// Network
|
|
202
|
+
if (message.includes('network') ||
|
|
203
|
+
message.includes('connect') ||
|
|
204
|
+
message.includes('econnrefused') ||
|
|
205
|
+
message.includes('enotfound')) {
|
|
206
|
+
return ErrorCategory.NETWORK;
|
|
207
|
+
}
|
|
208
|
+
// Session
|
|
209
|
+
if (message.includes('session') ||
|
|
210
|
+
message.includes('expired') ||
|
|
211
|
+
message.includes('conversation id')) {
|
|
212
|
+
return ErrorCategory.SESSION;
|
|
213
|
+
}
|
|
214
|
+
return ErrorCategory.UNKNOWN;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Create CodexError from generic error
|
|
218
|
+
*/
|
|
219
|
+
export function createCodexError(error, context) {
|
|
220
|
+
const message = error instanceof Error ? error.message : error;
|
|
221
|
+
const category = classifyError(message);
|
|
222
|
+
const originalError = error instanceof Error ? error : undefined;
|
|
223
|
+
return new CodexError(category, message, originalError, context);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Format any error for user-friendly display
|
|
227
|
+
*/
|
|
228
|
+
export function formatErrorForUser(error) {
|
|
229
|
+
if (error instanceof CodexError) {
|
|
230
|
+
return error.toUserFriendlyString();
|
|
231
|
+
}
|
|
232
|
+
const codexError = createCodexError(error);
|
|
233
|
+
return codexError.toUserFriendlyString();
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Check if error is retryable
|
|
237
|
+
*/
|
|
238
|
+
export function isRetryableError(error) {
|
|
239
|
+
const category = error instanceof CodexError ? error.category : error;
|
|
240
|
+
const retryableCategories = [
|
|
241
|
+
ErrorCategory.RATE_LIMIT,
|
|
242
|
+
ErrorCategory.TIMEOUT,
|
|
243
|
+
ErrorCategory.NETWORK,
|
|
244
|
+
];
|
|
245
|
+
return retryableCategories.includes(category);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get retry delay based on error category (in milliseconds)
|
|
249
|
+
*/
|
|
250
|
+
export function getRetryDelay(error, attempt = 1) {
|
|
251
|
+
const category = error instanceof CodexError ? error.category : error;
|
|
252
|
+
const baseDelays = {
|
|
253
|
+
[ErrorCategory.RATE_LIMIT]: 60000, // 1 minute
|
|
254
|
+
[ErrorCategory.TIMEOUT]: 5000, // 5 seconds
|
|
255
|
+
[ErrorCategory.NETWORK]: 10000, // 10 seconds
|
|
256
|
+
[ErrorCategory.CLI_NOT_FOUND]: 0,
|
|
257
|
+
[ErrorCategory.AUTHENTICATION]: 0,
|
|
258
|
+
[ErrorCategory.SANDBOX]: 0,
|
|
259
|
+
[ErrorCategory.SESSION]: 0,
|
|
260
|
+
[ErrorCategory.UNKNOWN]: 5000,
|
|
261
|
+
};
|
|
262
|
+
const baseDelay = baseDelays[category];
|
|
263
|
+
// Exponential backoff with jitter
|
|
264
|
+
const delay = baseDelay * Math.pow(2, attempt - 1);
|
|
265
|
+
const jitter = Math.random() * 1000;
|
|
266
|
+
return Math.min(delay + jitter, 300000); // Max 5 minutes
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=errorTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorTypes.js","sourceRoot":"","sources":["../../src/utils/errorTypes.ts"],"names":[],"mappings":"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"}
|