gaunt-sloth-assistant 0.5.1 → 0.5.3

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.
Files changed (142) hide show
  1. package/.gsloth.backstory.md +0 -0
  2. package/.gsloth.guidelines.md +0 -0
  3. package/.gsloth.review.md +0 -0
  4. package/.gsloth.system.md +0 -0
  5. package/.prettierrc.json +0 -0
  6. package/LICENSE +0 -0
  7. package/README.md +0 -0
  8. package/assets/gaunt-sloth-logo.png +0 -0
  9. package/assets/release-notes/v0_4_0.md +0 -0
  10. package/assets/release-notes/v0_5_0.md +0 -0
  11. package/assets/release-notes/v0_5_1.md +0 -0
  12. package/assets/release-notes/v0_5_2.md +23 -0
  13. package/assets/release-notes/v0_5_3.md +25 -0
  14. package/dist/commands/askCommand.d.ts +0 -0
  15. package/dist/commands/askCommand.js +0 -0
  16. package/dist/commands/askCommand.js.map +0 -0
  17. package/dist/commands/chatCommand.d.ts +2 -0
  18. package/dist/commands/chatCommand.js +78 -0
  19. package/dist/commands/chatCommand.js.map +1 -0
  20. package/dist/commands/commandUtils.d.ts +0 -0
  21. package/dist/commands/commandUtils.js +0 -0
  22. package/dist/commands/commandUtils.js.map +0 -0
  23. package/dist/commands/initCommand.d.ts +0 -0
  24. package/dist/commands/initCommand.js +0 -0
  25. package/dist/commands/initCommand.js.map +0 -0
  26. package/dist/commands/prCommand.d.ts +0 -0
  27. package/dist/commands/prCommand.js +0 -0
  28. package/dist/commands/prCommand.js.map +0 -0
  29. package/dist/commands/reviewCommand.d.ts +0 -0
  30. package/dist/commands/reviewCommand.js +0 -0
  31. package/dist/commands/reviewCommand.js.map +0 -0
  32. package/dist/config.d.ts +3 -0
  33. package/dist/config.js +0 -0
  34. package/dist/config.js.map +1 -1
  35. package/dist/configs/anthropic.d.ts +0 -0
  36. package/dist/configs/anthropic.js +0 -0
  37. package/dist/configs/anthropic.js.map +0 -0
  38. package/dist/configs/fake.d.ts +0 -0
  39. package/dist/configs/fake.js +0 -0
  40. package/dist/configs/fake.js.map +0 -0
  41. package/dist/configs/groq.d.ts +0 -0
  42. package/dist/configs/groq.js +0 -0
  43. package/dist/configs/groq.js.map +0 -0
  44. package/dist/configs/vertexai.d.ts +0 -0
  45. package/dist/configs/vertexai.js +0 -0
  46. package/dist/configs/vertexai.js.map +0 -0
  47. package/dist/consoleUtils.d.ts +0 -0
  48. package/dist/consoleUtils.js +0 -0
  49. package/dist/consoleUtils.js.map +0 -0
  50. package/dist/constants.d.ts +0 -0
  51. package/dist/constants.js +0 -0
  52. package/dist/constants.js.map +0 -0
  53. package/dist/filePathUtils.d.ts +0 -0
  54. package/dist/filePathUtils.js +0 -0
  55. package/dist/filePathUtils.js.map +0 -0
  56. package/dist/index.d.ts +0 -0
  57. package/dist/index.js +2 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/llmUtils.d.ts +4 -2
  60. package/dist/llmUtils.js +8 -8
  61. package/dist/llmUtils.js.map +1 -1
  62. package/dist/modules/questionAnsweringModule.d.ts +0 -0
  63. package/dist/modules/questionAnsweringModule.js +4 -2
  64. package/dist/modules/questionAnsweringModule.js.map +1 -1
  65. package/dist/modules/reviewModule.d.ts +0 -0
  66. package/dist/modules/reviewModule.js +4 -2
  67. package/dist/modules/reviewModule.js.map +1 -1
  68. package/dist/modules/types.d.ts +0 -0
  69. package/dist/modules/types.js +0 -0
  70. package/dist/modules/types.js.map +0 -0
  71. package/dist/prompt.d.ts +0 -0
  72. package/dist/prompt.js +0 -0
  73. package/dist/prompt.js.map +0 -0
  74. package/dist/providers/file.d.ts +0 -0
  75. package/dist/providers/file.js +0 -0
  76. package/dist/providers/file.js.map +0 -0
  77. package/dist/providers/ghIssueProvider.d.ts +0 -0
  78. package/dist/providers/ghIssueProvider.js +0 -0
  79. package/dist/providers/ghIssueProvider.js.map +0 -0
  80. package/dist/providers/ghPrDiffProvider.d.ts +0 -0
  81. package/dist/providers/ghPrDiffProvider.js +0 -0
  82. package/dist/providers/ghPrDiffProvider.js.map +0 -0
  83. package/dist/providers/jiraIssueLegacyProvider.d.ts +0 -0
  84. package/dist/providers/jiraIssueLegacyProvider.js +0 -0
  85. package/dist/providers/jiraIssueLegacyProvider.js.map +0 -0
  86. package/dist/providers/jiraIssueProvider.d.ts +0 -0
  87. package/dist/providers/jiraIssueProvider.js +0 -0
  88. package/dist/providers/jiraIssueProvider.js.map +0 -0
  89. package/dist/providers/text.d.ts +0 -0
  90. package/dist/providers/text.js +0 -0
  91. package/dist/providers/text.js.map +0 -0
  92. package/dist/providers/types.d.ts +0 -0
  93. package/dist/providers/types.js +0 -0
  94. package/dist/providers/types.js.map +0 -0
  95. package/dist/systemUtils.d.ts +3 -0
  96. package/dist/systemUtils.js +2 -0
  97. package/dist/systemUtils.js.map +1 -1
  98. package/dist/utils.d.ts +1 -0
  99. package/dist/utils.js +13 -1
  100. package/dist/utils.js.map +1 -1
  101. package/docs/CONFIGURATION.md +0 -0
  102. package/docs/DEVELOPMENT.md +0 -0
  103. package/docs/RELEASE-HOWTO.md +0 -0
  104. package/eslint.config.js +0 -0
  105. package/index.js +1 -1
  106. package/maintenance/doc-maintenance.md +0 -0
  107. package/package.json +13 -13
  108. package/src/commands/askCommand.ts +0 -0
  109. package/src/commands/chatCommand.ts +90 -0
  110. package/src/commands/commandUtils.ts +0 -0
  111. package/src/commands/initCommand.ts +0 -0
  112. package/src/commands/prCommand.ts +0 -0
  113. package/src/commands/reviewCommand.ts +0 -0
  114. package/src/config.ts +3 -0
  115. package/src/configs/anthropic.ts +0 -0
  116. package/src/configs/fake.ts +0 -0
  117. package/src/configs/groq.ts +0 -0
  118. package/src/configs/vertexai.ts +0 -0
  119. package/src/consoleUtils.ts +0 -0
  120. package/src/constants.ts +0 -0
  121. package/src/filePathUtils.ts +0 -0
  122. package/src/index.ts +2 -1
  123. package/src/llmUtils.ts +17 -14
  124. package/src/modules/questionAnsweringModule.ts +4 -2
  125. package/src/modules/reviewModule.ts +4 -2
  126. package/src/modules/types.ts +0 -0
  127. package/src/prompt.ts +0 -0
  128. package/src/providers/file.ts +0 -0
  129. package/src/providers/ghIssueProvider.ts +0 -0
  130. package/src/providers/ghPrDiffProvider.ts +0 -0
  131. package/src/providers/jiraIssueLegacyProvider.ts +0 -0
  132. package/src/providers/jiraIssueProvider.ts +0 -0
  133. package/src/providers/text.ts +0 -0
  134. package/src/providers/types.ts +0 -0
  135. package/src/systemUtils.ts +3 -0
  136. package/src/utils.ts +13 -1
  137. package/tsconfig.json +0 -0
  138. package/vitest-it.config.ts +0 -0
  139. package/vitest.config.ts +0 -0
  140. package/.claude/settings.local.json +0 -15
  141. package/CLAUDE.md +0 -1
  142. package/ROADMAP.md +0 -36
