@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.
Files changed (97) hide show
  1. package/assets/nanocoder-vscode.vsix +0 -0
  2. package/dist/ai-sdk-client-preparestep.spec.d.ts +2 -0
  3. package/dist/ai-sdk-client-preparestep.spec.d.ts.map +1 -0
  4. package/dist/ai-sdk-client-preparestep.spec.js +246 -0
  5. package/dist/ai-sdk-client-preparestep.spec.js.map +1 -0
  6. package/dist/ai-sdk-client.d.ts.map +1 -1
  7. package/dist/ai-sdk-client.js +108 -16
  8. package/dist/ai-sdk-client.js.map +1 -1
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +6 -6
  11. package/dist/app.js.map +1 -1
  12. package/dist/components/development-mode-indicator.d.ts +15 -0
  13. package/dist/components/development-mode-indicator.d.ts.map +1 -0
  14. package/dist/components/development-mode-indicator.js +18 -0
  15. package/dist/components/development-mode-indicator.js.map +1 -0
  16. package/dist/components/user-input.d.ts +1 -1
  17. package/dist/components/user-input.d.ts.map +1 -1
  18. package/dist/components/user-input.js +7 -7
  19. package/dist/components/user-input.js.map +1 -1
  20. package/dist/hooks/useAppState.d.ts +12 -1
  21. package/dist/hooks/useAppState.d.ts.map +1 -1
  22. package/dist/hooks/useAppState.js.map +1 -1
  23. package/dist/hooks/useChatHandler.d.ts +2 -1
  24. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  25. package/dist/hooks/useChatHandler.js +61 -58
  26. package/dist/hooks/useChatHandler.js.map +1 -1
  27. package/dist/hooks/useToolHandler.d.ts +1 -1
  28. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  29. package/dist/hooks/useToolHandler.js +18 -48
  30. package/dist/hooks/useToolHandler.js.map +1 -1
  31. package/dist/hooks/useVSCodeServer.d.ts +1 -1
  32. package/dist/hooks/useVSCodeServer.d.ts.map +1 -1
  33. package/dist/hooks/useVSCodeServer.js +2 -2
  34. package/dist/hooks/useVSCodeServer.js.map +1 -1
  35. package/dist/tools/execute-function.spec.js +1 -49
  36. package/dist/tools/execute-function.spec.js.map +1 -1
  37. package/dist/tools/index.d.ts.map +1 -1
  38. package/dist/tools/index.js +4 -8
  39. package/dist/tools/index.js.map +1 -1
  40. package/dist/tools/needs-approval.spec.js +22 -83
  41. package/dist/tools/needs-approval.spec.js.map +1 -1
  42. package/dist/tools/read-file.d.ts.map +1 -1
  43. package/dist/tools/read-file.js +5 -3
  44. package/dist/tools/read-file.js.map +1 -1
  45. package/dist/tools/string-replace.d.ts +19 -0
  46. package/dist/tools/string-replace.d.ts.map +1 -0
  47. package/dist/tools/string-replace.js +279 -0
  48. package/dist/tools/string-replace.js.map +1 -0
  49. package/dist/tools/string-replace.spec.d.ts +2 -0
  50. package/dist/tools/string-replace.spec.d.ts.map +1 -0
  51. package/dist/tools/string-replace.spec.js +315 -0
  52. package/dist/tools/string-replace.spec.js.map +1 -0
  53. package/dist/tools/{create-file.d.ts → write-file.d.ts} +5 -5
  54. package/dist/tools/write-file.d.ts.map +1 -0
  55. package/dist/tools/{create-file.js → write-file.js} +34 -39
  56. package/dist/tools/write-file.js.map +1 -0
  57. package/dist/tools/write-file.spec.d.ts +2 -0
  58. package/dist/tools/write-file.spec.d.ts.map +1 -0
  59. package/dist/tools/write-file.spec.js +263 -0
  60. package/dist/tools/write-file.spec.js.map +1 -0
  61. package/dist/types/core.d.ts +1 -0
  62. package/dist/types/core.d.ts.map +1 -1
  63. package/dist/types/core.js.map +1 -1
  64. package/dist/utils/message-builder.d.ts +48 -0
  65. package/dist/utils/message-builder.d.ts.map +1 -0
  66. package/dist/utils/message-builder.js +88 -0
  67. package/dist/utils/message-builder.js.map +1 -0
  68. package/dist/utils/message-builder.spec.d.ts +2 -0
  69. package/dist/utils/message-builder.spec.d.ts.map +1 -0
  70. package/dist/utils/message-builder.spec.js +142 -0
  71. package/dist/utils/message-builder.spec.js.map +1 -0
  72. package/dist/vscode/protocol.d.ts +1 -1
  73. package/dist/vscode/protocol.d.ts.map +1 -1
  74. package/dist/vscode/protocol.spec.js +5 -5
  75. package/dist/vscode/protocol.spec.js.map +1 -1
  76. package/dist/vscode/vscode-server.d.ts +1 -1
  77. package/dist/vscode/vscode-server.d.ts.map +1 -1
  78. package/dist/vscode/vscode-server.js +2 -2
  79. package/dist/vscode/vscode-server.js.map +1 -1
  80. package/dist/vscode/vscode-server.spec.js +2 -2
  81. package/dist/vscode/vscode-server.spec.js.map +1 -1
  82. package/package.json +9 -1
  83. package/source/app/prompts/main-prompt.md +84 -530
  84. package/dist/tools/create-file.d.ts.map +0 -1
  85. package/dist/tools/create-file.js.map +0 -1
  86. package/dist/tools/delete-lines.d.ts +0 -19
  87. package/dist/tools/delete-lines.d.ts.map +0 -1
  88. package/dist/tools/delete-lines.js +0 -328
  89. package/dist/tools/delete-lines.js.map +0 -1
  90. package/dist/tools/insert-lines.d.ts +0 -19
  91. package/dist/tools/insert-lines.d.ts.map +0 -1
  92. package/dist/tools/insert-lines.js +0 -275
  93. package/dist/tools/insert-lines.js.map +0 -1
  94. package/dist/tools/replace-lines.d.ts +0 -20
  95. package/dist/tools/replace-lines.d.ts.map +0 -1
  96. package/dist/tools/replace-lines.js +0 -330
  97. 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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"}
