@involvex/super-agent-cli 0.0.87 → 0.0.89
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/index.js +122 -13
- package/dist/super-agent-cli.exe +0 -0
- package/dist/super-agent.js +5 -1
- package/eslint.config.mjs +1 -1
- package/package.json +3 -4
- package/super-agent.js +5 -1
- package/vscode-extension/.vscodeignore +1 -1
- package/vscode-extension/build.js +4 -4
- package/vscode-extension/dist/chat-provider.js +262 -0
- package/vscode-extension/dist/chat-provider.js.map +1 -0
- package/vscode-extension/dist/chat.css +268 -0
- package/vscode-extension/dist/chat.js +234 -0
- package/vscode-extension/dist/cli-connector.js +296 -0
- package/vscode-extension/dist/cli-connector.js.map +1 -0
- package/vscode-extension/dist/extension.js +156 -0
- package/vscode-extension/dist/extension.js.map +1 -0
- package/vscode-extension/dist/file-context.js +230 -0
- package/vscode-extension/dist/file-context.js.map +1 -0
- package/vscode-extension/dist/node_modules/ws/LICENSE +20 -0
- package/vscode-extension/dist/node_modules/ws/README.md +548 -0
- package/vscode-extension/dist/node_modules/ws/browser.js +8 -0
- package/vscode-extension/dist/node_modules/ws/index.js +13 -0
- package/vscode-extension/dist/node_modules/ws/lib/buffer-util.js +131 -0
- package/vscode-extension/dist/node_modules/ws/lib/constants.js +19 -0
- package/vscode-extension/dist/node_modules/ws/lib/event-target.js +292 -0
- package/vscode-extension/dist/node_modules/ws/lib/extension.js +203 -0
- package/vscode-extension/dist/node_modules/ws/lib/limiter.js +55 -0
- package/vscode-extension/dist/node_modules/ws/lib/permessage-deflate.js +528 -0
- package/vscode-extension/dist/node_modules/ws/lib/receiver.js +706 -0
- package/vscode-extension/dist/node_modules/ws/lib/sender.js +602 -0
- package/vscode-extension/dist/node_modules/ws/lib/stream.js +161 -0
- package/vscode-extension/dist/node_modules/ws/lib/subprotocol.js +62 -0
- package/vscode-extension/dist/node_modules/ws/lib/validation.js +152 -0
- package/vscode-extension/dist/node_modules/ws/lib/websocket-server.js +554 -0
- package/vscode-extension/dist/node_modules/ws/lib/websocket.js +1393 -0
- package/vscode-extension/dist/node_modules/ws/package.json +69 -0
- package/vscode-extension/dist/node_modules/ws/wrapper.mjs +8 -0
- package/vscode-extension/dist/super-agent-vscode-0.0.2.vsix +0 -0
- package/vscode-extension/package.json +3 -3
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CLIConnector = void 0;
|
|
37
|
+
const vscode = __importStar(require("vscode"));
|
|
38
|
+
const ws_1 = require("ws");
|
|
39
|
+
class CLIConnector {
|
|
40
|
+
context;
|
|
41
|
+
ws = null;
|
|
42
|
+
isConnected = false;
|
|
43
|
+
reconnectTimer = null;
|
|
44
|
+
messageHandlers = new Map();
|
|
45
|
+
statusChangeHandlers = [];
|
|
46
|
+
hasShownConnectionError = false; // Track if we've shown the error
|
|
47
|
+
reconnectAttempts = 0;
|
|
48
|
+
maxReconnectAttempts = 10; // Stop trying after N attempts
|
|
49
|
+
constructor(context) {
|
|
50
|
+
this.context = context;
|
|
51
|
+
this.loadSettings();
|
|
52
|
+
}
|
|
53
|
+
loadSettings() {
|
|
54
|
+
const config = vscode.workspace.getConfiguration("superAgent");
|
|
55
|
+
return {
|
|
56
|
+
cliPort: config.get("cliPort", 3000),
|
|
57
|
+
cliHost: config.get("cliHost", "localhost"),
|
|
58
|
+
autoConnect: config.get("autoConnect", true),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async connect() {
|
|
62
|
+
const settings = this.loadSettings();
|
|
63
|
+
const wsUrl = `ws://${settings.cliHost}:${settings.cliPort}`;
|
|
64
|
+
console.log(`[Super Agent] Attempting to connect to ${wsUrl}...`);
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
try {
|
|
67
|
+
if (this.ws) {
|
|
68
|
+
this.ws.terminate();
|
|
69
|
+
}
|
|
70
|
+
this.ws = new ws_1.WebSocket(wsUrl);
|
|
71
|
+
const connectionTimeout = setTimeout(() => {
|
|
72
|
+
if (!this.isConnected) {
|
|
73
|
+
this.ws?.terminate();
|
|
74
|
+
reject(new Error("Connection timed out"));
|
|
75
|
+
}
|
|
76
|
+
}, 5000);
|
|
77
|
+
this.ws.on("open", () => {
|
|
78
|
+
clearTimeout(connectionTimeout);
|
|
79
|
+
console.log(`[Super Agent] Successfully connected to CLI at ${wsUrl}`);
|
|
80
|
+
this.isConnected = true;
|
|
81
|
+
this.reconnectAttempts = 0;
|
|
82
|
+
this.hasShownConnectionError = false;
|
|
83
|
+
this.notifyStatusChange(true);
|
|
84
|
+
this.clearReconnectTimer();
|
|
85
|
+
resolve(true);
|
|
86
|
+
});
|
|
87
|
+
this.ws.on("error", error => {
|
|
88
|
+
clearTimeout(connectionTimeout);
|
|
89
|
+
console.error(`[Super Agent] WebSocket error:`, error);
|
|
90
|
+
this.isConnected = false;
|
|
91
|
+
this.notifyStatusChange(false);
|
|
92
|
+
if (this.reconnectAttempts === 0 && !this.hasShownConnectionError) {
|
|
93
|
+
this.showConnectionError();
|
|
94
|
+
this.hasShownConnectionError = true;
|
|
95
|
+
}
|
|
96
|
+
this.scheduleReconnect();
|
|
97
|
+
reject(error);
|
|
98
|
+
});
|
|
99
|
+
this.ws.on("close", (code, reason) => {
|
|
100
|
+
console.log(`[Super Agent] Connection closed: ${code} ${reason}`);
|
|
101
|
+
this.isConnected = false;
|
|
102
|
+
this.notifyStatusChange(false);
|
|
103
|
+
if (code !== 1000) {
|
|
104
|
+
this.scheduleReconnect();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
this.ws.on("message", data => {
|
|
108
|
+
try {
|
|
109
|
+
const message = JSON.parse(data.toString());
|
|
110
|
+
console.log(`[Super Agent] Received message: ${message.type}`);
|
|
111
|
+
this.handleMessage(message);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error("Failed to parse CLI message:", error);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
this.isConnected = false;
|
|
120
|
+
this.notifyStatusChange(false);
|
|
121
|
+
reject(error);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
disconnect() {
|
|
126
|
+
this.clearReconnectTimer();
|
|
127
|
+
this.reconnectAttempts = this.maxReconnectAttempts;
|
|
128
|
+
if (this.ws) {
|
|
129
|
+
this.ws.close(1000, "Normal closure");
|
|
130
|
+
this.ws = null;
|
|
131
|
+
}
|
|
132
|
+
this.isConnected = false;
|
|
133
|
+
this.notifyStatusChange(false);
|
|
134
|
+
}
|
|
135
|
+
async startCLIServer() {
|
|
136
|
+
const workspaceRoot = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;
|
|
137
|
+
const terminal = vscode.window.createTerminal({
|
|
138
|
+
name: "Super Agent CLI",
|
|
139
|
+
cwd: workspaceRoot,
|
|
140
|
+
});
|
|
141
|
+
terminal.show();
|
|
142
|
+
// Explicitly use PowerShell on Windows to ensure our script works
|
|
143
|
+
if (process.platform === "win32") {
|
|
144
|
+
terminal.sendText("powershell -ExecutionPolicy Bypass -Command \"if (Test-Path 'super-agent.js') { bun super-agent.js web } else { super-agent web }\"");
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
terminal.sendText("if [ -f super-agent.js ]; then bun super-agent.js web; else super-agent web; fi");
|
|
148
|
+
}
|
|
149
|
+
// Give it more time to start up
|
|
150
|
+
await vscode.window.withProgress({
|
|
151
|
+
location: vscode.ProgressLocation.Notification,
|
|
152
|
+
title: "Starting Super Agent CLI Server...",
|
|
153
|
+
cancellable: false,
|
|
154
|
+
}, async (progress) => {
|
|
155
|
+
for (let i = 0; i < 5; i++) {
|
|
156
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
157
|
+
progress.report({ increment: 20 });
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
this.resetConnectionState();
|
|
161
|
+
try {
|
|
162
|
+
await this.connect();
|
|
163
|
+
vscode.window.showInformationMessage("✓ Connected to Super Agent CLI");
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
const settings = this.loadSettings();
|
|
167
|
+
console.error(`Failed to connect to ${settings.cliHost}:${settings.cliPort} after starting server:`, e);
|
|
168
|
+
vscode.window.showErrorMessage(`Failed to connect to CLI at ${settings.cliHost}:${settings.cliPort}. Please check the terminal for errors.`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async showConnectionError() {
|
|
172
|
+
const selection = await vscode.window.showWarningMessage("Could not connect to Super Agent CLI.", "Start CLI Server", "Retry");
|
|
173
|
+
if (selection === "Start CLI Server") {
|
|
174
|
+
this.startCLIServer();
|
|
175
|
+
}
|
|
176
|
+
else if (selection === "Retry") {
|
|
177
|
+
this.connect();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
scheduleReconnect() {
|
|
181
|
+
this.clearReconnectTimer();
|
|
182
|
+
// Stop reconnecting after max attempts
|
|
183
|
+
if (this.reconnectAttempts >= this.maxReconnectAttempts) {
|
|
184
|
+
console.log("Max reconnect attempts reached. Stopping auto-reconnect.");
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
this.reconnectAttempts++;
|
|
188
|
+
const settings = this.loadSettings();
|
|
189
|
+
if (settings.autoConnect) {
|
|
190
|
+
// Exponential backoff: 5s, 10s, 20s, 40s, max 60s
|
|
191
|
+
const delay = Math.min(5000 * Math.pow(2, this.reconnectAttempts - 1), 60000);
|
|
192
|
+
this.reconnectTimer = setTimeout(() => {
|
|
193
|
+
this.connect().catch(() => {
|
|
194
|
+
// Silently fail on reconnect
|
|
195
|
+
});
|
|
196
|
+
}, delay);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
clearReconnectTimer() {
|
|
200
|
+
if (this.reconnectTimer) {
|
|
201
|
+
clearTimeout(this.reconnectTimer);
|
|
202
|
+
this.reconnectTimer = null;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
sendMessage(type, content) {
|
|
206
|
+
if (this.ws && this.isConnected && this.ws.readyState === ws_1.WebSocket.OPEN) {
|
|
207
|
+
const message = { type, content };
|
|
208
|
+
this.ws.send(JSON.stringify(message));
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
// Only show message if user explicitly tries to send
|
|
212
|
+
if (type === "chat_message" || type === "command") {
|
|
213
|
+
vscode.window.showWarningMessage("Not connected to Super Agent CLI. Please run 'super-agent web' in your project directory.");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
onMessage(type, handler) {
|
|
218
|
+
this.messageHandlers.set(type, handler);
|
|
219
|
+
return () => this.messageHandlers.delete(type);
|
|
220
|
+
}
|
|
221
|
+
handleMessage(message) {
|
|
222
|
+
const handler = this.messageHandlers.get(message.type);
|
|
223
|
+
if (handler) {
|
|
224
|
+
handler(message);
|
|
225
|
+
}
|
|
226
|
+
// Also handle wildcard handlers
|
|
227
|
+
const wildcardHandler = this.messageHandlers.get("*");
|
|
228
|
+
if (wildcardHandler) {
|
|
229
|
+
wildcardHandler(message);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
onStatusChange(handler) {
|
|
233
|
+
this.statusChangeHandlers.push(handler);
|
|
234
|
+
return () => {
|
|
235
|
+
const index = this.statusChangeHandlers.indexOf(handler);
|
|
236
|
+
if (index > -1) {
|
|
237
|
+
this.statusChangeHandlers.splice(index, 1);
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
notifyStatusChange(connected) {
|
|
242
|
+
for (const handler of this.statusChangeHandlers) {
|
|
243
|
+
handler(connected);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
getConnectionStatus() {
|
|
247
|
+
return this.isConnected;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Reset connection state (call this when user manually triggers connection)
|
|
251
|
+
*/
|
|
252
|
+
resetConnectionState() {
|
|
253
|
+
this.reconnectAttempts = 0;
|
|
254
|
+
this.hasShownConnectionError = false;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Request file tree from CLI
|
|
258
|
+
*/
|
|
259
|
+
requestFileTree() {
|
|
260
|
+
this.sendMessage("get_file_tree");
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Request chat history from CLI
|
|
264
|
+
*/
|
|
265
|
+
requestChatHistory() {
|
|
266
|
+
this.sendMessage("get_chat_history");
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Send a message to the CLI
|
|
270
|
+
*/
|
|
271
|
+
sendChatMessage(message, fileContexts) {
|
|
272
|
+
// CLI expects 'prompt' type and string content
|
|
273
|
+
this.sendMessage("prompt", message);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Request file content from CLI
|
|
277
|
+
*/
|
|
278
|
+
requestFileContent(filePath) {
|
|
279
|
+
// CLI expects 'path' parameter
|
|
280
|
+
this.sendMessage("get_file_content", { path: filePath });
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Send a command to the CLI
|
|
284
|
+
*/
|
|
285
|
+
sendCommand(command) {
|
|
286
|
+
this.sendMessage("command", { command });
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Abort current operation in CLI
|
|
290
|
+
*/
|
|
291
|
+
abortOperation() {
|
|
292
|
+
this.sendMessage("abort");
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
exports.CLIConnector = CLIConnector;
|
|
296
|
+
//# sourceMappingURL=cli-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-connector.js","sourceRoot":"","sources":["../src/cli-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.activate = activate;
|
|
37
|
+
exports.deactivate = deactivate;
|
|
38
|
+
const file_context_1 = require("./file-context");
|
|
39
|
+
const cli_connector_1 = require("./cli-connector");
|
|
40
|
+
const chat_provider_1 = require("./chat-provider");
|
|
41
|
+
const vscode = __importStar(require("vscode"));
|
|
42
|
+
let cliConnector;
|
|
43
|
+
let fileContextProvider;
|
|
44
|
+
let chatProvider;
|
|
45
|
+
function activate(context) {
|
|
46
|
+
console.log("Super Agent VS Code extension is now active");
|
|
47
|
+
// Initialize services
|
|
48
|
+
cliConnector = new cli_connector_1.CLIConnector(context);
|
|
49
|
+
fileContextProvider = new file_context_1.FileContextProvider();
|
|
50
|
+
chatProvider = new chat_provider_1.ChatProvider(context, context.extensionUri, cliConnector, fileContextProvider);
|
|
51
|
+
// Register the chat webview view
|
|
52
|
+
const chatViewProvider = vscode.window.registerWebviewViewProvider("super-agent.chat", {
|
|
53
|
+
resolveWebviewView: webviewView => {
|
|
54
|
+
chatProvider.resolveWebviewView(webviewView);
|
|
55
|
+
},
|
|
56
|
+
}, {
|
|
57
|
+
webviewOptions: {
|
|
58
|
+
retainContextWhenHidden: true,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
context.subscriptions.push(chatViewProvider);
|
|
62
|
+
// Register commands
|
|
63
|
+
const openChatCommand = vscode.commands.registerCommand("super-agent.openChat", () => {
|
|
64
|
+
vscode.commands.executeCommand("super-agent.chat.focus");
|
|
65
|
+
});
|
|
66
|
+
context.subscriptions.push(openChatCommand);
|
|
67
|
+
const mentionFileCommand = vscode.commands.registerCommand("super-agent.mentionFile", async () => {
|
|
68
|
+
const filePath = await fileContextProvider.showFilePicker();
|
|
69
|
+
if (filePath) {
|
|
70
|
+
const relativePath = fileContextProvider.getRelativePath(filePath);
|
|
71
|
+
const message = `@${relativePath} `;
|
|
72
|
+
// Send message to chat
|
|
73
|
+
chatProvider["handleSendMessage"](message);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
context.subscriptions.push(mentionFileCommand);
|
|
77
|
+
// Add manual reconnect command
|
|
78
|
+
const reconnectCommand = vscode.commands.registerCommand("super-agent.reconnect", async () => {
|
|
79
|
+
cliConnector.disconnect();
|
|
80
|
+
try {
|
|
81
|
+
await cliConnector.connect();
|
|
82
|
+
vscode.window.showInformationMessage("Connected to Super Agent CLI");
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
vscode.window.showErrorMessage("Failed to connect. Make sure 'super-agent web' is running.");
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
context.subscriptions.push(reconnectCommand);
|
|
89
|
+
const startServerCommand = vscode.commands.registerCommand("super-agent.startServer", async () => {
|
|
90
|
+
await cliConnector.startCLIServer();
|
|
91
|
+
});
|
|
92
|
+
context.subscriptions.push(startServerCommand);
|
|
93
|
+
const askAICommand = vscode.commands.registerCommand("super-agent.askAI", async () => {
|
|
94
|
+
const editor = vscode.window.activeTextEditor;
|
|
95
|
+
if (!editor) {
|
|
96
|
+
vscode.window.showWarningMessage("No active editor");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const selection = editor.selection;
|
|
100
|
+
const selectedText = editor.document.getText(selection) || editor.document.getText();
|
|
101
|
+
const filePath = editor.document.uri.fsPath;
|
|
102
|
+
const relativePath = fileContextProvider.getRelativePath(filePath);
|
|
103
|
+
// Create message with file mention and selected text
|
|
104
|
+
const message = await vscode.window.showInputBox({
|
|
105
|
+
prompt: "Ask Super Agent AI",
|
|
106
|
+
value: `Explain this code:`,
|
|
107
|
+
});
|
|
108
|
+
if (message) {
|
|
109
|
+
const fullMessage = `@${relativePath}\n${message}\n\n\`\`\`\n${selectedText}\n\`\`\``;
|
|
110
|
+
chatProvider["handleSendMessage"](fullMessage);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
context.subscriptions.push(askAICommand);
|
|
114
|
+
// Auto-connect to CLI if setting is enabled
|
|
115
|
+
const config = vscode.workspace.getConfiguration("superAgent");
|
|
116
|
+
if (config.get("autoConnect", true)) {
|
|
117
|
+
cliConnector.connect().catch(error => {
|
|
118
|
+
console.error("Failed to connect to CLI:", error);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Listen for configuration changes
|
|
122
|
+
context.subscriptions.push(vscode.workspace.onDidChangeConfiguration(e => {
|
|
123
|
+
if (e.affectsConfiguration("superAgent")) {
|
|
124
|
+
// Reconnect if settings changed
|
|
125
|
+
cliConnector.disconnect();
|
|
126
|
+
const config = vscode.workspace.getConfiguration("superAgent");
|
|
127
|
+
if (config.get("autoConnect", true)) {
|
|
128
|
+
cliConnector.connect().catch(() => { });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
132
|
+
// Update status bar
|
|
133
|
+
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
|
|
134
|
+
statusBarItem.text = "$(robot) Super Agent";
|
|
135
|
+
statusBarItem.command = "super-agent.openChat";
|
|
136
|
+
statusBarItem.show();
|
|
137
|
+
context.subscriptions.push(statusBarItem);
|
|
138
|
+
// Update status bar connection status
|
|
139
|
+
cliConnector.onStatusChange(connected => {
|
|
140
|
+
statusBarItem.text = connected
|
|
141
|
+
? "$(check) Super Agent"
|
|
142
|
+
: "$(error) Super Agent";
|
|
143
|
+
statusBarItem.tooltip = connected
|
|
144
|
+
? "Connected to CLI"
|
|
145
|
+
: "Disconnected from CLI";
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function deactivate() {
|
|
149
|
+
if (cliConnector) {
|
|
150
|
+
cliConnector.disconnect();
|
|
151
|
+
}
|
|
152
|
+
if (chatProvider) {
|
|
153
|
+
chatProvider.dispose();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BAmJC;AAED,gCAOC;AArKD,iDAAqD;AACrD,mDAA+C;AAC/C,mDAA+C;AAC/C,+CAAiC;AAEjC,IAAI,YAA0B,CAAC;AAC/B,IAAI,mBAAwC,CAAC;AAC7C,IAAI,YAA0B,CAAC;AAE/B,SAAgB,QAAQ,CAAC,OAAgC;IACvD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,sBAAsB;IACtB,YAAY,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,CAAC;IACzC,mBAAmB,GAAG,IAAI,kCAAmB,EAAE,CAAC;IAChD,YAAY,GAAG,IAAI,4BAAY,CAC7B,OAAO,EACP,OAAO,CAAC,YAAY,EACpB,YAAY,EACZ,mBAAmB,CACpB,CAAC;IAEF,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAChE,kBAAkB,EAClB;QACE,kBAAkB,EAAE,WAAW,CAAC,EAAE;YAChC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;KACF,EACD;QACE,cAAc,EAAE;YACd,uBAAuB,EAAE,IAAI;SAC9B;KACF,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7C,oBAAoB;IACpB,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CACrD,sBAAsB,EACtB,GAAG,EAAE;QACH,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CACxD,yBAAyB,EACzB,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,YAAY,GAAG,CAAC;YACpC,uBAAuB;YACvB,YAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE/C,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CACtD,uBAAuB,EACvB,KAAK,IAAI,EAAE;QACT,YAAY,CAAC,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAC5B,4DAA4D,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CACxD,yBAAyB,EACzB,KAAK,IAAI,EAAE;QACT,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAClD,mBAAmB,EACnB,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5C,MAAM,YAAY,GAAG,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEnE,qDAAqD;QACrD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;YAC/C,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,oBAAoB;SAC5B,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,IAAI,YAAY,KAAK,OAAO,eAAe,YAAY,UAAU,CAAC;YACtF,YAAY,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CACF,CAAC;IACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzC,4CAA4C;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,GAAG,CAAU,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7C,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,OAAO,CAAC,aAAa,CAAC,IAAI,CACxB,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;QAC5C,IAAI,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,gCAAgC;YAChC,YAAY,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,MAAM,CAAC,GAAG,CAAU,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7C,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,oBAAoB;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CACrD,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAC/B,GAAG,CACJ,CAAC;IACF,aAAa,CAAC,IAAI,GAAG,sBAAsB,CAAC;IAC5C,aAAa,CAAC,OAAO,GAAG,sBAAsB,CAAC;IAC/C,aAAa,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1C,sCAAsC;IACtC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;QACtC,aAAa,CAAC,IAAI,GAAG,SAAS;YAC5B,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,sBAAsB,CAAC;QAC3B,aAAa,CAAC,OAAO,GAAG,SAAS;YAC/B,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,uBAAuB,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
|