File without changes
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
@@ -0,0 +1,23 @@
1
+ # v0.5.2 Interactive Chat Command
2
+
3
+ ## New Features
4
+
5
+ ### Interactive Chat Command
6
+ - Added new `chat` command for interactive conversations with Gaunt Sloth
7
+ - Features:
8
+ - Interactive chat sessions with context memory
9
+ - Chat history saved to `.gsloth/CHAT_<timestamp>.md` files
10
+ - Support for initial message argument or interactive start
11
+ - Clean exit with 'exit' command or Ctrl+C
12
+ - Automatic streaming disabled for better chat experience
13
+
14
+ ## Bug Fixes
15
+
16
+ ### Module Updates
17
+ - Fixed tests for question answering module
18
+ - Fixed review module tests
19
+ - Resolved chat history handling issues
20
+
21
+ ## Other Changes
22
+
23
+ - Removed ROADMAP.md in favor of GitHub issues, milestones, and discussions
@@ -0,0 +1,25 @@
1
+ # v0.5.3 Dependencies
2
+
3
+ ## Overview
4
+ After v0.5.2 releasing new Chat command, this release focuses on dependency updates and minor maintenance improvements.
5
+
6
+ ## Changes
7
+
8
+ ### Dependencies Updated
9
+ - **@langchain/anthropic**: 0.3.21 → 0.3.22
10
+ - **@langchain/core**: 0.3.55 → 0.3.58
11
+ - **@langchain/google-vertexai**: 0.2.8 → 0.2.10
12
+ - **@langchain/groq**: 0.2.2 → 0.2.3
13
+
14
+ ### Development Dependencies Updated
15
+ - **@types/node**: 22.15.30 → 22.15.31
16
+ - **@typescript-eslint/eslint-plugin**: 8.33.1 → 8.34.0
17
+ - **@typescript-eslint/parser**: 8.33.1 → 8.34.0
18
+ - **eslint**: 9.26.0 → 9.28.0
19
+ - **eslint-plugin-prettier**: 5.1.3 → 5.4.1
20
+ - **globals**: 16.1.0 → 16.2.0
21
+ - **typescript**: 5.4.2 → 5.8.3
22
+ - **vitest**: 3.2.2 → 3.2.3
23
+
24
+ ### Security
25
+ - Updated brace-expansion dependency from 1.1.11 to 1.1.12 to address security vulnerability
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function chatCommand(program: Command): void;
@@ -0,0 +1,78 @@
1
+ import { initConfig } from '#src/config.js';
2
+ import { display } from '#src/consoleUtils.js';
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
+ export function chatCommand(program) {
12
+ program
13
+ .command('chat')
14
+ .description('Start an interactive chat session with Gaunt Sloth')
15
+ .argument('[message]', 'Initial message to start the chat')
16
+ .action(async (message) => {
17
+ try {
18
+ // Force streaming Off for chat, it does not play nicely with the input interface
19
+ const config = { ...(await initConfig()), streamOutput: false };
20
+ const checkpointSaver = new MemorySaver();
21
+ const rl = createInterface({ input, output });
22
+ let isFirstMessage = true;
23
+ let shouldExit = false;
24
+ const thread_id = uuidv4();
25
+ const chatLogFileName = getGslothFilePath(generateStandardFileName('CHAT'));
26
+ display(chalk.gray(`Chat session will be logged to ${chatLogFileName}\n`));
27
+ const processMessage = async (userInput) => {
28
+ const messages = [];
29
+ if (isFirstMessage) {
30
+ messages.push(new SystemMessage('You are a helpful AI assistant.'));
31
+ }
32
+ messages.push(new HumanMessage(userInput));
33
+ const runConfig = {
34
+ configurable: { thread_id },
35
+ };
36
+ const aiResponse = await invoke('chat', messages, config, runConfig, checkpointSaver);
37
+ const logEntry = `## User\n\n${userInput}\n\n## Assistant\n\n${aiResponse}\n\n`;
38
+ appendToFile(chatLogFileName, logEntry);
39
+ isFirstMessage = false;
40
+ };
41
+ const askQuestion = () => {
42
+ rl.question(chalk.magenta(' > '), async (userInput) => {
43
+ if (userInput.toLowerCase() === 'exit') {
44
+ rl.close();
45
+ shouldExit = true;
46
+ return;
47
+ }
48
+ if (isFirstMessage && !userInput.trim()) {
49
+ rl.close();
50
+ return;
51
+ }
52
+ if (!userInput.trim()) {
53
+ rl.close();
54
+ return;
55
+ }
56
+ await processMessage(userInput);
57
+ display(chalk.gray("Type 'exit' or hit Ctrl+C to exit chat\n"));
58
+ if (!shouldExit)
59
+ askQuestion();
60
+ });
61
+ };
62
+ if (message) {
63
+ await processMessage(message);
64
+ }
65
+ else {
66
+ display("\nHello! I'm Gaunt Sloth, your AI assistant. How can I help you today?");
67
+ display(chalk.gray("Type 'exit' or hit Ctrl+C to exit chat\n"));
68
+ }
69
+ if (!shouldExit)
70
+ askQuestion();
71
+ }
72
+ catch (err) {
73
+ error(`Error in chat command: ${err}`);
74
+ exit(1);
75
+ }
76
+ });
77
+ }
78
+ //# sourceMappingURL=chatCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../src/commands/chatCommand.ts"],"names":[],"mappings":"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"}
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
@@ -40,6 +40,9 @@ interface BaseSlothConfig {
40
40
  ask?: {
41
41
  filesystem?: string[] | 'all' | 'none';
42
42
  };
43
+ chat?: {
44
+ filesystem?: string[] | 'all' | 'none';
45
+ };
43
46
  };
