rivet-design 0.5.4 → 0.5.7
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/README.md +18 -18
- package/README.npm.md +18 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -14
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -67
- package/dist/mcp/server.js.map +1 -1
- package/dist/services/TelemetryService.d.ts.map +1 -1
- package/dist/services/TelemetryService.js +5 -0
- package/dist/services/TelemetryService.js.map +1 -1
- package/package.json +3 -3
- package/src/ui/dist/assets/main-DAIpACRO.js +491 -0
- package/src/ui/dist/index.html +1 -1
- package/dist/routes/agent.d.ts +0 -8
- package/dist/routes/agent.d.ts.map +0 -1
- package/dist/routes/agent.js +0 -79
- package/dist/routes/agent.js.map +0 -1
- package/dist/routes/comments.d.ts +0 -2
- package/dist/routes/comments.d.ts.map +0 -1
- package/dist/routes/comments.js +0 -92
- package/dist/routes/comments.js.map +0 -1
- package/dist/routes/onboarding.d.ts +0 -6
- package/dist/routes/onboarding.d.ts.map +0 -1
- package/dist/routes/onboarding.js +0 -206
- package/dist/routes/onboarding.js.map +0 -1
- package/dist/routes/selection.d.ts +0 -2
- package/dist/routes/selection.d.ts.map +0 -1
- package/dist/routes/selection.js +0 -38
- package/dist/routes/selection.js.map +0 -1
- package/dist/scripts/react-instrumentation.js +0 -300
- package/dist/services/AgentBridgeService.d.ts +0 -89
- package/dist/services/AgentBridgeService.d.ts.map +0 -1
- package/dist/services/AgentBridgeService.js +0 -413
- package/dist/services/AgentBridgeService.js.map +0 -1
- package/dist/services/AgentModService.d.ts +0 -76
- package/dist/services/AgentModService.d.ts.map +0 -1
- package/dist/services/AgentModService.js +0 -494
- package/dist/services/AgentModService.js.map +0 -1
- package/dist/services/CommentSessionManager.d.ts +0 -94
- package/dist/services/CommentSessionManager.d.ts.map +0 -1
- package/dist/services/CommentSessionManager.js +0 -260
- package/dist/services/CommentSessionManager.js.map +0 -1
- package/dist/services/ImportResolverService.d.ts +0 -30
- package/dist/services/ImportResolverService.d.ts.map +0 -1
- package/dist/services/ImportResolverService.js +0 -136
- package/dist/services/ImportResolverService.js.map +0 -1
- package/dist/services/ReactComponentPlugin.d.ts +0 -44
- package/dist/services/ReactComponentPlugin.d.ts.map +0 -1
- package/dist/services/ReactComponentPlugin.js +0 -100
- package/dist/services/ReactComponentPlugin.js.map +0 -1
- package/dist/types/agent-protocol.d.ts +0 -55
- package/dist/types/agent-protocol.d.ts.map +0 -1
- package/dist/types/agent-protocol.js +0 -6
- package/dist/types/agent-protocol.js.map +0 -1
- package/dist/types/agent-tools.d.ts +0 -78
- package/dist/types/agent-tools.d.ts.map +0 -1
- package/dist/types/agent-tools.js +0 -7
- package/dist/types/agent-tools.js.map +0 -1
- package/dist/types/types.d.ts +0 -15
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -3
- package/dist/types/types.js.map +0 -1
- package/src/ui/dist/assets/main-BXXN24hn.js +0 -505
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentBridgeService = void 0;
|
|
4
|
-
const ws_1 = require("ws");
|
|
5
|
-
const logger_1 = require("../utils/logger");
|
|
6
|
-
const ComponentSearchService_1 = require("./ComponentSearchService");
|
|
7
|
-
const FileModificationService_1 = require("./FileModificationService");
|
|
8
|
-
const LocalGitService_1 = require("./LocalGitService");
|
|
9
|
-
const ConfigManager_1 = require("./ConfigManager");
|
|
10
|
-
const promises_1 = require("fs/promises");
|
|
11
|
-
const glob_1 = require("glob");
|
|
12
|
-
const log = (0, logger_1.createLogger)('AgentBridgeService');
|
|
13
|
-
const HEARTBEAT_INTERVAL = 30000; // 30 seconds
|
|
14
|
-
const RECONNECT_DELAY = 5000; // 5 seconds
|
|
15
|
-
/**
|
|
16
|
-
* Connects Rivet CLI to hosted Agent SDK server
|
|
17
|
-
* Executes tools locally and sends results back via WebSocket
|
|
18
|
-
*/
|
|
19
|
-
class AgentBridgeService {
|
|
20
|
-
constructor(serverUrl, authToken, projectPath, sessionService) {
|
|
21
|
-
this.serverUrl = serverUrl;
|
|
22
|
-
this.ws = null;
|
|
23
|
-
this.isConnected = false;
|
|
24
|
-
this.sseClients = new Set();
|
|
25
|
-
this.heartbeatInterval = null;
|
|
26
|
-
this.reconnectTimeout = null;
|
|
27
|
-
this.configManager = (0, ConfigManager_1.getConfigManager)();
|
|
28
|
-
this.projectPath = projectPath;
|
|
29
|
-
this.sessionService = sessionService;
|
|
30
|
-
this.authToken = authToken;
|
|
31
|
-
this.proxyUrl = this.configManager.getProxyUrl();
|
|
32
|
-
this.componentSearch = new ComponentSearchService_1.ComponentSearchService();
|
|
33
|
-
this.fileModService = new FileModificationService_1.FileModificationService();
|
|
34
|
-
this.gitService = new LocalGitService_1.LocalGitService();
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Refresh access token using refresh token
|
|
38
|
-
*/
|
|
39
|
-
async refreshAccessToken() {
|
|
40
|
-
const refreshToken = this.configManager.getRefreshToken();
|
|
41
|
-
if (!refreshToken) {
|
|
42
|
-
log.error('No refresh token available');
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
log.info('Refreshing access token...');
|
|
47
|
-
const response = await fetch(`${this.proxyUrl}/api/auth/refresh`, {
|
|
48
|
-
method: 'POST',
|
|
49
|
-
headers: {
|
|
50
|
-
'Content-Type': 'application/json',
|
|
51
|
-
},
|
|
52
|
-
body: JSON.stringify({ refreshToken }),
|
|
53
|
-
});
|
|
54
|
-
if (!response.ok) {
|
|
55
|
-
log.error('Token refresh failed');
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
const result = await response.json();
|
|
59
|
-
if (result.success && result.token) {
|
|
60
|
-
// Update stored tokens
|
|
61
|
-
const email = this.configManager.getEmail() || '';
|
|
62
|
-
this.configManager.setAuth(result.token, email, result.refreshToken);
|
|
63
|
-
this.authToken = result.token;
|
|
64
|
-
log.info('Access token refreshed successfully');
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
log.error('Error refreshing token:', error);
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Connect to hosted Agent SDK server
|
|
76
|
-
*/
|
|
77
|
-
async connect(retryCount = 0) {
|
|
78
|
-
return new Promise((resolve, reject) => {
|
|
79
|
-
log.info(`Connecting to Agent SDK server: ${this.serverUrl}`);
|
|
80
|
-
this.ws = new ws_1.WebSocket(this.serverUrl);
|
|
81
|
-
this.ws.on('open', () => {
|
|
82
|
-
log.info('WebSocket connected, authenticating...');
|
|
83
|
-
this.send({
|
|
84
|
-
type: 'auth',
|
|
85
|
-
token: this.authToken,
|
|
86
|
-
clientInfo: {
|
|
87
|
-
platform: process.platform,
|
|
88
|
-
version: process.version,
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
// Start heartbeat
|
|
92
|
-
this.startHeartbeat();
|
|
93
|
-
});
|
|
94
|
-
this.ws.on('message', async (data) => {
|
|
95
|
-
try {
|
|
96
|
-
const message = JSON.parse(data.toString());
|
|
97
|
-
await this.handleMessage(message);
|
|
98
|
-
if (message.type === 'auth_success') {
|
|
99
|
-
this.isConnected = true;
|
|
100
|
-
log.info('Authentication successful');
|
|
101
|
-
resolve();
|
|
102
|
-
}
|
|
103
|
-
else if (message.type === 'auth_error') {
|
|
104
|
-
this.isConnected = false;
|
|
105
|
-
// If we haven't retried yet, try to refresh token
|
|
106
|
-
if (retryCount === 0) {
|
|
107
|
-
log.warn('Got auth error, attempting to refresh token...');
|
|
108
|
-
this.refreshAccessToken().then((refreshed) => {
|
|
109
|
-
if (refreshed) {
|
|
110
|
-
// Close current connection and retry with new token
|
|
111
|
-
this.ws?.close();
|
|
112
|
-
this.connect(retryCount + 1)
|
|
113
|
-
.then(resolve)
|
|
114
|
-
.catch(reject);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
reject(new Error('Authentication expired. Please run `rivet logout` and `rivet login` to re-authenticate.'));
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
reject(new Error('Authentication expired. Please run `rivet logout` and `rivet login` to re-authenticate.'));
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
log.error('Error handling message:', error);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
this.ws.on('error', (error) => {
|
|
131
|
-
log.error('WebSocket error:', error);
|
|
132
|
-
reject(error);
|
|
133
|
-
});
|
|
134
|
-
this.ws.on('close', () => {
|
|
135
|
-
log.warn('WebSocket disconnected');
|
|
136
|
-
this.isConnected = false;
|
|
137
|
-
this.stopHeartbeat();
|
|
138
|
-
// Attempt reconnect
|
|
139
|
-
this.scheduleReconnect();
|
|
140
|
-
});
|
|
141
|
-
// Timeout after 10s
|
|
142
|
-
setTimeout(() => {
|
|
143
|
-
if (!this.isConnected) {
|
|
144
|
-
reject(new Error('Connection timeout'));
|
|
145
|
-
}
|
|
146
|
-
}, 10000);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Handle messages from server
|
|
151
|
-
*/
|
|
152
|
-
async handleMessage(message) {
|
|
153
|
-
switch (message.type) {
|
|
154
|
-
case 'tool_execution':
|
|
155
|
-
await this.executeToolLocally(message);
|
|
156
|
-
break;
|
|
157
|
-
case 'agent_chunk':
|
|
158
|
-
this.broadcastToSSE('agent_chunk', message.chunk);
|
|
159
|
-
break;
|
|
160
|
-
case 'agent_complete':
|
|
161
|
-
this.broadcastToSSE('agent_complete', message.result);
|
|
162
|
-
break;
|
|
163
|
-
case 'agent_error':
|
|
164
|
-
this.broadcastToSSE('agent_error', { error: message.error });
|
|
165
|
-
break;
|
|
166
|
-
case 'ping':
|
|
167
|
-
this.send({ type: 'pong' });
|
|
168
|
-
break;
|
|
169
|
-
case 'auth_success':
|
|
170
|
-
case 'auth_error':
|
|
171
|
-
// Handled in connect()
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Execute tool locally using Rivet's services
|
|
177
|
-
*/
|
|
178
|
-
async executeToolLocally(message) {
|
|
179
|
-
const { requestId, tool, params } = message;
|
|
180
|
-
log.debug(`Executing tool: ${tool}`, params);
|
|
181
|
-
try {
|
|
182
|
-
let result;
|
|
183
|
-
switch (tool) {
|
|
184
|
-
case 'search_components':
|
|
185
|
-
result = await this.executeSearchComponents(params);
|
|
186
|
-
break;
|
|
187
|
-
case 'read_file':
|
|
188
|
-
result = await this.executeReadFile(params);
|
|
189
|
-
break;
|
|
190
|
-
case 'write_file':
|
|
191
|
-
result = await this.executeWriteFile(params);
|
|
192
|
-
break;
|
|
193
|
-
case 'glob_files':
|
|
194
|
-
result = await this.executeGlobFiles(params);
|
|
195
|
-
break;
|
|
196
|
-
case 'git_status':
|
|
197
|
-
result = await this.executeGitStatus();
|
|
198
|
-
break;
|
|
199
|
-
case 'git_diff':
|
|
200
|
-
result = await this.executeGitDiff(params);
|
|
201
|
-
break;
|
|
202
|
-
default:
|
|
203
|
-
throw new Error(`Unknown tool: ${tool}`);
|
|
204
|
-
}
|
|
205
|
-
this.send({
|
|
206
|
-
type: 'tool_result',
|
|
207
|
-
requestId,
|
|
208
|
-
result,
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
|
-
log.error(`Tool execution error (${tool}):`, error);
|
|
213
|
-
this.send({
|
|
214
|
-
type: 'tool_error',
|
|
215
|
-
requestId,
|
|
216
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Tool implementations
|
|
222
|
-
*/
|
|
223
|
-
async executeSearchComponents(params) {
|
|
224
|
-
const matches = await this.componentSearch.findMatchingComponents(this.projectPath, params);
|
|
225
|
-
return { matches };
|
|
226
|
-
}
|
|
227
|
-
async executeReadFile(params) {
|
|
228
|
-
const content = await (0, promises_1.readFile)(params.filePath, 'utf-8');
|
|
229
|
-
return {
|
|
230
|
-
content,
|
|
231
|
-
filePath: params.filePath,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
async executeWriteFile(params) {
|
|
235
|
-
const results = await this.fileModService.applyModifications([
|
|
236
|
-
{
|
|
237
|
-
filePath: params.filePath,
|
|
238
|
-
search: params.search,
|
|
239
|
-
replacement: params.replacement,
|
|
240
|
-
changes: params.changes,
|
|
241
|
-
},
|
|
242
|
-
]);
|
|
243
|
-
return results[0];
|
|
244
|
-
}
|
|
245
|
-
async executeGlobFiles(params) {
|
|
246
|
-
const files = await (0, glob_1.glob)(params.pattern, {
|
|
247
|
-
cwd: this.projectPath,
|
|
248
|
-
ignore: ['**/node_modules/**', '**/.next/**', '**/dist/**'],
|
|
249
|
-
});
|
|
250
|
-
return { files };
|
|
251
|
-
}
|
|
252
|
-
async executeGitStatus() {
|
|
253
|
-
const git = await this.gitService.getGitRootPath(this.projectPath);
|
|
254
|
-
if (!git) {
|
|
255
|
-
throw new Error('Not a git repository');
|
|
256
|
-
}
|
|
257
|
-
const status = await git.status();
|
|
258
|
-
return {
|
|
259
|
-
staged: status.staged,
|
|
260
|
-
unstaged: status.modified.concat(status.deleted),
|
|
261
|
-
untracked: status.not_added,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
async executeGitDiff(params) {
|
|
265
|
-
const git = await this.gitService.getGitRootPath(this.projectPath);
|
|
266
|
-
if (!git) {
|
|
267
|
-
throw new Error('Not a git repository');
|
|
268
|
-
}
|
|
269
|
-
const diff = params.filePath
|
|
270
|
-
? await git.diff([params.filePath])
|
|
271
|
-
: await git.diff();
|
|
272
|
-
return {
|
|
273
|
-
diff,
|
|
274
|
-
filePath: params.filePath,
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Execute instruction via Agent SDK
|
|
279
|
-
*/
|
|
280
|
-
async executeTask(instruction, context) {
|
|
281
|
-
if (!this.isConnected) {
|
|
282
|
-
throw new Error('Not connected to Agent SDK server');
|
|
283
|
-
}
|
|
284
|
-
this.send({
|
|
285
|
-
type: 'execute_task',
|
|
286
|
-
instruction,
|
|
287
|
-
context,
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Register SSE client for streaming updates
|
|
292
|
-
*/
|
|
293
|
-
registerSSEClient(res) {
|
|
294
|
-
log.debug('Registering SSE client');
|
|
295
|
-
res.setHeader('Content-Type', 'text/event-stream');
|
|
296
|
-
res.setHeader('Cache-Control', 'no-cache');
|
|
297
|
-
res.setHeader('Connection', 'keep-alive');
|
|
298
|
-
this.sseClients.add(res);
|
|
299
|
-
res.on('close', () => {
|
|
300
|
-
log.debug('SSE client disconnected');
|
|
301
|
-
this.sseClients.delete(res);
|
|
302
|
-
});
|
|
303
|
-
// Send initial connection event
|
|
304
|
-
this.sendSSE(res, 'connected', { status: 'ok' });
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Broadcast event to all SSE clients
|
|
308
|
-
*/
|
|
309
|
-
broadcastToSSE(event, data) {
|
|
310
|
-
log.debug(`Broadcasting SSE event: ${event}`);
|
|
311
|
-
for (const client of this.sseClients) {
|
|
312
|
-
this.sendSSE(client, event, data);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Send SSE message to specific client
|
|
317
|
-
*/
|
|
318
|
-
sendSSE(res, event, data) {
|
|
319
|
-
try {
|
|
320
|
-
res.write(`event: ${event}\n`);
|
|
321
|
-
res.write(`data: ${JSON.stringify(data)}\n\n`);
|
|
322
|
-
}
|
|
323
|
-
catch (error) {
|
|
324
|
-
log.error('Failed to send SSE message:', error);
|
|
325
|
-
this.sseClients.delete(res);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Send message to server
|
|
330
|
-
*/
|
|
331
|
-
send(message) {
|
|
332
|
-
if (!this.ws || this.ws.readyState !== ws_1.WebSocket.OPEN) {
|
|
333
|
-
log.warn('WebSocket not connected, cannot send message');
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
this.ws.send(JSON.stringify(message));
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Start heartbeat ping/pong
|
|
340
|
-
*/
|
|
341
|
-
startHeartbeat() {
|
|
342
|
-
if (this.heartbeatInterval) {
|
|
343
|
-
clearInterval(this.heartbeatInterval);
|
|
344
|
-
}
|
|
345
|
-
this.heartbeatInterval = setInterval(() => {
|
|
346
|
-
if (this.ws && this.ws.readyState === ws_1.WebSocket.OPEN) {
|
|
347
|
-
// Server sends ping, we respond with pong (handled in handleMessage)
|
|
348
|
-
}
|
|
349
|
-
}, HEARTBEAT_INTERVAL);
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Stop heartbeat
|
|
353
|
-
*/
|
|
354
|
-
stopHeartbeat() {
|
|
355
|
-
if (this.heartbeatInterval) {
|
|
356
|
-
clearInterval(this.heartbeatInterval);
|
|
357
|
-
this.heartbeatInterval = null;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Schedule reconnection attempt
|
|
362
|
-
*/
|
|
363
|
-
scheduleReconnect() {
|
|
364
|
-
if (this.reconnectTimeout) {
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
log.info(`Attempting reconnect in ${RECONNECT_DELAY}ms...`);
|
|
368
|
-
this.reconnectTimeout = setTimeout(async () => {
|
|
369
|
-
this.reconnectTimeout = null;
|
|
370
|
-
try {
|
|
371
|
-
await this.connect();
|
|
372
|
-
log.info('Reconnected successfully');
|
|
373
|
-
}
|
|
374
|
-
catch (error) {
|
|
375
|
-
log.error('Reconnection failed:', error);
|
|
376
|
-
this.scheduleReconnect();
|
|
377
|
-
}
|
|
378
|
-
}, RECONNECT_DELAY);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Check if connected to server
|
|
382
|
-
*/
|
|
383
|
-
getIsConnected() {
|
|
384
|
-
return this.isConnected;
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Cleanup resources
|
|
388
|
-
*/
|
|
389
|
-
cleanup() {
|
|
390
|
-
this.stopHeartbeat();
|
|
391
|
-
if (this.reconnectTimeout) {
|
|
392
|
-
clearTimeout(this.reconnectTimeout);
|
|
393
|
-
this.reconnectTimeout = null;
|
|
394
|
-
}
|
|
395
|
-
if (this.ws) {
|
|
396
|
-
this.ws.removeAllListeners();
|
|
397
|
-
this.ws.close();
|
|
398
|
-
this.ws = null;
|
|
399
|
-
}
|
|
400
|
-
for (const client of this.sseClients) {
|
|
401
|
-
try {
|
|
402
|
-
client.end();
|
|
403
|
-
}
|
|
404
|
-
catch (error) {
|
|
405
|
-
log.error('Error closing SSE client:', error);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
this.sseClients.clear();
|
|
409
|
-
this.isConnected = false;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
exports.AgentBridgeService = AgentBridgeService;
|
|
413
|
-
//# sourceMappingURL=AgentBridgeService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBridgeService.js","sourceRoot":"","sources":["../../src/services/AgentBridgeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { SessionService } from './SessionService';
|
|
2
|
-
import { ElementContext } from '@rivet/core';
|
|
3
|
-
export type AgentStep = {
|
|
4
|
-
type: 'tool_call' | 'tool_result' | 'reasoning' | 'error';
|
|
5
|
-
timestamp: number;
|
|
6
|
-
data: unknown;
|
|
7
|
-
};
|
|
8
|
-
export type AgenticProgressEvent = {
|
|
9
|
-
type: 'step' | 'complete' | 'error';
|
|
10
|
-
step?: AgentStep;
|
|
11
|
-
result?: AgenticResult;
|
|
12
|
-
error?: string;
|
|
13
|
-
};
|
|
14
|
-
export type AgenticResult = {
|
|
15
|
-
success: boolean;
|
|
16
|
-
filesModified: string[];
|
|
17
|
-
reasoning: string[];
|
|
18
|
-
changes: string;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Service for agentic code modifications using Claude Agent SDK.
|
|
22
|
-
* Agent autonomously searches for files, reads context, and makes modifications.
|
|
23
|
-
*/
|
|
24
|
-
export declare class AgentModService {
|
|
25
|
-
private projectPath;
|
|
26
|
-
private sessionService?;
|
|
27
|
-
private configManager;
|
|
28
|
-
private gatewayUrl;
|
|
29
|
-
private proxyUrl;
|
|
30
|
-
constructor(projectPath: string, sessionService?: SessionService, gatewayUrl?: string);
|
|
31
|
-
/**
|
|
32
|
-
* Refresh access token using refresh token
|
|
33
|
-
*/
|
|
34
|
-
private refreshAccessToken;
|
|
35
|
-
/**
|
|
36
|
-
* Decode JWT and check if it expires within the next hour
|
|
37
|
-
*/
|
|
38
|
-
private isTokenExpiringSoon;
|
|
39
|
-
/**
|
|
40
|
-
* Execute an agentic modification workflow.
|
|
41
|
-
* The agent autonomously uses Grep/Glob/Read to find files and Edit to modify them.
|
|
42
|
-
*
|
|
43
|
-
* @effect Streams progress events via onProgress callback
|
|
44
|
-
* @param instruction User's modification instruction
|
|
45
|
-
* @param initialElements Selected elements from UI with candidate file paths
|
|
46
|
-
* @param onProgress Callback for streaming progress updates
|
|
47
|
-
* @param designTokens Optional design system tokens
|
|
48
|
-
* @param image Optional reference image
|
|
49
|
-
*/
|
|
50
|
-
executeAgenticModification(instruction: string, initialElements: ElementContext[], onProgress: (event: AgenticProgressEvent) => void, designTokens?: unknown, image?: string, retryCount?: number): Promise<AgenticResult>;
|
|
51
|
-
/**
|
|
52
|
-
* Build system prompt for the agent
|
|
53
|
-
*/
|
|
54
|
-
private buildSystemPrompt;
|
|
55
|
-
/**
|
|
56
|
-
* Build the initial agent prompt with context
|
|
57
|
-
*/
|
|
58
|
-
private buildAgentPrompt;
|
|
59
|
-
/**
|
|
60
|
-
* Build initial context string from selected elements and read candidate files
|
|
61
|
-
*
|
|
62
|
-
* @effect Reads candidate files from disk
|
|
63
|
-
*/
|
|
64
|
-
private buildInitialContext;
|
|
65
|
-
/**
|
|
66
|
-
* Create a ChangeRecord for git tracking
|
|
67
|
-
*
|
|
68
|
-
* @effect Reads modified files from disk
|
|
69
|
-
*/
|
|
70
|
-
private createChangeRecord;
|
|
71
|
-
/**
|
|
72
|
-
* Summarize changes for user display
|
|
73
|
-
*/
|
|
74
|
-
private summarizeChanges;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=AgentModService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModService.d.ts","sourceRoot":"","sources":["../../src/services/AgentModService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAgB3D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAGvB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,UAAU,CAAC,EAAE,MAAM;IAQrB;;OAEG;YACW,kBAAkB;IAsChC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;;;;;;;;;OAUG;IACG,0BAA0B,CAC9B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,cAAc,EAAE,EACjC,UAAU,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EACjD,YAAY,CAAC,EAAE,OAAO,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,aAAa,CAAC;IAmPzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;OAIG;YACW,mBAAmB;IAsEjC;;;;OAIG;YACW,kBAAkB;IAgChC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAczB"}
|