gaunt-sloth-assistant 0.6.5 → 0.7.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/assets/release-notes/v0_7_0.md +7 -0
- package/dist/commands/codeCommand.js +1 -1
- package/dist/commands/codeCommand.js.map +1 -1
- package/dist/config.d.ts +13 -9
- package/dist/config.js +43 -10
- package/dist/config.js.map +1 -1
- package/dist/consoleUtils.js +1 -1
- package/dist/consoleUtils.js.map +1 -1
- package/dist/core/Invocation.d.ts +6 -2
- package/dist/core/Invocation.js +47 -47
- package/dist/core/Invocation.js.map +1 -1
- package/dist/modules/interactiveSessionModule.js +5 -4
- package/dist/modules/interactiveSessionModule.js.map +1 -1
- package/dist/modules/questionAnsweringModule.js +1 -1
- package/dist/modules/questionAnsweringModule.js.map +1 -1
- package/dist/modules/reviewModule.js +1 -1
- package/dist/modules/reviewModule.js.map +1 -1
- package/dist/tools/GthFileSystemToolkit.d.ts +23 -0
- package/dist/tools/GthFileSystemToolkit.js +606 -0
- package/dist/tools/GthFileSystemToolkit.js.map +1 -0
- package/dist/utils.d.ts +19 -0
- package/dist/utils.js +58 -8
- package/dist/utils.js.map +1 -1
- package/package.json +5 -3
- package/src/commands/codeCommand.ts +1 -1
- package/src/config.ts +71 -20
- package/src/consoleUtils.ts +1 -1
- package/src/core/Invocation.ts +51 -61
- package/src/modules/interactiveSessionModule.ts +5 -4
- package/src/modules/questionAnsweringModule.ts +1 -1
- package/src/modules/reviewModule.ts +1 -1
- package/src/tools/GthFileSystemToolkit.ts +833 -0
- package/src/utils.ts +71 -8
- package/.gsloth.config_.json +0 -21
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# v0.7.0
|
|
2
|
+
|
|
3
|
+
- Improved user experience for code command functionality
|
|
4
|
+
- Enhanced chat and code interaction experience
|
|
5
|
+
- Fixed streaming issue with Anthropic API integration
|
|
6
|
+
- Extracted tool filtering logic from Invocation to configuration layer for better modularity
|
|
7
|
+
- Replaced File System MCP with local tools implementation for better performance and reliability
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeCommand.js","sourceRoot":"","sources":["../../src/commands/codeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"codeCommand.js","sourceRoot":"","sources":["../../src/commands/codeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,uFAAuF,CACxF;SACA,QAAQ,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,cAAc;YAC9B,WAAW,EACT,uFAAuF;YACzF,YAAY,EAAE,mDAAmD;YACjE,WAAW,EAAE,kDAAkD;SAChE,CAAC;QAEF,MAAM,wBAAwB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
2
|
import type { Connection } from '@langchain/mcp-adapters';
|
|
3
|
-
import type { StructuredToolInterface } from '@langchain/core/tools';
|
|
3
|
+
import type { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
|
|
4
4
|
export interface SlothConfig extends BaseSlothConfig {
|
|
5
5
|
llm: BaseChatModel;
|
|
6
6
|
contentProvider: string;
|
|
@@ -8,8 +8,8 @@ export interface SlothConfig extends BaseSlothConfig {
|
|
|
8
8
|
projectGuidelines: string;
|
|
9
9
|
projectReviewInstructions: string;
|
|
10
10
|
streamOutput: boolean;
|
|
11
|
-
filesystem: string[] | 'all' | 'none';
|
|
12
|
-
tools?: StructuredToolInterface[];
|
|
11
|
+
filesystem: string[] | 'all' | 'read' | 'none';
|
|
12
|
+
tools?: StructuredToolInterface[] | BaseToolkit[];
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Raw, unprocessed sloth config
|
|
@@ -27,26 +27,26 @@ interface BaseSlothConfig {
|
|
|
27
27
|
projectGuidelines?: string;
|
|
28
28
|
projectReviewInstructions?: string;
|
|
29
29
|
streamOutput?: boolean;
|
|
30
|
-
filesystem?: string[] | 'all' | 'none';
|
|
30
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
31
31
|
commands?: {
|
|
32
32
|
pr?: {
|
|
33
33
|
contentProvider?: string;
|
|
34
34
|
requirementsProvider?: string;
|
|
35
|
-
filesystem?: string[] | 'all' | 'none';
|
|
35
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
36
36
|
};
|
|
37
37
|
review?: {
|
|
38
38
|
requirementsProvider?: string;
|
|
39
39
|
contentProvider?: string;
|
|
40
|
-
filesystem?: string[] | 'all' | 'none';
|
|
40
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
41
41
|
};
|
|
42
42
|
ask?: {
|
|
43
|
-
filesystem?: string[] | 'all' | 'none';
|
|
43
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
44
44
|
};
|
|
45
45
|
chat?: {
|
|
46
|
-
filesystem?: string[] | 'all' | 'none';
|
|
46
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
47
47
|
};
|
|
48
48
|
code?: {
|
|
49
|
-
filesystem?: string[] | 'all' | 'none';
|
|
49
|
+
filesystem?: string[] | 'all' | 'read' | 'none';
|
|
50
50
|
};
|
|
51
51
|
};
|
|
52
52
|
requirementsProviderConfig?: Record<string, unknown>;
|
|
@@ -73,4 +73,8 @@ export declare function initConfig(): Promise<SlothConfig>;
|
|
|
73
73
|
export declare function tryJsonConfig(jsonConfig: RawSlothConfig): Promise<SlothConfig>;
|
|
74
74
|
export declare function createProjectConfig(configType: string): Promise<void>;
|
|
75
75
|
export declare function writeProjectReviewPreamble(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get default tools based on filesystem configuration
|
|
78
|
+
*/
|
|
79
|
+
export declare function getDefaultTools(filesystemConfig?: string[] | 'all' | 'read' | 'none'): StructuredToolInterface[];
|
|
76
80
|
export {};
|
package/dist/config.js
CHANGED
|
@@ -3,7 +3,9 @@ import { importExternalFile, writeFileIfNotExistsWithMessages } from '#src/utils
|
|
|
3
3
|
import { existsSync, readFileSync } from 'node:fs';
|
|
4
4
|
import { error, exit } from '#src/systemUtils.js';
|
|
5
5
|
import { getGslothConfigReadPath, getGslothConfigWritePath } from '#src/filePathUtils.js';
|
|
6
|
-
import {
|
|
6
|
+
import { PROJECT_GUIDELINES, PROJECT_REVIEW_INSTRUCTIONS, USER_PROJECT_CONFIG_JS, USER_PROJECT_CONFIG_JSON, USER_PROJECT_CONFIG_MJS, } from '#src/constants.js';
|
|
7
|
+
import { getCurrentDir } from '#src/systemUtils.js';
|
|
8
|
+
import GthFileSystemToolkit from '#src/tools/GthFileSystemToolkit.js';
|
|
7
9
|
export const availableDefaultConfigs = ['vertexai', 'anthropic', 'groq'];
|
|
8
10
|
export const DEFAULT_CONFIG = {
|
|
9
11
|
llm: undefined,
|
|
@@ -12,15 +14,7 @@ export const DEFAULT_CONFIG = {
|
|
|
12
14
|
projectGuidelines: PROJECT_GUIDELINES,
|
|
13
15
|
projectReviewInstructions: PROJECT_REVIEW_INSTRUCTIONS,
|
|
14
16
|
streamOutput: true,
|
|
15
|
-
filesystem:
|
|
16
|
-
'read_file',
|
|
17
|
-
'read_multiple_files',
|
|
18
|
-
'list_directory',
|
|
19
|
-
'directory_tree',
|
|
20
|
-
'search_files',
|
|
21
|
-
'get_file_info',
|
|
22
|
-
'list_allowed_directories',
|
|
23
|
-
],
|
|
17
|
+
filesystem: 'read',
|
|
24
18
|
commands: {
|
|
25
19
|
pr: {
|
|
26
20
|
contentProvider: 'github', // gh pr diff NN
|
|
@@ -227,4 +221,43 @@ function mergeConfig(partialConfig) {
|
|
|
227
221
|
function mergeRawConfig(config, llm) {
|
|
228
222
|
return mergeConfig({ ...config, llm });
|
|
229
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Filter filesystem tools based on configuration
|
|
226
|
+
*/
|
|
227
|
+
function filterFilesystemTools(toolkit, filesystemConfig) {
|
|
228
|
+
if (filesystemConfig === 'all') {
|
|
229
|
+
return toolkit.getTools();
|
|
230
|
+
}
|
|
231
|
+
if (filesystemConfig === 'none') {
|
|
232
|
+
return [];
|
|
233
|
+
}
|
|
234
|
+
if (filesystemConfig === 'read') {
|
|
235
|
+
// Read-only: only allow read operations
|
|
236
|
+
return toolkit.getFilteredTools(['read']);
|
|
237
|
+
}
|
|
238
|
+
if (!Array.isArray(filesystemConfig)) {
|
|
239
|
+
return toolkit.getTools();
|
|
240
|
+
}
|
|
241
|
+
if (filesystemConfig.includes('all')) {
|
|
242
|
+
return toolkit.getTools();
|
|
243
|
+
}
|
|
244
|
+
// Handle an array of specific tool names or 'read'/'all'
|
|
245
|
+
const allowedTools = filesystemConfig.includes('read')
|
|
246
|
+
? toolkit.getFilteredTools(['read'])
|
|
247
|
+
: [];
|
|
248
|
+
// Also allow specific tool names
|
|
249
|
+
const allowedToolNames = new Set(filesystemConfig.filter((name) => name !== 'read' && name !== 'all'));
|
|
250
|
+
const specificNamedTools = toolkit.getTools().filter((tool) => {
|
|
251
|
+
return tool.name && allowedToolNames.has(tool.name);
|
|
252
|
+
});
|
|
253
|
+
// Combine and deduplicate
|
|
254
|
+
const allAllowedTools = [...allowedTools, ...specificNamedTools];
|
|
255
|
+
return allAllowedTools.filter((tool, index, arr) => arr.findIndex((t) => t.name === tool.name) === index);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get default tools based on filesystem configuration
|
|
259
|
+
*/
|
|
260
|
+
export function getDefaultTools(filesystemConfig = 'none') {
|
|
261
|
+
return [...filterFilesystemTools(new GthFileSystemToolkit([getCurrentDir()]), filesystemConfig)];
|
|
262
|
+
}
|
|
230
263
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/consoleUtils.js
CHANGED
package/dist/consoleUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleUtils.js","sourceRoot":"","sources":["../src/consoleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,WAAW,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAItF,kGAAkG;AAElG,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,WAAW,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"consoleUtils.js","sourceRoot":"","sources":["../src/consoleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,WAAW,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAItF,kGAAkG;AAElG,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,GAAG,CAAC,OAAO,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAmC;IAC9D,oCAAoC;IACpC,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;QAC7B,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,sBAAsB,GAAyB,CAC1D,KAAkB,EAClB,OAAe,EACf,EAAE;IACF,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,WAAW,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,SAAS;YACZ,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,OAAO;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,SAAS;YACZ,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,OAAO;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,SAAS;YACZ,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM;IACV,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Message } from '#src/modules/types.js';
|
|
2
2
|
import { SlothConfig } from '#src/config.js';
|
|
3
|
+
import type { Connection } from '@langchain/mcp-adapters';
|
|
3
4
|
import { MultiServerMCPClient } from '@langchain/mcp-adapters';
|
|
4
5
|
import { BaseCheckpointSaver } from '@langchain/langgraph';
|
|
5
|
-
import type { StructuredToolInterface } from '@langchain/core/tools';
|
|
6
6
|
import { type RunnableConfig } from '@langchain/core/runnables';
|
|
7
7
|
import { StatusLevel } from '#src/core/types.js';
|
|
8
8
|
export type StatusUpdateCallback = (level: StatusLevel, message: string) => void;
|
|
@@ -17,6 +17,10 @@ export declare class Invocation {
|
|
|
17
17
|
init(command: 'ask' | 'pr' | 'review' | 'chat' | 'code' | undefined, config: SlothConfig, checkpointSaver?: BaseCheckpointSaver | undefined): Promise<void>;
|
|
18
18
|
invoke(messages: Message[], runConfig?: RunnableConfig): Promise<string>;
|
|
19
19
|
cleanup(): Promise<void>;
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Extract and flatten tools from toolkits
|
|
22
|
+
*/
|
|
23
|
+
private extractAndFlattenTools;
|
|
24
|
+
protected getDefaultMcpServers(): Record<string, Connection>;
|
|
21
25
|
protected getMcpClient(config: SlothConfig): MultiServerMCPClient | null;
|
|
22
26
|
}
|
package/dist/core/Invocation.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { isAIMessage } from '@langchain/core/messages';
|
|
2
2
|
import { MultiServerMCPClient } from '@langchain/mcp-adapters';
|
|
3
3
|
import { createReactAgent } from '@langchain/langgraph/prebuilt';
|
|
4
|
-
import { getCurrentDir } from '#src/systemUtils.js';
|
|
5
4
|
import { ProgressIndicator } from '#src/utils.js';
|
|
5
|
+
import { formatToolCalls } from '#src/utils.js';
|
|
6
|
+
import { getDefaultTools } from '#src/config.js';
|
|
6
7
|
export class Invocation {
|
|
7
8
|
statusUpdate;
|
|
8
9
|
verbose = false;
|
|
@@ -17,13 +18,6 @@ export class Invocation {
|
|
|
17
18
|
this.verbose = verbose;
|
|
18
19
|
}
|
|
19
20
|
async init(command, config, checkpointSaver) {
|
|
20
|
-
try {
|
|
21
|
-
if (config.streamOutput && config.llm._llmType() === 'anthropic') {
|
|
22
|
-
this.statusUpdate('warning', 'To avoid known bug with Anthropic forcing streamOutput to false');
|
|
23
|
-
config.streamOutput = false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch { }
|
|
27
21
|
if (this.verbose) {
|
|
28
22
|
config.llm.verbose = true;
|
|
29
23
|
}
|
|
@@ -37,15 +31,21 @@ export class Invocation {
|
|
|
37
31
|
}
|
|
38
32
|
this.config = effectiveConfig;
|
|
39
33
|
this.mcpClient = this.getMcpClient(effectiveConfig);
|
|
40
|
-
//
|
|
34
|
+
// Get default filesystem tools (filtered based on config)
|
|
35
|
+
const defaultTools = getDefaultTools(effectiveConfig.filesystem || 'none');
|
|
36
|
+
// Get user config tools
|
|
41
37
|
const configTools = effectiveConfig.tools || [];
|
|
42
|
-
|
|
38
|
+
const flattenedConfigTools = this.extractAndFlattenTools(configTools);
|
|
39
|
+
// Get MCP tools
|
|
43
40
|
const mcpTools = (await this.mcpClient?.getTools()) ?? [];
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
// Combine all tools
|
|
42
|
+
const tools = [...defaultTools, ...flattenedConfigTools, ...mcpTools];
|
|
43
|
+
if (tools.length > 0) {
|
|
44
|
+
const toolNames = tools
|
|
45
|
+
.map((tool) => tool.name)
|
|
46
|
+
.filter((name) => name)
|
|
47
|
+
.join(', ');
|
|
48
|
+
this.statusUpdate('info', `Loaded tools: ${toolNames}`);
|
|
49
49
|
}
|
|
50
50
|
// Create the React agent
|
|
51
51
|
this.agent = createReactAgent({
|
|
@@ -60,18 +60,18 @@ export class Invocation {
|
|
|
60
60
|
}
|
|
61
61
|
// Run the agent
|
|
62
62
|
try {
|
|
63
|
-
this.statusUpdate('stream', `Thinking`);
|
|
64
63
|
const output = { aiMessage: '' };
|
|
65
64
|
if (!this.config.streamOutput) {
|
|
66
|
-
const progress = new ProgressIndicator('.');
|
|
65
|
+
const progress = new ProgressIndicator('Thinking.');
|
|
67
66
|
try {
|
|
68
67
|
const response = await this.agent.invoke({ messages }, runConfig);
|
|
69
68
|
output.aiMessage = response.messages[response.messages.length - 1].content;
|
|
70
|
-
const
|
|
69
|
+
const toolCalls = response.messages
|
|
71
70
|
.filter((msg) => msg.tool_calls && msg.tool_calls.length > 0)
|
|
72
|
-
.flatMap((msg) => msg.tool_calls
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
.flatMap((msg) => msg.tool_calls ?? [])
|
|
72
|
+
.filter((tc) => tc.name);
|
|
73
|
+
if (toolCalls.length > 0) {
|
|
74
|
+
this.statusUpdate('info', `\nUsed tools: ${formatToolCalls(toolCalls)}`);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
catch (e) {
|
|
@@ -83,16 +83,15 @@ export class Invocation {
|
|
|
83
83
|
this.statusUpdate('display', output.aiMessage);
|
|
84
84
|
}
|
|
85
85
|
else {
|
|
86
|
+
this.statusUpdate('info', '\nThinking...\n');
|
|
86
87
|
const stream = await this.agent.stream({ messages }, { ...runConfig, streamMode: 'messages' });
|
|
87
88
|
for await (const [chunk, _metadata] of stream) {
|
|
88
89
|
if (isAIMessage(chunk)) {
|
|
89
|
-
this.statusUpdate('stream', chunk.
|
|
90
|
-
output.aiMessage += chunk.
|
|
91
|
-
|
|
90
|
+
this.statusUpdate('stream', chunk.text);
|
|
91
|
+
output.aiMessage += chunk.text;
|
|
92
|
+
const toolCalls = chunk.tool_calls?.filter((tc) => tc.name);
|
|
92
93
|
if (toolCalls && toolCalls.length > 0) {
|
|
93
|
-
|
|
94
|
-
const toolCallsString = toolCalls.map((t) => t?.name).join(', ');
|
|
95
|
-
this.statusUpdate('info', `Using tool${suffix} ${toolCallsString}`);
|
|
94
|
+
this.statusUpdate('info', `Used tools: ${formatToolCalls(toolCalls)}`);
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
}
|
|
@@ -102,7 +101,7 @@ export class Invocation {
|
|
|
102
101
|
catch (error) {
|
|
103
102
|
if (error instanceof Error) {
|
|
104
103
|
if (error?.name === 'ToolException') {
|
|
105
|
-
this.statusUpdate('error', `Tool execution failed: ${error
|
|
104
|
+
this.statusUpdate('error', `Tool execution failed: ${error?.message}`);
|
|
106
105
|
}
|
|
107
106
|
}
|
|
108
107
|
throw error;
|
|
@@ -116,28 +115,29 @@ export class Invocation {
|
|
|
116
115
|
this.agent = null;
|
|
117
116
|
this.config = null;
|
|
118
117
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Extract and flatten tools from toolkits
|
|
120
|
+
*/
|
|
121
|
+
extractAndFlattenTools(tools) {
|
|
122
|
+
const flattenedTools = [];
|
|
123
|
+
for (const toolOrToolkit of tools) {
|
|
124
|
+
// eslint-disable-next-line
|
|
125
|
+
if (toolOrToolkit['getTools'] instanceof Function) {
|
|
126
|
+
// This is a toolkit
|
|
127
|
+
flattenedTools.push(...toolOrToolkit.getTools());
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
// This is a regular tool
|
|
131
|
+
flattenedTools.push(toolOrToolkit);
|
|
132
|
+
}
|
|
122
133
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return !tool.name.startsWith('mcp__filesystem__') || allowedToolNames.has(tool.name);
|
|
128
|
-
});
|
|
134
|
+
return flattenedTools;
|
|
135
|
+
}
|
|
136
|
+
getDefaultMcpServers() {
|
|
137
|
+
return {};
|
|
129
138
|
}
|
|
130
139
|
getMcpClient(config) {
|
|
131
|
-
const defaultServers =
|
|
132
|
-
// Add filesystem server if configured
|
|
133
|
-
if (config.filesystem && config.filesystem !== 'none') {
|
|
134
|
-
const filesystemConfig = {
|
|
135
|
-
transport: 'stdio',
|
|
136
|
-
command: 'npx',
|
|
137
|
-
args: ['-y', '@modelcontextprotocol/server-filesystem', getCurrentDir()],
|
|
138
|
-
};
|
|
139
|
-
defaultServers.filesystem = filesystemConfig;
|
|
140
|
-
}
|
|
140
|
+
const defaultServers = this.getDefaultMcpServers();
|
|
141
141
|
// Merge with user's mcpServers
|
|
142
142
|
const mcpServers = { ...defaultServers, ...(config.mcpServers || {}) };
|
|
143
143
|
// If user provided their own filesystem config, it overrides default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invocation.js","sourceRoot":"","sources":["../../src/core/Invocation.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Invocation.js","sourceRoot":"","sources":["../../src/core/Invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { appendToFile, generateStandardFileName } from '#src/utils.js';
|
|
|
10
10
|
import { readBackstory, readGuidelines, readSystemPrompt } from '#src/prompt.js';
|
|
11
11
|
import { Invocation } from '#src/core/Invocation.js';
|
|
12
12
|
export async function createInteractiveSession(sessionConfig, message) {
|
|
13
|
-
const config = { ...(await initConfig())
|
|
13
|
+
const config = { ...(await initConfig()) };
|
|
14
14
|
const checkpointSaver = new MemorySaver();
|
|
15
15
|
// Initialize Invocation once
|
|
16
16
|
const invocation = new Invocation(defaultStatusCallbacks);
|
|
@@ -21,7 +21,7 @@ export async function createInteractiveSession(sessionConfig, message) {
|
|
|
21
21
|
let shouldExit = false;
|
|
22
22
|
const thread_id = crypto.randomUUID();
|
|
23
23
|
const logFileName = getGslothFilePath(generateStandardFileName(sessionConfig.mode.toUpperCase()));
|
|
24
|
-
display(chalk.
|
|
24
|
+
display(chalk.dim(`${sessionConfig.mode} session will be logged to ${logFileName}\n`));
|
|
25
25
|
const processMessage = async (userInput) => {
|
|
26
26
|
const messages = [];
|
|
27
27
|
if (isFirstMessage) {
|
|
@@ -58,7 +58,8 @@ export async function createInteractiveSession(sessionConfig, message) {
|
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
await processMessage(userInput);
|
|
61
|
-
display(
|
|
61
|
+
display('\n\n');
|
|
62
|
+
display(chalk.dim(sessionConfig.exitMessage));
|
|
62
63
|
if (!shouldExit)
|
|
63
64
|
askQuestion();
|
|
64
65
|
});
|
|
@@ -68,7 +69,7 @@ export async function createInteractiveSession(sessionConfig, message) {
|
|
|
68
69
|
}
|
|
69
70
|
else {
|
|
70
71
|
display(sessionConfig.readyMessage);
|
|
71
|
-
display(chalk.
|
|
72
|
+
display(chalk.dim(sessionConfig.exitMessage));
|
|
72
73
|
}
|
|
73
74
|
if (!shouldExit)
|
|
74
75
|
askQuestion();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAoB,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EACL,eAAe,EACf,KAAK,EACL,IAAI,EACJ,KAAK,IAAI,KAAK,EACd,MAAM,IAAI,MAAM,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,aAA4B,EAAE,OAAgB;IAC3F,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export async function askQuestion(source, preamble, content, config) {
|
|
|
22
22
|
}
|
|
23
23
|
try {
|
|
24
24
|
writeFileSync(filePath, outputContent);
|
|
25
|
-
displaySuccess(`\nThis report can be found in ${filePath}`);
|
|
25
|
+
displaySuccess(`\n\nThis report can be found in ${filePath}`);
|
|
26
26
|
}
|
|
27
27
|
catch (error) {
|
|
28
28
|
displayError(`Failed to write answer to file: ${filePath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questionAnsweringModule.js","sourceRoot":"","sources":["../../src/modules/questionAnsweringModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,MAAmB;IAEnB,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"questionAnsweringModule.js","sourceRoot":"","sources":["../../src/modules/questionAnsweringModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,MAAmB;IAEnB,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvC,cAAc,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC5D,YAAY,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,yDAAyD;QACzD,WAAW;IACb,CAAC;AACH,CAAC"}
|
|
@@ -16,7 +16,7 @@ export async function review(source, preamble, diff, config, command = 'review')
|
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
18
|
writeFileSync(filePath, outputContent);
|
|
19
|
-
displaySuccess(`\nThis report can be found in ${filePath}`);
|
|
19
|
+
displaySuccess(`\n\nThis report can be found in ${filePath}`);
|
|
20
20
|
}
|
|
21
21
|
catch (error) {
|
|
22
22
|
displayDebug(error instanceof Error ? error : String(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewModule.js","sourceRoot":"","sources":["../../src/modules/reviewModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAc,EACd,QAAgB,EAChB,IAAY,EACZ,MAAmB,EACnB,UAA2B,QAAQ;IAEnC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"reviewModule.js","sourceRoot":"","sources":["../../src/modules/reviewModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAc,EACd,QAAgB,EAChB,IAAY,EACZ,MAAmB,EACnB,UAA2B,QAAQ;IAEnC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvC,cAAc,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,YAAY,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC5D,qDAAqD;QACrD,WAAW;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
|
|
2
|
+
export default class GthFileSystemToolkit extends BaseToolkit {
|
|
3
|
+
tools: StructuredToolInterface[];
|
|
4
|
+
private allowedDirectories;
|
|
5
|
+
constructor(allowedDirectories?: string[]);
|
|
6
|
+
/**
|
|
7
|
+
* Get tools filtered by operation type
|
|
8
|
+
*/
|
|
9
|
+
getFilteredTools(allowedOperations: ('read' | 'write')[]): StructuredToolInterface[];
|
|
10
|
+
private normalizePath;
|
|
11
|
+
private isProtectedDirectory;
|
|
12
|
+
private expandHome;
|
|
13
|
+
private validatePath;
|
|
14
|
+
private getFileStats;
|
|
15
|
+
private searchFiles;
|
|
16
|
+
private normalizeLineEndings;
|
|
17
|
+
private createUnifiedDiff;
|
|
18
|
+
private applyFileEdits;
|
|
19
|
+
private formatSize;
|
|
20
|
+
private tailFile;
|
|
21
|
+
private headFile;
|
|
22
|
+
private createTools;
|
|
23
|
+
}
|