44
47
  requirementsProviderConfig?: Record<string, unknown>;
45
48
  contentProviderConfig?: Record<string, unknown>;
package/dist/config.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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
File without changes
File without changes
File without changes
File without changes
package/dist/constants.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/index.d.ts CHANGED
File without changes
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { askCommand } from '#src/commands/askCommand.js';
3
3
  import { initCommand } from '#src/commands/initCommand.js';
4
4
  import { reviewCommand } from '#src/commands/reviewCommand.js';
5
5
  import { prCommand } from '#src/commands/prCommand.js';
6
+ import { chatCommand } from '#src/commands/chatCommand.js';
6
7
  import { getSlothVersion } from '#src/utils.js';
7
8
  import { argv, readStdin } from '#src/systemUtils.js';
8
9
  import { setVerbose } from '#src/llmUtils.js';
@@ -23,6 +24,6 @@ initCommand(program);
23
24
  reviewCommand(program);
24
25
  prCommand(program);
25
26
  askCommand(program);
26
- // TODO add general interactive chat command
27
+ chatCommand(program);
27
28
  await readStdin(program);
28
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,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,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;AAE3D,mDAAmD;AACnD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;IACtC,0BAA0B;IAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,sEAAsE;AACtE,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,SAAS,CAAC,OAAO,CAAC,CAAC;AACnB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,4CAA4C;AAE5C,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,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,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;AAE3D,mDAAmD;AACnD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;IACtC,0BAA0B;IAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,sEAAsE;AACtE,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,SAAS,CAAC,OAAO,CAAC,CAAC;AACnB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,WAAW,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
- import { BaseChatModel } from '@langchain/core/language_models/chat_models';
1
+ import type { Message } from '#src/modules/types.js';
2
2
  import { SlothConfig } from '#src/config.js';
