@vybestack/llxprt-code-core 0.8.0-nightly.260113.48db4b09b → 0.8.0-nightly.260114.3fcfeb2b0
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 +64 -27
- package/dist/src/code_assist/converter.d.ts +2 -0
- package/dist/src/code_assist/converter.js +2 -0
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/commands/extensions.d.ts +7 -0
- package/dist/src/commands/extensions.js +9 -0
- package/dist/src/commands/extensions.js.map +1 -0
- package/dist/src/config/config.d.ts +12 -2
- package/dist/src/config/config.js +30 -5
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +18 -2
- package/dist/src/core/nonInteractiveToolExecutor.js +21 -190
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/turn.d.ts +2 -0
- package/dist/src/core/turn.js +3 -1
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.d.ts +2 -0
- package/dist/src/mcp/google-auth-provider.js +19 -2
- package/dist/src/mcp/google-auth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +2 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +7 -0
- package/dist/src/mcp/oauth-utils.js +19 -0
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/sa-impersonation-provider.d.ts +0 -6
- package/dist/src/mcp/sa-impersonation-provider.js +3 -21
- package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +4 -3
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +9 -0
- package/dist/src/services/fileDiscoveryService.js +23 -11
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/tools/edit.js +4 -1
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.js +6 -6
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/ls.js +7 -15
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/read-file.js +5 -2
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.js +3 -14
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.js +11 -5
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/tools.js +3 -3
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +8 -2
- package/dist/src/types/modelParams.js.map +1 -1
- package/dist/src/utils/events.d.ts +53 -0
- package/dist/src/utils/events.js +60 -0
- package/dist/src/utils/events.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.d.ts +2 -1
- package/dist/src/utils/memoryDiscovery.js +9 -9
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/paths.js +126 -26
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/retry.d.ts +8 -0
- package/dist/src/utils/retry.js +19 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/shell-parser.d.ts +28 -0
- package/dist/src/utils/shell-parser.js +101 -0
- package/dist/src/utils/shell-parser.js.map +1 -1
- package/dist/src/utils/shell-utils.js +46 -6
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/tool-utils.d.ts +10 -0
- package/dist/src/utils/tool-utils.js +42 -1
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/package.json +1 -1
package/dist/src/utils/paths.js
CHANGED
|
@@ -42,6 +42,38 @@ export function shortenPath(filePath, maxLen = 35) {
|
|
|
42
42
|
if (filePath.length <= maxLen) {
|
|
43
43
|
return filePath;
|
|
44
44
|
}
|
|
45
|
+
const simpleTruncate = () => {
|
|
46
|
+
const keepLen = Math.floor((maxLen - 3) / 2);
|
|
47
|
+
if (keepLen <= 0) {
|
|
48
|
+
return filePath.substring(0, maxLen - 3) + '...';
|
|
49
|
+
}
|
|
50
|
+
const start = filePath.substring(0, keepLen);
|
|
51
|
+
const end = filePath.substring(filePath.length - keepLen);
|
|
52
|
+
return `${start}...${end}`;
|
|
53
|
+
};
|
|
54
|
+
const truncateComponent = (component, targetLength, mode) => {
|
|
55
|
+
if (component.length <= targetLength) {
|
|
56
|
+
return component;
|
|
57
|
+
}
|
|
58
|
+
if (targetLength <= 0) {
|
|
59
|
+
return '';
|
|
60
|
+
}
|
|
61
|
+
if (targetLength <= 3) {
|
|
62
|
+
if (mode === 'end') {
|
|
63
|
+
return component.slice(-targetLength);
|
|
64
|
+
}
|
|
65
|
+
return component.slice(0, targetLength);
|
|
66
|
+
}
|
|
67
|
+
if (mode === 'start') {
|
|
68
|
+
return `${component.slice(0, targetLength - 3)}...`;
|
|
69
|
+
}
|
|
70
|
+
if (mode === 'end') {
|
|
71
|
+
return `...${component.slice(component.length - (targetLength - 3))}`;
|
|
72
|
+
}
|
|
73
|
+
const front = Math.ceil((targetLength - 3) / 2);
|
|
74
|
+
const back = targetLength - 3 - front;
|
|
75
|
+
return `${component.slice(0, front)}...${component.slice(component.length - back)}`;
|
|
76
|
+
};
|
|
45
77
|
const parsedPath = path.parse(filePath);
|
|
46
78
|
const root = parsedPath.root;
|
|
47
79
|
const separator = path.sep;
|
|
@@ -51,44 +83,112 @@ export function shortenPath(filePath, maxLen = 35) {
|
|
|
51
83
|
// Handle cases with no segments after root (e.g., "/", "C:\") or only one segment
|
|
52
84
|
if (segments.length <= 1) {
|
|
53
85
|
// Fall back to simple start/end truncation for very short paths or single segments
|
|
54
|
-
|
|
55
|
-
// Ensure keepLen is not negative if maxLen is very small
|
|
56
|
-
if (keepLen <= 0) {
|
|
57
|
-
return filePath.substring(0, maxLen - 3) + '...';
|
|
58
|
-
}
|
|
59
|
-
const start = filePath.substring(0, keepLen);
|
|
60
|
-
const end = filePath.substring(filePath.length - keepLen);
|
|
61
|
-
return `${start}...${end}`;
|
|
86
|
+
return simpleTruncate();
|
|
62
87
|
}
|
|
63
88
|
const firstDir = segments[0];
|
|
64
89
|
const lastSegment = segments[segments.length - 1];
|
|
65
90
|
const startComponent = root + firstDir;
|
|
66
|
-
const endPartSegments = [];
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
for (let i = segments.length - 2; i >= 0; i--) {
|
|
91
|
+
const endPartSegments = [lastSegment];
|
|
92
|
+
let endPartLength = lastSegment.length;
|
|
93
|
+
// Iterate backwards through the middle segments
|
|
94
|
+
for (let i = segments.length - 2; i > 0; i--) {
|
|
71
95
|
const segment = segments[i];
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
96
|
+
const newLength = startComponent.length +
|
|
97
|
+
separator.length +
|
|
98
|
+
3 + // for "..."
|
|
99
|
+
separator.length +
|
|
100
|
+
endPartLength +
|
|
101
|
+
separator.length +
|
|
102
|
+
segment.length;
|
|
103
|
+
if (newLength <= maxLen) {
|
|
104
|
+
endPartSegments.unshift(segment);
|
|
105
|
+
endPartLength += separator.length + segment.length;
|
|
77
106
|
}
|
|
78
107
|
else {
|
|
79
108
|
break;
|
|
80
109
|
}
|
|
81
110
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
111
|
+
const components = [firstDir, ...endPartSegments];
|
|
112
|
+
const componentModes = components.map((_, index) => {
|
|
113
|
+
if (index === 0) {
|
|
114
|
+
return 'start';
|
|
115
|
+
}
|
|
116
|
+
if (index === components.length - 1) {
|
|
117
|
+
return 'end';
|
|
118
|
+
}
|
|
119
|
+
return 'center';
|
|
120
|
+
});
|
|
121
|
+
const separatorsCount = endPartSegments.length + 1;
|
|
122
|
+
const fixedLen = root.length + separatorsCount * separator.length + 3; // ellipsis length
|
|
123
|
+
const availableForComponents = maxLen - fixedLen;
|
|
124
|
+
const trailingFallback = () => {
|
|
125
|
+
const ellipsisTail = `...${separator}${lastSegment}`;
|
|
126
|
+
if (ellipsisTail.length <= maxLen) {
|
|
127
|
+
return ellipsisTail;
|
|
128
|
+
}
|
|
129
|
+
if (root) {
|
|
130
|
+
const rootEllipsisTail = `${root}...${separator}${lastSegment}`;
|
|
131
|
+
if (rootEllipsisTail.length <= maxLen) {
|
|
132
|
+
return rootEllipsisTail;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (root && `${root}${lastSegment}`.length <= maxLen) {
|
|
136
|
+
return `${root}${lastSegment}`;
|
|
137
|
+
}
|
|
138
|
+
if (lastSegment.length <= maxLen) {
|
|
139
|
+
return lastSegment;
|
|
140
|
+
}
|
|
141
|
+
// As a final resort (e.g., last segment itself exceeds maxLen), fall back to simple truncation.
|
|
142
|
+
return simpleTruncate();
|
|
143
|
+
};
|
|
144
|
+
if (availableForComponents <= 0) {
|
|
145
|
+
return trailingFallback();
|
|
146
|
+
}
|
|
147
|
+
const minLengths = components.map((component, index) => {
|
|
148
|
+
if (index === 0) {
|
|
149
|
+
return Math.min(component.length, 1);
|
|
150
|
+
}
|
|
151
|
+
if (index === components.length - 1) {
|
|
152
|
+
return component.length; // Never truncate the last segment when possible.
|
|
153
|
+
}
|
|
154
|
+
return Math.min(component.length, 1);
|
|
155
|
+
});
|
|
156
|
+
const minTotal = minLengths.reduce((sum, len) => sum + len, 0);
|
|
157
|
+
if (availableForComponents < minTotal) {
|
|
158
|
+
return trailingFallback();
|
|
159
|
+
}
|
|
160
|
+
const budgets = components.map((component) => component.length);
|
|
161
|
+
let currentTotal = budgets.reduce((sum, len) => sum + len, 0);
|
|
162
|
+
const pickIndexToReduce = () => {
|
|
163
|
+
let bestIndex = -1;
|
|
164
|
+
let bestScore = -Infinity;
|
|
165
|
+
for (let i = 0; i < budgets.length; i++) {
|
|
166
|
+
if (budgets[i] <= minLengths[i]) {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const isLast = i === budgets.length - 1;
|
|
170
|
+
const score = (isLast ? 0 : 1_000_000) + budgets[i];
|
|
171
|
+
if (score > bestScore) {
|
|
172
|
+
bestScore = score;
|
|
173
|
+
bestIndex = i;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return bestIndex;
|
|
177
|
+
};
|
|
178
|
+
while (currentTotal > availableForComponents) {
|
|
179
|
+
const index = pickIndexToReduce();
|
|
180
|
+
if (index === -1) {
|
|
181
|
+
return trailingFallback();
|
|
182
|
+
}
|
|
183
|
+
budgets[index]--;
|
|
184
|
+
currentTotal--;
|
|
85
185
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
186
|
+
const truncatedComponents = components.map((component, index) => truncateComponent(component, budgets[index], componentModes[index]));
|
|
187
|
+
const truncatedFirst = truncatedComponents[0];
|
|
188
|
+
const truncatedEnd = truncatedComponents.slice(1).join(separator);
|
|
189
|
+
const result = `${root}${truncatedFirst}${separator}...${separator}${truncatedEnd}`;
|
|
90
190
|
if (result.length > maxLen) {
|
|
91
|
-
return
|
|
191
|
+
return trailingFallback();
|
|
92
192
|
}
|
|
93
193
|
return result;
|
|
94
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE;IAC/D,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IAE3B,4CAA4C;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,4BAA4B;IAEpG,kFAAkF;IAClF,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,mFAAmF;QACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ export declare function isNetworkTransientError(error: unknown): boolean;
|
|
|
32
32
|
* @throws The last error encountered if all attempts fail.
|
|
33
33
|
*/
|
|
34
34
|
export declare function retryWithBackoff<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Determines if an error is an Anthropic overloaded_error.
|
|
37
|
+
* Anthropic returns overloaded_error as an error type (not HTTP status):
|
|
38
|
+
* {"type":"error","error":{"type":"overloaded_error","message":"Overloaded"}}
|
|
39
|
+
* @param error The error object.
|
|
40
|
+
* @returns True if the error is an overloaded_error, false otherwise.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isOverloadError(error: unknown): boolean;
|
|
35
43
|
/**
|
|
36
44
|
* Extracts the HTTP status code from an error object.
|
|
37
45
|
* @param error The error object.
|
package/dist/src/utils/retry.js
CHANGED
|
@@ -217,7 +217,8 @@ export async function retryWithBackoff(fn, options) {
|
|
|
217
217
|
throw error;
|
|
218
218
|
}
|
|
219
219
|
const errorStatus = getErrorStatus(error);
|
|
220
|
-
const
|
|
220
|
+
const isOverload = isOverloadError(error);
|
|
221
|
+
const is429 = errorStatus === 429 || isOverload;
|
|
221
222
|
const is402 = errorStatus === 402;
|
|
222
223
|
const is401 = errorStatus === 401;
|
|
223
224
|
// Track consecutive 429 errors for bucket failover
|
|
@@ -325,6 +326,21 @@ export async function retryWithBackoff(fn, options) {
|
|
|
325
326
|
// Added for type safety and to satisfy the compiler that a promise is always returned.
|
|
326
327
|
throw new Error('Retry attempts exhausted');
|
|
327
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Determines if an error is an Anthropic overloaded_error.
|
|
331
|
+
* Anthropic returns overloaded_error as an error type (not HTTP status):
|
|
332
|
+
* {"type":"error","error":{"type":"overloaded_error","message":"Overloaded"}}
|
|
333
|
+
* @param error The error object.
|
|
334
|
+
* @returns True if the error is an overloaded_error, false otherwise.
|
|
335
|
+
*/
|
|
336
|
+
export function isOverloadError(error) {
|
|
337
|
+
if (error && typeof error === 'object') {
|
|
338
|
+
const errorObj = error;
|
|
339
|
+
const errorType = errorObj.error?.type || errorObj.type;
|
|
340
|
+
return errorType === 'overloaded_error';
|
|
341
|
+
}
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
328
344
|
/**
|
|
329
345
|
* Extracts the HTTP status code from an error object.
|
|
330
346
|
* @param error The error object.
|
|
@@ -387,8 +403,9 @@ function getRetryAfterDelayMs(error) {
|
|
|
387
403
|
*/
|
|
388
404
|
function getDelayDurationAndStatus(error) {
|
|
389
405
|
const errorStatus = getErrorStatus(error);
|
|
406
|
+
const isOverload = isOverloadError(error);
|
|
390
407
|
let delayDurationMs = 0;
|
|
391
|
-
if (errorStatus === 429) {
|
|
408
|
+
if (errorStatus === 429 || isOverload) {
|
|
392
409
|
delayDurationMs = getRetryAfterDelayMs(error);
|
|
393
410
|
}
|
|
394
411
|
return { delayDurationMs, errorStatus };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,34 @@ export declare function parseShellCommand(command: string): Tree | null;
|
|
|
39
39
|
* This handles pipelines, command lists (&&, ||, ;), and subshells.
|
|
40
40
|
*/
|
|
41
41
|
export declare function extractCommandNames(tree: Tree): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Parsed command detail containing the command name and full text.
|
|
44
|
+
*/
|
|
45
|
+
export interface ParsedCommandDetail {
|
|
46
|
+
name: string;
|
|
47
|
+
text: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Result of parsing command details.
|
|
51
|
+
*/
|
|
52
|
+
export interface CommandParseResult {
|
|
53
|
+
details: ParsedCommandDetail[];
|
|
54
|
+
hasError: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Collect all command details from a tree by walking the entire AST.
|
|
58
|
+
* This includes commands inside command substitutions ($(), ``), process substitutions (<(), >()),
|
|
59
|
+
* function bodies, subshells, and any other nested contexts.
|
|
60
|
+
*
|
|
61
|
+
* This is essential for security - we need to validate ALL commands that will execute,
|
|
62
|
+
* not just top-level commands.
|
|
63
|
+
*/
|
|
64
|
+
export declare function collectCommandDetails(tree: Tree, source: string): ParsedCommandDetail[];
|
|
65
|
+
/**
|
|
66
|
+
* Parse a shell command and extract all command details including nested commands.
|
|
67
|
+
* Returns null if parsing fails or tree-sitter is not available.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseCommandDetails(command: string): CommandParseResult | null;
|
|
42
70
|
/**
|
|
43
71
|
* Check if a command contains command substitution patterns.
|
|
44
72
|
* Uses tree-sitter AST to accurately detect:
|
|
@@ -93,6 +93,107 @@ export function extractCommandNames(tree) {
|
|
|
93
93
|
}
|
|
94
94
|
return commands;
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Normalize a command name by removing quotes and extracting the base name.
|
|
98
|
+
*/
|
|
99
|
+
function normalizeCommandName(raw) {
|
|
100
|
+
if (raw.length >= 2) {
|
|
101
|
+
const first = raw[0];
|
|
102
|
+
const last = raw[raw.length - 1];
|
|
103
|
+
if ((first === '"' && last === '"') || (first === "'" && last === "'")) {
|
|
104
|
+
return raw.slice(1, -1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const trimmed = raw.trim();
|
|
108
|
+
if (!trimmed) {
|
|
109
|
+
return trimmed;
|
|
110
|
+
}
|
|
111
|
+
return trimmed.split(/[\\/]/).pop() ?? trimmed;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extract command name from a tree-sitter node.
|
|
115
|
+
* Handles different node types: command, declaration_command, unset_command, test_command.
|
|
116
|
+
*/
|
|
117
|
+
function extractNameFromNode(node) {
|
|
118
|
+
switch (node.type) {
|
|
119
|
+
case 'command': {
|
|
120
|
+
const nameNode = node.childForFieldName('name');
|
|
121
|
+
if (!nameNode) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return normalizeCommandName(nameNode.text);
|
|
125
|
+
}
|
|
126
|
+
case 'declaration_command':
|
|
127
|
+
case 'unset_command':
|
|
128
|
+
case 'test_command': {
|
|
129
|
+
const firstChild = node.child(0);
|
|
130
|
+
if (!firstChild) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
return normalizeCommandName(firstChild.text);
|
|
134
|
+
}
|
|
135
|
+
default:
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Collect all command details from a tree by walking the entire AST.
|
|
141
|
+
* This includes commands inside command substitutions ($(), ``), process substitutions (<(), >()),
|
|
142
|
+
* function bodies, subshells, and any other nested contexts.
|
|
143
|
+
*
|
|
144
|
+
* This is essential for security - we need to validate ALL commands that will execute,
|
|
145
|
+
* not just top-level commands.
|
|
146
|
+
*/
|
|
147
|
+
export function collectCommandDetails(tree, source) {
|
|
148
|
+
const stack = [tree.rootNode];
|
|
149
|
+
const details = [];
|
|
150
|
+
while (stack.length > 0) {
|
|
151
|
+
const current = stack.pop();
|
|
152
|
+
if (!current) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const commandName = extractNameFromNode(current);
|
|
156
|
+
if (commandName) {
|
|
157
|
+
details.push({
|
|
158
|
+
name: commandName,
|
|
159
|
+
text: source.slice(current.startIndex, current.endIndex).trim(),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Push children in reverse order so we process them left-to-right
|
|
163
|
+
for (let i = current.namedChildCount - 1; i >= 0; i -= 1) {
|
|
164
|
+
const child = current.namedChild(i);
|
|
165
|
+
if (child) {
|
|
166
|
+
stack.push(child);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return details;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Parse a shell command and extract all command details including nested commands.
|
|
174
|
+
* Returns null if parsing fails or tree-sitter is not available.
|
|
175
|
+
*/
|
|
176
|
+
export function parseCommandDetails(command) {
|
|
177
|
+
if (!parser || !bashLanguage) {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const tree = parser.parse(command);
|
|
182
|
+
if (!tree) {
|
|
183
|
+
return { details: [], hasError: true };
|
|
184
|
+
}
|
|
185
|
+
// Check for syntax errors in the tree
|
|
186
|
+
const hasError = tree.rootNode.hasError;
|
|
187
|
+
if (hasError) {
|
|
188
|
+
return { details: [], hasError: true };
|
|
189
|
+
}
|
|
190
|
+
const details = collectCommandDetails(tree, command);
|
|
191
|
+
return { details, hasError: false };
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
96
197
|
/**
|
|
97
198
|
* Check if a command contains command substitution patterns.
|
|
98
199
|
* Uses tree-sitter AST to accurately detect:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-parser.js","sourceRoot":"","sources":["../../../src/utils/shell-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shell-parser.js","sourceRoot":"","sources":["../../../src/utils/shell-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { normalizeShellReplacement } from '../config/config.js';
|
|
6
7
|
import os from 'node:os';
|
|
7
8
|
import { quote } from 'shell-quote';
|
|
8
9
|
import { doesToolInvocationMatch } from './tool-utils.js';
|
|
9
|
-
import { isParserAvailable, parseShellCommand, extractCommandNames, hasCommandSubstitution as treeSitterHasCommandSubstitution, splitCommandsWithTree, } from './shell-parser.js';
|
|
10
|
+
import { isParserAvailable, parseShellCommand, extractCommandNames, hasCommandSubstitution as treeSitterHasCommandSubstitution, splitCommandsWithTree, parseCommandDetails, } from './shell-parser.js';
|
|
10
11
|
export const SHELL_TOOL_NAMES = ['run_shell_command', 'ShellTool'];
|
|
11
12
|
/**
|
|
12
13
|
* Determines the appropriate shell configuration for the current platform.
|
|
@@ -302,20 +303,24 @@ function detectCommandSubstitutionRegex(command) {
|
|
|
302
303
|
* @returns An object detailing which commands are not allowed.
|
|
303
304
|
*/
|
|
304
305
|
export function checkCommandPermissions(command, config, sessionAllowlist) {
|
|
305
|
-
// Check
|
|
306
|
+
// Check shell replacement mode via ephemeral setting or config
|
|
306
307
|
const ephemeralValue = config.getEphemeralSetting?.('shell-replacement');
|
|
307
308
|
const configValue = config.getShellReplacement?.();
|
|
309
|
+
const shellReplacementMode = normalizeShellReplacement(ephemeralValue ?? configValue ?? 'allowlist');
|
|
308
310
|
// Debug logging when VERBOSE is set
|
|
309
311
|
if (process.env.VERBOSE === 'true') {
|
|
310
312
|
console.log('[SHELL-UTILS] Shell replacement check:', {
|
|
311
313
|
ephemeralValue,
|
|
312
314
|
configValue,
|
|
315
|
+
shellReplacementMode,
|
|
313
316
|
command: command.substring(0, 50) + (command.length > 50 ? '...' : ''),
|
|
314
317
|
});
|
|
315
318
|
}
|
|
316
|
-
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
+
// Handle shell replacement modes:
|
|
320
|
+
// - 'none': Block ALL command substitution (most restrictive)
|
|
321
|
+
// - 'allowlist': Allow substitution, validate inner commands against coreTools (default, matches upstream)
|
|
322
|
+
// - 'all': Allow all substitution unconditionally (least restrictive, legacy true behavior)
|
|
323
|
+
if (shellReplacementMode === 'none' && detectCommandSubstitution(command)) {
|
|
319
324
|
return {
|
|
320
325
|
allAllowed: false,
|
|
321
326
|
disallowedCommands: [command],
|
|
@@ -324,7 +329,42 @@ export function checkCommandPermissions(command, config, sessionAllowlist) {
|
|
|
324
329
|
};
|
|
325
330
|
}
|
|
326
331
|
const normalize = (cmd) => cmd.trim().replace(/\s+/g, ' ');
|
|
327
|
-
|
|
332
|
+
let commandsToValidate;
|
|
333
|
+
// Mode behavior for command extraction:
|
|
334
|
+
// - 'allowlist': validate ALL nested commands (tree-sitter deep walk when available)
|
|
335
|
+
// - 'all': allow substitution without deep validation (legacy behavior)
|
|
336
|
+
// - 'none': handled above
|
|
337
|
+
if (shellReplacementMode === 'allowlist') {
|
|
338
|
+
// Try to use tree-sitter for deep command extraction
|
|
339
|
+
const parseResult = parseCommandDetails(command);
|
|
340
|
+
if (parseResult &&
|
|
341
|
+
!parseResult.hasError &&
|
|
342
|
+
parseResult.details.length > 0) {
|
|
343
|
+
// Use tree-sitter results - extracts ALL commands including nested ones
|
|
344
|
+
commandsToValidate = parseResult.details
|
|
345
|
+
.map((detail) => normalize(detail.text))
|
|
346
|
+
.filter(Boolean);
|
|
347
|
+
}
|
|
348
|
+
else if (parseResult?.hasError) {
|
|
349
|
+
// Tree-sitter detected a syntax error - reject for safety
|
|
350
|
+
return {
|
|
351
|
+
allAllowed: false,
|
|
352
|
+
disallowedCommands: [command],
|
|
353
|
+
blockReason: 'Command rejected because it could not be parsed safely',
|
|
354
|
+
isHardDenial: true,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
// Tree-sitter not available, fall back to splitCommands
|
|
359
|
+
// This is less secure but allows basic functionality
|
|
360
|
+
commandsToValidate = splitCommands(command).map(normalize);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
// 'all' mode: do not attempt deep extraction/validation.
|
|
365
|
+
// Just use simple command splitting (legacy behavior)
|
|
366
|
+
commandsToValidate = splitCommands(command).map(normalize);
|
|
367
|
+
}
|
|
328
368
|
const invocation = {
|
|
329
369
|
params: { command: '' },
|
|
330
370
|
};
|