codecane 1.0.155 → 1.0.170

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 (106) hide show
  1. package/dist/browser-runner.d.ts +3 -1
  2. package/dist/browser-runner.js +211 -136
  3. package/dist/browser-runner.js.map +1 -1
  4. package/dist/chat-storage.d.ts +1 -1
  5. package/dist/chat-storage.js +35 -31
  6. package/dist/chat-storage.js.map +1 -1
  7. package/dist/checkpoints.d.ts +62 -0
  8. package/dist/checkpoints.js +134 -0
  9. package/dist/checkpoints.js.map +1 -0
  10. package/dist/cli.d.ts +20 -13
  11. package/dist/cli.js +461 -353
  12. package/dist/cli.js.map +1 -1
  13. package/dist/client.d.ts +178 -25
  14. package/dist/client.js +236 -198
  15. package/dist/client.js.map +1 -1
  16. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  17. package/dist/common/actions.d.ts +2115 -444
  18. package/dist/common/actions.js +31 -78
  19. package/dist/common/actions.js.map +1 -1
  20. package/dist/common/browser-actions.d.ts +253 -173
  21. package/dist/common/browser-actions.js +25 -12
  22. package/dist/common/browser-actions.js.map +1 -1
  23. package/dist/common/constants/tools.d.ts +3 -0
  24. package/dist/common/constants/tools.js +24 -0
  25. package/dist/common/constants/tools.js.map +1 -0
  26. package/dist/common/constants.d.ts +14 -8
  27. package/dist/common/constants.js +7 -6
  28. package/dist/common/constants.js.map +1 -1
  29. package/dist/common/message-image-handling.d.ts +41 -0
  30. package/dist/common/message-image-handling.js +57 -0
  31. package/dist/common/message-image-handling.js.map +1 -0
  32. package/dist/common/project-file-tree.js +7 -7
  33. package/dist/common/project-file-tree.js.map +1 -1
  34. package/dist/common/types/agent-state.d.ts +466 -0
  35. package/dist/common/types/agent-state.js +30 -0
  36. package/dist/common/types/agent-state.js.map +1 -0
  37. package/dist/common/types/message.d.ts +311 -0
  38. package/dist/common/types/message.js +54 -0
  39. package/dist/common/types/message.js.map +1 -0
  40. package/dist/common/types/tools.d.ts +5 -0
  41. package/dist/common/types/tools.js +3 -0
  42. package/dist/common/types/tools.js.map +1 -0
  43. package/dist/common/types/usage.d.ts +2 -2
  44. package/dist/common/util/__tests__/messages.test.js +70 -0
  45. package/dist/common/util/__tests__/messages.test.js.map +1 -0
  46. package/dist/common/util/changes.js +3 -3
  47. package/dist/common/util/changes.js.map +1 -1
  48. package/dist/common/util/credentials.d.ts +4 -4
  49. package/dist/common/util/file.d.ts +9 -2
  50. package/dist/common/util/file.js +31 -27
  51. package/dist/common/util/file.js.map +1 -1
  52. package/dist/common/util/git.js +1 -1
  53. package/dist/common/util/git.js.map +1 -1
  54. package/dist/common/util/lru-cache.d.ts +9 -0
  55. package/dist/common/util/lru-cache.js +42 -0
  56. package/dist/common/util/lru-cache.js.map +1 -0
  57. package/dist/common/util/messages.d.ts +6 -0
  58. package/dist/common/util/messages.js +22 -0
  59. package/dist/common/util/messages.js.map +1 -0
  60. package/dist/common/util/min-heap.d.ts +15 -0
  61. package/dist/common/util/min-heap.js +73 -0
  62. package/dist/common/util/min-heap.js.map +1 -0
  63. package/dist/common/util/process-stream.d.ts +8 -0
  64. package/dist/common/util/process-stream.js +102 -0
  65. package/dist/common/util/process-stream.js.map +1 -0
  66. package/dist/common/util/promise.d.ts +8 -0
  67. package/dist/common/util/promise.js +25 -2
  68. package/dist/common/util/promise.js.map +1 -1
  69. package/dist/common/util/string.d.ts +31 -0
  70. package/dist/common/util/string.js +71 -1
  71. package/dist/common/util/string.js.map +1 -1
  72. package/dist/common/websockets/websocket-schema.d.ts +4065 -1019
  73. package/dist/config.d.ts +1 -0
  74. package/dist/config.js +3 -2
  75. package/dist/config.js.map +1 -1
  76. package/dist/credentials.d.ts +1 -0
  77. package/dist/credentials.js +7 -3
  78. package/dist/credentials.js.map +1 -1
  79. package/dist/index.js +3 -3
  80. package/dist/index.js.map +1 -1
  81. package/dist/menu.js +16 -12
  82. package/dist/menu.js.map +1 -1
  83. package/dist/project-files.d.ts +43 -3
  84. package/dist/project-files.js +97 -18
  85. package/dist/project-files.js.map +1 -1
  86. package/dist/tool-handlers.d.ts +22 -7
  87. package/dist/tool-handlers.js +111 -44
  88. package/dist/tool-handlers.js.map +1 -1
  89. package/dist/utils/process-xml-chunks.d.ts +31 -0
  90. package/dist/utils/process-xml-chunks.js +235 -0
  91. package/dist/utils/process-xml-chunks.js.map +1 -0
  92. package/dist/utils/spinner.d.ts +11 -0
  93. package/dist/utils/spinner.js +87 -0
  94. package/dist/utils/spinner.js.map +1 -0
  95. package/dist/utils/terminal.d.ts +3 -3
  96. package/dist/utils/terminal.js +23 -24
  97. package/dist/utils/terminal.js.map +1 -1
  98. package/dist/web-scraper.d.ts +1 -1
  99. package/dist/web-scraper.js +11 -7
  100. package/dist/web-scraper.js.map +1 -1
  101. package/dist/worker-script-project-context.js +1 -1
  102. package/dist/worker-script-project-context.js.map +1 -1
  103. package/package.json +3 -4
  104. package/dist/__tests__/browser-runner.test.js +0 -15
  105. package/dist/__tests__/browser-runner.test.js.map +0 -1
  106. /package/dist/{__tests__/browser-runner.test.d.ts → common/util/__tests__/messages.test.d.ts} +0 -0