@@ -102,6 +102,7 @@ export interface LLMChatResponse {
102
102
  choices: Array<{
103
103
  message: LLMMessage;
104
104
  }>;
105
+ autoExecutedMessages?: Message[];
105
106
  }
106
107
  export interface StreamCallbacks {
107
108
  onToken?: (token: string) => void;
@@ -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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"}
@@ -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;AA0J1B,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACvE,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,wBAAwB;IACvC,IAAI,EAAE,gBAAgB;CACtB,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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message-builder.spec.d.ts.map
@@ -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":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAGpD,IAAI,CAAC,6CAA6C,EAAE,CAAC,CAAC,EAAE;IACvD,MAAM,OAAO,GAAY,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE;IACrE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,YAAY,GAAY;QAC7B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,UAAU;KACnB,CAAC;IAEF,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE;IAC9E,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAY,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC;IAEzD,CAAC,CAAC,MAAM,CACP,GAAG,EAAE;QACJ,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,EACD,EAAC,OAAO,EAAE,0CAA0C,EAAC,CACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,CAAC,CAAC,EAAE;IAC5D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,WAAW,GAAiB;QACjC;YACC,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,oBAAoB;SAC7B;QACD;YACC,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gBAAgB;SACzB;KACD,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAEhD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,CAAC,CAAC,EAAE;IACzE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,YAAY,GAAc;QAC/B,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAC,EAAC,CAAC,EAAC;QAClG,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC;KAClE,CAAC;IAEF,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,EAAE;IAC3D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE;IACrE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,CAAC,CAAC,EAAE;IACnD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,OAAO;SACtB,cAAc,CAAC,OAAO,CAAC;SACvB,mBAAmB,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;SACvD,cAAc,CAAC,cAAc,CAAC;SAC9B,KAAK,EAAE,CAAC;IAEV,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE;IAChE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,mBAAmB,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;IACtE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,EAAE;IAC3D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,CAAC,CAAC,EAAE;IAC5D,MAAM,OAAO,GAAY,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAC,CAAC;IACrE,MAAM,YAAY,GAAY;QAC7B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE;YACX;gBACC,EAAE,EAAE,QAAQ;gBACZ,QAAQ,EAAE;oBACT,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC;iBAChC;aACD;SACD;KACD,CAAC;IACF,MAAM,UAAU,GAAe;QAC9B,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,sBAAsB;KAC/B,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO;SACtB,mBAAmB,CAAC,YAAY,CAAC;SACjC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC;SAC5B,KAAK,EAAE,CAAC;IAEV,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
@@ -26,7 +26,7 @@ export interface ToolCallMessage {
26
26
  export interface AssistantMessage {
27
27
  type: 'assistant_message';
28
28
  content: string;
29
- isStreaming: boolean;
29
+ isGenerating: boolean;
30
30
  }
31
31
  export interface StatusMessage {
32
32
  type: 'status';
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../source/vscode/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../source/vscode/protocol.ts"],"names":[],"mappings":"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"}