@gguf/coder 0.5.4 → 0.5.6
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/dist/app/App.d.ts +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +39 -1
- package/dist/app/App.js.map +1 -1
- package/dist/app/types.d.ts +1 -0
- package/dist/app/types.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +3 -0
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/tools/string-replace.d.ts.map +1 -1
- package/dist/tools/string-replace.js +14 -1
- package/dist/tools/string-replace.js.map +1 -1
- package/dist/tools/write-file.d.ts.map +1 -1
- package/dist/tools/write-file.js +19 -2
- package/dist/tools/write-file.js.map +1 -1
- package/dist/vscode/index.d.ts +13 -0
- package/dist/vscode/index.d.ts.map +1 -0
- package/dist/vscode/index.js +13 -0
- package/dist/vscode/index.js.map +1 -0
- package/dist/vscode/protocol.d.ts +101 -0
- package/dist/vscode/protocol.d.ts.map +1 -0
- package/dist/vscode/protocol.js +7 -0
- package/dist/vscode/protocol.js.map +1 -0
- package/dist/vscode/protocol.spec.d.ts +2 -0
- package/dist/vscode/protocol.spec.d.ts.map +1 -0
- package/dist/vscode/protocol.spec.js +354 -0
- package/dist/vscode/protocol.spec.js.map +1 -0
- package/dist/vscode/vscode-server.d.ts +119 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -0
- package/dist/vscode/vscode-server.js +326 -0
- package/dist/vscode/vscode-server.js.map +1 -0
- package/dist/vscode/vscode-server.spec.d.ts +2 -0
- package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
- package/dist/vscode/vscode-server.spec.js +487 -0
- package/dist/vscode/vscode-server.spec.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import { DEFAULT_PORT, PROTOCOL_VERSION } from './protocol.js';
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Tests for protocol constants
|
|
5
|
+
// ============================================================================
|
|
6
|
+
test('PROTOCOL_VERSION is defined and is a valid semver string', t => {
|
|
7
|
+
t.truthy(PROTOCOL_VERSION);
|
|
8
|
+
t.regex(PROTOCOL_VERSION, /^\d+\.\d+\.\d+$/);
|
|
9
|
+
});
|
|
10
|
+
test('DEFAULT_PORT is defined and is a valid port number', t => {
|
|
11
|
+
t.truthy(DEFAULT_PORT);
|
|
12
|
+
t.true(DEFAULT_PORT > 0 && DEFAULT_PORT < 65536);
|
|
13
|
+
t.is(DEFAULT_PORT, 51820);
|
|
14
|
+
});
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Tests for ServerMessage types
|
|
17
|
+
// ============================================================================
|
|
18
|
+
test('FileChangeMessage has correct structure', t => {
|
|
19
|
+
const message = {
|
|
20
|
+
type: 'file_change',
|
|
21
|
+
id: 'test-id',
|
|
22
|
+
filePath: '/path/to/file.ts',
|
|
23
|
+
originalContent: 'original',
|
|
24
|
+
newContent: 'new',
|
|
25
|
+
toolName: 'create_file',
|
|
26
|
+
toolArgs: { path: '/path/to/file.ts' },
|
|
27
|
+
};
|
|
28
|
+
t.is(message.type, 'file_change');
|
|
29
|
+
t.is(message.id, 'test-id');
|
|
30
|
+
t.is(message.filePath, '/path/to/file.ts');
|
|
31
|
+
t.is(message.originalContent, 'original');
|
|
32
|
+
t.is(message.newContent, 'new');
|
|
33
|
+
t.is(message.toolName, 'create_file');
|
|
34
|
+
t.deepEqual(message.toolArgs, { path: '/path/to/file.ts' });
|
|
35
|
+
});
|
|
36
|
+
test('ToolCallMessage has correct structure', t => {
|
|
37
|
+
const message = {
|
|
38
|
+
type: 'tool_call',
|
|
39
|
+
id: 'tool-id',
|
|
40
|
+
toolName: 'execute_bash',
|
|
41
|
+
toolArgs: { command: 'ls -la' },
|
|
42
|
+
status: 'pending',
|
|
43
|
+
};
|
|
44
|
+
t.is(message.type, 'tool_call');
|
|
45
|
+
t.is(message.id, 'tool-id');
|
|
46
|
+
t.is(message.toolName, 'execute_bash');
|
|
47
|
+
t.is(message.status, 'pending');
|
|
48
|
+
});
|
|
49
|
+
test('ToolCallMessage supports all status values', t => {
|
|
50
|
+
const statuses = [
|
|
51
|
+
'pending',
|
|
52
|
+
'executing',
|
|
53
|
+
'completed',
|
|
54
|
+
'rejected',
|
|
55
|
+
];
|
|
56
|
+
for (const status of statuses) {
|
|
57
|
+
const message = {
|
|
58
|
+
type: 'tool_call',
|
|
59
|
+
id: 'tool-id',
|
|
60
|
+
toolName: 'test',
|
|
61
|
+
toolArgs: {},
|
|
62
|
+
status,
|
|
63
|
+
};
|
|
64
|
+
t.is(message.status, status);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
test('ToolCallMessage can include result', t => {
|
|
68
|
+
const message = {
|
|
69
|
+
type: 'tool_call',
|
|
70
|
+
id: 'tool-id',
|
|
71
|
+
toolName: 'execute_bash',
|
|
72
|
+
toolArgs: { command: 'echo hello' },
|
|
73
|
+
status: 'completed',
|
|
74
|
+
result: 'hello\n',
|
|
75
|
+
};
|
|
76
|
+
t.is(message.result, 'hello\n');
|
|
77
|
+
});
|
|
78
|
+
test('AssistantMessage has correct structure', t => {
|
|
79
|
+
const message = {
|
|
80
|
+
type: 'assistant_message',
|
|
81
|
+
content: 'Hello, I can help you with that.',
|
|
82
|
+
isGenerating: false,
|
|
83
|
+
};
|
|
84
|
+
t.is(message.type, 'assistant_message');
|
|
85
|
+
t.is(message.content, 'Hello, I can help you with that.');
|
|
86
|
+
t.false(message.isGenerating);
|
|
87
|
+
});
|
|
88
|
+
test('AssistantMessage can be streaming', t => {
|
|
89
|
+
const message = {
|
|
90
|
+
type: 'assistant_message',
|
|
91
|
+
content: 'Partial response...',
|
|
92
|
+
isGenerating: true,
|
|
93
|
+
};
|
|
94
|
+
t.true(message.isGenerating);
|
|
95
|
+
});
|
|
96
|
+
test('StatusMessage has correct structure', t => {
|
|
97
|
+
const message = {
|
|
98
|
+
type: 'status',
|
|
99
|
+
connected: true,
|
|
100
|
+
model: 'gpt-4',
|
|
101
|
+
provider: 'openai',
|
|
102
|
+
workingDirectory: '/home/user/project',
|
|
103
|
+
};
|
|
104
|
+
t.is(message.type, 'status');
|
|
105
|
+
t.true(message.connected);
|
|
106
|
+
t.is(message.model, 'gpt-4');
|
|
107
|
+
t.is(message.provider, 'openai');
|
|
108
|
+
t.is(message.workingDirectory, '/home/user/project');
|
|
109
|
+
});
|
|
110
|
+
test('StatusMessage optional fields can be omitted', t => {
|
|
111
|
+
const message = {
|
|
112
|
+
type: 'status',
|
|
113
|
+
connected: false,
|
|
114
|
+
};
|
|
115
|
+
t.is(message.type, 'status');
|
|
116
|
+
t.false(message.connected);
|
|
117
|
+
t.is(message.model, undefined);
|
|
118
|
+
t.is(message.provider, undefined);
|
|
119
|
+
t.is(message.workingDirectory, undefined);
|
|
120
|
+
});
|
|
121
|
+
test('ConnectionAckMessage has correct structure', t => {
|
|
122
|
+
const message = {
|
|
123
|
+
type: 'connection_ack',
|
|
124
|
+
protocolVersion: '1.0.0',
|
|
125
|
+
cliVersion: '1.16.0',
|
|
126
|
+
};
|
|
127
|
+
t.is(message.type, 'connection_ack');
|
|
128
|
+
t.is(message.protocolVersion, '1.0.0');
|
|
129
|
+
t.is(message.cliVersion, '1.16.0');
|
|
130
|
+
});
|
|
131
|
+
test('DiagnosticsRequestMessage has correct structure', t => {
|
|
132
|
+
const message = {
|
|
133
|
+
type: 'diagnostics_request',
|
|
134
|
+
filePath: '/path/to/file.ts',
|
|
135
|
+
};
|
|
136
|
+
t.is(message.type, 'diagnostics_request');
|
|
137
|
+
t.is(message.filePath, '/path/to/file.ts');
|
|
138
|
+
});
|
|
139
|
+
test('DiagnosticsRequestMessage filePath is optional', t => {
|
|
140
|
+
const message = {
|
|
141
|
+
type: 'diagnostics_request',
|
|
142
|
+
};
|
|
143
|
+
t.is(message.type, 'diagnostics_request');
|
|
144
|
+
t.is(message.filePath, undefined);
|
|
145
|
+
});
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// Tests for ClientMessage types
|
|
148
|
+
// ============================================================================
|
|
149
|
+
test('SendPromptMessage has correct structure', t => {
|
|
150
|
+
const message = {
|
|
151
|
+
type: 'send_prompt',
|
|
152
|
+
prompt: 'Help me refactor this function',
|
|
153
|
+
context: {
|
|
154
|
+
filePath: '/path/to/file.ts',
|
|
155
|
+
selection: 'function foo() {}',
|
|
156
|
+
cursorPosition: { line: 10, character: 5 },
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
t.is(message.type, 'send_prompt');
|
|
160
|
+
t.is(message.prompt, 'Help me refactor this function');
|
|
161
|
+
t.is(message.context?.filePath, '/path/to/file.ts');
|
|
162
|
+
t.is(message.context?.selection, 'function foo() {}');
|
|
163
|
+
t.deepEqual(message.context?.cursorPosition, { line: 10, character: 5 });
|
|
164
|
+
});
|
|
165
|
+
test('SendPromptMessage context is optional', t => {
|
|
166
|
+
const message = {
|
|
167
|
+
type: 'send_prompt',
|
|
168
|
+
prompt: 'Hello',
|
|
169
|
+
};
|
|
170
|
+
t.is(message.type, 'send_prompt');
|
|
171
|
+
t.is(message.context, undefined);
|
|
172
|
+
});
|
|
173
|
+
test('ApplyChangeMessage has correct structure', t => {
|
|
174
|
+
const message = {
|
|
175
|
+
type: 'apply_change',
|
|
176
|
+
id: 'change-123',
|
|
177
|
+
};
|
|
178
|
+
t.is(message.type, 'apply_change');
|
|
179
|
+
t.is(message.id, 'change-123');
|
|
180
|
+
});
|
|
181
|
+
test('RejectChangeMessage has correct structure', t => {
|
|
182
|
+
const message = {
|
|
183
|
+
type: 'reject_change',
|
|
184
|
+
id: 'change-123',
|
|
185
|
+
};
|
|
186
|
+
t.is(message.type, 'reject_change');
|
|
187
|
+
t.is(message.id, 'change-123');
|
|
188
|
+
});
|
|
189
|
+
test('GetStatusMessage has correct structure', t => {
|
|
190
|
+
const message = {
|
|
191
|
+
type: 'get_status',
|
|
192
|
+
};
|
|
193
|
+
t.is(message.type, 'get_status');
|
|
194
|
+
});
|
|
195
|
+
test('ContextMessage has correct structure', t => {
|
|
196
|
+
const diagnostics = [
|
|
197
|
+
{
|
|
198
|
+
filePath: '/path/to/file.ts',
|
|
199
|
+
line: 10,
|
|
200
|
+
character: 5,
|
|
201
|
+
message: 'Type error',
|
|
202
|
+
severity: 'error',
|
|
203
|
+
source: 'typescript',
|
|
204
|
+
},
|
|
205
|
+
];
|
|
206
|
+
const message = {
|
|
207
|
+
type: 'context',
|
|
208
|
+
workspaceFolder: '/home/user/project',
|
|
209
|
+
openFiles: ['/home/user/project/src/index.ts'],
|
|
210
|
+
activeFile: '/home/user/project/src/index.ts',
|
|
211
|
+
diagnostics,
|
|
212
|
+
};
|
|
213
|
+
t.is(message.type, 'context');
|
|
214
|
+
t.is(message.workspaceFolder, '/home/user/project');
|
|
215
|
+
t.deepEqual(message.openFiles, ['/home/user/project/src/index.ts']);
|
|
216
|
+
t.is(message.activeFile, '/home/user/project/src/index.ts');
|
|
217
|
+
t.is(message.diagnostics?.length, 1);
|
|
218
|
+
});
|
|
219
|
+
test('ContextMessage fields are optional', t => {
|
|
220
|
+
const message = {
|
|
221
|
+
type: 'context',
|
|
222
|
+
};
|
|
223
|
+
t.is(message.type, 'context');
|
|
224
|
+
t.is(message.workspaceFolder, undefined);
|
|
225
|
+
t.is(message.openFiles, undefined);
|
|
226
|
+
t.is(message.activeFile, undefined);
|
|
227
|
+
t.is(message.diagnostics, undefined);
|
|
228
|
+
});
|
|
229
|
+
test('DiagnosticsResponseMessage has correct structure', t => {
|
|
230
|
+
const diagnostics = [
|
|
231
|
+
{
|
|
232
|
+
filePath: '/path/to/file.ts',
|
|
233
|
+
line: 5,
|
|
234
|
+
character: 10,
|
|
235
|
+
message: 'Unused variable',
|
|
236
|
+
severity: 'warning',
|
|
237
|
+
},
|
|
238
|
+
];
|
|
239
|
+
const message = {
|
|
240
|
+
type: 'diagnostics_response',
|
|
241
|
+
diagnostics,
|
|
242
|
+
};
|
|
243
|
+
t.is(message.type, 'diagnostics_response');
|
|
244
|
+
t.is(message.diagnostics.length, 1);
|
|
245
|
+
t.is(message.diagnostics[0].severity, 'warning');
|
|
246
|
+
});
|
|
247
|
+
// ============================================================================
|
|
248
|
+
// Tests for DiagnosticInfo
|
|
249
|
+
// ============================================================================
|
|
250
|
+
test('DiagnosticInfo has correct structure', t => {
|
|
251
|
+
const diagnostic = {
|
|
252
|
+
filePath: '/path/to/file.ts',
|
|
253
|
+
line: 10,
|
|
254
|
+
character: 5,
|
|
255
|
+
message: "Cannot find name 'foo'",
|
|
256
|
+
severity: 'error',
|
|
257
|
+
source: 'typescript',
|
|
258
|
+
};
|
|
259
|
+
t.is(diagnostic.filePath, '/path/to/file.ts');
|
|
260
|
+
t.is(diagnostic.line, 10);
|
|
261
|
+
t.is(diagnostic.character, 5);
|
|
262
|
+
t.is(diagnostic.message, "Cannot find name 'foo'");
|
|
263
|
+
t.is(diagnostic.severity, 'error');
|
|
264
|
+
t.is(diagnostic.source, 'typescript');
|
|
265
|
+
});
|
|
266
|
+
test('DiagnosticInfo supports all severity levels', t => {
|
|
267
|
+
const severities = [
|
|
268
|
+
'error',
|
|
269
|
+
'warning',
|
|
270
|
+
'info',
|
|
271
|
+
'hint',
|
|
272
|
+
];
|
|
273
|
+
for (const severity of severities) {
|
|
274
|
+
const diagnostic = {
|
|
275
|
+
filePath: '/test.ts',
|
|
276
|
+
line: 1,
|
|
277
|
+
character: 1,
|
|
278
|
+
message: 'Test',
|
|
279
|
+
severity,
|
|
280
|
+
};
|
|
281
|
+
t.is(diagnostic.severity, severity);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
test('DiagnosticInfo source is optional', t => {
|
|
285
|
+
const diagnostic = {
|
|
286
|
+
filePath: '/test.ts',
|
|
287
|
+
line: 1,
|
|
288
|
+
character: 1,
|
|
289
|
+
message: 'Test',
|
|
290
|
+
severity: 'info',
|
|
291
|
+
};
|
|
292
|
+
t.is(diagnostic.source, undefined);
|
|
293
|
+
});
|
|
294
|
+
// ============================================================================
|
|
295
|
+
// Tests for PendingChange
|
|
296
|
+
// ============================================================================
|
|
297
|
+
test('PendingChange has correct structure', t => {
|
|
298
|
+
const change = {
|
|
299
|
+
id: 'change-123',
|
|
300
|
+
filePath: '/path/to/file.ts',
|
|
301
|
+
originalContent: 'const x = 1;',
|
|
302
|
+
newContent: 'const x = 2;',
|
|
303
|
+
toolName: 'replace_lines',
|
|
304
|
+
timestamp: Date.now(),
|
|
305
|
+
};
|
|
306
|
+
t.is(change.id, 'change-123');
|
|
307
|
+
t.is(change.filePath, '/path/to/file.ts');
|
|
308
|
+
t.is(change.originalContent, 'const x = 1;');
|
|
309
|
+
t.is(change.newContent, 'const x = 2;');
|
|
310
|
+
t.is(change.toolName, 'replace_lines');
|
|
311
|
+
t.true(change.timestamp > 0);
|
|
312
|
+
});
|
|
313
|
+
// ============================================================================
|
|
314
|
+
// Tests for type unions (compile-time checks)
|
|
315
|
+
// ============================================================================
|
|
316
|
+
test('ServerMessage type union includes all message types', t => {
|
|
317
|
+
// This test verifies the type union at compile time
|
|
318
|
+
const messages = [
|
|
319
|
+
{
|
|
320
|
+
type: 'file_change',
|
|
321
|
+
id: '1',
|
|
322
|
+
filePath: '/test',
|
|
323
|
+
originalContent: '',
|
|
324
|
+
newContent: '',
|
|
325
|
+
toolName: 'test',
|
|
326
|
+
toolArgs: {},
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
type: 'tool_call',
|
|
330
|
+
id: '2',
|
|
331
|
+
toolName: 'test',
|
|
332
|
+
toolArgs: {},
|
|
333
|
+
status: 'pending',
|
|
334
|
+
},
|
|
335
|
+
{ type: 'assistant_message', content: 'test', isGenerating: false },
|
|
336
|
+
{ type: 'status', connected: true },
|
|
337
|
+
{ type: 'connection_ack', protocolVersion: '1.0.0', cliVersion: '1.0.0' },
|
|
338
|
+
{ type: 'diagnostics_request' },
|
|
339
|
+
];
|
|
340
|
+
t.is(messages.length, 6);
|
|
341
|
+
});
|
|
342
|
+
test('ClientMessage type union includes all message types', t => {
|
|
343
|
+
// This test verifies the type union at compile time
|
|
344
|
+
const messages = [
|
|
345
|
+
{ type: 'send_prompt', prompt: 'test' },
|
|
346
|
+
{ type: 'apply_change', id: '1' },
|
|
347
|
+
{ type: 'reject_change', id: '2' },
|
|
348
|
+
{ type: 'get_status' },
|
|
349
|
+
{ type: 'context' },
|
|
350
|
+
{ type: 'diagnostics_response', diagnostics: [] },
|
|
351
|
+
];
|
|
352
|
+
t.is(messages.length, 6);
|
|
353
|
+
});
|
|
354
|
+
//# sourceMappingURL=protocol.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.spec.js","sourceRoot":"","sources":["../../source/vscode/protocol.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket server for VS Code extension communication
|
|
3
|
+
*/
|
|
4
|
+
import { ClientMessage, DiagnosticInfo, PendingChange } from './protocol.js';
|
|
5
|
+
export type MessageHandler = (message: ClientMessage) => void;
|
|
6
|
+
export type PromptHandler = (prompt: string, context?: {
|
|
7
|
+
filePath?: string;
|
|
8
|
+
selection?: string;
|
|
9
|
+
cursorPosition?: {
|
|
10
|
+
line: number;
|
|
11
|
+
character: number;
|
|
12
|
+
};
|
|
13
|
+
}) => void;
|
|
14
|
+
export interface VSCodeServerCallbacks {
|
|
15
|
+
onPrompt?: PromptHandler;
|
|
16
|
+
onChangeApplied?: (id: string) => void;
|
|
17
|
+
onChangeRejected?: (id: string) => void;
|
|
18
|
+
onContext?: (context: {
|
|
19
|
+
workspaceFolder?: string;
|
|
20
|
+
openFiles?: string[];
|
|
21
|
+
activeFile?: string;
|
|
22
|
+
diagnostics?: DiagnosticInfo[];
|
|
23
|
+
}) => void;
|
|
24
|
+
onDiagnosticsResponse?: (diagnostics: DiagnosticInfo[]) => void;
|
|
25
|
+
onConnect?: () => void;
|
|
26
|
+
onDisconnect?: () => void;
|
|
27
|
+
}
|
|
28
|
+
export declare class VSCodeServer {
|
|
29
|
+
private port;
|
|
30
|
+
private wss;
|
|
31
|
+
private clients;
|
|
32
|
+
private pendingChanges;
|
|
33
|
+
private callbacks;
|
|
34
|
+
private currentModel?;
|
|
35
|
+
private currentProvider?;
|
|
36
|
+
private cliVersion;
|
|
37
|
+
constructor(port?: number);
|
|
38
|
+
/**
|
|
39
|
+
* Start the WebSocket server
|
|
40
|
+
*/
|
|
41
|
+
start(): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Stop the WebSocket server
|
|
44
|
+
*/
|
|
45
|
+
stop(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Register callbacks for client messages
|
|
48
|
+
*/
|
|
49
|
+
onCallbacks(callbacks: VSCodeServerCallbacks): void;
|
|
50
|
+
/**
|
|
51
|
+
* Check if any clients are connected
|
|
52
|
+
*/
|
|
53
|
+
hasConnections(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get number of connected clients
|
|
56
|
+
*/
|
|
57
|
+
getConnectionCount(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Send a file change notification to VS Code
|
|
60
|
+
*/
|
|
61
|
+
sendFileChange(filePath: string, originalContent: string, newContent: string, toolName: string, toolArgs: Record<string, unknown>): string;
|
|
62
|
+
/**
|
|
63
|
+
* Send an assistant message to VS Code
|
|
64
|
+
*/
|
|
65
|
+
sendAssistantMessage(content: string, isGenerating?: boolean): void;
|
|
66
|
+
/**
|
|
67
|
+
* Send status update to VS Code
|
|
68
|
+
*/
|
|
69
|
+
sendStatus(model?: string, provider?: string): void;
|
|
70
|
+
/**
|
|
71
|
+
* Request diagnostics from VS Code
|
|
72
|
+
*/
|
|
73
|
+
requestDiagnostics(filePath?: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Close diff preview in VS Code (when tool is confirmed/rejected in CLI)
|
|
76
|
+
*/
|
|
77
|
+
closeDiff(id: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Close all pending diff previews
|
|
80
|
+
*/
|
|
81
|
+
closeAllDiffs(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Get a pending change by ID
|
|
84
|
+
*/
|
|
85
|
+
getPendingChange(id: string): PendingChange | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Remove a pending change
|
|
88
|
+
*/
|
|
89
|
+
removePendingChange(id: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get all pending changes
|
|
92
|
+
*/
|
|
93
|
+
getAllPendingChanges(): PendingChange[];
|
|
94
|
+
private handleConnection;
|
|
95
|
+
private handleMessage;
|
|
96
|
+
private broadcast;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get or create the VS Code server singleton
|
|
100
|
+
*/
|
|
101
|
+
export declare function getVSCodeServer(port?: number): VSCodeServer;
|
|
102
|
+
/**
|
|
103
|
+
* Check if VS Code server is active and has connections
|
|
104
|
+
*/
|
|
105
|
+
export declare function isVSCodeConnected(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Send a file change to VS Code for preview/approval
|
|
108
|
+
* This is the main entry point for tools to integrate with VS Code
|
|
109
|
+
*/
|
|
110
|
+
export declare function sendFileChangeToVSCode(filePath: string, originalContent: string, newContent: string, toolName: string, toolArgs: Record<string, unknown>): string | null;
|
|
111
|
+
/**
|
|
112
|
+
* Close a diff preview in VS Code (when tool confirmed/rejected in CLI)
|
|
113
|
+
*/
|
|
114
|
+
export declare function closeDiffInVSCode(id: string | null): void;
|
|
115
|
+
/**
|
|
116
|
+
* Close all pending diff previews in VS Code
|
|
117
|
+
*/
|
|
118
|
+
export declare function closeAllDiffsInVSCode(): void;
|
|
119
|
+
//# sourceMappingURL=vscode-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscode-server.d.ts","sourceRoot":"","sources":["../../source/vscode/vscode-server.ts"],"names":[],"mappings":"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"}
|