3
- export declare function invoke(llm: BaseChatModel, systemMessage: string, prompt: string, config: SlothConfig, command?: 'ask' | 'pr' | 'review'): Promise<string>;
3
+ import { type RunnableConfig } from '@langchain/core/runnables';
4
+ import { BaseCheckpointSaver } from '@langchain/langgraph';
5
+ export declare function invoke(command: 'ask' | 'pr' | 'review' | 'chat' | undefined, messages: Message[], config: SlothConfig, runConfig?: RunnableConfig, checkpointSaver?: BaseCheckpointSaver | undefined): Promise<string>;
4
6
  export declare function setVerbose(debug: boolean): void;
package/dist/llmUtils.js CHANGED
@@ -1,4 +1,4 @@
1
- import { HumanMessage, isAIMessage, SystemMessage } from '@langchain/core/messages';
1
+ import { isAIMessage } from '@langchain/core/messages';
2
2
  import { MultiServerMCPClient } from '@langchain/mcp-adapters';
3
3
  import { display, displayError, displayInfo, displayWarning } from '#src/consoleUtils.js';
4
4
  import { createReactAgent } from '@langchain/langgraph/prebuilt';
@@ -7,7 +7,7 @@ import { ProgressIndicator } from '#src/utils.js';
7
7
  const llmGlobalSettings = {
8
8
  verbose: false,
9
9
  };