@@ -23,19 +23,36 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.handleBrowserInstruction = exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.handleScrapeWebPage = void 0;
26
+ exports.handleToolCall = exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.handleScrapeWebPage = exports.handleWriteFile = void 0;
27
27
  const ripgrep_1 = require("@vscode/ripgrep");
28
28
  const picocolors_1 = require("picocolors");
29
29
  const child_process_1 = require("child_process");
30
- const browser_actions_1 = require("common/src/browser-actions");
30
+ const browser_actions_1 = require("./common/browser-actions");
31
31
  const browser_runner_1 = require("./browser-runner");
32
32
  const web_scraper_1 = require("./web-scraper");
33
- const project_files_1 = require("./project-files");
34
33
  const terminal_1 = require("./utils/terminal");
35
34
  const string_1 = require("./common/util/string");
36
35
  const path = __importStar(require("path"));
37
- const handleScrapeWebPage = async (input, id) => {
38
- const { url } = input;
36
+ const spinner_1 = require("./utils/spinner");
37
+ const changes_1 = require("./common/util/changes");
38
+ const actions_1 = require("./common/actions");
39
+ const handleWriteFile = async (parameters, _id, projectPath) => {
40
+ const fileChange = actions_1.FileChangeSchema.parse(parameters);
41
+ const { created, modified } = (0, changes_1.applyChanges)(projectPath, [fileChange]);
42
+ let result = '';
43
+ for (const file of created) {
44
+ result += `Wrote to ${file} successfully.\n`;
45
+ console.log((0, picocolors_1.green)(`- Created ${file}`));
46
+ }
47
+ for (const file of modified) {
48
+ result += `Wrote to ${file} successfully.\n`;
49
+ console.log((0, picocolors_1.green)(`- Updated ${file}`));
50
+ }
51
+ return result;
52
+ };
53
+ exports.handleWriteFile = handleWriteFile;
54
+ const handleScrapeWebPage = async (parameters) => {
55
+ const { url } = parameters;
39
56
  const content = await (0, web_scraper_1.scrapeWebPage)(url);
40
57
  if (!content) {
41
58
  return `<web_scraping_error url="${url}">Failed to scrape the web page.</web_scraping_error>`;
@@ -43,23 +60,22 @@ const handleScrapeWebPage = async (input, id) => {
43
60
  return `<web_scraped_content url="${url}">${content}</web_scraped_content>`;
44
61
  };
45
62
  exports.handleScrapeWebPage = handleScrapeWebPage;
46
- const handleRunTerminalCommand = async (input, id, mode) => {
47
- const { command } = input;
48
- return (0, terminal_1.runTerminalCommand)(command, mode);
63
+ const handleRunTerminalCommand = async (parameters, id, mode, projectPath) => {
64
+ const { command } = parameters;
65
+ return (0, terminal_1.runTerminalCommand)(command, mode, projectPath);
49
66
  };
50
67
  exports.handleRunTerminalCommand = handleRunTerminalCommand;
51
- const handleCodeSearch = async (input, id) => {
68
+ const handleCodeSearch = async (parameters, _id, projectPath) => {
52
69
  return new Promise((resolve) => {
53
70
  let stdout = '';
54
71
  let stderr = '';
55
- const dir = (0, project_files_1.getProjectRoot)();
56
- const basename = path.basename(dir);
57
- const pattern = input.pattern.replace(/"/g, '');
72
+ const basename = path.basename(projectPath);
73
+ const pattern = parameters.pattern.replace(/"/g, '');
58
74
  const command = `${path.resolve(ripgrep_1.rgPath)} "${pattern}" .`;
59
75
  console.log();
60
76
  console.log((0, picocolors_1.green)(`Searching ${basename} for "${pattern}":`));
61
77
  const childProcess = (0, child_process_1.spawn)(command, {
62
- cwd: dir,
78
+ cwd: projectPath,
63
79
  shell: true,
64
80
  });
65
81
  childProcess.stdout.on('data', (data) => {
@@ -78,7 +94,7 @@ const handleCodeSearch = async (input, id) => {
78
94
  console.log('...');
79
95
  }
80
96
  }
81
- console.log((0, picocolors_1.green)(`Found ${lines.length} results\n`));
97
+ console.log((0, picocolors_1.green)(`Found ${lines.length} results`));
82
98
  const truncatedStdout = (0, string_1.truncateStringWithMessage)(stdout, 10000);
83
99
  const truncatedStderr = (0, string_1.truncateStringWithMessage)(stderr, 1000);
84
100
  resolve(formatResult(truncatedStdout, truncatedStderr, 'Code search completed', code));
@@ -89,15 +105,53 @@ const handleCodeSearch = async (input, id) => {
89
105
  });
90
106
  };
91
107
  exports.handleCodeSearch = handleCodeSearch;
108
+ function formatResult(stdout, stderr, status, exitCode) {
109
+ let result = '<terminal_command_result>\n';
110
+ result += `<stdout>${stdout}</stdout>\n`;
111
+ if (stderr !== undefined) {
112
+ result += `<stderr>${stderr}</stderr>\n`;
113
+ }
114
+ result += `<status>${status}</status>\n`;
115
+ if (exitCode !== null) {
116
+ result += `<exit_code>${exitCode}</exit_code>\n`;
117
+ }
118
+ result += '</terminal_command_result>';
119
+ return result;
120
+ }
92
121
  exports.toolHandlers = {
122
+ write_file: exports.handleWriteFile,
93
123
  scrape_web_page: exports.handleScrapeWebPage,
94
- run_terminal_command: ((input, id) => (0, exports.handleRunTerminalCommand)(input, id, 'assistant').then((result) => result.result)),
95
- continue: async (input, id) => input.response ?? 'Please continue',
124
+ run_terminal_command: ((parameters, id, projectPath) => (0, exports.handleRunTerminalCommand)(parameters, id, 'assistant', projectPath).then((result) => result.result)),
96
125
  code_search: exports.handleCodeSearch,
97
- browser_action: async (input, _id) => {
98
- const action = browser_actions_1.BrowserActionSchema.parse(input);
99
- console.log('Executing browser action:', action);
100
- const response = await (0, browser_runner_1.handleBrowserInstruction)(action);
126
+ end_turn: async () => {
127
+ return '';
128
+ },
129
+ browser_action: async (params, _id) => {
130
+ spinner_1.Spinner.get().start();
131
+ let response;
132
+ try {
133
+ const action = browser_actions_1.BrowserActionSchema.parse(params);
134
+ response = await (0, browser_runner_1.handleBrowserInstruction)(action);
135
+ }
136
+ catch (error) {
137
+ const errorMessage = error instanceof Error ? error.message : String(error);
138
+ console.log('Small hiccup, one sec...');
139
+ return {
140
+ success: false,
141
+ error: `Browser action validation failed: ${errorMessage}`,
142
+ logs: [
143
+ {
144
+ type: 'error',
145
+ message: `Browser action validation failed: ${errorMessage}`,
146
+ timestamp: Date.now(),
147
+ source: 'tool',
148
+ },
149
+ ],
150
+ };
151
+ }
152
+ finally {
153
+ spinner_1.Spinner.get().stop();
154
+ }
101
155
  // Log any browser errors
102
156
  if (!response.success && response.error) {
103
157
  console.error((0, picocolors_1.red)(`Browser action failed: ${response.error}`));
@@ -113,38 +167,51 @@ exports.toolHandlers = {
113
167
  console.warn((0, picocolors_1.yellow)(log.message));
114
168
  break;
115
169
  case 'info':
116
- console.info(log.message);
170
+ console.info((0, picocolors_1.cyan)(log.message));
117
171
  break;
118
172
  default:
119
- console.log(log.message);
173
+ console.log((0, picocolors_1.cyan)(log.message));
120
174
  }
121
175
  }
122
176
  });
123
177
  }
124
- // Handle chunked screenshots
125
- if (response.chunks && response.chunks.length > 0) {
126
- const sortedChunks = response.chunks.sort((a, b) => a.index - b.index);
127
- const combinedBase64 = sortedChunks.map((ch) => ch.data).join('');
128
- response.screenshot = combinedBase64;
129
- delete response.chunks; // Remove chunks after combining
130
- }
131
- // Send the full response including screenshot
132
- return JSON.stringify(response);
178
+ return response;
133
179
  },
134
180
  };
135
- function formatResult(stdout, stderr, status, exitCode) {
136
- let result = '<terminal_command_result>\n';
137
- result += `<stdout>${stdout}</stdout>\n`;
138
- if (stderr !== undefined) {
139
- result += `<stderr>${stderr}</stderr>\n`;
181
+ const handleToolCall = async (toolCall, projectPath) => {
182
+ const { name, parameters } = toolCall;
183
+ const handler = exports.toolHandlers[name];
184
+ if (!handler) {
185
+ throw new Error(`No handler found for tool: ${name}`);
140
186
  }
141
- result += `<status>${status}</status>\n`;
142
- if (exitCode !== null) {
143
- result += `<exit_code>${exitCode}</exit_code>\n`;
187
+ const content = await handler(parameters, toolCall.id, projectPath);
188
+ if (typeof content !== 'string') {
189
+ throw new Error(`Tool call ${name} not supported. It returned non-string content.`);
144
190
  }
145
- result += '</terminal_command_result>';
146
- return result;
147
- }
148
- var browser_runner_2 = require("./browser-runner");
149
- Object.defineProperty(exports, "handleBrowserInstruction", { enumerable: true, get: function () { return browser_runner_2.handleBrowserInstruction; } });
191
+ // TODO: Add support for screenshots.
192
+ // const toolResultMessage: Message = {
193
+ // role: 'user',
194
+ // content: match(content)
195
+ // .with({ screenshots: P.not(P.nullish) }, (response) => [
196
+ // ...(response.screenshots.pre ? [response.screenshots.pre] : []),
197
+ // {
198
+ // type: 'text' as const,
199
+ // text:
200
+ // JSON.stringify({
201
+ // ...response,
202
+ // screenshots: undefined,
203
+ // }),
204
+ // },
205
+ // response.screenshots.post,
206
+ // ])
207
+ // .with(P.string, (str) => str)
208
+ // .otherwise((val) => JSON.stringify(val)),
209
+ // }
210
+ return {
211
+ name,
212
+ result: content,
213
+ id: toolCall.id,
214
+ };
215
+ };
216
+ exports.handleToolCall = handleToolCall;
150
217
  //# sourceMappingURL=tool-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Handler interface for XML tags
3
+ * Allows controlling both tag display and content handling
4
+ */
5
+ export interface TagHandler {
6
+ onTagStart?: (tagName: string) => string | null;
7
+ onTagEnd: (tagName: string, content: string) => string | null;
8
+ }
9
+ /**
10
+ * XmlStreamProcessor handles XML tags that may be split across multiple chunks.
11
+ * It processes tool-related XML tags and executes callbacks when nested tags are completed.
12
+ */
13
+ export declare class XmlStreamProcessor {
14
+ private tagStack;
15
+ private currentContent;
16
+ private tagHandlers;
17
+ private processedLength;
18
+ private lastOutput;
19
+ constructor(tagHandlers: Record<string, TagHandler>);
20
+ /**
21
+ * Process a buffer of text that may contain XML tags
22
+ * @param buffer The complete buffer to process
23
+ * @returns Processed text with XML tags handled according to the tag handlers
24
+ */
25
+ process(buffer: string): string;
26
+ private handleClosingTag;
27
+ }
28
+ /**
29
+ * Default tag handlers for common XML tags
30
+ */
31
+ export declare const defaultTagHandlers: Record<string, TagHandler>;
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTagHandlers = exports.XmlStreamProcessor = void 0;
4
+ const tools_1 = require("../common/constants/tools");
5
+ const string_1 = require("../common/util/string");
6
+ const picocolors_1 = require("picocolors");
7
+ /**
8
+ * Formats a tag name for display in the terminal
9
+ * @param tagName The name of the tag to format
10
+ * @returns Formatted tag name with proper styling
11
+ */
12
+ const formatTagName = (tagName) => {
13
+ return `\n[${(0, picocolors_1.bold)((0, string_1.snakeToTitleCase)(tagName))}] `;
14
+ };
15
+ /**
16
+ * XmlStreamProcessor handles XML tags that may be split across multiple chunks.
17
+ * It processes tool-related XML tags and executes callbacks when nested tags are completed.
18
+ */
19
+ class XmlStreamProcessor {
20
+ tagStack = [];
21
+ currentContent = '';
22
+ tagHandlers;
23
+ processedLength = 0;
24
+ lastOutput = '';
25
+ constructor(tagHandlers) {
26
+ this.tagHandlers = tagHandlers;
27
+ }
28
+ /**
29
+ * Process a buffer of text that may contain XML tags
30
+ * @param buffer The complete buffer to process
31
+ * @returns Processed text with XML tags handled according to the tag handlers
32
+ */
33
+ process(buffer) {
34
+ // Only process new content since last call
35
+ const newContent = buffer.slice(this.processedLength);
36
+ if (!newContent) {
37
+ return '';
38
+ }
39
+ // Process the entire buffer
40
+ let output = this.lastOutput;
41
+ let position = this.processedLength;
42
+ // Look for opening and closing tags in the buffer
43
+ while (position < buffer.length) {
44
+ // Look for opening tag
45
+ const openTagMatch = buffer.slice(position).match(/<([a-zA-Z_]+)>/);
46
+ // Look for closing tag
47
+ const closeTagMatch = buffer.slice(position).match(/<\/([a-zA-Z_]+)>/);
48
+ if (this.tagStack.length === 0) {
49
+ // Not inside any tag - look for opening tag or add text to output
50
+ if (openTagMatch && openTagMatch.index !== undefined) {
51
+ // Add text before the tag to output
52
+ output += buffer.slice(position, position + openTagMatch.index);
53
+ // Get tag name
54
+ const tagName = openTagMatch[1];
55
+ // Handle opening tag display
56
+ const handler = this.tagHandlers[tagName];
57
+ if (handler && handler.onTagStart) {
58
+ const tagDisplay = handler.onTagStart(tagName);
59
+ if (tagDisplay !== null) {
60
+ output += tagDisplay;
61
+ }
62
+ }
63
+ // Move position to after the opening tag
64
+ position += openTagMatch.index + openTagMatch[0].length;
65
+ // Push tag name to stack
66
+ this.tagStack.push(tagName);
67
+ this.currentContent = '';
68
+ }
69
+ else {
70
+ // No opening tag found, add remaining text to output
71
+ output += buffer.slice(position);
72
+ position = buffer.length;
73
+ }
74
+ }
75
+ else {
76
+ // Inside a tag - look for nested opening tag or closing tag
77
+ if (openTagMatch &&
78
+ closeTagMatch &&
79
+ openTagMatch.index !== undefined &&
80
+ closeTagMatch.index !== undefined) {
81
+ // Both opening and closing tags found, check which comes first
82
+ if (openTagMatch.index < closeTagMatch.index) {
83
+ // Opening tag comes first
84
+ this.currentContent += buffer.slice(position, position + openTagMatch.index);
85
+ position += openTagMatch.index + openTagMatch[0].length;
86
+ this.tagStack.push(openTagMatch[1]);
87
+ }
88
+ else {
89
+ // Closing tag comes first
90
+ this.currentContent += buffer.slice(position, position + closeTagMatch.index);
91
+ position += closeTagMatch.index + closeTagMatch[0].length;
92
+ const result = this.handleClosingTag(closeTagMatch[1]);
93
+ if (result !== null) {
94
+ output += result;
95
+ }
96
+ }
97
+ }
98
+ else if (closeTagMatch && closeTagMatch.index !== undefined) {
99
+ // Only closing tag found
100
+ this.currentContent += buffer.slice(position, position + closeTagMatch.index);
101
+ position += closeTagMatch.index + closeTagMatch[0].length;
102
+ const result = this.handleClosingTag(closeTagMatch[1]);
103
+ if (result !== null) {
104
+ output += result;
105
+ }
106
+ }
107
+ else if (openTagMatch && openTagMatch.index !== undefined) {
108
+ // Only opening tag found
109
+ this.currentContent += buffer.slice(position, position + openTagMatch.index);
110
+ position += openTagMatch.index + openTagMatch[0].length;
111
+ this.tagStack.push(openTagMatch[1]);
112
+ }
113
+ else {
114
+ // No tags found, add everything to current content
115
+ this.currentContent += buffer.slice(position);
116
+ position = buffer.length;
117
+ }
118
+ }
119
+ }
120
+ // Update processed length and last output
121
+ this.processedLength = position;
122
+ // Calculate new output since last call
123
+ const newOutput = output.slice(this.lastOutput.length);
124
+ this.lastOutput = output;
125
+ return newOutput;
126
+ }
127
+ handleClosingTag(tagName) {
128
+ // Check if this closing tag matches the current tag on the stack
129
+ if (this.tagStack.length > 0) {
130
+ const currentTag = this.tagStack.pop();
131
+ // If tag names don't match, attempt to recover by ignoring this closing tag
132
+ if (currentTag !== tagName) {
133
+ // Push the popped tag back onto the stack
134
+ if (currentTag) {
135
+ this.tagStack.push(currentTag);
136
+ }
137
+ return null;
138
+ }
139
+ // If we're closing a nested tag
140
+ if (this.tagStack.length === 1) {
141
+ const parentTag = this.tagStack[0];
142
+ const handler = this.tagHandlers[parentTag];
143
+ if (handler) {
144
+ const result = handler.onTagEnd(tagName, this.currentContent);
145
+ return result;
146
+ }
147
+ }
148
+ // If we're closing the main tag, reset content
149
+ if (this.tagStack.length === 0) {
150
+ this.currentContent = '';
151
+ }
152
+ }
153
+ return null;
154
+ }
155
+ }
156
+ exports.XmlStreamProcessor = XmlStreamProcessor;
157
+ /**
158
+ * Default tag handlers for common XML tags
159
+ */
160
+ exports.defaultTagHandlers = {
161
+ // Create handlers for each tool in TOOL_LIST
162
+ ...Object.fromEntries(tools_1.TOOL_LIST.map((tool) => [
163
+ tool,
164
+ {
165
+ onTagStart: (tagName) => formatTagName(tagName),
166
+ onTagEnd: (_tagName, _content) => null, // Hide all nested tags by default
167
+ },
168
+ ])),
169
+ add_subgoal: {
170
+ onTagStart: (tagName) => formatTagName(tagName),
171
+ onTagEnd: (tagName, content) => {
172
+ if (tagName === 'objective') {
173
+ return content;
174
+ }
175
+ return null;
176
+ },
177
+ },
178
+ update_subgoal: {
179
+ onTagStart: (tagName) => formatTagName(tagName),
180
+ onTagEnd: (tagName, content) => {
181
+ if (tagName === 'objective') {
182
+ return content;
183
+ }
184
+ return null;
185
+ },
186
+ },
187
+ end_turn: {
188
+ onTagStart: () => null,
189
+ onTagEnd: () => null,
190
+ },
191
+ // Override with specific handlers for tools that need special handling
192
+ write_file: {
193
+ onTagStart: (tagName) => formatTagName(tagName),
194
+ onTagEnd: (tagName, content) => {
195
+ // hide content tags
196
+ if (tagName === 'path') {
197
+ return content;
198
+ }
199
+ return null;
200
+ },
201
+ },
202
+ run_terminal_command: {
203
+ onTagStart: (tagName) => formatTagName(tagName),
204
+ onTagEnd: (tagName, content) => {
205
+ return content;
206
+ },
207
+ },
208
+ read_files: {
209
+ onTagStart: (tagName) => formatTagName(tagName),
210
+ onTagEnd: (tagName, content) => {
211
+ // Hide paths tag
212
+ if (tagName === 'paths') {
213
+ return content.split('\n').join(',');
214
+ }
215
+ return content;
216
+ },
217
+ },
218
+ find_files: {
219
+ onTagStart: (tagName) => formatTagName(tagName),
220
+ onTagEnd: (tagName, content) => {
221
+ return content;
222
+ },
223
+ },
224
+ code_search: {
225
+ onTagStart: (tagName) => formatTagName(tagName),
226
+ onTagEnd: (tagName, content) => {
227
+ // Hide pattern tag
228
+ if (tagName === 'pattern') {
229
+ return null;
230
+ }
231
+ return content;
232
+ },
233
+ },
234
+ };
235
+ //# sourceMappingURL=process-xml-chunks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-xml-chunks.js","sourceRoot":"","sources":["../../src/utils/process-xml-chunks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class Spinner {
2
+ private static instance;
3
+ private loadingInterval;
4
+ private constructor();
5
+ static get(): Spinner;
6
+ start(): void;
7
+ stop(): void;
8
+ restoreCursor(): void;
9
+ log(message: string): void;
10
+ private rewriteLine;
11
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Spinner = void 0;
27
+ const picocolors_1 = require("picocolors");
28
+ const readline = __importStar(require("readline"));
29
+ const chars = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
30
+ class Spinner {
31
+ static instance = null;
32
+ loadingInterval = null;
33
+ constructor() { }
34
+ static get() {
35
+ if (!Spinner.instance) {
36
+ Spinner.instance = new Spinner();
37
+ }
38
+ return Spinner.instance;
39
+ }
40
+ start() {
41
+ if (this.loadingInterval) {
42
+ return;
43
+ }
44
+ let i = 0;
45
+ // Hide cursor while spinner is active
46
+ process.stdout.write('\u001B[?25l');
47
+ this.loadingInterval = setInterval(() => {
48
+ this.rewriteLine((0, picocolors_1.green)(`${chars[i]} Thinking...`));
49
+ i = (i + 1) % chars.length;
50
+ }, 100);
51
+ }
52
+ stop() {
53
+ if (!this.loadingInterval) {
54
+ return;
55
+ }
56
+ clearInterval(this.loadingInterval);
57
+ this.loadingInterval = null;
58
+ this.rewriteLine(''); // Clear the spinner line
59
+ this.restoreCursor(); // Show cursor after spinner stops
60
+ }
61
+ restoreCursor() {
62
+ process.stdout.write('\u001B[?25h');
63
+ }
64
+ log(message) {
65
+ // Temporarily clear the spinner line
66
+ this.rewriteLine('');
67
+ // Write the log message
68
+ console.log(message);
69
+ // If spinner is active, redraw it on the next line
70
+ if (this.loadingInterval) {
71
+ const i = Math.floor(Math.random() * chars.length);
72
+ this.rewriteLine((0, picocolors_1.green)(`${chars[i]} Thinking...`));
73
+ }
74
+ }
75
+ rewriteLine(line) {
76
+ if (process.stdout.isTTY) {
77
+ readline.clearLine(process.stdout, 0);
78
+ readline.cursorTo(process.stdout, 0);
79
+ process.stdout.write(line);
80
+ }
81
+ else {
82
+ process.stdout.write(line + '\n');
83
+ }
84
+ }
85
+ }
86
+ exports.Spinner = Spinner;
87
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkC;AAClC,mDAAoC;AAEpC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEhE,MAAa,OAAO;IACV,MAAM,CAAC,QAAQ,GAAmB,IAAI,CAAA;IACtC,eAAe,GAA0B,IAAI,CAAA;IAErD,gBAAuB,CAAC;IAEjB,MAAM,CAAC,GAAG;QACf,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAA;IACzB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,sCAAsC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,IAAA,kBAAK,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;YAClD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;QAC5B,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,CAAC,yBAAyB;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAA,CAAC,kCAAkC;IACzD,CAAC;IAED,aAAa;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,qCAAqC;QACrC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACpB,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,mDAAmD;QACnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC,WAAW,CAAC,IAAA,kBAAK,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;;AA9DH,0BA+DC"}
@@ -1,7 +1,7 @@
1
1
  export declare const isCommandRunning: () => boolean;
2
- export declare const recreateShell: () => void;
3
- export declare const resetShell: () => void;
4
- export declare const runTerminalCommand: (command: string, mode: "user" | "assistant") => Promise<{
2
+ export declare const recreateShell: (projectPath: string) => void;
3
+ export declare const resetShell: (projectPath: string) => void;
4
+ export declare const runTerminalCommand: (command: string, mode: "user" | "assistant", projectPath: string) => Promise<{
5
5
  result: string;
6
6
  stdout: string;
7
7
  }>;