@vybestack/llxprt-code-core 0.5.0-nightly.251123.79a9619f1 → 0.5.0-nightly.251125.6be1c4fa2
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 +0 -244
- package/dist/src/agents/codebase-investigator.d.ts +46 -0
- package/dist/src/agents/codebase-investigator.js +136 -0
- package/dist/src/agents/codebase-investigator.js.map +1 -0
- package/dist/src/agents/executor.d.ts +92 -0
- package/dist/src/agents/executor.js +624 -0
- package/dist/src/agents/executor.js.map +1 -0
- package/dist/src/agents/invocation.d.ts +45 -0
- package/dist/src/agents/invocation.js +106 -0
- package/dist/src/agents/invocation.js.map +1 -0
- package/dist/src/agents/registry.d.ts +36 -0
- package/dist/src/agents/registry.js +61 -0
- package/dist/src/agents/registry.js.map +1 -0
- package/dist/src/agents/types.d.ts +145 -0
- package/dist/src/agents/types.js +17 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/agents/utils.d.ts +15 -0
- package/dist/src/agents/utils.js +27 -0
- package/dist/src/agents/utils.js.map +1 -0
- package/dist/src/auth/types.d.ts +2 -2
- package/dist/src/config/config.d.ts +36 -8
- package/dist/src/config/config.js +63 -16
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/constants.d.ts +11 -0
- package/dist/src/config/constants.js +16 -0
- package/dist/src/config/constants.js.map +1 -0
- package/dist/src/core/baseLlmClient.d.ts +77 -0
- package/dist/src/core/baseLlmClient.js +175 -0
- package/dist/src/core/baseLlmClient.js.map +1 -0
- package/dist/src/core/client.d.ts +12 -0
- package/dist/src/core/client.js +75 -109
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +2 -0
- package/dist/src/core/coreToolScheduler.js +24 -4
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +8 -1
- package/dist/src/core/geminiChat.js +28 -21
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -4
- package/dist/src/core/turn.js +2 -12
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/ide-client.js +3 -3
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +2 -0
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
- package/dist/src/mcp/sa-impersonation-provider.js +130 -0
- package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
- package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.js +2 -2
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.js +4 -4
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/runtime/createAgentRuntimeContext.js +8 -7
- package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
- package/dist/src/services/fileSystemService.d.ts +9 -0
- package/dist/src/services/fileSystemService.js +12 -1
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +46 -3
- package/dist/src/services/shellExecutionService.js +189 -55
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/storage/sessionTypes.d.ts +27 -0
- package/dist/src/storage/sessionTypes.js +10 -0
- package/dist/src/storage/sessionTypes.js.map +1 -0
- package/dist/src/telemetry/constants.d.ts +8 -0
- package/dist/src/telemetry/constants.js +8 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +9 -1
- package/dist/src/telemetry/loggers.js +154 -2
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +5 -0
- package/dist/src/telemetry/metrics.js +4 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +62 -1
- package/dist/src/telemetry/types.js +92 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/config.js +14 -0
- package/dist/src/test-utils/config.js.map +1 -1
- package/dist/src/tools/glob.d.ts +3 -2
- package/dist/src/tools/glob.js +1 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/ls.d.ts +1 -1
- package/dist/src/tools/ls.js +1 -1
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +9 -18
- package/dist/src/tools/mcp-client.js +50 -97
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +1 -0
- package/dist/src/tools/memoryTool.js +2 -0
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.d.ts +1 -1
- package/dist/src/tools/modifiable-tool.js +9 -1
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/shell.js +66 -5
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +19 -0
- package/dist/src/tools/smart-edit.js +105 -3
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +1 -0
- package/dist/src/tools/tool-error.js +1 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tools.d.ts +2 -1
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.d.ts +2 -2
- package/dist/src/utils/editor.js +5 -3
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/getFolderStructure.d.ts +2 -2
- package/dist/src/utils/getFolderStructure.js +1 -1
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.js +10 -1
- package/dist/src/utils/llm-edit-fixer.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +2 -1
- package/dist/src/utils/memoryDiscovery.js +3 -2
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.js +13 -20
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/retry.d.ts +5 -1
- package/dist/src/utils/retry.js +31 -16
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +11 -1
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +1 -0
- package/dist/src/utils/shell-utils.js +6 -2
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/terminalSerializer.d.ts +28 -0
- package/dist/src/utils/terminalSerializer.js +418 -0
- package/dist/src/utils/terminalSerializer.js.map +1 -0
- package/dist/src/utils/thoughtUtils.d.ts +21 -0
- package/dist/src/utils/thoughtUtils.js +39 -0
- package/dist/src/utils/thoughtUtils.js.map +1 -0
- package/dist/src/utils/tool-utils.js +2 -2
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAgentRuntimeContext.js","sourceRoot":"","sources":["../../../src/runtime/createAgentRuntimeContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAMvE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,kBAAkB,GAAG;IACzB,oBAAoB,EAAE,GAAG;IACzB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,GAAG;CACd,CAAC;AAEX,MAAM,UAAU,yBAAyB,CACvC,OAA0C;IAE1C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,cAAc,EAAE,CAAC;IAExD,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"createAgentRuntimeContext.js","sourceRoot":"","sources":["../../../src/runtime/createAgentRuntimeContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAMvE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,kBAAkB,GAAG;IACzB,oBAAoB,EAAE,GAAG;IACzB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,GAAG;CACd,CAAC;AAEX,MAAM,UAAU,yBAAyB,CACvC,OAA0C;IAE1C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,cAAc,EAAE,CAAC;IAExD,MAAM,UAAU,GAAG;QACjB,oBAAoB,EAAE,GAAW,EAAE,CACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;YACrC,kBAAkB,CAAC,oBAAoB;QACzC,YAAY,EAAE,GAAW,EAAE;YACzB,MAAM,YAAY,GAChB,OAAO,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ;gBACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC;gBAC/B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAC/B,CAAC,CAAC,SAAS,CAAC;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,iBAAiB,EAAE,GAAW,EAAE,CAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;YAClC,kBAAkB,CAAC,iBAAiB;QACtC,kBAAkB,EAAE,GAAuB,EAAE,CAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;KACtC,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,GAAG,OAAO,CAAC,eAAe;QAC1B,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ;YACxC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YACxD,CAAC,CAAC,SAAS;KACd,CAA2B,CAAC;IAE7B,MAAM,OAAO,GAAwB;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO;QACP,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe;KAChB,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -21,6 +21,14 @@ export interface FileSystemService {
|
|
|
21
21
|
* @param content - The content to write
|
|
22
22
|
*/
|
|
23
23
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Finds files with a given name within specified search paths.
|
|
26
|
+
*
|
|
27
|
+
* @param fileName - The name of the file to find.
|
|
28
|
+
* @param searchPaths - An array of directory paths to search within.
|
|
29
|
+
* @returns An array of absolute paths to the found files.
|
|
30
|
+
*/
|
|
31
|
+
findFiles(fileName: string, searchPaths: readonly string[]): string[];
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
26
34
|
* Standard file system implementation
|
|
@@ -28,4 +36,5 @@ export interface FileSystemService {
|
|
|
28
36
|
export declare class StandardFileSystemService implements FileSystemService {
|
|
29
37
|
readTextFile(filePath: string): Promise<string>;
|
|
30
38
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
39
|
+
findFiles(fileName: string, searchPaths: readonly string[]): string[];
|
|
31
40
|
}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import fs from 'fs/promises';
|
|
6
|
+
import fs from 'node:fs/promises';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import { globSync } from 'glob';
|
|
7
9
|
/**
|
|
8
10
|
* Standard file system implementation
|
|
9
11
|
*/
|
|
@@ -14,5 +16,14 @@ export class StandardFileSystemService {
|
|
|
14
16
|
async writeTextFile(filePath, content) {
|
|
15
17
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
16
18
|
}
|
|
19
|
+
findFiles(fileName, searchPaths) {
|
|
20
|
+
return searchPaths.flatMap((searchPath) => {
|
|
21
|
+
const pattern = path.posix.join(searchPath, '**', fileName);
|
|
22
|
+
return globSync(pattern, {
|
|
23
|
+
nodir: true,
|
|
24
|
+
absolute: true,
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
17
28
|
}
|
|
18
29
|
//# sourceMappingURL=fileSystemService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/services/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/services/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAgChC;;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;IAED,SAAS,CAAC,QAAgB,EAAE,WAA8B;QACxD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,QAAQ,CAAC,OAAO,EAAE;gBACvB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Vybestack LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { type AnsiOutput } from '../utils/terminalSerializer.js';
|
|
6
7
|
/** A structured result from a shell command execution. */
|
|
7
8
|
export interface ShellExecutionResult {
|
|
8
9
|
rawOutput: Buffer;
|
|
@@ -27,11 +28,25 @@ export interface ShellExecutionHandle {
|
|
|
27
28
|
pid: number | undefined;
|
|
28
29
|
result: Promise<ShellExecutionResult>;
|
|
29
30
|
}
|
|
31
|
+
export interface ShellExecutionConfig {
|
|
32
|
+
terminalWidth?: number;
|
|
33
|
+
terminalHeight?: number;
|
|
34
|
+
pager?: string;
|
|
35
|
+
showColor?: boolean;
|
|
36
|
+
defaultFg?: string;
|
|
37
|
+
defaultBg?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Describes a structured event emitted during shell command execution.
|
|
41
|
+
*/
|
|
30
42
|
export type ShellOutputEvent = {
|
|
31
43
|
/** The event contains a chunk of output data. */
|
|
32
44
|
type: 'data';
|
|
33
|
-
/**
|
|
34
|
-
|
|
45
|
+
/**
|
|
46
|
+
* The decoded string chunk (in plain mode) or structured AnsiOutput object
|
|
47
|
+
* (in color/structured mode).
|
|
48
|
+
*/
|
|
49
|
+
chunk: string | AnsiOutput;
|
|
35
50
|
} | {
|
|
36
51
|
/** Signals that the output stream has been identified as binary. */
|
|
37
52
|
type: 'binary_detected';
|
|
@@ -41,7 +56,13 @@ export type ShellOutputEvent = {
|
|
|
41
56
|
/** The total number of bytes received so far. */
|
|
42
57
|
bytesReceived: number;
|
|
43
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* A centralized service for executing shell commands with robust process
|
|
61
|
+
* management, cross-platform compatibility, and streaming output capabilities.
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
44
64
|
export declare class ShellExecutionService {
|
|
65
|
+
private static activePtys;
|
|
45
66
|
/**
|
|
46
67
|
* Executes a shell command using `node-pty`, capturing all output and lifecycle events.
|
|
47
68
|
*
|
|
@@ -54,7 +75,29 @@ export declare class ShellExecutionService {
|
|
|
54
75
|
* @returns An object containing the process ID (pid) and a promise that
|
|
55
76
|
* resolves with the complete execution result.
|
|
56
77
|
*/
|
|
57
|
-
static execute(commandToExecute: string, cwd: string, onOutputEvent: (event: ShellOutputEvent) => void, abortSignal: AbortSignal, shouldUseNodePty: boolean,
|
|
78
|
+
static execute(commandToExecute: string, cwd: string, onOutputEvent: (event: ShellOutputEvent) => void, abortSignal: AbortSignal, shouldUseNodePty: boolean, shellExecutionConfig: ShellExecutionConfig): Promise<ShellExecutionHandle>;
|
|
58
79
|
private static childProcessFallback;
|
|
59
80
|
private static executeWithPty;
|
|
81
|
+
/**
|
|
82
|
+
* Writes a string to the pseudo-terminal (PTY) of a running process.
|
|
83
|
+
*
|
|
84
|
+
* @param pid The process ID of the target PTY.
|
|
85
|
+
* @param input The string to write to the terminal.
|
|
86
|
+
*/
|
|
87
|
+
static writeToPty(pid: number, input: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Resizes the pseudo-terminal (PTY) of a running process.
|
|
90
|
+
*
|
|
91
|
+
* @param pid The process ID of the target PTY.
|
|
92
|
+
* @param cols The new number of columns.
|
|
93
|
+
* @param rows The new number of rows.
|
|
94
|
+
*/
|
|
95
|
+
static resizePty(pid: number, cols: number, rows: number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Scrolls the pseudo-terminal (PTY) of a running process.
|
|
98
|
+
*
|
|
99
|
+
* @param pid The process ID of the target PTY.
|
|
100
|
+
* @param lines The number of lines to scroll.
|
|
101
|
+
*/
|
|
102
|
+
static scrollPty(pid: number, lines: number): void;
|
|
60
103
|
}
|
|
@@ -3,27 +3,44 @@
|
|
|
3
3
|
* Copyright 2025 Vybestack LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import stripAnsi from 'strip-ansi';
|
|
6
7
|
import { getPty } from '../utils/getPty.js';
|
|
7
|
-
import { spawn as cpSpawn } from 'child_process';
|
|
8
|
-
import { TextDecoder } from 'util';
|
|
9
|
-
import os from 'os';
|
|
8
|
+
import { spawn as cpSpawn } from 'node:child_process';
|
|
9
|
+
import { TextDecoder } from 'node:util';
|
|
10
|
+
import os from 'node:os';
|
|
10
11
|
import { getCachedEncodingForBuffer } from '../utils/systemEncoding.js';
|
|
11
12
|
import { isBinary } from '../utils/textUtils.js';
|
|
12
13
|
import pkg from '@xterm/headless';
|
|
13
|
-
import
|
|
14
|
+
import { serializeTerminalToObject, } from '../utils/terminalSerializer.js';
|
|
14
15
|
const { Terminal } = pkg;
|
|
15
16
|
const SIGKILL_TIMEOUT_MS = 200;
|
|
16
|
-
|
|
17
|
-
const
|
|
17
|
+
const getVisibleText = (terminal) => {
|
|
18
|
+
const buffer = terminal.buffer.active;
|
|
19
|
+
const lines = [];
|
|
20
|
+
for (let i = 0; i < terminal.rows; i++) {
|
|
21
|
+
const line = buffer.getLine(buffer.viewportY + i);
|
|
22
|
+
const lineContent = line ? line.translateToString(true) : '';
|
|
23
|
+
lines.push(lineContent);
|
|
24
|
+
}
|
|
25
|
+
return lines.join('\n').trimEnd();
|
|
26
|
+
};
|
|
27
|
+
const getFullBufferText = (terminal) => {
|
|
18
28
|
const buffer = terminal.buffer.active;
|
|
19
29
|
const lines = [];
|
|
20
30
|
for (let i = 0; i < buffer.length; i++) {
|
|
21
31
|
const line = buffer.getLine(i);
|
|
22
|
-
|
|
32
|
+
const lineContent = line ? line.translateToString() : '';
|
|
33
|
+
lines.push(lineContent);
|
|
23
34
|
}
|
|
24
|
-
return lines.join('\n').
|
|
35
|
+
return lines.join('\n').trimEnd();
|
|
25
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* A centralized service for executing shell commands with robust process
|
|
39
|
+
* management, cross-platform compatibility, and streaming output capabilities.
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
26
42
|
export class ShellExecutionService {
|
|
43
|
+
static activePtys = new Map();
|
|
27
44
|
/**
|
|
28
45
|
* Executes a shell command using `node-pty`, capturing all output and lifecycle events.
|
|
29
46
|
*
|
|
@@ -36,33 +53,30 @@ export class ShellExecutionService {
|
|
|
36
53
|
* @returns An object containing the process ID (pid) and a promise that
|
|
37
54
|
* resolves with the complete execution result.
|
|
38
55
|
*/
|
|
39
|
-
static async execute(commandToExecute, cwd, onOutputEvent, abortSignal, shouldUseNodePty,
|
|
56
|
+
static async execute(commandToExecute, cwd, onOutputEvent, abortSignal, shouldUseNodePty, shellExecutionConfig) {
|
|
40
57
|
if (shouldUseNodePty) {
|
|
41
58
|
const ptyInfo = await getPty();
|
|
42
59
|
if (ptyInfo) {
|
|
43
60
|
try {
|
|
44
|
-
return this.executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal,
|
|
61
|
+
return this.executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig, ptyInfo);
|
|
45
62
|
}
|
|
46
63
|
catch (_e) {
|
|
47
64
|
// Fallback to child_process
|
|
48
65
|
}
|
|
49
66
|
}
|
|
50
67
|
}
|
|
51
|
-
return this.childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal);
|
|
68
|
+
return this.childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig);
|
|
52
69
|
}
|
|
53
|
-
static childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal) {
|
|
70
|
+
static childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig) {
|
|
54
71
|
try {
|
|
55
72
|
const isWindows = os.platform() === 'win32';
|
|
56
73
|
const envVars = {
|
|
57
74
|
...process.env,
|
|
58
75
|
LLXPRT_CODE: '1',
|
|
59
76
|
TERM: 'xterm-256color',
|
|
60
|
-
PAGER: 'cat',
|
|
77
|
+
PAGER: shellExecutionConfig?.pager ?? 'cat',
|
|
61
78
|
};
|
|
62
|
-
delete envVars.GEMINI_CLI;
|
|
63
|
-
delete envVars['gemini_cli'];
|
|
64
79
|
delete envVars.BASH_ENV;
|
|
65
|
-
delete envVars['bash_env'];
|
|
66
80
|
const child = cpSpawn(commandToExecute, [], {
|
|
67
81
|
cwd,
|
|
68
82
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
@@ -100,27 +114,17 @@ export class ShellExecutionService {
|
|
|
100
114
|
sniffedBytes = sniffBuffer.length;
|
|
101
115
|
if (isBinary(sniffBuffer)) {
|
|
102
116
|
isStreamingRawContent = false;
|
|
103
|
-
onOutputEvent({ type: 'binary_detected' });
|
|
104
117
|
}
|
|
105
118
|
}
|
|
106
|
-
const decoder = stream === 'stdout' ? stdoutDecoder : stderrDecoder;
|
|
107
|
-
const decodedChunk = decoder.decode(data, { stream: true });
|
|
108
|
-
const strippedChunk = stripAnsi(decodedChunk);
|
|
109
|
-
if (stream === 'stdout') {
|
|
110
|
-
stdout += strippedChunk;
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
stderr += strippedChunk;
|
|
114
|
-
}
|
|
115
119
|
if (isStreamingRawContent) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
120
|
+
const decoder = stream === 'stdout' ? stdoutDecoder : stderrDecoder;
|
|
121
|
+
const decodedChunk = decoder.decode(data, { stream: true });
|
|
122
|
+
if (stream === 'stdout') {
|
|
123
|
+
stdout += decodedChunk;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
stderr += decodedChunk;
|
|
127
|
+
}
|
|
124
128
|
}
|
|
125
129
|
};
|
|
126
130
|
const handleExit = (code, signal) => {
|
|
@@ -128,16 +132,25 @@ export class ShellExecutionService {
|
|
|
128
132
|
// Ensure we don't add an extra newline if stdout already ends with one.
|
|
129
133
|
const separator = stdout.endsWith('\n') ? '' : '\n';
|
|
130
134
|
const combinedOutput = stdout + (stderr ? (stdout ? separator : '') + stderr : '');
|
|
135
|
+
const finalStrippedOutput = stripAnsi(combinedOutput).trim();
|
|
136
|
+
if (isStreamingRawContent) {
|
|
137
|
+
if (finalStrippedOutput) {
|
|
138
|
+
onOutputEvent({ type: 'data', chunk: finalStrippedOutput });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
onOutputEvent({ type: 'binary_detected' });
|
|
143
|
+
}
|
|
131
144
|
resolve({
|
|
132
145
|
rawOutput: finalBuffer,
|
|
133
|
-
output:
|
|
146
|
+
output: finalStrippedOutput,
|
|
134
147
|
stdout,
|
|
135
148
|
stderr,
|
|
136
149
|
exitCode: code,
|
|
137
150
|
signal: signal ? (os.constants.signals[signal] ?? null) : null,
|
|
138
151
|
error,
|
|
139
152
|
aborted: abortSignal.aborted,
|
|
140
|
-
pid:
|
|
153
|
+
pid: undefined,
|
|
141
154
|
executionMethod: 'child_process',
|
|
142
155
|
});
|
|
143
156
|
};
|
|
@@ -169,6 +182,9 @@ export class ShellExecutionService {
|
|
|
169
182
|
};
|
|
170
183
|
abortSignal.addEventListener('abort', abortHandler, { once: true });
|
|
171
184
|
child.on('exit', (code, signal) => {
|
|
185
|
+
if (child.pid) {
|
|
186
|
+
this.activePtys.delete(child.pid);
|
|
187
|
+
}
|
|
172
188
|
handleExit(code, signal);
|
|
173
189
|
});
|
|
174
190
|
function cleanup() {
|
|
@@ -177,20 +193,20 @@ export class ShellExecutionService {
|
|
|
177
193
|
if (stdoutDecoder) {
|
|
178
194
|
const remaining = stdoutDecoder.decode();
|
|
179
195
|
if (remaining) {
|
|
180
|
-
stdout +=
|
|
196
|
+
stdout += remaining;
|
|
181
197
|
}
|
|
182
198
|
}
|
|
183
199
|
if (stderrDecoder) {
|
|
184
200
|
const remaining = stderrDecoder.decode();
|
|
185
201
|
if (remaining) {
|
|
186
|
-
stderr +=
|
|
202
|
+
stderr += remaining;
|
|
187
203
|
}
|
|
188
204
|
}
|
|
189
205
|
const finalBuffer = Buffer.concat(outputChunks);
|
|
190
206
|
return { stdout, stderr, finalBuffer };
|
|
191
207
|
}
|
|
192
208
|
});
|
|
193
|
-
return { pid:
|
|
209
|
+
return { pid: undefined, result };
|
|
194
210
|
}
|
|
195
211
|
catch (e) {
|
|
196
212
|
const error = e;
|
|
@@ -211,10 +227,14 @@ export class ShellExecutionService {
|
|
|
211
227
|
};
|
|
212
228
|
}
|
|
213
229
|
}
|
|
214
|
-
static executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal,
|
|
230
|
+
static executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig, ptyInfo) {
|
|
231
|
+
if (!ptyInfo) {
|
|
232
|
+
// This should not happen, but as a safeguard...
|
|
233
|
+
throw new Error('PTY implementation not found');
|
|
234
|
+
}
|
|
215
235
|
try {
|
|
216
|
-
const cols =
|
|
217
|
-
const rows =
|
|
236
|
+
const cols = shellExecutionConfig.terminalWidth ?? 80;
|
|
237
|
+
const rows = shellExecutionConfig.terminalHeight ?? 30;
|
|
218
238
|
const isWindows = os.platform() === 'win32';
|
|
219
239
|
const shell = isWindows ? 'cmd.exe' : 'bash';
|
|
220
240
|
const args = isWindows
|
|
@@ -223,16 +243,14 @@ export class ShellExecutionService {
|
|
|
223
243
|
const envVars = {
|
|
224
244
|
...process.env,
|
|
225
245
|
LLXPRT_CODE: '1',
|
|
246
|
+
GEMINI_CLI: '1',
|
|
226
247
|
TERM: 'xterm-256color',
|
|
227
|
-
PAGER: 'cat',
|
|
248
|
+
PAGER: shellExecutionConfig.pager ?? 'cat',
|
|
228
249
|
};
|
|
229
|
-
delete envVars.GEMINI_CLI;
|
|
230
|
-
delete envVars['gemini_cli'];
|
|
231
250
|
delete envVars.BASH_ENV;
|
|
232
|
-
|
|
233
|
-
const ptyProcess = ptyInfo?.module.spawn(shell, args, {
|
|
251
|
+
const ptyProcess = ptyInfo.module.spawn(shell, args, {
|
|
234
252
|
cwd,
|
|
235
|
-
name: 'xterm
|
|
253
|
+
name: 'xterm',
|
|
236
254
|
cols,
|
|
237
255
|
rows,
|
|
238
256
|
env: envVars,
|
|
@@ -244,14 +262,54 @@ export class ShellExecutionService {
|
|
|
244
262
|
cols,
|
|
245
263
|
rows,
|
|
246
264
|
});
|
|
265
|
+
this.activePtys.set(ptyProcess.pid, { ptyProcess, headlessTerminal });
|
|
247
266
|
let processingChain = Promise.resolve();
|
|
248
267
|
let decoder = null;
|
|
268
|
+
let output = null;
|
|
249
269
|
const outputChunks = [];
|
|
250
270
|
const error = null;
|
|
251
271
|
let exited = false;
|
|
252
272
|
let isStreamingRawContent = true;
|
|
253
273
|
const MAX_SNIFF_SIZE = 4096;
|
|
254
274
|
let sniffedBytes = 0;
|
|
275
|
+
let isWriting = false;
|
|
276
|
+
let renderTimeout = null;
|
|
277
|
+
const render = (finalRender = false) => {
|
|
278
|
+
if (renderTimeout) {
|
|
279
|
+
clearTimeout(renderTimeout);
|
|
280
|
+
}
|
|
281
|
+
const renderFn = () => {
|
|
282
|
+
if (!isStreamingRawContent) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const newOutput = shellExecutionConfig.showColor
|
|
286
|
+
? serializeTerminalToObject(headlessTerminal, {
|
|
287
|
+
defaultFg: shellExecutionConfig.defaultFg,
|
|
288
|
+
defaultBg: shellExecutionConfig.defaultBg,
|
|
289
|
+
})
|
|
290
|
+
: getVisibleText(headlessTerminal);
|
|
291
|
+
// console.log(newOutput)
|
|
292
|
+
// Using stringify for a quick deep comparison.
|
|
293
|
+
if (JSON.stringify(output) !== JSON.stringify(newOutput)) {
|
|
294
|
+
output = newOutput;
|
|
295
|
+
onOutputEvent({
|
|
296
|
+
type: 'data',
|
|
297
|
+
chunk: newOutput,
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
if (finalRender) {
|
|
302
|
+
renderFn();
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
renderTimeout = setTimeout(renderFn, 17);
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
headlessTerminal.onScroll(() => {
|
|
309
|
+
if (!isWriting) {
|
|
310
|
+
render();
|
|
311
|
+
}
|
|
312
|
+
});
|
|
255
313
|
const handleOutput = (data) => {
|
|
256
314
|
processingChain = processingChain.then(() => new Promise((resolve) => {
|
|
257
315
|
if (!decoder) {
|
|
@@ -274,11 +332,10 @@ export class ShellExecutionService {
|
|
|
274
332
|
}
|
|
275
333
|
if (isStreamingRawContent) {
|
|
276
334
|
const decodedChunk = decoder.decode(data, { stream: true });
|
|
335
|
+
isWriting = true;
|
|
277
336
|
headlessTerminal.write(decodedChunk, () => {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
chunk: stripAnsi(decodedChunk),
|
|
281
|
-
});
|
|
337
|
+
render();
|
|
338
|
+
isWriting = false;
|
|
282
339
|
resolve();
|
|
283
340
|
});
|
|
284
341
|
}
|
|
@@ -299,9 +356,11 @@ export class ShellExecutionService {
|
|
|
299
356
|
ptyProcess.onExit(({ exitCode, signal }) => {
|
|
300
357
|
exited = true;
|
|
301
358
|
abortSignal.removeEventListener('abort', abortHandler);
|
|
359
|
+
this.activePtys.delete(ptyProcess.pid);
|
|
302
360
|
processingChain.then(() => {
|
|
361
|
+
render(true);
|
|
303
362
|
const finalBuffer = Buffer.concat(outputChunks);
|
|
304
|
-
const fullOutput =
|
|
363
|
+
const fullOutput = getFullBufferText(headlessTerminal);
|
|
305
364
|
resolve({
|
|
306
365
|
rawOutput: finalBuffer,
|
|
307
366
|
output: fullOutput,
|
|
@@ -312,13 +371,26 @@ export class ShellExecutionService {
|
|
|
312
371
|
error,
|
|
313
372
|
aborted: abortSignal.aborted,
|
|
314
373
|
pid: ptyProcess.pid,
|
|
315
|
-
executionMethod: ptyInfo?.name ??
|
|
374
|
+
executionMethod: ptyInfo?.name ??
|
|
375
|
+
'node-pty',
|
|
316
376
|
});
|
|
317
377
|
});
|
|
318
378
|
});
|
|
319
379
|
const abortHandler = async () => {
|
|
320
380
|
if (ptyProcess.pid && !exited) {
|
|
321
|
-
|
|
381
|
+
if (os.platform() === 'win32') {
|
|
382
|
+
ptyProcess.kill();
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
try {
|
|
386
|
+
// Kill the entire process group
|
|
387
|
+
process.kill(-ptyProcess.pid, 'SIGINT');
|
|
388
|
+
}
|
|
389
|
+
catch (_e) {
|
|
390
|
+
// Fallback to killing just the process if the group kill fails
|
|
391
|
+
ptyProcess.kill('SIGINT');
|
|
392
|
+
}
|
|
393
|
+
}
|
|
322
394
|
}
|
|
323
395
|
};
|
|
324
396
|
abortSignal.addEventListener('abort', abortHandler, { once: true });
|
|
@@ -344,5 +416,67 @@ export class ShellExecutionService {
|
|
|
344
416
|
};
|
|
345
417
|
}
|
|
346
418
|
}
|
|
419
|
+
/**
|
|
420
|
+
* Writes a string to the pseudo-terminal (PTY) of a running process.
|
|
421
|
+
*
|
|
422
|
+
* @param pid The process ID of the target PTY.
|
|
423
|
+
* @param input The string to write to the terminal.
|
|
424
|
+
*/
|
|
425
|
+
static writeToPty(pid, input) {
|
|
426
|
+
const activePty = this.activePtys.get(pid);
|
|
427
|
+
if (activePty) {
|
|
428
|
+
activePty.ptyProcess.write(input);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Resizes the pseudo-terminal (PTY) of a running process.
|
|
433
|
+
*
|
|
434
|
+
* @param pid The process ID of the target PTY.
|
|
435
|
+
* @param cols The new number of columns.
|
|
436
|
+
* @param rows The new number of rows.
|
|
437
|
+
*/
|
|
438
|
+
static resizePty(pid, cols, rows) {
|
|
439
|
+
const activePty = this.activePtys.get(pid);
|
|
440
|
+
if (activePty) {
|
|
441
|
+
try {
|
|
442
|
+
activePty.ptyProcess.resize(cols, rows);
|
|
443
|
+
activePty.headlessTerminal.resize(cols, rows);
|
|
444
|
+
}
|
|
445
|
+
catch (e) {
|
|
446
|
+
// Ignore errors if the pty has already exited, which can happen
|
|
447
|
+
// due to a race condition between the exit event and this call.
|
|
448
|
+
if (e instanceof Error && 'code' in e && e.code === 'ESRCH') {
|
|
449
|
+
// ignore
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
throw e;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Scrolls the pseudo-terminal (PTY) of a running process.
|
|
459
|
+
*
|
|
460
|
+
* @param pid The process ID of the target PTY.
|
|
461
|
+
* @param lines The number of lines to scroll.
|
|
462
|
+
*/
|
|
463
|
+
static scrollPty(pid, lines) {
|
|
464
|
+
const activePty = this.activePtys.get(pid);
|
|
465
|
+
if (activePty) {
|
|
466
|
+
try {
|
|
467
|
+
activePty.headlessTerminal.scrollLines(lines);
|
|
468
|
+
}
|
|
469
|
+
catch (e) {
|
|
470
|
+
// Ignore errors if the pty has already exited, which can happen
|
|
471
|
+
// due to a race condition between the exit event and this call.
|
|
472
|
+
if (e instanceof Error && 'code' in e && e.code === 'ESRCH') {
|
|
473
|
+
// ignore
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
throw e;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
347
481
|
}
|
|
348
482
|
//# sourceMappingURL=shellExecutionService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellExecutionService.js","sourceRoot":"","sources":["../../../src/services/shellExecutionService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shellExecutionService.js","sourceRoot":"","sources":["../../../src/services/shellExecutionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Session file naming prefix
|
|
8
|
+
*/
|
|
9
|
+
export declare const SESSION_FILE_PREFIX = "session-";
|
|
10
|
+
/**
|
|
11
|
+
* Base message record structure (minimal for session cleanup purposes)
|
|
12
|
+
*/
|
|
13
|
+
export interface BaseMessageRecord {
|
|
14
|
+
timestamp: string;
|
|
15
|
+
role: 'user' | 'model';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Conversation record structure (minimal for session cleanup purposes)
|
|
19
|
+
*/
|
|
20
|
+
export interface ConversationRecord {
|
|
21
|
+
id: string;
|
|
22
|
+
sessionId: string;
|
|
23
|
+
timestamp: string;
|
|
24
|
+
startTime: string;
|
|
25
|
+
lastUpdated?: string;
|
|
26
|
+
messages: BaseMessageRecord[];
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTypes.js","sourceRoot":"","sources":["../../../src/storage/sessionTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC"}
|