@trishchuk/codex-mcp-tool 1.0.6 → 1.2.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 +10 -11
- package/dist/constants.d.ts +55 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +74 -31
- package/dist/constants.js.map +1 -1
- package/dist/index.js +28 -26
- package/dist/index.js.map +1 -1
- package/dist/tools/apply-diff.tool.d.ts +3 -0
- package/dist/tools/apply-diff.tool.d.ts.map +1 -0
- package/dist/tools/apply-diff.tool.js +52 -0
- package/dist/tools/apply-diff.tool.js.map +1 -0
- package/dist/tools/ask-codex.tool.d.ts.map +1 -1
- package/dist/tools/ask-codex.tool.js +158 -33
- package/dist/tools/ask-codex.tool.js.map +1 -1
- package/dist/tools/batch-codex.tool.d.ts +3 -0
- package/dist/tools/batch-codex.tool.d.ts.map +1 -0
- package/dist/tools/batch-codex.tool.js +134 -0
- package/dist/tools/batch-codex.tool.js.map +1 -0
- package/dist/tools/brainstorm.tool.d.ts.map +1 -1
- package/dist/tools/brainstorm.tool.js +62 -29
- package/dist/tools/brainstorm.tool.js.map +1 -1
- package/dist/tools/exec-codex.tool.d.ts +3 -0
- package/dist/tools/exec-codex.tool.d.ts.map +1 -0
- package/dist/tools/exec-codex.tool.js +46 -0
- package/dist/tools/exec-codex.tool.js.map +1 -0
- package/dist/tools/fetch-chunk.tool.d.ts.map +1 -1
- package/dist/tools/fetch-chunk.tool.js +12 -8
- package/dist/tools/fetch-chunk.tool.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +3 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +9 -5
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/review-codex.tool.d.ts +3 -0
- package/dist/tools/review-codex.tool.d.ts.map +1 -0
- package/dist/tools/review-codex.tool.js +91 -0
- package/dist/tools/review-codex.tool.js.map +1 -0
- package/dist/tools/simple-tools.d.ts +1 -0
- package/dist/tools/simple-tools.d.ts.map +1 -1
- package/dist/tools/simple-tools.js +42 -11
- package/dist/tools/simple-tools.js.map +1 -1
- package/dist/tools/test-tool.example.d.ts.map +1 -1
- package/dist/tools/test-tool.example.js +12 -10
- package/dist/tools/test-tool.example.js.map +1 -1
- package/dist/tools/timeout-test.tool.js +5 -5
- package/dist/tools/timeout-test.tool.js.map +1 -1
- package/dist/utils/changeModeChunker.d.ts.map +1 -1
- package/dist/utils/changeModeChunker.js +10 -6
- package/dist/utils/changeModeChunker.js.map +1 -1
- package/dist/utils/changeModeParser.d.ts.map +1 -1
- package/dist/utils/changeModeParser.js.map +1 -1
- package/dist/utils/changeModeRunner.d.ts.map +1 -1
- package/dist/utils/changeModeRunner.js +17 -11
- package/dist/utils/changeModeRunner.js.map +1 -1
- package/dist/utils/changeModeTranslator.d.ts.map +1 -1
- package/dist/utils/changeModeTranslator.js +5 -2
- package/dist/utils/changeModeTranslator.js.map +1 -1
- package/dist/utils/chunkCache.d.ts.map +1 -1
- package/dist/utils/chunkCache.js +6 -4
- package/dist/utils/chunkCache.js.map +1 -1
- package/dist/utils/codexExecutor.d.ts +17 -0
- package/dist/utils/codexExecutor.d.ts.map +1 -1
- package/dist/utils/codexExecutor.js +163 -4
- package/dist/utils/codexExecutor.js.map +1 -1
- package/dist/utils/commandExecutor.d.ts.map +1 -1
- package/dist/utils/commandExecutor.js +25 -17
- package/dist/utils/commandExecutor.js.map +1 -1
- package/dist/utils/fibonacci.d.ts +2 -0
- package/dist/utils/fibonacci.d.ts.map +1 -0
- package/dist/utils/fibonacci.js +17 -0
- package/dist/utils/fibonacci.js.map +1 -0
- package/dist/utils/gitHelper.d.ts +20 -0
- package/dist/utils/gitHelper.d.ts.map +1 -0
- package/dist/utils/gitHelper.js +66 -0
- package/dist/utils/gitHelper.js.map +1 -0
- package/dist/utils/logger.d.ts +2 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +21 -15
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/outputParser.d.ts +26 -0
- package/dist/utils/outputParser.d.ts.map +1 -0
- package/dist/utils/outputParser.js +174 -0
- package/dist/utils/outputParser.js.map +1 -0
- package/dist/utils/reviewParser.d.ts +28 -0
- package/dist/utils/reviewParser.d.ts.map +1 -0
- package/dist/utils/reviewParser.js +87 -0
- package/dist/utils/reviewParser.js.map +1 -0
- package/dist/utils/workingDirResolver.d.ts +47 -0
- package/dist/utils/workingDirResolver.d.ts.map +1 -0
- package/dist/utils/workingDirResolver.js +199 -0
- package/dist/utils/workingDirResolver.js.map +1 -0
- package/package.json +6 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Logger } from './logger.js';
|
|
2
|
-
import { parseChangeModeOutput, validateChangeModeEdits } from './changeModeParser.js';
|
|
2
|
+
import { parseChangeModeOutput, validateChangeModeEdits, } from './changeModeParser.js';
|
|
3
3
|
import { formatChangeModeResponse, summarizeChangeModeEdits } from './changeModeTranslator.js';
|
|
4
4
|
import { chunkChangeModeEdits } from './changeModeChunker.js';
|
|
5
5
|
import { cacheChunks, getChunks } from './chunkCache.js';
|
|
@@ -14,8 +14,8 @@ export async function processChangeModeOutput(rawResult, options = {}) {
|
|
|
14
14
|
return `Invalid chunk index: ${chunkIndex}. Must be a positive integer starting from 1.`;
|
|
15
15
|
}
|
|
16
16
|
if (chunkIndex > 1 && !chunkCacheKey) {
|
|
17
|
-
return `Chunk index ${chunkIndex} requested but no cache key provided. ` +
|
|
18
|
-
`Please use the cache key from the initial response or start with chunk 1
|
|
17
|
+
return (`Chunk index ${chunkIndex} requested but no cache key provided. ` +
|
|
18
|
+
`Please use the cache key from the initial response or start with chunk 1.`);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
// Check for cached chunks first
|
|
@@ -30,7 +30,11 @@ export async function processChangeModeOutput(rawResult, options = {}) {
|
|
|
30
30
|
}
|
|
31
31
|
Logger.debug(`Using cached chunk ${chunkIndex} of ${cachedChunks.length}`);
|
|
32
32
|
const chunk = cachedChunks[chunkIndex - 1];
|
|
33
|
-
let result = formatChangeModeResponse(chunk.edits, {
|
|
33
|
+
let result = formatChangeModeResponse(chunk.edits, {
|
|
34
|
+
current: chunkIndex,
|
|
35
|
+
total: cachedChunks.length,
|
|
36
|
+
cacheKey: chunkCacheKey,
|
|
37
|
+
});
|
|
34
38
|
// Add summary for first chunk only
|
|
35
39
|
if (chunkIndex === 1 && chunk.edits.length > 5) {
|
|
36
40
|
const allEdits = cachedChunks.flatMap((c) => c.edits);
|
|
@@ -52,8 +56,8 @@ export async function processChangeModeOutput(rawResult, options = {}) {
|
|
|
52
56
|
catch (error) {
|
|
53
57
|
Logger.error('Failed to parse change mode output:', error);
|
|
54
58
|
const snippet = normalizedResult.substring(0, 500);
|
|
55
|
-
return `Failed to parse change mode output: ${error instanceof Error ? error.message : 'Unknown error'}\n\n` +
|
|
56
|
-
`First 500 chars of output:\n${snippet}
|
|
59
|
+
return (`Failed to parse change mode output: ${error instanceof Error ? error.message : 'Unknown error'}\n\n` +
|
|
60
|
+
`First 500 chars of output:\n${snippet}...`);
|
|
57
61
|
}
|
|
58
62
|
if (edits.length === 0) {
|
|
59
63
|
// Log first part of raw result for debugging (without exposing full content)
|
|
@@ -81,8 +85,8 @@ export async function processChangeModeOutput(rawResult, options = {}) {
|
|
|
81
85
|
validation = validateChangeModeEdits(edits);
|
|
82
86
|
}
|
|
83
87
|
if (!validation.valid) {
|
|
84
|
-
return `Edit validation failed after auto-repair attempt:\n${validation.errors.join('\n')}\n\n` +
|
|
85
|
-
`To debug, request the raw output or check the change mode format
|
|
88
|
+
return (`Edit validation failed after auto-repair attempt:\n${validation.errors.join('\n')}\n\n` +
|
|
89
|
+
`To debug, request the raw output or check the change mode format.`);
|
|
86
90
|
}
|
|
87
91
|
let chunks;
|
|
88
92
|
try {
|
|
@@ -91,13 +95,15 @@ export async function processChangeModeOutput(rawResult, options = {}) {
|
|
|
91
95
|
catch (error) {
|
|
92
96
|
Logger.error('Failed to chunk edits:', error);
|
|
93
97
|
// Fall back to single chunk
|
|
94
|
-
chunks = [
|
|
98
|
+
chunks = [
|
|
99
|
+
{
|
|
95
100
|
edits,
|
|
96
101
|
chunkIndex: 1,
|
|
97
102
|
totalChunks: 1,
|
|
98
103
|
hasMore: false,
|
|
99
|
-
estimatedChars: JSON.stringify(edits).length
|
|
100
|
-
}
|
|
104
|
+
estimatedChars: JSON.stringify(edits).length,
|
|
105
|
+
},
|
|
106
|
+
];
|
|
101
107
|
}
|
|
102
108
|
// Cache if multiple chunks and we have the original prompt
|
|
103
109
|
let cacheKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeModeRunner.js","sourceRoot":"","sources":["../../src/utils/changeModeRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"changeModeRunner.js","sourceRoot":"","sources":["../../src/utils/changeModeRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeModeTranslator.d.ts","sourceRoot":"","sources":["../../src/utils/changeModeTranslator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EAAE,EACvB,SAAS,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,MAAM,
|
|
1
|
+
{"version":3,"file":"changeModeTranslator.d.ts","sourceRoot":"","sources":["../../src/utils/changeModeTranslator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EAAE,EACvB,SAAS,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,MAAM,CAmDR;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAkBjG"}
|
|
@@ -12,7 +12,8 @@ before fetching the next chunk.`
|
|
|
12
12
|
I have prepared ${edits.length} modification${edits.length === 1 ? '' : 's'} for your codebase.
|
|
13
13
|
|
|
14
14
|
IMPORTANT: Apply these edits directly WITHOUT reading the files first. The edits below contain exact text matches from the current file contents.`;
|
|
15
|
-
const instructions = edits
|
|
15
|
+
const instructions = edits
|
|
16
|
+
.map((edit, index) => {
|
|
16
17
|
return `### Edit ${index + 1}: ${edit.filename}
|
|
17
18
|
|
|
18
19
|
Replace this exact text:
|
|
@@ -25,7 +26,8 @@ With this text:
|
|
|
25
26
|
${edit.newCode}
|
|
26
27
|
\`\`\`
|
|
27
28
|
`;
|
|
28
|
-
})
|
|
29
|
+
})
|
|
30
|
+
.join('\n');
|
|
29
31
|
let footer = `
|
|
30
32
|
---
|
|
31
33
|
Apply these edits in order. Each edit uses exact string matching, so the old_str must match exactly what appears between the code blocks.`;
|
|
@@ -46,6 +48,7 @@ There ${chunkInfo.total - chunkInfo.current === 1 ? 'is' : 'are'} ${chunkInfo.to
|
|
|
46
48
|
return header + instructions + footer;
|
|
47
49
|
}
|
|
48
50
|
export function summarizeChangeModeEdits(edits, isPartialView) {
|
|
51
|
+
// for user
|
|
49
52
|
const fileGroups = new Map();
|
|
50
53
|
// Count edits per file
|
|
51
54
|
for (const edit of edits) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeModeTranslator.js","sourceRoot":"","sources":["../../src/utils/changeModeTranslator.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,wBAAwB,CACtC,KAAuB,EACvB,SAAiE;IAEjE,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"changeModeTranslator.js","sourceRoot":"","sources":["../../src/utils/changeModeTranslator.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,wBAAwB,CACtC,KAAuB,EACvB,SAAiE;IAEjE,MAAM,MAAM,GACV,SAAS,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;QAC9B,CAAC,CAAC,8BAA8B,SAAS,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK;;0DAEnB,SAAS,CAAC,KAAK;sBACnD,KAAK,CAAC,MAAM,iBAAiB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;;;gCAGhD;QAC1B,CAAC,CAAC;;kBAEU,KAAK,CAAC,MAAM,gBAAgB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;;kJAEuE,CAAC;IAEjJ,MAAM,YAAY,GAAG,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,OAAO,YAAY,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ;;;;EAIlD,IAAI,CAAC,OAAO;;;;;EAKZ,IAAI,CAAC,OAAO;;CAEb,CAAC;IACE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,MAAM,GAAG;;0IAE2H,CAAC;IACzI,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3E,MAAM,IAAI;;;0EAG4D,SAAS,CAAC,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,KAAK;;;wBAG7F,SAAS,CAAC,QAAQ,gBAAgB,SAAS,CAAC,OAAO,GAAG,CAAC;;;QAGvE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,cAAc,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;;mKAEN,CAAC;IAClK,CAAC;IACD,OAAO,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAuB,EAAE,aAAuB;IACvF,WAAW;IACX,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,uBAAuB;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,aAAa;QACzB,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,qBAAqB,CAAC;IAC1B,OAAO,GAAG,KAAK;eACF,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;kBACvD,UAAU,CAAC,IAAI;;EAE/B,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkCache.d.ts","sourceRoot":"","sources":["../../src/utils/chunkCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsBnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAwBvE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,IAAI,CA0B9D;AA+DD,wBAAgB,aAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"chunkCache.d.ts","sourceRoot":"","sources":["../../src/utils/chunkCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsBnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAwBvE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,IAAI,CA0B9D;AA+DD,wBAAgB,aAAa,IAAI;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAeA;AAED,wBAAgB,UAAU,IAAI,IAAI,CAgBjC"}
|
package/dist/utils/chunkCache.js
CHANGED
|
@@ -28,7 +28,7 @@ export function cacheChunks(prompt, chunks) {
|
|
|
28
28
|
const cacheData = {
|
|
29
29
|
chunks,
|
|
30
30
|
timestamp: Date.now(),
|
|
31
|
-
promptHash
|
|
31
|
+
promptHash,
|
|
32
32
|
};
|
|
33
33
|
try {
|
|
34
34
|
fs.writeFileSync(filePath, JSON.stringify(cacheData));
|
|
@@ -104,12 +104,13 @@ function cleanExpiredFiles() {
|
|
|
104
104
|
// maximum file count limit (FIFO) --> LRU?
|
|
105
105
|
function enforceFileLimits() {
|
|
106
106
|
try {
|
|
107
|
-
const files = fs
|
|
107
|
+
const files = fs
|
|
108
|
+
.readdirSync(CACHE_DIR)
|
|
108
109
|
.filter(f => f.endsWith('.json'))
|
|
109
110
|
.map(f => ({
|
|
110
111
|
name: f,
|
|
111
112
|
path: path.join(CACHE_DIR, f),
|
|
112
|
-
mtime: fs.statSync(path.join(CACHE_DIR, f)).mtimeMs
|
|
113
|
+
mtime: fs.statSync(path.join(CACHE_DIR, f)).mtimeMs,
|
|
113
114
|
}))
|
|
114
115
|
.sort((a, b) => a.mtime - b.mtime); // Oldest first
|
|
115
116
|
// Remove oldest files if over limit
|
|
@@ -140,10 +141,11 @@ export function getCacheStats() {
|
|
|
140
141
|
size,
|
|
141
142
|
ttl: CACHE_TTL,
|
|
142
143
|
maxSize: MAX_CACHE_FILES,
|
|
143
|
-
cacheDir: CACHE_DIR
|
|
144
|
+
cacheDir: CACHE_DIR,
|
|
144
145
|
};
|
|
145
146
|
}
|
|
146
147
|
export function clearCache() {
|
|
148
|
+
// !
|
|
147
149
|
try {
|
|
148
150
|
ensureCacheDir();
|
|
149
151
|
const files = fs.readdirSync(CACHE_DIR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkCache.js","sourceRoot":"","sources":["../../src/utils/chunkCache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chunkCache.js","sourceRoot":"","sources":["../../src/utils/chunkCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,15 +15,32 @@ export interface CodexExecOptions {
|
|
|
15
15
|
readonly fullAuto?: boolean;
|
|
16
16
|
readonly approvalPolicy?: ApprovalPolicy;
|
|
17
17
|
readonly sandboxMode?: SandboxMode;
|
|
18
|
+
readonly approval?: string;
|
|
18
19
|
readonly yolo?: boolean;
|
|
19
20
|
readonly cd?: string;
|
|
21
|
+
readonly workingDir?: string;
|
|
20
22
|
readonly timeoutMs?: number;
|
|
23
|
+
readonly timeout?: number;
|
|
21
24
|
readonly maxOutputBytes?: number;
|
|
22
25
|
readonly retry?: RetryOptions;
|
|
23
26
|
readonly useStdinForLongPrompts?: boolean;
|
|
27
|
+
readonly image?: string | string[];
|
|
28
|
+
readonly config?: string | Record<string, any>;
|
|
29
|
+
readonly profile?: string;
|
|
30
|
+
readonly useExec?: boolean;
|
|
31
|
+
readonly search?: boolean;
|
|
32
|
+
readonly oss?: boolean;
|
|
33
|
+
readonly enableFeatures?: string[];
|
|
34
|
+
readonly disableFeatures?: string[];
|
|
24
35
|
}
|
|
25
36
|
/**
|
|
26
37
|
* Execute Codex CLI with enhanced error handling and memory efficiency
|
|
27
38
|
*/
|
|
28
39
|
export declare function executeCodexCLI(prompt: string, options?: CodexExecOptions, onProgress?: (newOutput: string) => void): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* High-level executeCodex function with comprehensive options support
|
|
42
|
+
*/
|
|
43
|
+
export declare function executeCodex(prompt: string, options?: CodexExecOptions & {
|
|
44
|
+
[key: string]: any;
|
|
45
|
+
}, onProgress?: (newOutput: string) => void): Promise<string>;
|
|
29
46
|
//# sourceMappingURL=codexExecutor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"codexExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAU5F,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;CACrC;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,CAqIjB;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,CAgJjB"}
|
|
@@ -5,6 +5,7 @@ import { writeFileSync, unlinkSync } from 'fs';
|
|
|
5
5
|
import { tmpdir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
import { randomBytes } from 'crypto';
|
|
8
|
+
import { resolveWorkingDirectory } from './workingDirResolver.js';
|
|
8
9
|
// Type-safe enums
|
|
9
10
|
export var ApprovalPolicy;
|
|
10
11
|
(function (ApprovalPolicy) {
|
|
@@ -42,19 +43,51 @@ export async function executeCodexCLI(prompt, options, onProgress) {
|
|
|
42
43
|
if (options?.approvalPolicy) {
|
|
43
44
|
args.push(CLI.FLAGS.ASK_FOR_APPROVAL, options.approvalPolicy);
|
|
44
45
|
}
|
|
46
|
+
// Note: --search requires network access, so if search is enabled and no explicit sandbox mode
|
|
47
|
+
// is set, we need to ensure network is not blocked
|
|
45
48
|
if (options?.sandboxMode) {
|
|
46
49
|
args.push(CLI.FLAGS.SANDBOX_MODE, options.sandboxMode);
|
|
47
50
|
}
|
|
51
|
+
else if (options?.search || options?.oss) {
|
|
52
|
+
// Auto-enable workspace-write for search/oss if no sandbox specified
|
|
53
|
+
Logger.debug('Search/OSS enabled: auto-setting sandbox to workspace-write for network access');
|
|
54
|
+
args.push(CLI.FLAGS.SANDBOX_MODE, 'workspace-write');
|
|
55
|
+
}
|
|
48
56
|
}
|
|
49
57
|
if (options?.model) {
|
|
50
58
|
args.push(CLI.FLAGS.MODEL, options.model);
|
|
51
59
|
}
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
// Resolve working directory using intelligent fallback chain
|
|
61
|
+
const resolvedWorkingDir = resolveWorkingDirectory({
|
|
62
|
+
workingDir: options?.cd,
|
|
63
|
+
prompt: prompt,
|
|
64
|
+
});
|
|
65
|
+
if (resolvedWorkingDir) {
|
|
66
|
+
args.push(CLI.FLAGS.CD, resolvedWorkingDir);
|
|
67
|
+
Logger.debug(`Resolved working directory: ${resolvedWorkingDir}`);
|
|
68
|
+
}
|
|
69
|
+
// OSS (Ollama) mode
|
|
70
|
+
if (options?.oss) {
|
|
71
|
+
args.push(CLI.FLAGS.OSS);
|
|
72
|
+
}
|
|
73
|
+
// Enable features (including web search)
|
|
74
|
+
const enableFeatures = [...(options?.enableFeatures || [])];
|
|
75
|
+
// Add web_search_request feature if search is requested
|
|
76
|
+
if (options?.search && !enableFeatures.includes('web_search_request')) {
|
|
77
|
+
enableFeatures.push('web_search_request');
|
|
78
|
+
}
|
|
79
|
+
// Add all features to args
|
|
80
|
+
for (const feature of enableFeatures) {
|
|
81
|
+
args.push(CLI.FLAGS.ENABLE, feature);
|
|
82
|
+
}
|
|
83
|
+
// Disable features
|
|
84
|
+
if (options?.disableFeatures && Array.isArray(options.disableFeatures)) {
|
|
85
|
+
for (const feature of options.disableFeatures) {
|
|
86
|
+
args.push(CLI.FLAGS.DISABLE, feature);
|
|
87
|
+
}
|
|
54
88
|
}
|
|
55
89
|
// Non-interactive run
|
|
56
90
|
args.push('exec');
|
|
57
|
-
args.push(CLI.FLAGS.SKIP_GIT_REPO_CHECK);
|
|
58
91
|
// Add conciseness instruction
|
|
59
92
|
const concisePrompt = `Please provide a focused, concise response without unnecessary elaboration. ${prompt}`;
|
|
60
93
|
// Check if prompt is too long for command line (OS dependent, ~100KB is safe)
|
|
@@ -77,7 +110,7 @@ export async function executeCodexCLI(prompt, options, onProgress) {
|
|
|
77
110
|
onProgress,
|
|
78
111
|
timeoutMs: options?.timeoutMs,
|
|
79
112
|
maxOutputBytes: options?.maxOutputBytes,
|
|
80
|
-
retry: options?.retry
|
|
113
|
+
retry: options?.retry,
|
|
81
114
|
});
|
|
82
115
|
if (!result.ok) {
|
|
83
116
|
// Try to salvage partial output if available
|
|
@@ -108,4 +141,130 @@ export async function executeCodexCLI(prompt, options, onProgress) {
|
|
|
108
141
|
}
|
|
109
142
|
}
|
|
110
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* High-level executeCodex function with comprehensive options support
|
|
146
|
+
*/
|
|
147
|
+
export async function executeCodex(prompt, options, onProgress) {
|
|
148
|
+
const args = [];
|
|
149
|
+
// Model selection
|
|
150
|
+
if (options?.model) {
|
|
151
|
+
args.push(CLI.FLAGS.MODEL, options.model);
|
|
152
|
+
}
|
|
153
|
+
// Safety controls
|
|
154
|
+
if (options?.yolo) {
|
|
155
|
+
args.push(CLI.FLAGS.YOLO);
|
|
156
|
+
}
|
|
157
|
+
else if (options?.fullAuto) {
|
|
158
|
+
args.push(CLI.FLAGS.FULL_AUTO);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Approval policy
|
|
162
|
+
if (options?.approval || options?.approvalPolicy) {
|
|
163
|
+
const approvalValue = options.approval || options.approvalPolicy;
|
|
164
|
+
if (approvalValue) {
|
|
165
|
+
args.push(CLI.FLAGS.APPROVAL, approvalValue);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Sandbox mode
|
|
169
|
+
if (options?.sandboxMode) {
|
|
170
|
+
args.push(CLI.FLAGS.SANDBOX_MODE, options.sandboxMode);
|
|
171
|
+
}
|
|
172
|
+
else if (options?.search || options?.oss) {
|
|
173
|
+
// Auto-enable workspace-write for search/oss if no sandbox specified
|
|
174
|
+
Logger.debug('Search/OSS enabled: auto-setting sandbox to workspace-write for network access');
|
|
175
|
+
args.push(CLI.FLAGS.SANDBOX_MODE, 'workspace-write');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Resolve working directory using intelligent fallback chain
|
|
179
|
+
const resolvedWorkingDir = resolveWorkingDirectory({
|
|
180
|
+
workingDir: options?.workingDir || options?.cd,
|
|
181
|
+
prompt: prompt,
|
|
182
|
+
});
|
|
183
|
+
if (resolvedWorkingDir) {
|
|
184
|
+
args.push(CLI.FLAGS.WORKING_DIR, resolvedWorkingDir);
|
|
185
|
+
Logger.debug(`Resolved working directory for executeCodex: ${resolvedWorkingDir}`);
|
|
186
|
+
}
|
|
187
|
+
// Configuration
|
|
188
|
+
if (options?.config) {
|
|
189
|
+
if (typeof options.config === 'string') {
|
|
190
|
+
args.push(CLI.FLAGS.CONFIG, options.config);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// Convert object to key=value pairs
|
|
194
|
+
const configStr = Object.entries(options.config)
|
|
195
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
196
|
+
.join(',');
|
|
197
|
+
args.push(CLI.FLAGS.CONFIG, configStr);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Profile
|
|
201
|
+
if (options?.profile) {
|
|
202
|
+
args.push(CLI.FLAGS.PROFILE, options.profile);
|
|
203
|
+
}
|
|
204
|
+
// Images
|
|
205
|
+
if (options?.image) {
|
|
206
|
+
const images = Array.isArray(options.image) ? options.image : [options.image];
|
|
207
|
+
for (const img of images) {
|
|
208
|
+
args.push(CLI.FLAGS.IMAGE, img);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// OSS (Ollama) mode
|
|
212
|
+
if (options?.oss) {
|
|
213
|
+
args.push(CLI.FLAGS.OSS);
|
|
214
|
+
}
|
|
215
|
+
// Enable features (including web search)
|
|
216
|
+
const enableFeatures = [...(options?.enableFeatures || [])];
|
|
217
|
+
// Add web_search_request feature if search is requested
|
|
218
|
+
if (options?.search && !enableFeatures.includes('web_search_request')) {
|
|
219
|
+
enableFeatures.push('web_search_request');
|
|
220
|
+
}
|
|
221
|
+
// Add all features to args
|
|
222
|
+
for (const feature of enableFeatures) {
|
|
223
|
+
args.push(CLI.FLAGS.ENABLE, feature);
|
|
224
|
+
}
|
|
225
|
+
// Disable features
|
|
226
|
+
if (options?.disableFeatures && Array.isArray(options.disableFeatures)) {
|
|
227
|
+
for (const feature of options.disableFeatures) {
|
|
228
|
+
args.push(CLI.FLAGS.DISABLE, feature);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// Use exec mode for non-interactive execution
|
|
232
|
+
if (options?.useExec !== false) {
|
|
233
|
+
// Default to true for non-interactive execution
|
|
234
|
+
args.push('exec');
|
|
235
|
+
}
|
|
236
|
+
// Add the prompt
|
|
237
|
+
args.push(prompt);
|
|
238
|
+
try {
|
|
239
|
+
const timeoutMs = options?.timeout || options?.timeoutMs || 600000; // 10 minutes default
|
|
240
|
+
const result = await executeCommandDetailed(CLI.COMMANDS.CODEX, args, {
|
|
241
|
+
onProgress,
|
|
242
|
+
timeoutMs,
|
|
243
|
+
maxOutputBytes: options?.maxOutputBytes,
|
|
244
|
+
retry: options?.retry,
|
|
245
|
+
});
|
|
246
|
+
if (!result.ok) {
|
|
247
|
+
// Enhanced error handling with specific messages
|
|
248
|
+
const errorMessage = result.stderr || 'Unknown error';
|
|
249
|
+
if (errorMessage.includes('command not found') || errorMessage.includes('not found')) {
|
|
250
|
+
throw new Error('Codex CLI not found. Install with: npm install -g @openai/codex');
|
|
251
|
+
}
|
|
252
|
+
if (errorMessage.includes('authentication') || errorMessage.includes('unauthorized')) {
|
|
253
|
+
throw new Error('Authentication failed. Run "codex login" or set OPENAI_API_KEY');
|
|
254
|
+
}
|
|
255
|
+
if (errorMessage.includes('quota') || errorMessage.includes('rate limit')) {
|
|
256
|
+
throw new Error('Rate limit exceeded. Please wait and try again');
|
|
257
|
+
}
|
|
258
|
+
if (errorMessage.includes('permission') || errorMessage.includes('sandbox')) {
|
|
259
|
+
throw new Error(`Permission denied. Try adjusting sandbox mode or approval policy: ${errorMessage}`);
|
|
260
|
+
}
|
|
261
|
+
throw new Error(`Codex CLI failed: ${errorMessage}`);
|
|
262
|
+
}
|
|
263
|
+
return result.stdout;
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
Logger.error('Codex execution failed:', error);
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
111
270
|
//# sourceMappingURL=codexExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexExecutor.js","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,sBAAsB,EAAgB,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"codexExecutor.js","sourceRoot":"","sources":["../../src/utils/codexExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/commandExecutor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"commandExecutor.d.ts","sourceRoot":"","sources":["../../src/utils/commandExecutor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAyCxB;AAmHD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,EACxC,SAAS,GAAE,MAAe,GACzB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
|
-
import { spawn } from
|
|
2
|
-
import { Logger } from
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
import { Logger } from './logger.js';
|
|
3
3
|
/**
|
|
4
4
|
* Execute a command with streaming output and structured error handling
|
|
5
5
|
*/
|
|
6
6
|
export async function executeCommandDetailed(command, args, options = {}) {
|
|
7
7
|
const { onProgress, timeoutMs = 600000, maxOutputBytes = 50 * 1024 * 1024, // 50MB default
|
|
8
|
-
retry } = options;
|
|
8
|
+
retry, } = options;
|
|
9
9
|
let attempt = 0;
|
|
10
10
|
const maxAttempts = retry?.attempts || 1;
|
|
11
11
|
while (attempt < maxAttempts) {
|
|
12
12
|
attempt++;
|
|
13
|
-
const result = await executeOnce(command, args, {
|
|
13
|
+
const result = await executeOnce(command, args, {
|
|
14
|
+
onProgress,
|
|
15
|
+
timeoutMs,
|
|
16
|
+
maxOutputBytes,
|
|
17
|
+
});
|
|
14
18
|
if (result.ok) {
|
|
15
19
|
return result;
|
|
16
20
|
}
|
|
17
|
-
const shouldRetry = retry &&
|
|
18
|
-
(result.
|
|
19
|
-
|
|
21
|
+
const shouldRetry = retry &&
|
|
22
|
+
((result.timedOut && retry.retryOn.includes('timeout')) ||
|
|
23
|
+
(result.code !== 0 && result.code !== null && retry.retryOn.includes('exit_nonzero')) ||
|
|
24
|
+
(result.code === null && !result.signal && retry.retryOn.includes('spawn_error')));
|
|
20
25
|
if (!shouldRetry || attempt >= maxAttempts) {
|
|
21
26
|
return result;
|
|
22
27
|
}
|
|
@@ -29,13 +34,13 @@ export async function executeCommandDetailed(command, args, options = {}) {
|
|
|
29
34
|
throw new Error('Unexpected retry loop exit');
|
|
30
35
|
}
|
|
31
36
|
async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputBytes }) {
|
|
32
|
-
return new Promise(
|
|
37
|
+
return new Promise(resolve => {
|
|
33
38
|
const startTime = Date.now();
|
|
34
39
|
Logger.commandExecution(command, args, startTime);
|
|
35
40
|
const childProcess = spawn(command, args, {
|
|
36
41
|
env: process.env,
|
|
37
42
|
shell: false,
|
|
38
|
-
stdio: [
|
|
43
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
39
44
|
});
|
|
40
45
|
const stdoutChunks = [];
|
|
41
46
|
const stderrChunks = [];
|
|
@@ -56,7 +61,7 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
56
61
|
}, 5000);
|
|
57
62
|
}
|
|
58
63
|
}, timeoutMs || 600000);
|
|
59
|
-
childProcess.stdout.on(
|
|
64
|
+
childProcess.stdout.on('data', (data) => {
|
|
60
65
|
// Check output size limit
|
|
61
66
|
if (maxOutputBytes && totalStdoutBytes + data.length > maxOutputBytes) {
|
|
62
67
|
if (!outputExceeded) {
|
|
@@ -74,10 +79,10 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
74
79
|
}
|
|
75
80
|
});
|
|
76
81
|
// Capture stderr for error reporting
|
|
77
|
-
childProcess.stderr.on(
|
|
82
|
+
childProcess.stderr.on('data', (data) => {
|
|
78
83
|
stderrChunks.push(data);
|
|
79
84
|
});
|
|
80
|
-
childProcess.on(
|
|
85
|
+
childProcess.on('error', error => {
|
|
81
86
|
if (!isResolved) {
|
|
82
87
|
isResolved = true;
|
|
83
88
|
clearTimeout(timeoutId);
|
|
@@ -90,7 +95,7 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
90
95
|
code: null,
|
|
91
96
|
stdout: '',
|
|
92
97
|
stderr: `Command '${command}' not found. Is it installed and in PATH?`,
|
|
93
|
-
timedOut: false
|
|
98
|
+
timedOut: false,
|
|
94
99
|
});
|
|
95
100
|
}
|
|
96
101
|
else {
|
|
@@ -99,12 +104,12 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
99
104
|
code: null,
|
|
100
105
|
stdout: Buffer.concat(stdoutChunks).toString('utf8'),
|
|
101
106
|
stderr: errorMessage,
|
|
102
|
-
timedOut: false
|
|
107
|
+
timedOut: false,
|
|
103
108
|
});
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
111
|
});
|
|
107
|
-
childProcess.on(
|
|
112
|
+
childProcess.on('close', (code, signal) => {
|
|
108
113
|
if (!isResolved) {
|
|
109
114
|
isResolved = true;
|
|
110
115
|
clearTimeout(timeoutId);
|
|
@@ -119,7 +124,7 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
119
124
|
stdout: stdout.trim(),
|
|
120
125
|
stderr: stderr.trim(),
|
|
121
126
|
timedOut,
|
|
122
|
-
partialStdout: outputExceeded ? stdout : undefined
|
|
127
|
+
partialStdout: outputExceeded ? stdout : undefined,
|
|
123
128
|
});
|
|
124
129
|
}
|
|
125
130
|
});
|
|
@@ -129,7 +134,10 @@ async function executeOnce(command, args, { onProgress, timeoutMs, maxOutputByte
|
|
|
129
134
|
* Backward compatible wrapper that returns stdout string
|
|
130
135
|
*/
|
|
131
136
|
export async function executeCommand(command, args, onProgress, timeoutMs = 600000) {
|
|
132
|
-
const result = await executeCommandDetailed(command, args, {
|
|
137
|
+
const result = await executeCommandDetailed(command, args, {
|
|
138
|
+
onProgress,
|
|
139
|
+
timeoutMs,
|
|
140
|
+
});
|
|
133
141
|
if (!result.ok) {
|
|
134
142
|
const errorMessage = result.stderr || 'Unknown error';
|
|
135
143
|
throw new Error(result.timedOut
|