@vybestack/llxprt-code-core 0.1.22 → 0.1.23-nightly.250824.52dcfe37
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 +19 -0
- package/dist/src/code_assist/oauth2.js +60 -31
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/config/config.d.ts +14 -1
- package/dist/src/config/config.js +23 -3
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.js +2 -2
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +2 -1
- package/dist/src/core/coreToolScheduler.js +19 -0
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.js +28 -13
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +1 -5
- package/dist/src/core/loggingContentGenerator.js +4 -6
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +2 -2
- package/dist/src/core/nonInteractiveToolExecutor.js +13 -9
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/subagent.js +5 -5
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/debug/ConfigurationManager.d.ts +28 -0
- package/dist/src/debug/ConfigurationManager.js +211 -0
- package/dist/src/debug/ConfigurationManager.js.map +1 -0
- package/dist/src/debug/DebugLogger.d.ts +26 -0
- package/dist/src/debug/DebugLogger.js +230 -0
- package/dist/src/debug/DebugLogger.js.map +1 -0
- package/dist/src/debug/FileOutput.d.ts +23 -0
- package/dist/src/debug/FileOutput.js +144 -0
- package/dist/src/debug/FileOutput.js.map +1 -0
- package/dist/src/debug/MockConfigurationManager.d.ts +28 -0
- package/dist/src/debug/MockConfigurationManager.js +45 -0
- package/dist/src/debug/MockConfigurationManager.js.map +1 -0
- package/dist/src/debug/MockFileOutput.d.ts +20 -0
- package/dist/src/debug/MockFileOutput.js +25 -0
- package/dist/src/debug/MockFileOutput.js.map +1 -0
- package/dist/src/debug/index.d.ts +8 -0
- package/dist/src/debug/index.js +9 -0
- package/dist/src/debug/index.js.map +1 -0
- package/dist/src/debug/types.d.ts +23 -0
- package/dist/src/debug/types.js +2 -0
- package/dist/src/debug/types.js.map +1 -0
- package/dist/src/ide/ide-client.d.ts +4 -0
- package/dist/src/ide/ide-client.js +41 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +17 -4
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/process-utils.d.ts +10 -5
- package/dist/src/ide/process-utils.js +113 -30
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +34 -230
- package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
- package/dist/src/providers/BaseProvider.js +13 -2
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -0
- package/dist/src/providers/anthropic/AnthropicProvider.js +20 -31
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +6 -0
- package/dist/src/providers/gemini/GeminiProvider.js +31 -50
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +1 -0
- package/dist/src/providers/openai/OpenAIProvider.js +513 -131
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/buildResponsesRequest.js +9 -6
- package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -1
- package/dist/src/providers/openai/getOpenAIProviderInfo.js +8 -3
- package/dist/src/providers/openai/getOpenAIProviderInfo.js.map +1 -1
- package/dist/src/providers/openai/parseResponsesStream.js +13 -4
- package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
- package/dist/src/providers/openai/syntheticToolResponses.d.ts +0 -9
- package/dist/src/providers/openai/syntheticToolResponses.js +87 -16
- package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -1
- package/dist/src/services/ClipboardService.d.ts +19 -0
- package/dist/src/services/ClipboardService.js +66 -0
- package/dist/src/services/ClipboardService.js.map +1 -0
- package/dist/src/services/fileSystemService.d.ts +31 -0
- package/dist/src/services/fileSystemService.js +18 -0
- package/dist/src/services/fileSystemService.js.map +1 -0
- package/dist/src/services/index.d.ts +1 -0
- package/dist/src/services/index.js +1 -0
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/loopDetectionService.d.ts +5 -0
- package/dist/src/services/loopDetectionService.js +89 -1
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +8 -6
- package/dist/src/services/shellExecutionService.js +297 -133
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/telemetry/loggers.js +1 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +1 -1
- package/dist/src/telemetry/metrics.js +2 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/sdk.js +3 -3
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +1 -0
- package/dist/src/telemetry/types.js +20 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +4 -0
- package/dist/src/telemetry/uiTelemetry.js +16 -1
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/test-utils/tools.d.ts +8 -2
- package/dist/src/test-utils/tools.js +2 -3
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/ToolFormatter.d.ts +1 -0
- package/dist/src/tools/ToolFormatter.js +90 -9
- package/dist/src/tools/ToolFormatter.js.map +1 -1
- package/dist/src/tools/edit.d.ts +1 -1
- package/dist/src/tools/edit.js +15 -9
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts +1 -1
- package/dist/src/tools/glob.js +8 -8
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.d.ts +1 -1
- package/dist/src/tools/grep.js +1 -6
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +1 -1
- package/dist/src/tools/ls.js +1 -6
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +38 -0
- package/dist/src/tools/mcp-client-manager.js +74 -0
- package/dist/src/tools/mcp-client-manager.js.map +1 -0
- package/dist/src/tools/mcp-client.d.ts +43 -0
- package/dist/src/tools/mcp-client.js +117 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +1 -1
- package/dist/src/tools/memoryTool.js +1 -6
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +7 -2
- package/dist/src/tools/read-file.js +22 -13
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +0 -1
- package/dist/src/tools/read-many-files.js +16 -11
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -1
- package/dist/src/tools/shell.js +32 -28
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +5 -0
- package/dist/src/tools/tool-registry.js +13 -4
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +3 -1
- package/dist/src/tools/tools.js +25 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +1 -1
- package/dist/src/tools/web-fetch.js +1 -6
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +6 -1
- package/dist/src/tools/web-search.js +6 -6
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +7 -2
- package/dist/src/tools/write-file.js +49 -31
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/environmentContext.js +2 -2
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/errorReporting.js +1 -1
- package/dist/src/utils/fileUtils.d.ts +2 -1
- package/dist/src/utils/fileUtils.js +3 -3
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/getPty.d.ts +19 -0
- package/dist/src/utils/getPty.js +23 -0
- package/dist/src/utils/getPty.js.map +1 -0
- package/dist/src/utils/schemaValidator.js +16 -1
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/user_account.js +58 -53
- package/dist/src/utils/user_account.js.map +1 -1
- package/package.json +22 -7
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @plan PLAN-20250822-GEMINIFALLBACK.P06
|
|
8
|
+
* @requirement REQ-001.1, REQ-001.2, REQ-001.3
|
|
9
|
+
* @pseudocode lines 29-37
|
|
10
|
+
*/
|
|
11
|
+
export declare class ClipboardService {
|
|
12
|
+
/**
|
|
13
|
+
* Copy text to clipboard using platform-specific utilities
|
|
14
|
+
* @plan PLAN-20250822-GEMINIFALLBACK.P06
|
|
15
|
+
* @requirement REQ-001.1
|
|
16
|
+
* @pseudocode lines 29-30
|
|
17
|
+
*/
|
|
18
|
+
copyToClipboard(text: string): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { spawn } from 'child_process';
|
|
7
|
+
/**
|
|
8
|
+
* @plan PLAN-20250822-GEMINIFALLBACK.P06
|
|
9
|
+
* @requirement REQ-001.1, REQ-001.2, REQ-001.3
|
|
10
|
+
* @pseudocode lines 29-37
|
|
11
|
+
*/
|
|
12
|
+
export class ClipboardService {
|
|
13
|
+
/**
|
|
14
|
+
* Copy text to clipboard using platform-specific utilities
|
|
15
|
+
* @plan PLAN-20250822-GEMINIFALLBACK.P06
|
|
16
|
+
* @requirement REQ-001.1
|
|
17
|
+
* @pseudocode lines 29-30
|
|
18
|
+
*/
|
|
19
|
+
async copyToClipboard(text) {
|
|
20
|
+
const run = (cmd, args) => new Promise((resolveInner, rejectInner) => {
|
|
21
|
+
const child = spawn(cmd, args);
|
|
22
|
+
let stderr = '';
|
|
23
|
+
child.stderr.on('data', (chunk) => (stderr += chunk.toString()));
|
|
24
|
+
child.on('error', rejectInner);
|
|
25
|
+
child.on('close', (code) => {
|
|
26
|
+
if (code === 0)
|
|
27
|
+
return resolveInner();
|
|
28
|
+
const errorMsg = stderr.trim();
|
|
29
|
+
rejectInner(new Error(`'${cmd}' exited with code ${code}${errorMsg ? `: ${errorMsg}` : ''}`));
|
|
30
|
+
});
|
|
31
|
+
child.stdin.on('error', rejectInner);
|
|
32
|
+
child.stdin.write(text);
|
|
33
|
+
child.stdin.end();
|
|
34
|
+
});
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
/**
|
|
37
|
+
* @plan PLAN-20250822-GEMINIFALLBACK.P06
|
|
38
|
+
* @requirement REQ-001.2
|
|
39
|
+
* @pseudocode lines 31-36
|
|
40
|
+
*/
|
|
41
|
+
switch (process.platform) {
|
|
42
|
+
case 'win32':
|
|
43
|
+
// Windows: clip
|
|
44
|
+
run('clip', []).then(resolve).catch(reject);
|
|
45
|
+
break;
|
|
46
|
+
case 'darwin':
|
|
47
|
+
// macOS: pbcopy
|
|
48
|
+
run('pbcopy', []).then(resolve).catch(reject);
|
|
49
|
+
break;
|
|
50
|
+
case 'linux':
|
|
51
|
+
// Linux: try xclip first, then wl-copy (Wayland) as fallback
|
|
52
|
+
run('xclip', ['-selection', 'clipboard'])
|
|
53
|
+
.then(resolve)
|
|
54
|
+
.catch(() => {
|
|
55
|
+
// Try wl-copy as fallback for Wayland
|
|
56
|
+
run('wl-copy', []).then(resolve).catch(reject);
|
|
57
|
+
});
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
reject(new Error(`Unsupported platform: ${process.platform}`));
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=ClipboardService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardService.js","sourceRoot":"","sources":["../../../src/services/ClipboardService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAc,EAAiB,EAAE,CACzD,IAAI,OAAO,CAAO,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC;oBAAE,OAAO,YAAY,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,WAAW,CACT,IAAI,KAAK,CACP,IAAI,GAAG,sBAAsB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACtE,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEL,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC;;;;eAIG;YACH,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACzB,KAAK,OAAO;oBACV,gBAAgB;oBAChB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,QAAQ;oBACX,gBAAgB;oBAChB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC9C,MAAM;gBACR,KAAK,OAAO;oBACV,6DAA6D;oBAC7D,GAAG,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;yBACtC,IAAI,CAAC,OAAO,CAAC;yBACb,KAAK,CAAC,GAAG,EAAE;wBACV,sCAAsC;wBACtC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC;oBACL,MAAM;gBACR;oBACE,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC/D,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Interface for file system operations that may be delegated to different implementations
|
|
8
|
+
*/
|
|
9
|
+
export interface FileSystemService {
|
|
10
|
+
/**
|
|
11
|
+
* Read text content from a file
|
|
12
|
+
*
|
|
13
|
+
* @param filePath - The path to the file to read
|
|
14
|
+
* @returns The file content as a string
|
|
15
|
+
*/
|
|
16
|
+
readTextFile(filePath: string): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Write text content to a file
|
|
19
|
+
*
|
|
20
|
+
* @param filePath - The path to the file to write
|
|
21
|
+
* @param content - The content to write
|
|
22
|
+
*/
|
|
23
|
+
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Standard file system implementation
|
|
27
|
+
*/
|
|
28
|
+
export declare class StandardFileSystemService implements FileSystemService {
|
|
29
|
+
readTextFile(filePath: string): Promise<string>;
|
|
30
|
+
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
/**
|
|
8
|
+
* Standard file system implementation
|
|
9
|
+
*/
|
|
10
|
+
export class StandardFileSystemService {
|
|
11
|
+
async readTextFile(filePath) {
|
|
12
|
+
return fs.readFile(filePath, 'utf-8');
|
|
13
|
+
}
|
|
14
|
+
async writeTextFile(filePath, content) {
|
|
15
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=fileSystemService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/services/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;AAuB7B;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -7,3 +7,4 @@ export { TodoReminderService } from './todo-reminder-service.js';
|
|
|
7
7
|
export type { TodoStateChange } from './todo-reminder-service.js';
|
|
8
8
|
export { ComplexityAnalyzer } from './complexity-analyzer.js';
|
|
9
9
|
export type { ComplexityAnalysisResult, ComplexityAnalyzerOptions, AnalysisStats, } from './complexity-analyzer.js';
|
|
10
|
+
export { ClipboardService } from './ClipboardService.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -95,6 +95,11 @@ export declare class LoopDetectionService {
|
|
|
95
95
|
* This prevents false positives from hash collisions.
|
|
96
96
|
*/
|
|
97
97
|
private isActualContentMatch;
|
|
98
|
+
/**
|
|
99
|
+
* Sanitizes conversation history before sending to loop detection LLM.
|
|
100
|
+
* Removes or fixes invalid tool calls and responses that could cause API errors.
|
|
101
|
+
*/
|
|
102
|
+
private sanitizeHistoryForLoopDetection;
|
|
98
103
|
private checkForLoopWithLLM;
|
|
99
104
|
/**
|
|
100
105
|
* Resets all loop detection state.
|
|
@@ -290,12 +290,100 @@ Please analyze the conversation history to determine the possibility that the co
|
|
|
290
290
|
const originalChunk = this.streamContentHistory.substring(originalIndex, originalIndex + CONTENT_CHUNK_SIZE);
|
|
291
291
|
return originalChunk === currentChunk;
|
|
292
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Sanitizes conversation history before sending to loop detection LLM.
|
|
295
|
+
* Removes or fixes invalid tool calls and responses that could cause API errors.
|
|
296
|
+
*/
|
|
297
|
+
sanitizeHistoryForLoopDetection(history) {
|
|
298
|
+
return history
|
|
299
|
+
.map((message) => {
|
|
300
|
+
// Type guard to check if message has expected structure
|
|
301
|
+
if (!message || typeof message !== 'object') {
|
|
302
|
+
return message;
|
|
303
|
+
}
|
|
304
|
+
const msg = message;
|
|
305
|
+
// Check if this is a message with parts
|
|
306
|
+
if (!msg.role || !Array.isArray(msg.parts)) {
|
|
307
|
+
return message;
|
|
308
|
+
}
|
|
309
|
+
// Create a sanitized copy of the message
|
|
310
|
+
const sanitizedParts = [];
|
|
311
|
+
for (const part of msg.parts) {
|
|
312
|
+
if (!part || typeof part !== 'object') {
|
|
313
|
+
sanitizedParts.push(part);
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
const p = part;
|
|
317
|
+
// Handle functionCall parts
|
|
318
|
+
if (p.functionCall && typeof p.functionCall === 'object') {
|
|
319
|
+
const fc = p.functionCall;
|
|
320
|
+
// If the function call has validation errors or malformed args,
|
|
321
|
+
// replace with a simplified version
|
|
322
|
+
if (fc.name === 'todo_write' && fc.args) {
|
|
323
|
+
const args = fc.args;
|
|
324
|
+
// Check if todos is a string that should be an array
|
|
325
|
+
if (typeof args.todos === 'string') {
|
|
326
|
+
try {
|
|
327
|
+
// Try to parse the stringified JSON
|
|
328
|
+
const parsed = JSON.parse(args.todos);
|
|
329
|
+
// Return a fixed version
|
|
330
|
+
sanitizedParts.push({
|
|
331
|
+
functionCall: {
|
|
332
|
+
name: fc.name,
|
|
333
|
+
args: { todos: parsed },
|
|
334
|
+
id: fc.id || 'sanitized',
|
|
335
|
+
},
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
// If parsing fails, replace with placeholder
|
|
340
|
+
sanitizedParts.push({
|
|
341
|
+
text: '[Invalid tool call removed for loop detection]',
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Handle functionResponse parts with errors
|
|
349
|
+
if (p.functionResponse && typeof p.functionResponse === 'object') {
|
|
350
|
+
const fr = p.functionResponse;
|
|
351
|
+
// If there's an error in the response, simplify it
|
|
352
|
+
if (fr.response && typeof fr.response === 'object') {
|
|
353
|
+
const resp = fr.response;
|
|
354
|
+
if (resp.error) {
|
|
355
|
+
sanitizedParts.push({
|
|
356
|
+
functionResponse: {
|
|
357
|
+
id: fr.id || 'sanitized',
|
|
358
|
+
name: fr.name || 'unknown',
|
|
359
|
+
response: {
|
|
360
|
+
error: 'Tool validation failed',
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
});
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// Return the part as-is if no issues detected
|
|
369
|
+
sanitizedParts.push(part);
|
|
370
|
+
}
|
|
371
|
+
const sanitizedMessage = {
|
|
372
|
+
role: msg.role,
|
|
373
|
+
parts: sanitizedParts,
|
|
374
|
+
};
|
|
375
|
+
return sanitizedMessage;
|
|
376
|
+
})
|
|
377
|
+
.filter(Boolean); // Remove any null/undefined messages
|
|
378
|
+
}
|
|
293
379
|
async checkForLoopWithLLM(signal) {
|
|
294
380
|
const fullHistory = await this.config.getGeminiClient().getHistory();
|
|
295
381
|
const recentHistory = fullHistory.slice(-LLM_LOOP_CHECK_HISTORY_COUNT);
|
|
382
|
+
// Sanitize the history to remove invalid tool responses that can cause 400 errors
|
|
383
|
+
const sanitizedHistory = this.sanitizeHistoryForLoopDetection(recentHistory);
|
|
296
384
|
const prompt = await this.getLoopDetectionPrompt();
|
|
297
385
|
const contents = [
|
|
298
|
-
...
|
|
386
|
+
...sanitizedHistory,
|
|
299
387
|
{ role: 'user', parts: [{ text: prompt }] },
|
|
300
388
|
];
|
|
301
389
|
const schema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopDetectionService.js","sourceRoot":"","sources":["../../../src/services/loopDetectionService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loopDetectionService.js","sourceRoot":"","sources":["../../../src/services/loopDetectionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
/** A structured result from a shell command execution. */
|
|
7
7
|
export interface ShellExecutionResult {
|
|
8
8
|
rawOutput: Buffer;
|
|
9
|
-
/** The combined, decoded
|
|
9
|
+
/** The combined, decoded output as a string. */
|
|
10
10
|
output: string;
|
|
11
11
|
/** The decoded stdout as a string. */
|
|
12
12
|
stdout: string;
|
|
@@ -15,11 +15,13 @@ export interface ShellExecutionResult {
|
|
|
15
15
|
/** The process exit code, or null if terminated by a signal. */
|
|
16
16
|
exitCode: number | null;
|
|
17
17
|
/** The signal that terminated the process, if any. */
|
|
18
|
-
signal:
|
|
18
|
+
signal: number | null;
|
|
19
19
|
/** An error object if the process failed to spawn. */
|
|
20
20
|
error: Error | null;
|
|
21
21
|
aborted: boolean;
|
|
22
22
|
pid: number | undefined;
|
|
23
|
+
/** The method used to execute the shell command. */
|
|
24
|
+
executionMethod: 'lydell-node-pty' | 'node-pty' | 'child_process' | 'none';
|
|
23
25
|
}
|
|
24
26
|
export interface ShellExecutionHandle {
|
|
25
27
|
pid: number | undefined;
|
|
@@ -28,8 +30,6 @@ export interface ShellExecutionHandle {
|
|
|
28
30
|
export type ShellOutputEvent = {
|
|
29
31
|
/** The event contains a chunk of output data. */
|
|
30
32
|
type: 'data';
|
|
31
|
-
/** The stream from which the data originated. */
|
|
32
|
-
stream: 'stdout' | 'stderr';
|
|
33
33
|
/** The decoded string chunk. */
|
|
34
34
|
chunk: string;
|
|
35
35
|
} | {
|
|
@@ -43,7 +43,7 @@ export type ShellOutputEvent = {
|
|
|
43
43
|
};
|
|
44
44
|
export declare class ShellExecutionService {
|
|
45
45
|
/**
|
|
46
|
-
* Executes a shell command using `
|
|
46
|
+
* Executes a shell command using `node-pty`, capturing all output and lifecycle events.
|
|
47
47
|
*
|
|
48
48
|
* @param commandToExecute The exact command string to run.
|
|
49
49
|
* @param cwd The working directory to execute the command in.
|
|
@@ -54,5 +54,7 @@ export declare class ShellExecutionService {
|
|
|
54
54
|
* @returns An object containing the process ID (pid) and a promise that
|
|
55
55
|
* resolves with the complete execution result.
|
|
56
56
|
*/
|
|
57
|
-
static execute(commandToExecute: string, cwd: string, onOutputEvent: (event: ShellOutputEvent) => void, abortSignal: AbortSignal): ShellExecutionHandle
|
|
57
|
+
static execute(commandToExecute: string, cwd: string, onOutputEvent: (event: ShellOutputEvent) => void, abortSignal: AbortSignal, shouldUseNodePty: boolean, terminalColumns?: number, terminalRows?: number): Promise<ShellExecutionHandle>;
|
|
58
|
+
private static childProcessFallback;
|
|
59
|
+
private static executeWithPty;
|
|
58
60
|
}
|