@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.
Files changed (44) hide show
  1. package/README.md +84 -247
  2. package/dist/constants.d.ts +3 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +2 -0
  5. package/dist/constants.js.map +1 -1
  6. package/dist/index.js +1 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/ask-codex.tool.d.ts.map +1 -1
  9. package/dist/tools/ask-codex.tool.js +67 -52
  10. package/dist/tools/ask-codex.tool.js.map +1 -1
  11. package/dist/tools/batch-codex.tool.js +1 -1
  12. package/dist/tools/batch-codex.tool.js.map +1 -1
  13. package/dist/tools/health.tool.d.ts +3 -0
  14. package/dist/tools/health.tool.d.ts.map +1 -0
  15. package/dist/tools/health.tool.js +189 -0
  16. package/dist/tools/health.tool.js.map +1 -0
  17. package/dist/tools/index.d.ts.map +1 -1
  18. package/dist/tools/index.js +3 -1
  19. package/dist/tools/index.js.map +1 -1
  20. package/dist/tools/list-sessions.tool.d.ts +3 -0
  21. package/dist/tools/list-sessions.tool.d.ts.map +1 -0
  22. package/dist/tools/list-sessions.tool.js +71 -0
  23. package/dist/tools/list-sessions.tool.js.map +1 -0
  24. package/dist/utils/codexCommandBuilder.d.ts +7 -0
  25. package/dist/utils/codexCommandBuilder.d.ts.map +1 -1
  26. package/dist/utils/codexCommandBuilder.js +40 -14
  27. package/dist/utils/codexCommandBuilder.js.map +1 -1
  28. package/dist/utils/codexExecutor.d.ts +10 -1
  29. package/dist/utils/codexExecutor.d.ts.map +1 -1
  30. package/dist/utils/codexExecutor.js +6 -2
  31. package/dist/utils/codexExecutor.js.map +1 -1
  32. package/dist/utils/errorTypes.d.ts +74 -0
  33. package/dist/utils/errorTypes.d.ts.map +1 -0
  34. package/dist/utils/errorTypes.js +268 -0
  35. package/dist/utils/errorTypes.js.map +1 -0
  36. package/dist/utils/sessionStorage.d.ts +79 -0
  37. package/dist/utils/sessionStorage.d.ts.map +1 -0
  38. package/dist/utils/sessionStorage.js +276 -0
  39. package/dist/utils/sessionStorage.js.map +1 -0
  40. package/dist/utils/versionDetection.d.ts +17 -2
  41. package/dist/utils/versionDetection.d.ts.map +1 -1
  42. package/dist/utils/versionDetection.js +30 -2
  43. package/dist/utils/versionDetection.js.map +1 -1
  44. 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. Model selection with fallback
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
- // 3. Safety controls (yolo, fullAuto, approval, sandbox)
32
+ // 4. Safety controls (yolo, fullAuto, approval, sandbox)
29
33
  this.addSafetyArgs(options);
30
- // 4. Working directory
34
+ // 5. Working directory
31
35
  this.addWorkingDir(options, prompt);
32
- // 5. OSS mode
36
+ // 6. OSS mode
33
37
  if (options?.oss) {
34
38
  this.args.push(CLI.FLAGS.OSS);
35
39
  }
36
- // 6. Search + Feature flags (shared 69-line logic)
40
+ // 7. Search + Feature flags (shared 69-line logic)
37
41
  await this.addSearchAndFeatures(options);
38
- // 7. Disable features
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
- // 8. Advanced features (addDirs + tokenLimit)
48
+ // 9. Advanced features (addDirs + tokenLimit)
45
49
  await this.addAdvancedFeatures(options);
46
- // 9. Configuration
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
- // 10. Profile
62
+ // 11. Profile
59
63
  if (options?.profile) {
60
64
  this.args.push(CLI.FLAGS.PROFILE, options.profile);
61
65
  }
62
- // 11. Images
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
- // 12. Exec mode
70
- if (options?.useExec !== false) {
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
- // 13. Handle prompt (concise mode, stdin for large prompts)
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":"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"}
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<string>;
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;CACxC;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;;GAEG;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,MAAM,CAAC,CAgDjB"}
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
- return result.stdout;
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":"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"}
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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"}