@nanocollective/nanocoder 1.19.0 → 1.19.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/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client-preparestep.spec.d.ts +2 -0
- package/dist/ai-sdk-client-preparestep.spec.d.ts.map +1 -0
- package/dist/ai-sdk-client-preparestep.spec.js +246 -0
- package/dist/ai-sdk-client-preparestep.spec.js.map +1 -0
- package/dist/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client.js +108 -16
- package/dist/ai-sdk-client.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +6 -6
- package/dist/app.js.map +1 -1
- package/dist/components/development-mode-indicator.d.ts +15 -0
- package/dist/components/development-mode-indicator.d.ts.map +1 -0
- package/dist/components/development-mode-indicator.js +18 -0
- package/dist/components/development-mode-indicator.js.map +1 -0
- package/dist/components/user-input.d.ts +1 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +7 -7
- package/dist/components/user-input.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +12 -1
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useChatHandler.d.ts +2 -1
- package/dist/hooks/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/useChatHandler.js +61 -58
- package/dist/hooks/useChatHandler.js.map +1 -1
- package/dist/hooks/useToolHandler.d.ts +1 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +18 -48
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/hooks/useVSCodeServer.d.ts +1 -1
- package/dist/hooks/useVSCodeServer.d.ts.map +1 -1
- package/dist/hooks/useVSCodeServer.js +2 -2
- package/dist/hooks/useVSCodeServer.js.map +1 -1
- package/dist/tools/execute-function.spec.js +1 -49
- package/dist/tools/execute-function.spec.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/needs-approval.spec.js +22 -83
- package/dist/tools/needs-approval.spec.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +5 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/string-replace.d.ts +19 -0
- package/dist/tools/string-replace.d.ts.map +1 -0
- package/dist/tools/string-replace.js +279 -0
- package/dist/tools/string-replace.js.map +1 -0
- package/dist/tools/string-replace.spec.d.ts +2 -0
- package/dist/tools/string-replace.spec.d.ts.map +1 -0
- package/dist/tools/string-replace.spec.js +315 -0
- package/dist/tools/string-replace.spec.js.map +1 -0
- package/dist/tools/{create-file.d.ts → write-file.d.ts} +5 -5
- package/dist/tools/write-file.d.ts.map +1 -0
- package/dist/tools/{create-file.js → write-file.js} +34 -39
- package/dist/tools/write-file.js.map +1 -0
- package/dist/tools/write-file.spec.d.ts +2 -0
- package/dist/tools/write-file.spec.d.ts.map +1 -0
- package/dist/tools/write-file.spec.js +263 -0
- package/dist/tools/write-file.spec.js.map +1 -0
- package/dist/types/core.d.ts +1 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/utils/message-builder.d.ts +48 -0
- package/dist/utils/message-builder.d.ts.map +1 -0
- package/dist/utils/message-builder.js +88 -0
- package/dist/utils/message-builder.js.map +1 -0
- package/dist/utils/message-builder.spec.d.ts +2 -0
- package/dist/utils/message-builder.spec.d.ts.map +1 -0
- package/dist/utils/message-builder.spec.js +142 -0
- package/dist/utils/message-builder.spec.js.map +1 -0
- package/dist/vscode/protocol.d.ts +1 -1
- package/dist/vscode/protocol.d.ts.map +1 -1
- package/dist/vscode/protocol.spec.js +5 -5
- package/dist/vscode/protocol.spec.js.map +1 -1
- package/dist/vscode/vscode-server.d.ts +1 -1
- package/dist/vscode/vscode-server.d.ts.map +1 -1
- package/dist/vscode/vscode-server.js +2 -2
- package/dist/vscode/vscode-server.js.map +1 -1
- package/dist/vscode/vscode-server.spec.js +2 -2
- package/dist/vscode/vscode-server.spec.js.map +1 -1
- package/package.json +9 -1
- package/source/app/prompts/main-prompt.md +84 -530
- package/dist/tools/create-file.d.ts.map +0 -1
- package/dist/tools/create-file.js.map +0 -1
- package/dist/tools/delete-lines.d.ts +0 -19
- package/dist/tools/delete-lines.d.ts.map +0 -1
- package/dist/tools/delete-lines.js +0 -328
- package/dist/tools/delete-lines.js.map +0 -1
- package/dist/tools/insert-lines.d.ts +0 -19
- package/dist/tools/insert-lines.d.ts.map +0 -1
- package/dist/tools/insert-lines.js +0 -275
- package/dist/tools/insert-lines.js.map +0 -1
- package/dist/tools/replace-lines.d.ts +0 -20
- package/dist/tools/replace-lines.d.ts.map +0 -1
- package/dist/tools/replace-lines.js +0 -330
- package/dist/tools/replace-lines.js.map +0 -1
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import test from 'ava';
|
|
5
|
+
import { setCurrentMode } from '../context/mode-context.js';
|
|
6
|
+
import { writeFileTool } from './write-file.js';
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Test Helpers
|
|
9
|
+
// ============================================================================
|
|
10
|
+
let testDir;
|
|
11
|
+
// Create a temporary directory before each test
|
|
12
|
+
test.beforeEach(async () => {
|
|
13
|
+
testDir = await mkdtemp(join(tmpdir(), 'write-file-test-'));
|
|
14
|
+
});
|
|
15
|
+
// Clean up temporary directory after each test
|
|
16
|
+
test.afterEach(async () => {
|
|
17
|
+
if (testDir) {
|
|
18
|
+
await rm(testDir, { recursive: true, force: true });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
// Helper to execute the write_file tool
|
|
22
|
+
async function executeWriteFile(args) {
|
|
23
|
+
// biome-ignore lint/suspicious/noExplicitAny: Tool internals require any
|
|
24
|
+
return await writeFileTool.tool.execute(args, {
|
|
25
|
+
toolCallId: 'test',
|
|
26
|
+
messages: [],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// Helper to create a test file
|
|
30
|
+
async function createTestFile(filename, content) {
|
|
31
|
+
const filePath = join(testDir, filename);
|
|
32
|
+
await writeFile(filePath, content, 'utf-8');
|
|
33
|
+
return filePath;
|
|
34
|
+
}
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Approval Tests
|
|
37
|
+
// ============================================================================
|
|
38
|
+
test('write_file requires approval in normal mode', async (t) => {
|
|
39
|
+
setCurrentMode('normal');
|
|
40
|
+
const needsApproval = writeFileTool.tool.needsApproval;
|
|
41
|
+
if (typeof needsApproval === 'function') {
|
|
42
|
+
const result = await needsApproval({
|
|
43
|
+
path: 'test.txt',
|
|
44
|
+
content: 'test',
|
|
45
|
+
}, { toolCallId: 'test', messages: [] });
|
|
46
|
+
t.true(result);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
t.is(needsApproval, true);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
test('write_file does NOT require approval in auto-accept mode', async (t) => {
|
|
53
|
+
setCurrentMode('auto-accept');
|
|
54
|
+
const needsApproval = writeFileTool.tool.needsApproval;
|
|
55
|
+
if (typeof needsApproval === 'function') {
|
|
56
|
+
const result = await needsApproval({
|
|
57
|
+
path: 'test.txt',
|
|
58
|
+
content: 'test',
|
|
59
|
+
}, { toolCallId: 'test', messages: [] });
|
|
60
|
+
t.false(result);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
t.is(needsApproval, false);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
test('write_file requires approval in plan mode', async (t) => {
|
|
67
|
+
setCurrentMode('plan');
|
|
68
|
+
const needsApproval = writeFileTool.tool.needsApproval;
|
|
69
|
+
if (typeof needsApproval === 'function') {
|
|
70
|
+
const result = await needsApproval({
|
|
71
|
+
path: 'test.txt',
|
|
72
|
+
content: 'test',
|
|
73
|
+
}, { toolCallId: 'test', messages: [] });
|
|
74
|
+
t.true(result);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
t.is(needsApproval, true);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
// ============================================================================
|
|
81
|
+
// Basic Write Tests
|
|
82
|
+
// ============================================================================
|
|
83
|
+
test('write_file: create new file', async (t) => {
|
|
84
|
+
const filePath = join(testDir, 'new.txt');
|
|
85
|
+
const result = await executeWriteFile({
|
|
86
|
+
path: filePath,
|
|
87
|
+
content: 'Hello World\n',
|
|
88
|
+
});
|
|
89
|
+
const content = await readFile(filePath, 'utf-8');
|
|
90
|
+
t.is(content, 'Hello World\n');
|
|
91
|
+
t.true(result.includes('File written successfully'));
|
|
92
|
+
t.true(result.includes('File contents after write:'));
|
|
93
|
+
});
|
|
94
|
+
test('write_file: overwrite existing file', async (t) => {
|
|
95
|
+
const filePath = await createTestFile('existing.txt', 'Old content\n');
|
|
96
|
+
const result = await executeWriteFile({
|
|
97
|
+
path: filePath,
|
|
98
|
+
content: 'New content\n',
|
|
99
|
+
});
|
|
100
|
+
const content = await readFile(filePath, 'utf-8');
|
|
101
|
+
t.is(content, 'New content\n');
|
|
102
|
+
t.true(result.includes('File overwritten successfully'));
|
|
103
|
+
t.true(result.includes('File contents after write:'));
|
|
104
|
+
});
|
|
105
|
+
test('write_file: write empty file', async (t) => {
|
|
106
|
+
const filePath = join(testDir, 'empty.txt');
|
|
107
|
+
const result = await executeWriteFile({
|
|
108
|
+
path: filePath,
|
|
109
|
+
content: '',
|
|
110
|
+
});
|
|
111
|
+
const content = await readFile(filePath, 'utf-8');
|
|
112
|
+
t.is(content, '');
|
|
113
|
+
t.true(result.includes('File written successfully'));
|
|
114
|
+
});
|
|
115
|
+
test('write_file: write multi-line content', async (t) => {
|
|
116
|
+
const filePath = join(testDir, 'multi.txt');
|
|
117
|
+
const testContent = 'Line 1\nLine 2\nLine 3';
|
|
118
|
+
const result = await executeWriteFile({
|
|
119
|
+
path: filePath,
|
|
120
|
+
content: testContent,
|
|
121
|
+
});
|
|
122
|
+
const content = await readFile(filePath, 'utf-8');
|
|
123
|
+
t.is(content, testContent);
|
|
124
|
+
t.true(result.includes('3 lines'));
|
|
125
|
+
});
|
|
126
|
+
test('write_file: write large file', async (t) => {
|
|
127
|
+
const filePath = join(testDir, 'large.txt');
|
|
128
|
+
const largeContent = Array.from({ length: 1000 }, (_, i) => `Line ${i + 1}`).join('\n');
|
|
129
|
+
const result = await executeWriteFile({
|
|
130
|
+
path: filePath,
|
|
131
|
+
content: largeContent,
|
|
132
|
+
});
|
|
133
|
+
const content = await readFile(filePath, 'utf-8');
|
|
134
|
+
t.is(content, largeContent);
|
|
135
|
+
t.true(result.includes('1000 lines'));
|
|
136
|
+
});
|
|
137
|
+
test('write_file: preserves exact content including whitespace', async (t) => {
|
|
138
|
+
const filePath = join(testDir, 'whitespace.txt');
|
|
139
|
+
const testContent = ' indented\n\ttabbed\n \t mixed\n';
|
|
140
|
+
await executeWriteFile({
|
|
141
|
+
path: filePath,
|
|
142
|
+
content: testContent,
|
|
143
|
+
});
|
|
144
|
+
const content = await readFile(filePath, 'utf-8');
|
|
145
|
+
t.is(content, testContent);
|
|
146
|
+
});
|
|
147
|
+
// ============================================================================
|
|
148
|
+
// Read-After-Write Verification Tests
|
|
149
|
+
// ============================================================================
|
|
150
|
+
test('write_file: returns file contents after write', async (t) => {
|
|
151
|
+
const filePath = join(testDir, 'verify.txt');
|
|
152
|
+
const result = await executeWriteFile({
|
|
153
|
+
path: filePath,
|
|
154
|
+
content: 'Test content\nLine 2',
|
|
155
|
+
});
|
|
156
|
+
// Check that result includes the actual file contents
|
|
157
|
+
t.true(result.includes('File contents after write:'));
|
|
158
|
+
t.true(result.includes('Test content'));
|
|
159
|
+
t.true(result.includes('Line 2'));
|
|
160
|
+
t.true(result.includes('2 lines'));
|
|
161
|
+
});
|
|
162
|
+
test('write_file: detects token count', async (t) => {
|
|
163
|
+
const filePath = join(testDir, 'tokens.txt');
|
|
164
|
+
const content = 'x'.repeat(400); // ~100 tokens
|
|
165
|
+
const result = await executeWriteFile({
|
|
166
|
+
path: filePath,
|
|
167
|
+
content,
|
|
168
|
+
});
|
|
169
|
+
t.true(result.includes('~100 tokens'));
|
|
170
|
+
});
|
|
171
|
+
// ============================================================================
|
|
172
|
+
// Validator Tests
|
|
173
|
+
// ============================================================================
|
|
174
|
+
test('write_file validator: accepts valid path', async (t) => {
|
|
175
|
+
const filePath = join(testDir, 'valid.txt');
|
|
176
|
+
if (!writeFileTool.validator) {
|
|
177
|
+
t.fail('Validator not defined');
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const result = await writeFileTool.validator({
|
|
181
|
+
path: filePath,
|
|
182
|
+
content: 'test',
|
|
183
|
+
});
|
|
184
|
+
t.true(result.valid);
|
|
185
|
+
});
|
|
186
|
+
test('write_file validator: rejects non-existent parent directory', async (t) => {
|
|
187
|
+
const filePath = join(testDir, 'nonexistent', 'file.txt');
|
|
188
|
+
if (!writeFileTool.validator) {
|
|
189
|
+
t.fail('Validator not defined');
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const result = await writeFileTool.validator({
|
|
193
|
+
path: filePath,
|
|
194
|
+
content: 'test',
|
|
195
|
+
});
|
|
196
|
+
t.false(result.valid);
|
|
197
|
+
if (!result.valid) {
|
|
198
|
+
t.true(result.error.includes('Parent directory does not exist'));
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
test('write_file validator: rejects system directories', async (t) => {
|
|
202
|
+
if (!writeFileTool.validator) {
|
|
203
|
+
t.fail('Validator not defined');
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const systemPaths = ['/etc/test.txt', '/sys/test.txt', '/proc/test.txt'];
|
|
207
|
+
for (const path of systemPaths) {
|
|
208
|
+
const result = await writeFileTool.validator({
|
|
209
|
+
path,
|
|
210
|
+
content: 'test',
|
|
211
|
+
});
|
|
212
|
+
t.false(result.valid);
|
|
213
|
+
if (!result.valid) {
|
|
214
|
+
t.true(result.error.includes('system directory') ||
|
|
215
|
+
result.error.includes('Parent directory does not exist'));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
// ============================================================================
|
|
220
|
+
// Special Content Tests
|
|
221
|
+
// ============================================================================
|
|
222
|
+
test('write_file: handles special characters', async (t) => {
|
|
223
|
+
const filePath = join(testDir, 'special.txt');
|
|
224
|
+
const content = 'Special: \n\t"quotes"\n\'apostrophes\'\n\\backslash\n';
|
|
225
|
+
await executeWriteFile({
|
|
226
|
+
path: filePath,
|
|
227
|
+
content,
|
|
228
|
+
});
|
|
229
|
+
const actual = await readFile(filePath, 'utf-8');
|
|
230
|
+
t.is(actual, content);
|
|
231
|
+
});
|
|
232
|
+
test('write_file: handles unicode', async (t) => {
|
|
233
|
+
const filePath = join(testDir, 'unicode.txt');
|
|
234
|
+
const content = 'Unicode: 你好世界 🚀 émoji\n';
|
|
235
|
+
await executeWriteFile({
|
|
236
|
+
path: filePath,
|
|
237
|
+
content,
|
|
238
|
+
});
|
|
239
|
+
const actual = await readFile(filePath, 'utf-8');
|
|
240
|
+
t.is(actual, content);
|
|
241
|
+
});
|
|
242
|
+
// ============================================================================
|
|
243
|
+
// Comparison with create_file
|
|
244
|
+
// ============================================================================
|
|
245
|
+
test('write_file: can overwrite files (unlike create_file)', async (t) => {
|
|
246
|
+
const filePath = await createTestFile('existing.txt', 'Original\n');
|
|
247
|
+
// write_file should succeed
|
|
248
|
+
await t.notThrowsAsync(async () => {
|
|
249
|
+
await executeWriteFile({
|
|
250
|
+
path: filePath,
|
|
251
|
+
content: 'Overwritten\n',
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
const content = await readFile(filePath, 'utf-8');
|
|
255
|
+
t.is(content, 'Overwritten\n');
|
|
256
|
+
});
|
|
257
|
+
// ============================================================================
|
|
258
|
+
// Cleanup
|
|
259
|
+
// ============================================================================
|
|
260
|
+
test.after(() => {
|
|
261
|
+
setCurrentMode('normal');
|
|
262
|
+
});
|
|
263
|
+
//# sourceMappingURL=write-file.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-file.spec.js","sourceRoot":"","sources":["../../source/tools/write-file.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.d.ts
CHANGED
package/dist/types/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../source/types/core.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../source/types/core.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../source/types/core.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,UAAU,EAAE,IAAI,EAAC,MAAM,IAAI,CAAC;AAE5D,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../source/types/core.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,UAAU,EAAE,IAAI,EAAC,MAAM,IAAI,CAAC;AAE5D,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;AA6J1B,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACvE,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,wBAAwB;IACvC,IAAI,EAAE,gBAAgB;CACtB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Message, ToolResult } from '../types/core.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builder pattern for constructing message arrays.
|
|
4
|
+
* Provides a fluent interface for adding messages without side effects.
|
|
5
|
+
* This ensures messages are only added to state once, preventing duplication.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MessageBuilder {
|
|
8
|
+
private messages;
|
|
9
|
+
constructor(initialMessages: Message[]);
|
|
10
|
+
/**
|
|
11
|
+
* Add auto-executed messages from AI SDK multi-step execution.
|
|
12
|
+
* These include both assistant messages (with tool_calls) and tool result messages.
|
|
13
|
+
*/
|
|
14
|
+
addAutoExecutedMessages(autoMessages: Message[]): this;
|
|
15
|
+
/**
|
|
16
|
+
* Add an assistant message (with or without tool_calls).
|
|
17
|
+
*/
|
|
18
|
+
addAssistantMessage(msg: Message): this;
|
|
19
|
+
/**
|
|
20
|
+
* Add tool result messages from tool execution.
|
|
21
|
+
*/
|
|
22
|
+
addToolResults(results: ToolResult[]): this;
|
|
23
|
+
/**
|
|
24
|
+
* Add a user message.
|
|
25
|
+
*/
|
|
26
|
+
addUserMessage(content: string): this;
|
|
27
|
+
/**
|
|
28
|
+
* Add an error message as a user message (for model self-correction).
|
|
29
|
+
*/
|
|
30
|
+
addErrorMessage(errorContent: string): this;
|
|
31
|
+
/**
|
|
32
|
+
* Add an arbitrary message (use sparingly, prefer specific methods).
|
|
33
|
+
*/
|
|
34
|
+
addMessage(message: Message): this;
|
|
35
|
+
/**
|
|
36
|
+
* Build and return the final messages array.
|
|
37
|
+
*/
|
|
38
|
+
build(): Message[];
|
|
39
|
+
/**
|
|
40
|
+
* Get the current length of the messages array.
|
|
41
|
+
*/
|
|
42
|
+
get length(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Check if the builder has any messages.
|
|
45
|
+
*/
|
|
46
|
+
get isEmpty(): boolean;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=message-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-builder.d.ts","sourceRoot":"","sources":["../../source/utils/message-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAEtD;;;;GAIG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAY;gBAEhB,eAAe,EAAE,OAAO,EAAE;IAItC;;;OAGG;IACH,uBAAuB,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI;IAKtD;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAUvC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAW3C;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQrC;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ3C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC;;OAEG;IACH,KAAK,IAAI,OAAO,EAAE;IAIlB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;CACD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builder pattern for constructing message arrays.
|
|
3
|
+
* Provides a fluent interface for adding messages without side effects.
|
|
4
|
+
* This ensures messages are only added to state once, preventing duplication.
|
|
5
|
+
*/
|
|
6
|
+
export class MessageBuilder {
|
|
7
|
+
messages;
|
|
8
|
+
constructor(initialMessages) {
|
|
9
|
+
this.messages = [...initialMessages];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Add auto-executed messages from AI SDK multi-step execution.
|
|
13
|
+
* These include both assistant messages (with tool_calls) and tool result messages.
|
|
14
|
+
*/
|
|
15
|
+
addAutoExecutedMessages(autoMessages) {
|
|
16
|
+
this.messages.push(...autoMessages);
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Add an assistant message (with or without tool_calls).
|
|
21
|
+
*/
|
|
22
|
+
addAssistantMessage(msg) {
|
|
23
|
+
if (msg.role !== 'assistant') {
|
|
24
|
+
throw new Error('addAssistantMessage requires a message with role "assistant"');
|
|
25
|
+
}
|
|
26
|
+
this.messages.push(msg);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Add tool result messages from tool execution.
|
|
31
|
+
*/
|
|
32
|
+
addToolResults(results) {
|
|
33
|
+
const toolMessages = results.map(result => ({
|
|
34
|
+
role: 'tool',
|
|
35
|
+
content: result.content || '',
|
|
36
|
+
tool_call_id: result.tool_call_id,
|
|
37
|
+
name: result.name,
|
|
38
|
+
}));
|
|
39
|
+
this.messages.push(...toolMessages);
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Add a user message.
|
|
44
|
+
*/
|
|
45
|
+
addUserMessage(content) {
|
|
46
|
+
this.messages.push({
|
|
47
|
+
role: 'user',
|
|
48
|
+
content,
|
|
49
|
+
});
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Add an error message as a user message (for model self-correction).
|
|
54
|
+
*/
|
|
55
|
+
addErrorMessage(errorContent) {
|
|
56
|
+
this.messages.push({
|
|
57
|
+
role: 'user',
|
|
58
|
+
content: errorContent,
|
|
59
|
+
});
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Add an arbitrary message (use sparingly, prefer specific methods).
|
|
64
|
+
*/
|
|
65
|
+
addMessage(message) {
|
|
66
|
+
this.messages.push(message);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build and return the final messages array.
|
|
71
|
+
*/
|
|
72
|
+
build() {
|
|
73
|
+
return this.messages;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the current length of the messages array.
|
|
77
|
+
*/
|
|
78
|
+
get length() {
|
|
79
|
+
return this.messages.length;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if the builder has any messages.
|
|
83
|
+
*/
|
|
84
|
+
get isEmpty() {
|
|
85
|
+
return this.messages.length === 0;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=message-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-builder.js","sourceRoot":"","sources":["../../source/utils/message-builder.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAClB,QAAQ,CAAY;IAE5B,YAAY,eAA0B;QACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,YAAuB;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,GAAY;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,8DAA8D,CAC9D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAqB;QACnC,MAAM,YAAY,GAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAe;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,MAAM;YACZ,OAAO;SACP,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAoB;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,YAAY;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-builder.spec.d.ts","sourceRoot":"","sources":["../../source/utils/message-builder.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import { MessageBuilder } from './message-builder.js';
|
|
3
|
+
test('MessageBuilder starts with initial messages', t => {
|
|
4
|
+
const userMsg = { role: 'user', content: 'Hello' };
|
|
5
|
+
const builder = new MessageBuilder([userMsg]);
|
|
6
|
+
const messages = builder.build();
|
|
7
|
+
t.is(messages.length, 1);
|
|
8
|
+
t.deepEqual(messages[0], userMsg);
|
|
9
|
+
});
|
|
10
|
+
test('MessageBuilder addAssistantMessage adds assistant message', t => {
|
|
11
|
+
const builder = new MessageBuilder([]);
|
|
12
|
+
const assistantMsg = {
|
|
13
|
+
role: 'assistant',
|
|
14
|
+
content: 'Hi there',
|
|
15
|
+
};
|
|
16
|
+
builder.addAssistantMessage(assistantMsg);
|
|
17
|
+
const messages = builder.build();
|
|
18
|
+
t.is(messages.length, 1);
|
|
19
|
+
t.is(messages[0].role, 'assistant');
|
|
20
|
+
t.is(messages[0].content, 'Hi there');
|
|
21
|
+
});
|
|
22
|
+
test('MessageBuilder addAssistantMessage throws on non-assistant message', t => {
|
|
23
|
+
const builder = new MessageBuilder([]);
|
|
24
|
+
const userMsg = { role: 'user', content: 'Test' };
|
|
25
|
+
t.throws(() => {
|
|
26
|
+
builder.addAssistantMessage(userMsg);
|
|
27
|
+
}, { message: /requires a message with role "assistant"/ });
|
|
28
|
+
});
|
|
29
|
+
test('MessageBuilder addToolResults adds tool messages', t => {
|
|
30
|
+
const builder = new MessageBuilder([]);
|
|
31
|
+
const toolResults = [
|
|
32
|
+
{
|
|
33
|
+
tool_call_id: 'tool_1',
|
|
34
|
+
role: 'tool',
|
|
35
|
+
name: 'read_file',
|
|
36
|
+
content: 'File contents here',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
tool_call_id: 'tool_2',
|
|
40
|
+
role: 'tool',
|
|
41
|
+
name: 'execute_bash',
|
|
42
|
+
content: 'Command output',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
builder.addToolResults(toolResults);
|
|
46
|
+
const messages = builder.build();
|
|
47
|
+
t.is(messages.length, 2);
|
|
48
|
+
t.is(messages[0].role, 'tool');
|
|
49
|
+
t.is(messages[0].tool_call_id, 'tool_1');
|
|
50
|
+
t.is(messages[0].name, 'read_file');
|
|
51
|
+
t.is(messages[0].content, 'File contents here');
|
|
52
|
+
t.is(messages[1].role, 'tool');
|
|
53
|
+
t.is(messages[1].tool_call_id, 'tool_2');
|
|
54
|
+
});
|
|
55
|
+
test('MessageBuilder addAutoExecutedMessages adds multiple messages', t => {
|
|
56
|
+
const builder = new MessageBuilder([]);
|
|
57
|
+
const autoMessages = [
|
|
58
|
+
{ role: 'assistant', content: '', tool_calls: [{ id: '1', function: { name: 'test', arguments: {} } }] },
|
|
59
|
+
{ role: 'tool', content: 'result', tool_call_id: '1', name: 'test' },
|
|
60
|
+
];
|
|
61
|
+
builder.addAutoExecutedMessages(autoMessages);
|
|
62
|
+
const messages = builder.build();
|
|
63
|
+
t.is(messages.length, 2);
|
|
64
|
+
t.is(messages[0].role, 'assistant');
|
|
65
|
+
t.is(messages[1].role, 'tool');
|
|
66
|
+
});
|
|
67
|
+
test('MessageBuilder addUserMessage adds user message', t => {
|
|
68
|
+
const builder = new MessageBuilder([]);
|
|
69
|
+
builder.addUserMessage('Hello');
|
|
70
|
+
const messages = builder.build();
|
|
71
|
+
t.is(messages.length, 1);
|
|
72
|
+
t.is(messages[0].role, 'user');
|
|
73
|
+
t.is(messages[0].content, 'Hello');
|
|
74
|
+
});
|
|
75
|
+
test('MessageBuilder addErrorMessage adds error as user message', t => {
|
|
76
|
+
const builder = new MessageBuilder([]);
|
|
77
|
+
builder.addErrorMessage('Error: something went wrong');
|
|
78
|
+
const messages = builder.build();
|
|
79
|
+
t.is(messages.length, 1);
|
|
80
|
+
t.is(messages[0].role, 'user');
|
|
81
|
+
t.is(messages[0].content, 'Error: something went wrong');
|
|
82
|
+
});
|
|
83
|
+
test('MessageBuilder supports method chaining', t => {
|
|
84
|
+
const builder = new MessageBuilder([]);
|
|
85
|
+
const messages = builder
|
|
86
|
+
.addUserMessage('Hello')
|
|
87
|
+
.addAssistantMessage({ role: 'assistant', content: 'Hi' })
|
|
88
|
+
.addUserMessage('How are you?')
|
|
89
|
+
.build();
|
|
90
|
+
t.is(messages.length, 3);
|
|
91
|
+
t.is(messages[0].role, 'user');
|
|
92
|
+
t.is(messages[1].role, 'assistant');
|
|
93
|
+
t.is(messages[2].role, 'user');
|
|
94
|
+
});
|
|
95
|
+
test('MessageBuilder length property returns correct count', t => {
|
|
96
|
+
const builder = new MessageBuilder([]);
|
|
97
|
+
t.is(builder.length, 0);
|
|
98
|
+
builder.addUserMessage('Test');
|
|
99
|
+
t.is(builder.length, 1);
|
|
100
|
+
builder.addAssistantMessage({ role: 'assistant', content: 'Response' });
|
|
101
|
+
t.is(builder.length, 2);
|
|
102
|
+
});
|
|
103
|
+
test('MessageBuilder isEmpty property works correctly', t => {
|
|
104
|
+
const builder = new MessageBuilder([]);
|
|
105
|
+
t.true(builder.isEmpty);
|
|
106
|
+
builder.addUserMessage('Test');
|
|
107
|
+
t.false(builder.isEmpty);
|
|
108
|
+
});
|
|
109
|
+
test('MessageBuilder builds complete conversation flow', t => {
|
|
110
|
+
const userMsg = { role: 'user', content: 'Read config.json' };
|
|
111
|
+
const assistantMsg = {
|
|
112
|
+
role: 'assistant',
|
|
113
|
+
content: '',
|
|
114
|
+
tool_calls: [
|
|
115
|
+
{
|
|
116
|
+
id: 'call_1',
|
|
117
|
+
function: {
|
|
118
|
+
name: 'read_file',
|
|
119
|
+
arguments: { path: 'config.json' },
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
const toolResult = {
|
|
125
|
+
tool_call_id: 'call_1',
|
|
126
|
+
role: 'tool',
|
|
127
|
+
name: 'read_file',
|
|
128
|
+
content: '{"setting": "value"}',
|
|
129
|
+
};
|
|
130
|
+
const builder = new MessageBuilder([userMsg]);
|
|
131
|
+
const messages = builder
|
|
132
|
+
.addAssistantMessage(assistantMsg)
|
|
133
|
+
.addToolResults([toolResult])
|
|
134
|
+
.build();
|
|
135
|
+
t.is(messages.length, 3);
|
|
136
|
+
t.is(messages[0].role, 'user');
|
|
137
|
+
t.is(messages[1].role, 'assistant');
|
|
138
|
+
t.is(messages[1].tool_calls?.length, 1);
|
|
139
|
+
t.is(messages[2].role, 'tool');
|
|
140
|
+
t.is(messages[2].content, '{"setting": "value"}');
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=message-builder.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-builder.spec.js","sourceRoot":"","sources":["../../source/utils/message-builder.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../source/vscode/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAGlC,MAAM,MAAM,aAAa,GACtB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,oBAAoB,GACpB,yBAAyB,GACzB,gBAAgB,CAAC;AAGpB,MAAM,MAAM,aAAa,GACtB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,GACd,0BAA0B,CAAC;AAG9B,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAGD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../source/vscode/protocol.ts"],"names":[],"mappings":"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"}
|