10
- export async function invoke(llm, systemMessage, prompt, config, command) {
10
+ export async function invoke(command, messages, config, runConfig, checkpointSaver) {
11
11
  try {
12
12
  if (config.streamOutput && config.llm._llmType() === 'anthropic') {
13
13
  displayWarning('To avoid known bug with Anthropic forcing streamOutput to false');
@@ -16,7 +16,7 @@ export async function invoke(llm, systemMessage, prompt, config, command) {
16
16
  }
17
17
  catch { }
18
18
  if (llmGlobalSettings.verbose) {
19
- llm.verbose = true;
19
+ config.llm.verbose = true;
20
20
  }
21
21
  // Merge command-specific filesystem config if provided
22
22
  let effectiveConfig = config;
@@ -34,22 +34,22 @@ export async function invoke(llm, systemMessage, prompt, config, command) {
34
34
  }
35
35
  // Create the React agent
36
36
  const agent = createReactAgent({
37
- llm,
37
+ llm: config.llm,
38
38
  tools,
39
+ checkpointSaver,
39
40
  });
40
41
  // Run the agent
41
42
  try {
42
- const messages = [new SystemMessage(systemMessage), new HumanMessage(prompt)];
43
43
  display(`Connecting to LLM...`);
44
44
  const output = { aiMessage: '' };
45
45
  if (!config.streamOutput) {
46
46
  const progress = new ProgressIndicator('Thinking.');
47
47
  try {
48
- const response = await agent.invoke({ messages });
48
+ const response = await agent.invoke({ messages }, runConfig);
49
49
  output.aiMessage = response.messages[response.messages.length - 1].content;
50
50
  const toolNames = response.messages
51
51
  .filter((msg) => msg.tool_calls && msg.tool_calls.length > 0)
52
- .flatMap((msg) => msg.tool_calls.map((tc) => tc.name));
52
+ .flatMap((msg) => msg.tool_calls?.map((tc) => tc.name)) ?? [];
53
53
  if (toolNames.length > 0) {
54
54
  displayInfo(`\nUsed tools: ${toolNames.join(', ')}`);
55
55
  }
@@ -63,7 +63,7 @@ export async function invoke(llm, systemMessage, prompt, config, command) {
63
63
  display(output.aiMessage);
64
64
  }
65
65
  else {
66
- const stream = await agent.stream({ messages }, { streamMode: 'messages' });
66
+ const stream = await agent.stream({ messages }, { ...runConfig, streamMode: 'messages' });
67
67
  for await (const [chunk, _metadata] of stream) {
68
68
  if (isAIMessage(chunk)) {
69
69
  stdout.write(chunk.content, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"llmUtils.js","sourceRoot":"","sources":["../src/llmUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmUtils.js","sourceRoot":"","sources":["../src/llmUtils.ts"],"names":[],"mappings":"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"}
File without changes
@@ -3,6 +3,7 @@ import { getGslothFilePath } from '#src/filePathUtils.js';
3
3
  import { generateStandardFileName, ProgressIndicator } from '#src/utils.js';
4
4
  import { writeFileSync } from 'node:fs';
5
5
  import { invoke } from '#src/llmUtils.js';
6
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
6
7
  /**
7
8
  * Ask a question and get an answer from the LLM
8
9
  * @param source - The source of the question (used for file naming)
@@ -11,7 +12,8 @@ import { invoke } from '#src/llmUtils.js';
11
12
  */
12
13
  export async function askQuestion(source, preamble, content, config) {
13
14
  const progressIndicator = config.streamOutput ? undefined : new ProgressIndicator('Thinking.');
14
- const outputContent = await invoke(config.llm, preamble, content, config, 'ask');
15
+ const messages = [new SystemMessage(preamble), new HumanMessage(content)];
16
+ const outputContent = await invoke('ask', messages, config);
15
17
  progressIndicator?.stop();
16
18
  const filename = generateStandardFileName(source);
17
19
  const filePath = getGslothFilePath(filename);
@@ -20,7 +22,7 @@ export async function askQuestion(source, preamble, content, config) {
20
22
  }
21
23
  try {
22
24
  writeFileSync(filePath, outputContent);
23
- displaySuccess(`This report can be found in ${filePath}`);
25
+ displaySuccess(`\nThis report can be found in ${filePath}`);
24
26
  }
25
27
  catch (error) {
26
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;AAE1C;;;;;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,aAAa,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjF,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,+BAA+B,QAAQ,EAAE,CAAC,CAAC;IAC5D,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"}
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,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC9D,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"}
File without changes
@@ -3,9 +3,11 @@ import { generateStandardFileName, ProgressIndicator } from '#src/utils.js';
3
3
  import { writeFileSync } from 'node:fs';
4
4
  import { invoke } from '#src/llmUtils.js';
5
5
  import { getGslothFilePath } from '#src/filePathUtils.js';
6
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
6
7
  export async function review(source, preamble, diff, config, command = 'review') {
7
8
  const progressIndicator = config.streamOutput ? undefined : new ProgressIndicator('Reviewing.');
8
- const outputContent = await invoke(config.llm, preamble, diff, config, command);
9
+ const messages = [new SystemMessage(preamble), new HumanMessage(diff)];
10
+ const outputContent = await invoke(command, messages, config);
9
11
  progressIndicator?.stop();
10
12
  const filename = generateStandardFileName(source);
11
13
  const filePath = getGslothFilePath(filename);
@@ -14,7 +16,7 @@ export async function review(source, preamble, diff, config, command = 'review')
14
16
  }
15
17
  try {
16
18
  writeFileSync(filePath, outputContent);
17
- displaySuccess(`This report can be found in ${filePath}`);
19
+ displaySuccess(`\nThis report can be found in ${filePath}`);
18
20
  }
19
21
  catch (error) {
20
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;AAE1D,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,aAAa,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChF,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,+BAA+B,QAAQ,EAAE,CAAC,CAAC;IAC5D,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"}
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,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC9D,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"}
File without changes
File without changes
File without changes
package/dist/prompt.d.ts CHANGED
File without changes
package/dist/prompt.js 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
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,4 +1,5 @@
1
1
  import { Command } from 'commander';
2
+ import { createInterface, type Interface as ReadLineInterface } from 'node:readline';
2
3
  export declare const getCurrentDir: () => string;
3
4
  export declare const getInstallDir: () => string;
4
5
  /**
@@ -14,6 +15,8 @@ export declare const stdout: NodeJS.WriteStream & {
14
15
  };
15
16
  export declare const argv: string[];
16
17
  export declare const env: NodeJS.ProcessEnv;
18
+ export { createInterface };
19
+ export type { ReadLineInterface };
17
20
  /**
18
21
  * Provide the path to the entry point of the application.
19
22
  * This is used to set the install directory.
@@ -1,6 +1,7 @@
1
1
  import { dirname, resolve } from 'node:path';
2
2
  import { fileURLToPath } from 'url';
3
3
  import { ProgressIndicator } from '#src/utils.js';
4
+ import { createInterface } from 'node:readline';
4
5
  const innerState = {
5
6
  installDir: undefined,
6
7
  stringFromStdin: '',
@@ -24,6 +25,7 @@ export const stdin = process.stdin;
24
25
  export const stdout = process.stdout;
25
26
  export const argv = process.argv;
26
27
  export const env = process.env;
28
+ export { createInterface };
27
29
  // noinspection JSUnusedGlobalSymbols
28
30
  /**
29
31
  * Provide the path to the entry point of the application.