gaunt-sloth-assistant 0.9.0 → 0.9.1
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/dist/cli.js +17 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/askCommand.d.ts +3 -1
- package/dist/commands/askCommand.js +3 -2
- package/dist/commands/askCommand.js.map +1 -1
- package/dist/commands/chatCommand.d.ts +2 -1
- package/dist/commands/chatCommand.js +3 -3
- package/dist/commands/chatCommand.js.map +1 -1
- package/dist/commands/codeCommand.d.ts +2 -1
- package/dist/commands/codeCommand.js +2 -2
- package/dist/commands/codeCommand.js.map +1 -1
- package/dist/commands/prCommand.d.ts +2 -1
- package/dist/commands/prCommand.js +2 -2
- package/dist/commands/prCommand.js.map +1 -1
- package/dist/commands/reviewCommand.d.ts +2 -1
- package/dist/commands/reviewCommand.js +2 -2
- package/dist/commands/reviewCommand.js.map +1 -1
- package/dist/config.d.ts +15 -5
- package/dist/config.js +31 -34
- package/dist/config.js.map +1 -1
- package/dist/core/GthAgentRunner.d.ts +0 -2
- package/dist/core/GthAgentRunner.js +0 -8
- package/dist/core/GthAgentRunner.js.map +1 -1
- package/dist/core/GthLangChainAgent.d.ts +0 -2
- package/dist/core/GthLangChainAgent.js +0 -9
- package/dist/core/GthLangChainAgent.js.map +1 -1
- package/dist/core/types.d.ts +0 -1
- package/dist/llmUtils.d.ts +0 -1
- package/dist/llmUtils.js +0 -8
- package/dist/llmUtils.js.map +1 -1
- package/dist/modules/interactiveSessionModule.d.ts +2 -1
- package/dist/modules/interactiveSessionModule.js +4 -4
- package/dist/modules/interactiveSessionModule.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -7,32 +7,37 @@ import { chatCommand } from '#src/commands/chatCommand.js';
|
|
|
7
7
|
import { codeCommand } from '#src/commands/codeCommand.js';
|
|
8
8
|
import { getSlothVersion } from '#src/utils.js';
|
|
9
9
|
import { argv, readStdin } from '#src/systemUtils.js';
|
|
10
|
-
import { setVerbose } from '#src/llmUtils.js';
|
|
11
|
-
import { setCustomConfigPath } from '#src/config.js';
|
|
12
10
|
const program = new Command();
|
|
13
11
|
program
|
|
14
12
|
.name('gsloth')
|
|
15
13
|
.description('Gaunt Sloth Assistant reviewing your PRs')
|
|
16
14
|
.version(getSlothVersion())
|
|
17
|
-
.option('--verbose', '
|
|
15
|
+
.option('--verbose', 'Set LangChain/LangGraph to verbose mode, ' +
|
|
16
|
+
'causing LangChain/LangGraph to log many details to the console. ' +
|
|
17
|
+
'Consider using debugLog from config.ts for less intrusive debug logging.')
|
|
18
18
|
.option('-c, --config <path>', 'Path to custom configuration file')
|
|
19
19
|
.addOption(new Option('--nopipe').hideHelp(true));
|
|
20
|
+
const cliConfigOverrides = {};
|
|
20
21
|
// Parse global options before binding any commands
|
|
21
22
|
program.parseOptions(argv);
|
|
22
23
|
if (program.getOptionValue('verbose')) {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Set LangChain/LangGraph to verbose mode,
|
|
26
|
+
* causing LangChain/LangGraph to log many details to the console.
|
|
27
|
+
* debugLog from config.ts may be a less intrusive option.
|
|
28
|
+
*/
|
|
29
|
+
cliConfigOverrides.verbose = true;
|
|
25
30
|
}
|
|
26
31
|
if (program.getOptionValue('config')) {
|
|
27
|
-
// Set custom config path
|
|
28
|
-
|
|
32
|
+
// Set a custom config path
|
|
33
|
+
cliConfigOverrides.customConfigPath = program.getOptionValue('config');
|
|
29
34
|
}
|
|
30
35
|
// Initialize all commands - they will handle their own config loading
|
|
31
36
|
initCommand(program);
|
|
32
|
-
reviewCommand(program);
|
|
33
|
-
prCommand(program);
|
|
34
|
-
askCommand(program);
|
|
35
|
-
chatCommand(program);
|
|
36
|
-
codeCommand(program);
|
|
37
|
+
reviewCommand(program, cliConfigOverrides);
|
|
38
|
+
prCommand(program, cliConfigOverrides);
|
|
39
|
+
askCommand(program, cliConfigOverrides);
|
|
40
|
+
chatCommand(program, cliConfigOverrides);
|
|
41
|
+
codeCommand(program, cliConfigOverrides);
|
|
37
42
|
await readStdin(program);
|
|
38
43
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,eAAe,EAAE,CAAC;KAC1B,MAAM,CACL,WAAW,EACX,2CAA2C;IACzC,kEAAkE;IAClE,0EAA0E,CAC7E;KACA,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD,MAAM,kBAAkB,GAA+B,EAAE,CAAC;AAE1D,mDAAmD;AACnD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;IACtC;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,CAAC;AACD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrC,2BAA2B;IAC3B,kBAAkB,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,sEAAsE;AACtE,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC3C,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACvC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACxC,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACzC,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAEzC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
2
3
|
/**
|
|
3
4
|
* Adds the ask command to the program
|
|
4
5
|
* @param program - The commander program
|
|
6
|
+
* @param commandLineConfigOverrides - command line config overrides
|
|
5
7
|
*/
|
|
6
|
-
export declare function askCommand(program: Command): void;
|
|
8
|
+
export declare function askCommand(program: Command, commandLineConfigOverrides: CommandLineConfigOverrides): void;
|
|
@@ -5,15 +5,16 @@ import { getStringFromStdin } from '#src/systemUtils.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Adds the ask command to the program
|
|
7
7
|
* @param program - The commander program
|
|
8
|
+
* @param commandLineConfigOverrides - command line config overrides
|
|
8
9
|
*/
|
|
9
|
-
export function askCommand(program) {
|
|
10
|
+
export function askCommand(program, commandLineConfigOverrides) {
|
|
10
11
|
program
|
|
11
12
|
.command('ask')
|
|
12
13
|
.description('Ask a question')
|
|
13
14
|
.argument('[message]', 'A message')
|
|
14
15
|
.option('-f, --file [files...]', 'Input files. Content of these files will be added BEFORE the message')
|
|
15
16
|
.action(async (message, options) => {
|
|
16
|
-
const config = await initConfig();
|
|
17
|
+
const config = await initConfig(commandLineConfigOverrides);
|
|
17
18
|
const systemPrompt = readSystemPrompt();
|
|
18
19
|
const preamble = [readBackstory(), readGuidelines(config.projectGuidelines)];
|
|
19
20
|
if (systemPrompt) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askCommand.js","sourceRoot":"","sources":["../../src/commands/askCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"askCommand.js","sourceRoot":"","sources":["../../src/commands/askCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAA8B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,0BAAsD;IAEtD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;SAClC,MAAM,CACL,uBAAuB,EACvB,sEAAsE,CACvE;SACA,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA0B,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7E,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;QAChF,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
|
|
2
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
3
|
+
export declare function chatCommand(program: Command, commandLineConfigOverrides: CommandLineConfigOverrides): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createInteractiveSession } from '#src/modules/interactiveSessionModule.js';
|
|
2
2
|
import { readChatPrompt } from '#src/prompt.js';
|
|
3
|
-
export function chatCommand(program) {
|
|
3
|
+
export function chatCommand(program, commandLineConfigOverrides) {
|
|
4
4
|
const sessionConfig = {
|
|
5
5
|
mode: 'chat',
|
|
6
6
|
readModePrompt: readChatPrompt,
|
|
@@ -10,7 +10,7 @@ export function chatCommand(program) {
|
|
|
10
10
|
};
|
|
11
11
|
// Start chat when no command typed
|
|
12
12
|
program.action(async () => {
|
|
13
|
-
await createInteractiveSession(sessionConfig);
|
|
13
|
+
await createInteractiveSession(sessionConfig, commandLineConfigOverrides);
|
|
14
14
|
});
|
|
15
15
|
// Chat command
|
|
16
16
|
program
|
|
@@ -18,7 +18,7 @@ export function chatCommand(program) {
|
|
|
18
18
|
.description('Start an interactive chat session with Gaunt Sloth')
|
|
19
19
|
.argument('[message]', 'Initial message to start the chat')
|
|
20
20
|
.action(async (message) => {
|
|
21
|
-
await createInteractiveSession(sessionConfig, message);
|
|
21
|
+
await createInteractiveSession(sessionConfig, commandLineConfigOverrides, message);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=chatCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../src/commands/chatCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../src/commands/chatCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,0BAAsD;IAEtD,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,MAAM;QACZ,cAAc,EAAE,cAAc;QAC9B,WAAW,EAAE,oDAAoD;QACjE,YAAY,EAAE,mDAAmD;QACjE,WAAW,EAAE,0CAA0C;KACxD,CAAC;IACF,mCAAmC;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,wBAAwB,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,eAAe;IACf,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,WAAW,EAAE,mCAAmC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,MAAM,wBAAwB,CAAC,aAAa,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
|
|
2
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
3
|
+
export declare function codeCommand(program: Command, commandLineConfigOverrides: CommandLineConfigOverrides): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createInteractiveSession } from '#src/modules/interactiveSessionModule.js';
|
|
2
2
|
import { readCodePrompt } from '#src/prompt.js';
|
|
3
|
-
export function codeCommand(program) {
|
|
3
|
+
export function codeCommand(program, commandLineConfigOverrides) {
|
|
4
4
|
program
|
|
5
5
|
.command('code')
|
|
6
6
|
.description('Interactively write code with sloth (has full file system access within your project)')
|
|
@@ -13,7 +13,7 @@ export function codeCommand(program) {
|
|
|
13
13
|
readyMessage: '\nGaunt Sloth is ready to code. Type your prompt.',
|
|
14
14
|
exitMessage: "Type 'exit' or hit Ctrl+C to exit code session\n",
|
|
15
15
|
};
|
|
16
|
-
await createInteractiveSession(sessionConfig, message);
|
|
16
|
+
await createInteractiveSession(sessionConfig, commandLineConfigOverrides, message);
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=codeCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAGhD,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,0BAAsD;IAEtD,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,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
|
|
2
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
3
|
+
export declare function prCommand(program: Command, commandLineConfigOverrides: CommandLineConfigOverrides): void;
|
|
@@ -3,7 +3,7 @@ import { readBackstory, readGuidelines, readReviewInstructions, readSystemPrompt
|
|
|
3
3
|
import { readMultipleFilesFromCurrentDir } from '#src/utils.js';
|
|
4
4
|
import { CONTENT_PROVIDERS, getRequirementsFromProvider, REQUIREMENTS_PROVIDERS, } from './commandUtils.js';
|
|
5
5
|
import jiraLogWork from '#src/helpers/jira/jiraLogWork.js';
|
|
6
|
-
export function prCommand(program) {
|
|
6
|
+
export function prCommand(program, commandLineConfigOverrides) {
|
|
7
7
|
program
|
|
8
8
|
.command('pr')
|
|
9
9
|
.description('Review provided Pull Request in current directory. ' +
|
|
@@ -16,7 +16,7 @@ export function prCommand(program) {
|
|
|
16
16
|
.option('-m, --message <message>', 'Extra message to provide just before the content')
|
|
17
17
|
.action(async (prId, requirementsId, options) => {
|
|
18
18
|
const { initConfig } = await import('#src/config.js');
|
|
19
|
-
const config = await initConfig(); // Initialize and get config
|
|
19
|
+
const config = await initConfig(commandLineConfigOverrides); // Initialize and get config
|
|
20
20
|
const systemPrompt = readSystemPrompt();
|
|
21
21
|
const systemMessage = [
|
|
22
22
|
readBackstory(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prCommand.js","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,iBAAiB,EAEjB,2BAA2B,EAC3B,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,WAAW,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"prCommand.js","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
|
|
2
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
3
|
+
export declare function reviewCommand(program: Command, cliConfigOverrides: CommandLineConfigOverrides): void;
|
|
@@ -3,7 +3,7 @@ import { readBackstory, readGuidelines, readReviewInstructions, readSystemPrompt
|
|
|
3
3
|
import { readMultipleFilesFromCurrentDir } from '#src/utils.js';
|
|
4
4
|
import { getStringFromStdin } from '#src/systemUtils.js';
|
|
5
5
|
import { REQUIREMENTS_PROVIDERS, CONTENT_PROVIDERS, getRequirementsFromProvider, getContentFromProvider, } from './commandUtils.js';
|
|
6
|
-
export function reviewCommand(program) {
|
|
6
|
+
export function reviewCommand(program, cliConfigOverrides) {
|
|
7
7
|
program
|
|
8
8
|
.command('review')
|
|
9
9
|
.description('Review provided diff or other content')
|
|
@@ -18,7 +18,7 @@ export function reviewCommand(program) {
|
|
|
18
18
|
.option('-m, --message <message>', 'Extra message to provide just before the content')
|
|
19
19
|
.action(async (contentId, options) => {
|
|
20
20
|
const { initConfig } = await import('#src/config.js');
|
|
21
|
-
const config = await initConfig(); // Initialize and get config
|
|
21
|
+
const config = await initConfig(cliConfigOverrides); // Initialize and get config
|
|
22
22
|
const systemPrompt = readSystemPrompt();
|
|
23
23
|
const systemMessage = [
|
|
24
24
|
readBackstory(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewCommand.js","sourceRoot":"","sources":["../../src/commands/reviewCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAGjB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewCommand.js","sourceRoot":"","sources":["../../src/commands/reviewCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -133,21 +133,31 @@ export interface LLMConfig extends Record<string, unknown> {
|
|
|
133
133
|
}
|
|
134
134
|
export declare const availableDefaultConfigs: readonly ["vertexai", "anthropic", "groq", "deepseek", "openai", "google-genai", "xai", "openrouter"];
|
|
135
135
|
export type ConfigType = (typeof availableDefaultConfigs)[number];
|
|
136
|
-
export
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
export interface CommandLineConfigOverrides {
|
|
137
|
+
/**
|
|
138
|
+
* Custom config path
|
|
139
|
+
*/
|
|
140
|
+
customConfigPath?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Set LangChain/LangGraph to verbose mode,
|
|
143
|
+
* causing LangChain/LangGraph to log many details to the console.
|
|
144
|
+
* debugLog from config.ts may be a less intrusive option.
|
|
145
|
+
*/
|
|
146
|
+
verbose?: boolean;
|
|
147
|
+
}
|
|
139
148
|
export declare const DEFAULT_CONFIG: Partial<GthConfig>;
|
|
140
149
|
/**
|
|
141
150
|
* Initialize configuration by loading from available config files
|
|
142
151
|
* @returns The loaded GthConfig
|
|
143
152
|
*/
|
|
144
|
-
export declare function initConfig(): Promise<GthConfig>;
|
|
153
|
+
export declare function initConfig(commandLineConfigOverrides: CommandLineConfigOverrides): Promise<GthConfig>;
|
|
145
154
|
/**
|
|
146
155
|
* Process JSON LLM config by creating the appropriate LLM instance
|
|
147
156
|
* @param jsonConfig - The parsed JSON config
|
|
157
|
+
* @param commandLineConfigOverrides - command line config overrides
|
|
148
158
|
* @returns Promise<GthConfig>
|
|
149
159
|
*/
|
|
150
|
-
export declare function tryJsonConfig(jsonConfig: RawGthConfig): Promise<GthConfig>;
|
|
160
|
+
export declare function tryJsonConfig(jsonConfig: RawGthConfig, commandLineConfigOverrides: CommandLineConfigOverrides): Promise<GthConfig>;
|
|
151
161
|
export declare function createProjectConfig(configType: string): Promise<void>;
|
|
152
162
|
export declare function writeProjectReviewPreamble(): void;
|
|
153
163
|
export {};
|
package/dist/config.js
CHANGED
|
@@ -4,7 +4,6 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
4
4
|
import { error, exit, setUseColour } from '#src/systemUtils.js';
|
|
5
5
|
import { getGslothConfigReadPath, getGslothConfigWritePath } from '#src/filePathUtils.js';
|
|
6
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 { resolve } from 'node:path';
|
|
8
7
|
export const availableDefaultConfigs = [
|
|
9
8
|
'vertexai',
|
|
10
9
|
'anthropic',
|
|
@@ -15,18 +14,6 @@ export const availableDefaultConfigs = [
|
|
|
15
14
|
'xai',
|
|
16
15
|
'openrouter',
|
|
17
16
|
];
|
|
18
|
-
const configGlobalSettings = {
|
|
19
|
-
customConfigPath: undefined,
|
|
20
|
-
};
|
|
21
|
-
export function setCustomConfigPath(path) {
|
|
22
|
-
configGlobalSettings.customConfigPath = resolve(path);
|
|
23
|
-
}
|
|
24
|
-
export function getCustomConfigPath() {
|
|
25
|
-
return configGlobalSettings.customConfigPath;
|
|
26
|
-
}
|
|
27
|
-
export function clearCustomConfigPath() {
|
|
28
|
-
configGlobalSettings.customConfigPath = undefined;
|
|
29
|
-
}
|
|
30
17
|
export const DEFAULT_CONFIG = {
|
|
31
18
|
llm: undefined,
|
|
32
19
|
contentProvider: 'file',
|
|
@@ -36,6 +23,10 @@ export const DEFAULT_CONFIG = {
|
|
|
36
23
|
streamOutput: true,
|
|
37
24
|
useColour: true,
|
|
38
25
|
filesystem: 'read',
|
|
26
|
+
/**
|
|
27
|
+
* Log messages and events to gaunt-sloth.log,
|
|
28
|
+
* use llm.verbose or `gth --verbose` as more intrusive option, setting verbose to LangChain / LangGraph
|
|
29
|
+
*/
|
|
39
30
|
debugLog: false,
|
|
40
31
|
commands: {
|
|
41
32
|
pr: {
|
|
@@ -51,11 +42,13 @@ export const DEFAULT_CONFIG = {
|
|
|
51
42
|
* Initialize configuration by loading from available config files
|
|
52
43
|
* @returns The loaded GthConfig
|
|
53
44
|
*/
|
|
54
|
-
export async function initConfig() {
|
|
55
|
-
if (
|
|
56
|
-
|
|
45
|
+
export async function initConfig(commandLineConfigOverrides) {
|
|
46
|
+
if (commandLineConfigOverrides.customConfigPath &&
|
|
47
|
+
!existsSync(commandLineConfigOverrides.customConfigPath)) {
|
|
48
|
+
throw new Error(`Provided manual config "${commandLineConfigOverrides.customConfigPath}" does not exist`);
|
|
57
49
|
}
|
|
58
|
-
const jsonConfigPath =
|
|
50
|
+
const jsonConfigPath = commandLineConfigOverrides.customConfigPath ??
|
|
51
|
+
getGslothConfigReadPath(USER_PROJECT_CONFIG_JSON);
|
|
59
52
|
// Try loading the JSON config file first
|
|
60
53
|
if (jsonConfigPath.endsWith('.json') && existsSync(jsonConfigPath)) {
|
|
61
54
|
try {
|
|
@@ -63,7 +56,7 @@ export async function initConfig() {
|
|
|
63
56
|
const jsonConfig = JSON.parse(readFileSync(jsonConfigPath, 'utf8'));
|
|
64
57
|
// If the config has an LLM with a type, create the appropriate LLM instance
|
|
65
58
|
if (jsonConfig.llm && typeof jsonConfig.llm === 'object' && 'type' in jsonConfig.llm) {
|
|
66
|
-
return await tryJsonConfig(jsonConfig);
|
|
59
|
+
return await tryJsonConfig(jsonConfig, commandLineConfigOverrides);
|
|
67
60
|
}
|
|
68
61
|
else {
|
|
69
62
|
error(`${jsonConfigPath} is not in valid format. Should at least define llm.type`);
|
|
@@ -78,43 +71,43 @@ export async function initConfig() {
|
|
|
78
71
|
displayDebug(e instanceof Error ? e : String(e));
|
|
79
72
|
displayError(`Failed to read config from ${USER_PROJECT_CONFIG_JSON}, will try other formats.`);
|
|
80
73
|
// Continue to try other formats
|
|
81
|
-
return tryJsConfig();
|
|
74
|
+
return tryJsConfig(commandLineConfigOverrides);
|
|
82
75
|
}
|
|
83
76
|
}
|
|
84
77
|
else {
|
|
85
78
|
// JSON config not found, try JS
|
|
86
|
-
return tryJsConfig();
|
|
79
|
+
return tryJsConfig(commandLineConfigOverrides);
|
|
87
80
|
}
|
|
88
81
|
}
|
|
89
82
|
// Helper function to try loading JS config
|
|
90
|
-
async function tryJsConfig() {
|
|
91
|
-
const jsConfigPath =
|
|
83
|
+
async function tryJsConfig(commandLineConfigOverrides) {
|
|
84
|
+
const jsConfigPath = commandLineConfigOverrides.customConfigPath ?? getGslothConfigReadPath(USER_PROJECT_CONFIG_JS);
|
|
92
85
|
if (jsConfigPath.endsWith('.js') && existsSync(jsConfigPath)) {
|
|
93
86
|
try {
|
|
94
87
|
const i = await importExternalFile(jsConfigPath);
|
|
95
88
|
const customConfig = await i.configure();
|
|
96
|
-
return mergeConfig(customConfig);
|
|
89
|
+
return mergeConfig(customConfig, commandLineConfigOverrides);
|
|
97
90
|
}
|
|
98
91
|
catch (e) {
|
|
99
92
|
displayDebug(e instanceof Error ? e : String(e));
|
|
100
93
|
displayError(`Failed to read config from ${USER_PROJECT_CONFIG_JS}, will try other formats.`);
|
|
101
94
|
// Continue to try other formats
|
|
102
|
-
return tryMjsConfig();
|
|
95
|
+
return tryMjsConfig(commandLineConfigOverrides);
|
|
103
96
|
}
|
|
104
97
|
}
|
|
105
98
|
else {
|
|
106
99
|
// JS config not found, try MJS
|
|
107
|
-
return tryMjsConfig();
|
|
100
|
+
return tryMjsConfig(commandLineConfigOverrides);
|
|
108
101
|
}
|
|
109
102
|
}
|
|
110
103
|
// Helper function to try loading MJS config
|
|
111
|
-
async function tryMjsConfig() {
|
|
112
|
-
const mjsConfigPath =
|
|
104
|
+
async function tryMjsConfig(commandLineConfigOverrides) {
|
|
105
|
+
const mjsConfigPath = commandLineConfigOverrides.customConfigPath ?? getGslothConfigReadPath(USER_PROJECT_CONFIG_MJS);
|
|
113
106
|
if (mjsConfigPath.endsWith('.mjs') && existsSync(mjsConfigPath)) {
|
|
114
107
|
try {
|
|
115
108
|
const i = await importExternalFile(mjsConfigPath);
|
|
116
109
|
const customConfig = await i.configure();
|
|
117
|
-
return mergeConfig(customConfig);
|
|
110
|
+
return mergeConfig(customConfig, commandLineConfigOverrides);
|
|
118
111
|
}
|
|
119
112
|
catch (e) {
|
|
120
113
|
displayDebug(e instanceof Error ? e : String(e));
|
|
@@ -136,12 +129,13 @@ async function tryMjsConfig() {
|
|
|
136
129
|
/**
|
|
137
130
|
* Process JSON LLM config by creating the appropriate LLM instance
|
|
138
131
|
* @param jsonConfig - The parsed JSON config
|
|
132
|
+
* @param commandLineConfigOverrides - command line config overrides
|
|
139
133
|
* @returns Promise<GthConfig>
|
|
140
134
|
*/
|
|
141
|
-
export async function tryJsonConfig(jsonConfig) {
|
|
135
|
+
export async function tryJsonConfig(jsonConfig, commandLineConfigOverrides) {
|
|
142
136
|
try {
|
|
143
137
|
if (jsonConfig.llm && typeof jsonConfig.llm === 'object') {
|
|
144
|
-
// Get the type of LLM (e.g
|
|
138
|
+
// Get the type of LLM (e.g. 'vertexai', 'anthropic') - this should exist
|
|
145
139
|
const llmType = jsonConfig.llm.type;
|
|
146
140
|
if (!llmType) {
|
|
147
141
|
displayError('LLM type not specified in config.');
|
|
@@ -153,7 +147,7 @@ export async function tryJsonConfig(jsonConfig) {
|
|
|
153
147
|
const configModule = await import(`./presets/${llmType}.js`);
|
|
154
148
|
if (configModule.processJsonConfig) {
|
|
155
149
|
const llm = (await configModule.processJsonConfig(llmConfig));
|
|
156
|
-
return mergeRawConfig(jsonConfig, llm);
|
|
150
|
+
return mergeRawConfig(jsonConfig, llm, commandLineConfigOverrides);
|
|
157
151
|
}
|
|
158
152
|
else {
|
|
159
153
|
displayWarning(`Config module for ${llmType} does not have processJsonConfig function.`);
|
|
@@ -233,13 +227,16 @@ Important! You are likely to be dealing with git diff below, please don't confus
|
|
|
233
227
|
/**
|
|
234
228
|
* Merge config with default config
|
|
235
229
|
*/
|
|
236
|
-
function mergeConfig(partialConfig) {
|
|
230
|
+
function mergeConfig(partialConfig, commandLineConfigOverrides) {
|
|
237
231
|
const config = partialConfig;
|
|
238
232
|
const mergedConfig = {
|
|
239
233
|
...DEFAULT_CONFIG,
|
|
240
234
|
...config,
|
|
241
235
|
commands: { ...DEFAULT_CONFIG.commands, ...(config?.commands ?? {}) },
|
|
242
236
|
};
|
|
237
|
+
if (commandLineConfigOverrides.verbose !== undefined) {
|
|
238
|
+
mergedConfig.llm.verbose = commandLineConfigOverrides.verbose;
|
|
239
|
+
}
|
|
243
240
|
// Set the useColour value in systemUtils
|
|
244
241
|
setUseColour(mergedConfig.useColour);
|
|
245
242
|
return mergedConfig;
|
|
@@ -247,7 +244,7 @@ function mergeConfig(partialConfig) {
|
|
|
247
244
|
/**
|
|
248
245
|
* Merge raw with default config
|
|
249
246
|
*/
|
|
250
|
-
function mergeRawConfig(config, llm) {
|
|
251
|
-
return mergeConfig({ ...config, llm });
|
|
247
|
+
function mergeRawConfig(config, llm, commandLineConfigOverrides) {
|
|
248
|
+
return mergeConfig({ ...config, llm }, commandLineConfigOverrides);
|
|
252
249
|
}
|
|
253
250
|
//# 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,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;
|
|
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,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAgJ3B,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,KAAK;IACL,YAAY;CACJ,CAAC;AAgBX,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,GAAG,EAAE,SAAS;IACd,eAAe,EAAE,MAAM;IACvB,oBAAoB,EAAE,MAAM;IAC5B,iBAAiB,EAAE,kBAAkB;IACrC,yBAAyB,EAAE,2BAA2B;IACtD,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,MAAM;IAClB;;;OAGG;IACH,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE;QACR,EAAE,EAAE;YACF,eAAe,EAAE,QAAQ,EAAE,gBAAgB;YAC3C,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB;SACpD;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,KAAK;SAClB;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,0BAAsD;IAEtD,IACE,0BAA0B,CAAC,gBAAgB;QAC3C,CAAC,UAAU,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,EACxD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,0BAA0B,CAAC,gBAAgB,kBAAkB,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAClB,0BAA0B,CAAC,gBAAgB;QAC3C,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAEpD,yCAAyC;IACzC,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAiB,CAAC;YACpF,4EAA4E;YAC5E,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;gBACrF,OAAO,MAAM,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,cAAc,0DAA0D,CAAC,CAAC;gBACnF,IAAI,CAAC,CAAC,CAAC,CAAC;gBACR,wCAAwC;gBACxC,iHAAiH;gBACjH,wCAAwC;gBACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,YAAY,CACV,8BAA8B,wBAAwB,2BAA2B,CAClF,CAAC;YACF,gCAAgC;YAChC,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,KAAK,UAAU,WAAW,CACxB,0BAAsD;IAEtD,MAAM,YAAY,GAChB,0BAA0B,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IACjG,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC,YAAY,EAAE,0BAA0B,CAAc,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,YAAY,CAAC,8BAA8B,sBAAsB,2BAA2B,CAAC,CAAC;YAC9F,gCAAgC;YAChC,OAAO,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+BAA+B;QAC/B,OAAO,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,KAAK,UAAU,YAAY,CACzB,0BAAsD;IAEtD,MAAM,aAAa,GACjB,0BAA0B,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IAClG,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC,YAAY,EAAE,0BAA0B,CAAc,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,YAAY,CAAC,8BAA8B,uBAAuB,GAAG,CAAC,CAAC;YACvE,YAAY,CAAC,yEAAyE,CAAC,CAAC;YACxF,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,YAAY,CACV,qDAAqD;YACnD,GAAG,wBAAwB,KAAK,sBAAsB,QAAQ,uBAAuB,GAAG;YACxF,4BAA4B,CAC/B,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,iHAAiH;IACjH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAwB,EACxB,0BAAsD;IAEtD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACzD,yEAAyE;YACzE,MAAM,OAAO,GAAI,UAAU,CAAC,GAAiB,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,YAAY,CAAC,mCAAmC,CAAC,CAAC;gBAClD,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,CAAC;YAED,kDAAkD;YAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;YACjC,uCAAuC;YACvC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,OAAO,KAAK,CAAC,CAAC;YAC7D,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAkB,CAAC;gBAC/E,OAAO,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,qBAAqB,OAAO,4CAA4C,CAAC,CAAC;gBACzF,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,uCAAuC,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACnE,YAAY,CAAC,aAAc,UAAU,CAAC,GAAiB,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,gCAAgC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,iHAAiH;IACjH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IAC1D,oCAAoC;IACpC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,UAAwB,CAAC,EAAE,CAAC;QAChE,YAAY,CACV,wBAAwB,UAAU,wBAAwB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAED,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACzC,0BAA0B,EAAE,CAAC;IAC7B,cAAc,CAAC,wDAAwD,kBAAkB,KAAK,CAAC,CAAC;IAEhG,WAAW,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,UAAU,KAAK,CAAC,CAAC;IAChE,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,cAAc,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,wBAAwB,CAAC,2BAA2B,CAAC,CAAC;IAEzE;;;;OAIG;IACH,MAAM,kBAAkB,GAAG;;;;2EAI8C,kBAAkB;;qBAExE,kBAAkB;CACtC,CAAC;IAEA;;;;OAIG;IACH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;CAexB,CAAC;IAEA,gCAAgC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACrE,gCAAgC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,aAAiC,EACjC,0BAAsD;IAEtD,MAAM,MAAM,GAAG,aAA0B,CAAC;IAC1C,MAAM,YAAY,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,MAAM;QACT,QAAQ,EAAE,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE;KACtE,CAAC;IAEF,IAAI,0BAA0B,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAChE,CAAC;IAED,yCAAyC;IACzC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,MAAoB,EACpB,GAAkB,EAClB,0BAAsD;IAEtD,OAAO,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -9,12 +9,10 @@ import { StatusUpdateCallback } from '#src/core/GthLangChainAgent.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare class GthAgentRunner {
|
|
11
11
|
private statusUpdate;
|
|
12
|
-
private verbose;
|
|
13
12
|
private agent;
|
|
14
13
|
private config;
|
|
15
14
|
private runConfig;
|
|
16
15
|
constructor(statusUpdate: StatusUpdateCallback);
|
|
17
|
-
setVerbose(verbose: boolean): void;
|
|
18
16
|
/**
|
|
19
17
|
* Init is split into a separate method. This may create a number of connections,
|
|
20
18
|
* and we'd better have an instance by that moment, for the case things will go wrong,
|
|
@@ -8,16 +8,12 @@ import { initDebugLogging, debugLog, debugLogError, debugLogObject } from '#src/
|
|
|
8
8
|
*/
|
|
9
9
|
export class GthAgentRunner {
|
|
10
10
|
statusUpdate;
|
|
11
|
-
verbose = false;
|
|
12
11
|
agent = null;
|
|
13
12
|
config = null;
|
|
14
13
|
runConfig = null;
|
|
15
14
|
constructor(statusUpdate) {
|
|
16
15
|
this.statusUpdate = statusUpdate;
|
|
17
16
|
}
|
|
18
|
-
setVerbose(verbose) {
|
|
19
|
-
this.verbose = verbose;
|
|
20
|
-
}
|
|
21
17
|
/**
|
|
22
18
|
* Init is split into a separate method. This may create a number of connections,
|
|
23
19
|
* and we'd better have an instance by that moment, for the case things will go wrong,
|
|
@@ -35,10 +31,6 @@ export class GthAgentRunner {
|
|
|
35
31
|
this.agent = this.config.hooks?.createAgent
|
|
36
32
|
? await this.config.hooks?.createAgent(this.config)
|
|
37
33
|
: new GthLangChainAgent(this.statusUpdate);
|
|
38
|
-
// Set verbose mode before initialization so it can be used during init
|
|
39
|
-
if (this.verbose) {
|
|
40
|
-
this.agent.setVerbose(this.verbose);
|
|
41
|
-
}
|
|
42
34
|
// Call before init hook
|
|
43
35
|
debugLog('Executing beforeAgentInit hooks...');
|
|
44
36
|
await executeHooks(this.config.hooks?.beforeAgentInit, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GthAgentRunner.js","sourceRoot":"","sources":["../../src/core/GthAgentRunner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,gCAAgC,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/F;;;GAGG;AACH,MAAM,OAAO,cAAc;IACjB,YAAY,CAAuB;IACnC,
|
|
1
|
+
{"version":3,"file":"GthAgentRunner.js","sourceRoot":"","sources":["../../src/core/GthAgentRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,10 @@ import type { Message } from '#src/modules/types.js';
|
|
|
9
9
|
export type StatusUpdateCallback = (level: StatusLevel, message: string) => void;
|
|
10
10
|
export declare class GthLangChainAgent implements GthAgentInterface {
|
|
11
11
|
private statusUpdate;
|
|
12
|
-
private verbose;
|
|
13
12
|
private mcpClient;
|
|
14
13
|
private agent;
|
|
15
14
|
private config;
|
|
16
15
|
constructor(statusUpdate: StatusUpdateCallback);
|
|
17
|
-
setVerbose(verbose: boolean): void;
|
|
18
16
|
init(command: GthCommand | undefined, configIn: GthConfig, checkpointSaver?: BaseCheckpointSaver | undefined): Promise<void>;
|
|
19
17
|
/**
|
|
20
18
|
* Invoke LLM with a message and runnable config.
|
|
@@ -9,7 +9,6 @@ import { IterableReadableStream } from '@langchain/core/utils/stream';
|
|
|
9
9
|
import { debugLog, debugLogError, debugLogObject } from '#src/debugUtils.js';
|
|
10
10
|
export class GthLangChainAgent {
|
|
11
11
|
statusUpdate;
|
|
12
|
-
verbose = false;
|
|
13
12
|
mcpClient = null;
|
|
14
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
14
|
agent = null;
|
|
@@ -19,16 +18,8 @@ export class GthLangChainAgent {
|
|
|
19
18
|
statusUpdate(level, message);
|
|
20
19
|
};
|
|
21
20
|
}
|
|
22
|
-
setVerbose(verbose) {
|
|
23
|
-
this.verbose = verbose;
|
|
24
|
-
}
|
|
25
21
|
async init(command, configIn, checkpointSaver) {
|
|
26
22
|
debugLog(`GthLangChainAgent.init called with command: ${command || 'default'}`);
|
|
27
|
-
// Set verbose mode on LLM
|
|
28
|
-
if (this.verbose) {
|
|
29
|
-
configIn.llm.verbose = true;
|
|
30
|
-
debugLog('Verbose mode enabled on LLM');
|
|
31
|
-
}
|
|
32
23
|
// Merge command-specific filesystem config if provided
|
|
33
24
|
this.config = this.getEffectiveConfig(configIn, command);
|
|
34
25
|
debugLogObject('Effective Config', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GthLangChainAgent.js","sourceRoot":"","sources":["../../src/core/GthLangChainAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAA4B,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAI7E,MAAM,OAAO,iBAAiB;IACpB,YAAY,CAAuB;IACnC,
|
|
1
|
+
{"version":3,"file":"GthLangChainAgent.js","sourceRoot":"","sources":["../../src/core/GthLangChainAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -9,5 +9,4 @@ export interface GthAgentInterface {
|
|
|
9
9
|
init(command: GthCommand | undefined, configIn: GthConfig, checkpointSaver?: BaseCheckpointSaver | undefined): Promise<void>;
|
|
10
10
|
invoke(messages: Message[], runConfig: RunnableConfig): Promise<string>;
|
|
11
11
|
stream(messages: Message[], runConfig: RunnableConfig): Promise<IterableReadableStream<string>>;
|
|
12
|
-
setVerbose(verbose: boolean): void;
|
|
13
12
|
}
|
package/dist/llmUtils.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { RunnableConfig } from '@langchain/core/runnables';
|
|
|
5
5
|
* @deprecated prefer using src/core/GthAgentRunner.ts directly
|
|
6
6
|
*/
|
|
7
7
|
export declare function invoke(command: 'ask' | 'pr' | 'review' | 'chat' | 'code' | undefined, messages: Message[], config: GthConfig): Promise<string>;
|
|
8
|
-
export declare function setVerbose(debug: boolean): void;
|
|
9
8
|
/**
|
|
10
9
|
* Creates new runnable config.
|
|
11
10
|
* configurable.thread_id is an important part of that because it helps to distinguish different chat sessions.
|
package/dist/llmUtils.js
CHANGED
|
@@ -2,9 +2,6 @@ import { display, displayError, displayInfo, displayWarning } from '#src/console
|
|
|
2
2
|
import { stdout } from '#src/systemUtils.js';
|
|
3
3
|
import { GthAgentRunner } from '#src/core/GthAgentRunner.js';
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
|
-
const llmGlobalSettings = {
|
|
6
|
-
verbose: false,
|
|
7
|
-
};
|
|
8
5
|
/**
|
|
9
6
|
* @deprecated prefer using src/core/GthAgentRunner.ts directly
|
|
10
7
|
*/
|
|
@@ -32,7 +29,6 @@ export async function invoke(command, messages, config) {
|
|
|
32
29
|
}
|
|
33
30
|
};
|
|
34
31
|
const runner = new GthAgentRunner(statusUpdate);
|
|
35
|
-
runner.setVerbose(llmGlobalSettings.verbose);
|
|
36
32
|
try {
|
|
37
33
|
await runner.init(command, config);
|
|
38
34
|
return await runner.processMessages(messages);
|
|
@@ -41,10 +37,6 @@ export async function invoke(command, messages, config) {
|
|
|
41
37
|
await runner.cleanup();
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
|
-
// TODO make sure that it still works after refactoring
|
|
45
|
-
export function setVerbose(debug) {
|
|
46
|
-
llmGlobalSettings.verbose = debug;
|
|
47
|
-
}
|
|
48
40
|
/**
|
|
49
41
|
* Creates new runnable config.
|
|
50
42
|
* configurable.thread_id is an important part of that because it helps to distinguish different chat sessions.
|
package/dist/llmUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmUtils.js","sourceRoot":"","sources":["../src/llmUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC
|
|
1
|
+
{"version":3,"file":"llmUtils.js","sourceRoot":"","sources":["../src/llmUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAA8D,EAC9D,QAAmB,EACnB,MAAiB;IAEjB,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,OAAe,EAAE,EAAE;QAC3D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjB,MAAM;YACR,KAAK,MAAM;gBACT,WAAW,CAAC,OAAO,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,SAAS;gBACZ,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC/B,MAAM;YACR;gBACE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjB,MAAM;QACV,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,cAAc,EAAE,GAAG;QACnB,YAAY,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CommandLineConfigOverrides } from '#src/config.js';
|
|
1
2
|
export interface SessionConfig {
|
|
2
3
|
mode: 'chat' | 'code';
|
|
3
4
|
readModePrompt: () => string | null;
|
|
@@ -5,4 +6,4 @@ export interface SessionConfig {
|
|
|
5
6
|
readyMessage: string;
|
|
6
7
|
exitMessage: string;
|
|
7
8
|
}
|
|
8
|
-
export declare function createInteractiveSession(sessionConfig: SessionConfig, message?: string): Promise<void>;
|
|
9
|
+
export declare function createInteractiveSession(sessionConfig: SessionConfig, commandLineConfigOverrides: CommandLineConfigOverrides, message?: string): Promise<void>;
|
|
@@ -7,8 +7,8 @@ import { getGslothFilePath } from '#src/filePathUtils.js';
|
|
|
7
7
|
import { appendToFile, generateStandardFileName } from '#src/utils.js';
|
|
8
8
|
import { readBackstory, readGuidelines, readSystemPrompt } from '#src/prompt.js';
|
|
9
9
|
import { GthAgentRunner } from '#src/core/GthAgentRunner.js';
|
|
10
|
-
export async function createInteractiveSession(sessionConfig, message) {
|
|
11
|
-
const config = { ...(await initConfig()) };
|
|
10
|
+
export async function createInteractiveSession(sessionConfig, commandLineConfigOverrides, message) {
|
|
11
|
+
const config = { ...(await initConfig(commandLineConfigOverrides)) };
|
|
12
12
|
const checkpointSaver = new MemorySaver();
|
|
13
13
|
// Initialize Runner
|
|
14
14
|
const runner = new GthAgentRunner(defaultStatusCallbacks);
|
|
@@ -53,16 +53,16 @@ export async function createInteractiveSession(sessionConfig, message) {
|
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
let shouldRetry = false;
|
|
56
|
-
let currentInput = userInput;
|
|
57
56
|
do {
|
|
58
57
|
try {
|
|
59
|
-
await processMessage(
|
|
58
|
+
await processMessage(userInput);
|
|
60
59
|
shouldRetry = false;
|
|
61
60
|
}
|
|
62
61
|
catch (err) {
|
|
63
62
|
display(`\n❌ Error processing message: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
64
63
|
const retryResponse = await rl.question('Do you want to try again with the same prompt? (y/n): ');
|
|
65
64
|
shouldRetry = retryResponse.toLowerCase().trim().startsWith('y');
|
|
65
|
+
isFirstMessage = false; // To make sure we don't resend system prompt if the first message failed
|
|
66
66
|
if (!shouldRetry) {
|
|
67
67
|
display('\nSkipping to next prompt...');
|
|
68
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,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;AAC7B,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,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAU7D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,aAA4B,EAC5B,0BAAsD,EACtD,OAAgB;IAEhB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,WAAW,GAAG,iBAAiB,CACnC,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC3D,CAAC;QAEF,WAAW,CAAC,GAAG,aAAa,CAAC,IAAI,8BAA8B,WAAW,IAAI,CAAC,CAAC;QAEhF,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAkB,EAAE,CAAC;YACnC,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtF,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;gBAClD,IAAI,UAAU,EAAE,CAAC;oBACf,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;gBACxC,IAAI,YAAY,EAAE,CAAC;oBACjB,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvC,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE1D,MAAM,QAAQ,GAAG,cAAc,SAAS,uBAAuB,UAAU,MAAM,CAAC;YAChF,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEpC,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,OAAO,CAAC,UAAU,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;oBACtB,SAAS,CAAC,6BAA6B;gBACzC,CAAC;gBACD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;oBACpD,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;oBACvB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,IAAI,WAAW,GAAG,KAAK,CAAC;gBAExB,GAAG,CAAC;oBACF,IAAI,CAAC;wBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;wBAChC,WAAW,GAAG,KAAK,CAAC;oBACtB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CACL,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACtF,CAAC;wBACF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CACrC,wDAAwD,CACzD,CAAC;wBACF,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACjE,cAAc,GAAG,KAAK,CAAC,CAAC,yEAAyE;wBAEjG,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,OAAO,CAAC,8BAA8B,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;gBACH,CAAC,QAAQ,WAAW,IAAI,CAAC,UAAU,EAAE;gBAErC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChB,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACpC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,MAAM,WAAW,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,CAAC,YAAY,aAAa,CAAC,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|