gaunt-sloth-assistant 0.6.1 → 0.6.2
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/.gsloth.backstory.md +0 -0
- package/.gsloth.chat.md +0 -0
- package/.gsloth.code.md +0 -0
- package/.gsloth.guidelines.md +0 -0
- package/.gsloth.review.md +0 -0
- package/.gsloth.system.md +0 -0
- package/.prettierrc.json +0 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/assets/gaunt-sloth-logo.png +0 -0
- package/assets/release-notes/v0_4_0.md +0 -0
- package/assets/release-notes/v0_5_0.md +0 -0
- package/assets/release-notes/v0_5_1.md +0 -0
- package/assets/release-notes/v0_5_2.md +0 -0
- package/assets/release-notes/v0_5_3.md +0 -0
- package/assets/release-notes/v0_6_0.md +0 -0
- package/assets/release-notes/v0_6_2.md +4 -0
- package/dist/commands/askCommand.d.ts +0 -0
- package/dist/commands/askCommand.js +0 -0
- package/dist/commands/askCommand.js.map +0 -0
- package/dist/commands/chatCommand.d.ts +0 -0
- package/dist/commands/chatCommand.js +10 -79
- package/dist/commands/chatCommand.js.map +1 -1
- package/dist/commands/codeCommand.d.ts +0 -4
- package/dist/commands/codeCommand.js +10 -83
- package/dist/commands/codeCommand.js.map +1 -1
- package/dist/commands/commandUtils.d.ts +0 -0
- package/dist/commands/commandUtils.js +0 -0
- package/dist/commands/commandUtils.js.map +0 -0
- package/dist/commands/initCommand.d.ts +0 -0
- package/dist/commands/initCommand.js +0 -0
- package/dist/commands/initCommand.js.map +0 -0
- package/dist/commands/prCommand.d.ts +0 -0
- package/dist/commands/prCommand.js +0 -0
- package/dist/commands/prCommand.js.map +0 -0
- package/dist/commands/reviewCommand.d.ts +0 -0
- package/dist/commands/reviewCommand.js +0 -0
- package/dist/commands/reviewCommand.js.map +0 -0
- package/dist/config.d.ts +0 -0
- package/dist/config.js +0 -0
- package/dist/config.js.map +0 -0
- package/dist/configs/anthropic.d.ts +0 -0
- package/dist/configs/anthropic.js +0 -0
- package/dist/configs/anthropic.js.map +0 -0
- package/dist/configs/fake.d.ts +0 -0
- package/dist/configs/fake.js +0 -0
- package/dist/configs/fake.js.map +0 -0
- package/dist/configs/groq.d.ts +0 -0
- package/dist/configs/groq.js +0 -0
- package/dist/configs/groq.js.map +0 -0
- package/dist/configs/vertexai.d.ts +0 -0
- package/dist/configs/vertexai.js +0 -0
- package/dist/configs/vertexai.js.map +0 -0
- package/dist/consoleUtils.d.ts +2 -0
- package/dist/consoleUtils.js +26 -0
- package/dist/consoleUtils.js.map +1 -1
- package/dist/constants.d.ts +0 -0
- package/dist/constants.js +0 -0
- package/dist/constants.js.map +0 -0
- package/dist/core/Invocation.d.ts +22 -0
- package/dist/core/Invocation.js +155 -0
- package/dist/core/Invocation.js.map +1 -0
- package/dist/core/types.d.ts +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/filePathUtils.d.ts +0 -0
- package/dist/filePathUtils.js +0 -0
- package/dist/filePathUtils.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js.map +0 -0
- package/dist/llmUtils.d.ts +0 -0
- package/dist/llmUtils.js +28 -124
- package/dist/llmUtils.js.map +1 -1
- package/dist/modules/interactiveSessionModule.d.ts +8 -0
- package/dist/modules/interactiveSessionModule.js +82 -0
- package/dist/modules/interactiveSessionModule.js.map +1 -0
- package/dist/modules/questionAnsweringModule.d.ts +0 -0
- package/dist/modules/questionAnsweringModule.js +0 -0
- package/dist/modules/questionAnsweringModule.js.map +0 -0
- package/dist/modules/reviewModule.d.ts +0 -0
- package/dist/modules/reviewModule.js +0 -0
- package/dist/modules/reviewModule.js.map +0 -0
- package/dist/modules/types.d.ts +0 -0
- package/dist/modules/types.js +0 -0
- package/dist/modules/types.js.map +0 -0
- package/dist/prompt.d.ts +0 -0
- package/dist/prompt.js +0 -0
- package/dist/prompt.js.map +0 -0
- package/dist/providers/file.d.ts +0 -0
- package/dist/providers/file.js +0 -0
- package/dist/providers/file.js.map +0 -0
- package/dist/providers/ghIssueProvider.d.ts +0 -0
- package/dist/providers/ghIssueProvider.js +0 -0
- package/dist/providers/ghIssueProvider.js.map +0 -0
- package/dist/providers/ghPrDiffProvider.d.ts +0 -0
- package/dist/providers/ghPrDiffProvider.js +0 -0
- package/dist/providers/ghPrDiffProvider.js.map +0 -0
- package/dist/providers/jiraIssueLegacyProvider.d.ts +0 -0
- package/dist/providers/jiraIssueLegacyProvider.js +0 -0
- package/dist/providers/jiraIssueLegacyProvider.js.map +0 -0
- package/dist/providers/jiraIssueProvider.d.ts +0 -0
- package/dist/providers/jiraIssueProvider.js +0 -0
- package/dist/providers/jiraIssueProvider.js.map +0 -0
- package/dist/providers/text.d.ts +0 -0
- package/dist/providers/text.js +0 -0
- package/dist/providers/text.js.map +0 -0
- package/dist/providers/types.d.ts +0 -0
- package/dist/providers/types.js +0 -0
- package/dist/providers/types.js.map +0 -0
- package/dist/systemUtils.d.ts +0 -0
- package/dist/systemUtils.js +0 -0
- package/dist/systemUtils.js.map +0 -0
- package/dist/utils.d.ts +0 -0
- package/dist/utils.js +0 -0
- package/dist/utils.js.map +0 -0
- package/docs/COMMANDS.md +0 -0
- package/docs/CONFIGURATION.md +0 -0
- package/docs/DEVELOPMENT.md +0 -0
- package/docs/RELEASE-HOWTO.md +0 -0
- package/eslint.config.js +0 -0
- package/maintenance/doc-maintenance.md +0 -0
- package/package.json +1 -1
- package/req/70-refactor-to-facilitate-imports.md +46 -0
- package/req/70a-extract-invocation.md +26 -0
- package/src/commands/askCommand.ts +0 -0
- package/src/commands/chatCommand.ts +11 -90
- package/src/commands/codeCommand.ts +12 -94
- package/src/commands/commandUtils.ts +0 -0
- package/src/commands/initCommand.ts +0 -0
- package/src/commands/prCommand.ts +0 -0
- package/src/commands/reviewCommand.ts +0 -0
- package/src/config.ts +0 -0
- package/src/configs/anthropic.ts +0 -0
- package/src/configs/fake.ts +0 -0
- package/src/configs/groq.ts +0 -0
- package/src/configs/vertexai.ts +0 -0
- package/src/consoleUtils.ts +32 -0
- package/src/constants.ts +0 -0
- package/src/core/Invocation.ts +198 -0
- package/src/core/types.ts +1 -0
- package/src/filePathUtils.ts +0 -0
- package/src/index.ts +0 -0
- package/src/llmUtils.ts +29 -142
- package/src/modules/interactiveSessionModule.ts +104 -0
- package/src/modules/questionAnsweringModule.ts +0 -0
- package/src/modules/reviewModule.ts +0 -0
- package/src/modules/types.ts +0 -0
- package/src/prompt.ts +0 -0
- package/src/providers/file.ts +0 -0
- package/src/providers/ghIssueProvider.ts +0 -0
- package/src/providers/ghPrDiffProvider.ts +0 -0
- package/src/providers/jiraIssueLegacyProvider.ts +0 -0
- package/src/providers/jiraIssueProvider.ts +0 -0
- package/src/providers/text.ts +0 -0
- package/src/providers/types.ts +0 -0
- package/src/systemUtils.ts +0 -0
- package/src/utils.ts +0 -0
- package/tsconfig.json +0 -0
- package/vitest-it.config.ts +0 -0
- package/vitest.config.ts +0 -0
package/.gsloth.backstory.md
CHANGED
|
File without changes
|
package/.gsloth.chat.md
CHANGED
|
File without changes
|
package/.gsloth.code.md
CHANGED
|
File without changes
|
package/.gsloth.guidelines.md
CHANGED
|
File without changes
|
package/.gsloth.review.md
CHANGED
|
File without changes
|
package/.gsloth.system.md
CHANGED
|
File without changes
|
package/.prettierrc.json
CHANGED
|
File without changes
|
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,88 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { invoke } from '#src/llmUtils.js';
|
|
4
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import { MemorySaver } from '@langchain/langgraph';
|
|
7
|
-
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
8
|
-
import { createInterface, error, exit, stdin as input, stdout as output, } from '#src/systemUtils.js';
|
|
9
|
-
import { getGslothFilePath } from '#src/filePathUtils.js';
|
|
10
|
-
import { generateStandardFileName, appendToFile } from '#src/utils.js';
|
|
11
|
-
import { readBackstory, readGuidelines, readSystemPrompt, readChatPrompt } from '#src/prompt.js';
|
|
1
|
+
import { createInteractiveSession } from '#src/modules/interactiveSessionModule.js';
|
|
2
|
+
import { readChatPrompt } from '#src/prompt.js';
|
|
12
3
|
export function chatCommand(program) {
|
|
13
4
|
program
|
|
14
5
|
.command('chat')
|
|
15
6
|
.description('Start an interactive chat session with Gaunt Sloth')
|
|
16
7
|
.argument('[message]', 'Initial message to start the chat')
|
|
17
8
|
.action(async (message) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const chatLogFileName = getGslothFilePath(generateStandardFileName('CHAT'));
|
|
27
|
-
display(chalk.gray(`Chat session will be logged to ${chatLogFileName}\n`));
|
|
28
|
-
const processMessage = async (userInput) => {
|
|
29
|
-
const messages = [];
|
|
30
|
-
if (isFirstMessage) {
|
|
31
|
-
const systemPromptParts = [readBackstory(), readGuidelines(config.projectGuidelines)];
|
|
32
|
-
const chatPrompt = readChatPrompt();
|
|
33
|
-
if (chatPrompt) {
|
|
34
|
-
systemPromptParts.push(chatPrompt);
|
|
35
|
-
}
|
|
36
|
-
const systemPrompt = readSystemPrompt();
|
|
37
|
-
if (systemPrompt) {
|
|
38
|
-
systemPromptParts.push(systemPrompt);
|
|
39
|
-
}
|
|
40
|
-
messages.push(new SystemMessage(systemPromptParts.join('\n')));
|
|
41
|
-
}
|
|
42
|
-
messages.push(new HumanMessage(userInput));
|
|
43
|
-
const runConfig = {
|
|
44
|
-
configurable: { thread_id },
|
|
45
|
-
};
|
|
46
|
-
const aiResponse = await invoke('chat', messages, config, runConfig, checkpointSaver);
|
|
47
|
-
const logEntry = `## User\n\n${userInput}\n\n## Assistant\n\n${aiResponse}\n\n`;
|
|
48
|
-
appendToFile(chatLogFileName, logEntry);
|
|
49
|
-
isFirstMessage = false;
|
|
50
|
-
};
|
|
51
|
-
const askQuestion = () => {
|
|
52
|
-
rl.question(chalk.magenta(' > '), async (userInput) => {
|
|
53
|
-
if (userInput.toLowerCase() === 'exit') {
|
|
54
|
-
rl.close();
|
|
55
|
-
shouldExit = true;
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (isFirstMessage && !userInput.trim()) {
|
|
59
|
-
rl.close();
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (!userInput.trim()) {
|
|
63
|
-
rl.close();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
await processMessage(userInput);
|
|
67
|
-
display(chalk.gray("Type 'exit' or hit Ctrl+C to exit chat\n"));
|
|
68
|
-
if (!shouldExit)
|
|
69
|
-
askQuestion();
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
if (message) {
|
|
73
|
-
await processMessage(message);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
display('\nGaunt Sloth is ready to chat. Type your prompt.');
|
|
77
|
-
display(chalk.gray("Type 'exit' or hit Ctrl+C to exit chat\n"));
|
|
78
|
-
}
|
|
79
|
-
if (!shouldExit)
|
|
80
|
-
askQuestion();
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
error(`Error in chat command: ${err}`);
|
|
84
|
-
exit(1);
|
|
85
|
-
}
|
|
9
|
+
const sessionConfig = {
|
|
10
|
+
mode: 'chat',
|
|
11
|
+
readModePrompt: readChatPrompt,
|
|
12
|
+
description: 'Start an interactive chat session with Gaunt Sloth',
|
|
13
|
+
readyMessage: '\nGaunt Sloth is ready to chat. Type your prompt.',
|
|
14
|
+
exitMessage: "Type 'exit' or hit Ctrl+C to exit chat\n",
|
|
15
|
+
};
|
|
16
|
+
await createInteractiveSession(sessionConfig, message);
|
|
86
17
|
});
|
|
87
18
|
}
|
|
88
19
|
//# sourceMappingURL=chatCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../src/commands/chatCommand.ts"],"names":[],"mappings":"
|
|
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;AAEhD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,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,aAAa,GAAkB;YACnC,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,cAAc;YAC9B,WAAW,EAAE,oDAAoD;YACjE,YAAY,EAAE,mDAAmD;YACjE,WAAW,EAAE,0CAA0C;SACxD,CAAC;QAEF,MAAM,wBAAwB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,92 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { invoke } from '#src/llmUtils.js';
|
|
4
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import { MemorySaver } from '@langchain/langgraph';
|
|
7
|
-
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
8
|
-
import { createInterface, error, exit, stdin as input, stdout as output, } from '#src/systemUtils.js';
|
|
9
|
-
import { getGslothFilePath } from '#src/filePathUtils.js';
|
|
10
|
-
import { generateStandardFileName, appendToFile } from '#src/utils.js';
|
|
11
|
-
import { readBackstory, readGuidelines, readSystemPrompt, readCodePrompt } from '#src/prompt.js';
|
|
12
|
-
/**
|
|
13
|
-
* Adds the code command to the program
|
|
14
|
-
* @param program - The commander program
|
|
15
|
-
*/
|
|
1
|
+
import { createInteractiveSession } from '../modules/interactiveSessionModule.js';
|
|
2
|
+
import { readCodePrompt } from '#src/prompt.js';
|
|
16
3
|
export function codeCommand(program) {
|
|
17
4
|
program
|
|
18
5
|
.command('code')
|
|
19
6
|
.description('Interactively write code with sloth (has full file system access within your project)')
|
|
20
7
|
.argument('[message]', 'Initial message to start the code session')
|
|
21
8
|
.action(async (message) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const codeLogFileName = getGslothFilePath(generateStandardFileName('CODE'));
|
|
31
|
-
display(chalk.gray(`Code session will be logged to ${codeLogFileName}\n`));
|
|
32
|
-
const processMessage = async (userInput) => {
|
|
33
|
-
const messages = [];
|
|
34
|
-
if (isFirstMessage) {
|
|
35
|
-
const systemPromptParts = [readBackstory(), readGuidelines(config.projectGuidelines)];
|
|
36
|
-
const codePrompt = readCodePrompt();
|
|
37
|
-
if (codePrompt) {
|
|
38
|
-
systemPromptParts.push(codePrompt);
|
|
39
|
-
}
|
|
40
|
-
const systemPrompt = readSystemPrompt();
|
|
41
|
-
if (systemPrompt) {
|
|
42
|
-
systemPromptParts.push(systemPrompt);
|
|
43
|
-
}
|
|
44
|
-
messages.push(new SystemMessage(systemPromptParts.join('\n')));
|
|
45
|
-
}
|
|
46
|
-
messages.push(new HumanMessage(userInput));
|
|
47
|
-
const runConfig = {
|
|
48
|
-
configurable: { thread_id },
|
|
49
|
-
};
|
|
50
|
-
const aiResponse = await invoke('code', messages, config, runConfig, checkpointSaver);
|
|
51
|
-
const logEntry = `## User\n\n${userInput}\n\n## Assistant\n\n${aiResponse}\n\n`;
|
|
52
|
-
appendToFile(codeLogFileName, logEntry);
|
|
53
|
-
isFirstMessage = false;
|
|
54
|
-
};
|
|
55
|
-
const askQuestion = () => {
|
|
56
|
-
rl.question(chalk.magenta(' > '), async (userInput) => {
|
|
57
|
-
if (userInput.toLowerCase() === 'exit') {
|
|
58
|
-
rl.close();
|
|
59
|
-
shouldExit = true;
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (isFirstMessage && !userInput.trim()) {
|
|
63
|
-
rl.close();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (!userInput.trim()) {
|
|
67
|
-
rl.close();
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
await processMessage(userInput);
|
|
71
|
-
display(chalk.gray("Type 'exit' or hit Ctrl+C to exit code session\n"));
|
|
72
|
-
if (!shouldExit)
|
|
73
|
-
askQuestion();
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
if (message) {
|
|
77
|
-
await processMessage(message);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
display('\nGaunt Sloth is ready to code. Type your prompt.');
|
|
81
|
-
display(chalk.gray("Type 'exit' or hit Ctrl+C to exit code session\n"));
|
|
82
|
-
}
|
|
83
|
-
if (!shouldExit)
|
|
84
|
-
askQuestion();
|
|
85
|
-
}
|
|
86
|
-
catch (err) {
|
|
87
|
-
error(`Error in code command: ${err}`);
|
|
88
|
-
exit(1);
|
|
89
|
-
}
|
|
9
|
+
const sessionConfig = {
|
|
10
|
+
mode: 'code',
|
|
11
|
+
readModePrompt: readCodePrompt,
|
|
12
|
+
description: 'Interactively write code with sloth (has full file system access within your project)',
|
|
13
|
+
readyMessage: '\nGaunt Sloth is ready to code. Type your prompt.',
|
|
14
|
+
exitMessage: "Type 'exit' or hit Ctrl+C to exit code session\n",
|
|
15
|
+
};
|
|
16
|
+
await createInteractiveSession(sessionConfig, message);
|
|
90
17
|
});
|
|
91
18
|
}
|
|
92
19
|
//# sourceMappingURL=codeCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeCommand.js","sourceRoot":"","sources":["../../src/commands/codeCommand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codeCommand.js","sourceRoot":"","sources":["../../src/commands/codeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,wCAAwC,CAAC;AACjG,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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/config.d.ts
CHANGED
|
File without changes
|
package/dist/config.js
CHANGED
|
File without changes
|
package/dist/config.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/configs/fake.d.ts
CHANGED
|
File without changes
|
package/dist/configs/fake.js
CHANGED
|
File without changes
|
package/dist/configs/fake.js.map
CHANGED
|
File without changes
|
package/dist/configs/groq.d.ts
CHANGED
|
File without changes
|
package/dist/configs/groq.js
CHANGED
|
File without changes
|
package/dist/configs/groq.js.map
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/configs/vertexai.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/consoleUtils.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { StatusUpdateCallback } from '#src/core/Invocation.js';
|
|
1
2
|
export declare function displayError(message: string): void;
|
|
2
3
|
export declare function displayWarning(message: string): void;
|
|
3
4
|
export declare function displaySuccess(message: string): void;
|
|
4
5
|
export declare function displayInfo(message: string): void;
|
|
5
6
|
export declare function display(message: string): void;
|
|
6
7
|
export declare function displayDebug(message: string | Error | undefined): void;
|
|
8
|
+
export declare const defaultStatusCallbacks: StatusUpdateCallback;
|
package/dist/consoleUtils.js
CHANGED
|
@@ -25,4 +25,30 @@ export function displayDebug(message) {
|
|
|
25
25
|
systemDebug(message);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
// Create status update callback
|
|
29
|
+
export const defaultStatusCallbacks = (level, message) => {
|
|
30
|
+
switch (level) {
|
|
31
|
+
case 'info':
|
|
32
|
+
displayInfo(message);
|
|
33
|
+
break;
|
|
34
|
+
case 'warning':
|
|
35
|
+
displayWarning(message);
|
|
36
|
+
break;
|
|
37
|
+
case 'error':
|
|
38
|
+
displayError(message);
|
|
39
|
+
break;
|
|
40
|
+
case 'success':
|
|
41
|
+
displaySuccess(message);
|
|
42
|
+
break;
|
|
43
|
+
case 'debug':
|
|
44
|
+
displayDebug(message);
|
|
45
|
+
break;
|
|
46
|
+
case 'display':
|
|
47
|
+
display(message);
|
|
48
|
+
break;
|
|
49
|
+
case 'stream':
|
|
50
|
+
process.stdout.write(message);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
28
54
|
//# sourceMappingURL=consoleUtils.js.map
|
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;
|
|
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,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,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"}
|
package/dist/constants.d.ts
CHANGED
|
File without changes
|
package/dist/constants.js
CHANGED
|
File without changes
|
package/dist/constants.js.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Message } from '#src/modules/types.js';
|
|
2
|
+
import { SlothConfig } from '#src/config.js';
|
|
3
|
+
import { MultiServerMCPClient } from '@langchain/mcp-adapters';
|
|
4
|
+
import { BaseCheckpointSaver } from '@langchain/langgraph';
|
|
5
|
+
import type { StructuredToolInterface } from '@langchain/core/tools';
|
|
6
|
+
import { type RunnableConfig } from '@langchain/core/runnables';
|
|
7
|
+
import { StatusLevel } from '#src/core/types.js';
|
|
8
|
+
export type StatusUpdateCallback = (level: StatusLevel, message: string) => void;
|
|
9
|
+
export declare class Invocation {
|
|
10
|
+
private statusUpdate;
|
|
11
|
+
private verbose;
|
|
12
|
+
private mcpClient;
|
|
13
|
+
private agent;
|
|
14
|
+
private config;
|
|
15
|
+
constructor(statusUpdate: StatusUpdateCallback);
|
|
16
|
+
setVerbose(verbose: boolean): void;
|
|
17
|
+
init(command: 'ask' | 'pr' | 'review' | 'chat' | 'code' | undefined, config: SlothConfig, checkpointSaver?: BaseCheckpointSaver | undefined): Promise<void>;
|
|
18
|
+
invoke(messages: Message[], runConfig?: RunnableConfig): Promise<string>;
|
|
19
|
+
cleanup(): Promise<void>;
|
|
20
|
+
protected filterTools(tools: StructuredToolInterface[], filesystemConfig: string[] | 'all' | 'none'): StructuredToolInterface<import("@langchain/core/tools").ToolSchemaBase, any, any>[];
|
|
21
|
+
protected getMcpClient(config: SlothConfig): MultiServerMCPClient | null;
|
|
22
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { isAIMessage } from '@langchain/core/messages';
|
|
2
|
+
import { MultiServerMCPClient } from '@langchain/mcp-adapters';
|
|
3
|
+
import { createReactAgent } from '@langchain/langgraph/prebuilt';
|
|
4
|
+
import { getCurrentDir } from '#src/systemUtils.js';
|
|
5
|
+
import { ProgressIndicator } from '#src/utils.js';
|
|
6
|
+
export class Invocation {
|
|
7
|
+
statusUpdate;
|
|
8
|
+
verbose = false;
|
|
9
|
+
mcpClient = null;
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
agent = null;
|
|
12
|
+
config = null;
|
|
13
|
+
constructor(statusUpdate) {
|
|
14
|
+
this.statusUpdate = statusUpdate;
|
|
15
|
+
}
|
|
16
|
+
setVerbose(verbose) {
|
|
17
|
+
this.verbose = verbose;
|
|
18
|
+
}
|
|
19
|
+
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
|
+
if (this.verbose) {
|
|
28
|
+
config.llm.verbose = true;
|
|
29
|
+
}
|
|
30
|
+
// Merge command-specific filesystem config if provided
|
|
31
|
+
let effectiveConfig = config;
|
|
32
|
+
if (command && config.commands?.[command]?.filesystem !== undefined) {
|
|
33
|
+
effectiveConfig = {
|
|
34
|
+
...config,
|
|
35
|
+
filesystem: config.commands[command].filesystem,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
this.config = effectiveConfig;
|
|
39
|
+
this.mcpClient = this.getMcpClient(effectiveConfig);
|
|
40
|
+
const allTools = (await this.mcpClient?.getTools()) ?? [];
|
|
41
|
+
const tools = this.filterTools(allTools, effectiveConfig.filesystem || 'none');
|
|
42
|
+
if (allTools.length > 0) {
|
|
43
|
+
this.statusUpdate('info', `Loaded ${tools.length} tools.`);
|
|
44
|
+
}
|
|
45
|
+
// Create the React agent
|
|
46
|
+
this.agent = createReactAgent({
|
|
47
|
+
llm: config.llm,
|
|
48
|
+
tools,
|
|
49
|
+
checkpointSaver,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async invoke(messages, runConfig) {
|
|
53
|
+
if (!this.agent || !this.config) {
|
|
54
|
+
throw new Error('Invocation not initialized. Call init() first.');
|
|
55
|
+
}
|
|
56
|
+
// Run the agent
|
|
57
|
+
try {
|
|
58
|
+
this.statusUpdate('stream', `Thinking`);
|
|
59
|
+
const output = { aiMessage: '' };
|
|
60
|
+
if (!this.config.streamOutput) {
|
|
61
|
+
const progress = new ProgressIndicator('.');
|
|
62
|
+
try {
|
|
63
|
+
const response = await this.agent.invoke({ messages }, runConfig);
|
|
64
|
+
output.aiMessage = response.messages[response.messages.length - 1].content;
|
|
65
|
+
const toolNames = response.messages
|
|
66
|
+
.filter((msg) => msg.tool_calls && msg.tool_calls.length > 0)
|
|
67
|
+
.flatMap((msg) => msg.tool_calls?.map((tc) => tc.name)) ?? [];
|
|
68
|
+
if (toolNames.length > 0) {
|
|
69
|
+
this.statusUpdate('info', `\nUsed tools: ${toolNames.join(', ')}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
this.statusUpdate('warning', `Something went wrong ${e.message}`);
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
progress.stop();
|
|
77
|
+
}
|
|
78
|
+
this.statusUpdate('display', output.aiMessage);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const stream = await this.agent.stream({ messages }, { ...runConfig, streamMode: 'messages' });
|
|
82
|
+
for await (const [chunk, _metadata] of stream) {
|
|
83
|
+
if (isAIMessage(chunk)) {
|
|
84
|
+
this.statusUpdate('stream', chunk.content);
|
|
85
|
+
output.aiMessage += chunk.content;
|
|
86
|
+
let toolCalls = chunk.tool_calls;
|
|
87
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
88
|
+
const suffix = toolCalls.length > 1 ? 's' : '';
|
|
89
|
+
const toolCallsString = toolCalls.map((t) => t?.name).join(', ');
|
|
90
|
+
this.statusUpdate('info', `Using tool${suffix} ${toolCallsString}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return output.aiMessage;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (error instanceof Error) {
|
|
99
|
+
if (error?.name === 'ToolException') {
|
|
100
|
+
this.statusUpdate('error', `Tool execution failed: ${error.message}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async cleanup() {
|
|
107
|
+
if (this.mcpClient) {
|
|
108
|
+
await this.mcpClient.close();
|
|
109
|
+
this.mcpClient = null;
|
|
110
|
+
}
|
|
111
|
+
this.agent = null;
|
|
112
|
+
this.config = null;
|
|
113
|
+
}
|
|
114
|
+
filterTools(tools, filesystemConfig) {
|
|
115
|
+
if (filesystemConfig === 'all' || !Array.isArray(filesystemConfig)) {
|
|
116
|
+
return tools;
|
|
117
|
+
}
|
|
118
|
+
// Create set of allowed tool names with mcp__filesystem__ prefix
|
|
119
|
+
const allowedToolNames = new Set(filesystemConfig.map((shortName) => `mcp__filesystem__${shortName}`));
|
|
120
|
+
return tools.filter((tool) => {
|
|
121
|
+
// Allow non-filesystem tools and only allowed filesystem tools
|
|
122
|
+
return !tool.name.startsWith('mcp__filesystem__') || allowedToolNames.has(tool.name);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
getMcpClient(config) {
|
|
126
|
+
const defaultServers = {};
|
|
127
|
+
// Add filesystem server if configured
|
|
128
|
+
if (config.filesystem && config.filesystem !== 'none') {
|
|
129
|
+
const filesystemConfig = {
|
|
130
|
+
transport: 'stdio',
|
|
131
|
+
command: 'npx',
|
|
132
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', getCurrentDir()],
|
|
133
|
+
};
|
|
134
|
+
defaultServers.filesystem = filesystemConfig;
|
|
135
|
+
}
|
|
136
|
+
// Merge with user's mcpServers
|
|
137
|
+
const mcpServers = { ...defaultServers, ...(config.mcpServers || {}) };
|
|
138
|
+
// If user provided their own filesystem config, it overrides default
|
|
139
|
+
if (config.mcpServers?.filesystem) {
|
|
140
|
+
mcpServers.filesystem = config.mcpServers.filesystem;
|
|
141
|
+
}
|
|
142
|
+
if (Object.keys(mcpServers).length > 0) {
|
|
143
|
+
return new MultiServerMCPClient({
|
|
144
|
+
throwOnLoadError: true,
|
|
145
|
+
prefixToolNameWithServerName: true,
|
|
146
|
+
additionalToolNamePrefix: 'mcp',
|
|
147
|
+
mcpServers,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=Invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Invocation.js","sourceRoot":"","sources":["../../src/core/Invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type StatusLevel = 'info' | 'warning' | 'error' | 'success' | 'debug' | 'display' | 'stream';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|
package/dist/filePathUtils.d.ts
CHANGED
|
File without changes
|
package/dist/filePathUtils.js
CHANGED
|
File without changes
|
|
File without changes
|