indirecttek-vibe-engine 2.4.1 → 2.6.0

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 CHANGED
@@ -60,6 +60,7 @@ Do you want to host the AI models yourself?
60
60
  - **Context Hygiene**: Enforces strict token limits to prevent "poisoning" the model with too much history.
61
61
  - **Deep Telemetry**: Tracks real-time Token/s and Latency for every request.
62
62
  - **Visual Dashboard**: View live metrics and request logs at `http://localhost:43110/stats`.
63
+ - **Auto-Summary**: Automatically summarizes changes (Edits, Commands) at the end of every task.
63
64
  - **Autonomous Editing**: Strict "Hunk Only" editing to prevent creating massive diffs.
64
65
 
65
66
  ## ⚙️ Configuration (The "Router")
package/out/extension.js CHANGED
@@ -8,7 +8,6 @@ const vscode = require("vscode");
8
8
  const fs = require("fs");
9
9
  const path = require("path");
10
10
  const auth_1 = require("./auth");
11
- const cp = require("child_process");
12
11
  const node_fetch_1 = require("node-fetch");
13
12
  function activate(context) {
14
13
  const provider = new PartnerBotProvider(context.extensionUri, context);
@@ -214,112 +213,86 @@ class PartnerBotProvider {
214
213
  }
215
214
  }
216
215
  async _handleRunCommand(command) {
217
- const config = vscode.workspace.getConfiguration('partnerBot');
218
- const allowExec = config.get('allowCommandExecution', true);
219
- const allowed = config.get('allowedCommands', [
220
- 'npm',
221
- 'npx',
222
- 'node',
223
- 'pnpm',
224
- 'yarn',
225
- 'git',
226
- 'gh',
227
- 'wrangler',
228
- 'docker',
229
- 'docker-compose'
230
- ]);
231
- const baseCommand = command.trim().split(/\s+/)[0];
232
- if (!allowExec) {
233
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Command blocked by settings: ${command}` });
234
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Blocked' });
235
- this._messageHistory.push({ role: 'assistant', content: `[Attempted Command]: ${command}` });
236
- this._messageHistory.push({ role: 'user', content: `[System]: Command execution is disabled by partnerBot.allowCommandExecution.` });
237
- await this._saveHistory();
238
- return false;
239
- }
240
- if (!baseCommand || !allowed.includes(baseCommand)) {
241
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Command not in allowed list: ${command}` });
242
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Blocked' });
243
- this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command blocked (not allowed): ${command}` });
244
- this._messageHistory.push({ role: 'assistant', content: `[Attempted Command]: ${command}` });
245
- this._messageHistory.push({ role: 'user', content: `[System]: Command '${baseCommand}' is not in partnerBot.allowedCommands.` });
246
- await this._saveHistory();
247
- return false;
248
- }
249
- // Loop Detection (Circuit Breaker)
250
- const failures = this._commandFailures.get(command) || 0;
251
- if (failures >= 3) {
252
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Blocked (Circuit Breaker): ${command}` });
253
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Blocked' });
254
- this._messageHistory.push({ role: 'assistant', content: `[Attempted Command]: ${command}` });
255
- this._messageHistory.push({ role: 'user', content: `[System]: The command '${command}' has failed 3 times consecutively. Access is temporarily blocked to prevent loops.` });
256
- await this._saveHistory();
257
- return false;
258
- }
259
- // Did the user ask for a long-running task?
260
- // Heuristic: npm start, npm run dev, node server, python app.py
261
- const isBlocking = /npm start|npm run|node |python |go run|cargo run/.test(command) && !command.includes('--version') && !command.includes(' -v');
262
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Executing: ${command}` });
263
- if (isBlocking) {
264
- // 1. Long-running: Use Dedicated Terminal (Refresh to ensure clean state)
265
- const termName = "Vibe Engine (Auto)";
266
- let terminal = vscode.window.terminals.find(t => t.name === termName);
267
- // If terminal exists, kill it to ensure we aren't typing into a running process (e.g. restart server)
268
- if (terminal) {
269
- terminal.dispose();
216
+ return new Promise(async (resolve) => {
217
+ const config = vscode.workspace.getConfiguration('partnerBot');
218
+ const allowed = config.get('allowCommandExecution') ?? true;
219
+ const executionMode = config.get('commandExecutionMode') || 'interactive';
220
+ const whitelist = config.get('allowedCommands') || [];
221
+ if (!allowed) {
222
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nCommand execution disabled in settings.` });
223
+ this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' blocked (settings).` });
224
+ resolve(false);
225
+ return;
270
226
  }
271
- // Create fresh terminal
272
- terminal = vscode.window.createTerminal(termName);
273
- terminal.show();
274
- terminal.sendText(command);
275
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Started in Background Terminal' });
276
- this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command (terminal): ${command}` });
277
- // Add to history (Blind)
278
- this._messageHistory.push({ role: 'assistant', content: `[Executed Command]: ${command}` });
279
- this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' started in the dedicated '${termName}' terminal.` });
280
- }
281
- else {
282
- // 2. Short-lived: Use child_process (Capture Output)
283
- // We need to run this in the workspace root
284
- const workspacePath = vscode.workspace.workspaceFolders?.[0].uri.fsPath;
285
- if (!workspacePath) {
286
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Failed: No Workspace' });
287
- return false;
227
+ // Loop Detection (Circuit Breaker)
228
+ const failures = this._commandFailures.get(command) || 0;
229
+ if (failures >= 3) {
230
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nBlocked (Circuit Breaker): ${command}` });
231
+ this._messageHistory.push({ role: 'user', content: `[System]: The command '${command}' has failed 3 times consecutively. Access is temporarily blocked to prevent loops.` });
232
+ resolve(false);
233
+ return;
288
234
  }
289
- try {
290
- const output = await new Promise((resolve, reject) => {
291
- cp.exec(command, { cwd: workspacePath, maxBuffer: 1024 * 1024 }, (err, stdout, stderr) => {
292
- if (err) {
293
- // Increment failure count
294
- const current = this._commandFailures.get(command) || 0;
295
- this._commandFailures.set(command, current + 1);
296
- // Sometimes err is just non-zero exit, but we still want stderr
297
- resolve(`EXIT CODE: ${err.code}\n${stderr}\n${stdout}`);
298
- }
299
- else {
300
- // Reset failure count on success
301
- this._commandFailures.delete(command);
302
- resolve(stdout || stderr || "(No Output)");
303
- }
304
- });
305
- });
306
- // Truncate if massive
307
- const cleanOutput = output.length > 2000 ? output.slice(0, 2000) + "\n...(truncated)" : output;
308
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Finished' });
309
- this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nOutput:\n${cleanOutput}` });
310
- this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command: ${command}` });
311
- // Add to history (Eyes!)
312
- this._messageHistory.push({ role: 'assistant', content: `[Executed Command]: ${command}` });
313
- this._messageHistory.push({ role: 'user', content: `[System Output]:\n${cleanOutput}` });
235
+ // Whitelist Check
236
+ const commandName = command.split(' ')[0];
237
+ const isWhitelisted = whitelist.some(w => command.startsWith(w));
238
+ if (!isWhitelisted) {
239
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nCommand '${commandName}' not in allowed list.` });
240
+ this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' blocked (not whitelisted).` });
241
+ resolve(false);
242
+ return;
314
243
  }
315
- catch (e) {
316
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Error' });
317
- this._messageHistory.push({ role: 'user', content: `[System Error]: ${e.message}` });
318
- return false; // Exec error might not block loop, but we can treat as failure? defaulting to true for now unless critical
244
+ // Interactive Mode Check
245
+ if (executionMode === 'interactive') {
246
+ const userApproved = await vscode.window.showInformationMessage(`Agent wants to run: ${command}`, { modal: true }, "Allow", "Deny");
247
+ if (userApproved !== "Allow") {
248
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser denied command execution.` });
249
+ this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' denied by user.` });
250
+ resolve(false);
251
+ return;
252
+ }
319
253
  }
320
- }
321
- await this._saveHistory();
322
- return true;
254
+ else if (executionMode === 'manual') {
255
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nManual mode: Command suggested but not run.` });
256
+ this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' skipped (Manual Mode).` });
257
+ resolve(true);
258
+ return;
259
+ }
260
+ // AUTO or Approved Interactive
261
+ const terminal = vscode.window.createTerminal(`Agent: ${commandName}`);
262
+ terminal.show();
263
+ this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command: ${command}` });
264
+ const cp = require('child_process');
265
+ const cwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : undefined;
266
+ cp.exec(command, { cwd }, (err, stdout, stderr) => {
267
+ terminal.sendText(command);
268
+ let output = stdout + '\n' + stderr;
269
+ if (output.length > 2000)
270
+ output = output.substring(0, 2000) + '...[truncated]';
271
+ // Intelligent NPM Error Parsing
272
+ if (command.startsWith('npm') && (err || stderr)) {
273
+ if (output.includes('No matching version found for')) {
274
+ output += '\n\n[System Hint]: NPM Version Mismatch. Check the package name or use "latest".';
275
+ }
276
+ if (output.includes('EACCES')) {
277
+ output += '\n\n[System Hint]: Permission Error. Do not use sudo.';
278
+ }
279
+ // Circuit Breaker Increment
280
+ this._commandFailures.set(command, failures + 1);
281
+ }
282
+ else {
283
+ // Success? Reset failures
284
+ this._commandFailures.set(command, 0);
285
+ }
286
+ if (err) {
287
+ this._messageHistory.push({ role: 'user', content: `[System Command Output]: (Exit Code: ${err.code})\n${output}` });
288
+ resolve(true);
289
+ }
290
+ else {
291
+ this._messageHistory.push({ role: 'user', content: `[System Command Output]:\n${output}` });
292
+ resolve(true);
293
+ }
294
+ });
295
+ });
323
296
  }
324
297
  async _handleGenerateImage(prompt, outputPath, signal) {
325
298
  if (signal?.aborted)
@@ -450,6 +423,7 @@ class PartnerBotProvider {
450
423
  this._abortController = new AbortController();
451
424
  let assistantResponse = "";
452
425
  let toolActionOccurred = false;
426
+ let mutatingActionOccurred = false; // v2.5 Auto-Summary Tracker
453
427
  // 2. Query Model
454
428
  await this._saveHistory();
455
429
  // queryOllama now returns true if we should strictly STOP the loop (e.g. executed a terminal action like generate_image)
@@ -469,6 +443,17 @@ class PartnerBotProvider {
469
443
  // We need to verify if we enter the XML parsing block below.
470
444
  const config = vscode.workspace.getConfiguration('partnerBot');
471
445
  const useController = config.get('useController', true) && mode === 'agent';
446
+ // Catch mutating actions from Controller response (Heuristic)
447
+ // If the controller response contains tool tags, processStreamChunk handles them,
448
+ // but we need to know if they were mutating.
449
+ // Our processStreamChunk parser doesn't return this info easily,
450
+ // but we can spy on it via a class-level flag or checking the response string.
451
+ if (assistantResponse.includes('<SEARCH_REPLACE>') ||
452
+ assistantResponse.includes('<CREATE_FILE>') ||
453
+ assistantResponse.includes('<RUN_COMMAND>') ||
454
+ assistantResponse.includes('<GENERATE_IMAGE>')) {
455
+ mutatingActionOccurred = true;
456
+ }
472
457
  if (useController) {
473
458
  // If Controller handled it, we don't do XML parsing here.
474
459
  // We just loop or stop based on the return value above.
@@ -509,6 +494,22 @@ class PartnerBotProvider {
509
494
  finally {
510
495
  this._abortController = null;
511
496
  }
497
+ // v2.5 Auto-Summary Phase
498
+ // If we are done with the main loop, and we did something substantial,
499
+ // ask for a summary.
500
+ if (!toolActionOccurred && mutatingActionOccurred) {
501
+ this._view.webview.postMessage({ type: 'streamChunk', value: '\n\n📝 *Summarizing changes...*', isNew: false });
502
+ // Add system instruction for summary
503
+ this._messageHistory.push({
504
+ role: 'user',
505
+ content: '[System]: The task is complete. Provide a concise bulleted list summary of the changes you made. Do not use any XML tags.'
506
+ });
507
+ // Run one final inference (short)
508
+ await this.queryOllama(this._messageHistory, this._abortController.signal, (chunk) => {
509
+ this._view.webview.postMessage({ type: 'streamChunk', value: chunk, isNew: false });
510
+ }, undefined, mode, 'fast'); // Use 'fast' intent for summary
511
+ break; // Definitely done after summary
512
+ }
512
513
  if (!toolActionOccurred) {
513
514
  // Done with this conversation turn
514
515
  break;
@@ -791,395 +792,196 @@ class PartnerBotProvider {
791
792
  await authManager.checkConnection(port);
792
793
  }
793
794
  _validateEditor() {
794
- // For Vibe coding, we might allow chatting without selection if we have context
795
795
  const editor = vscode.window.activeTextEditor;
796
- if (!editor)
797
- return true; // Just chat
796
+ if (!editor) {
797
+ vscode.window.showErrorMessage('No active editor found');
798
+ return false;
799
+ }
798
800
  return true;
799
801
  }
800
802
  async _handleExplain() {
801
- if (!vscode.window.activeTextEditor)
803
+ if (!this._validateEditor())
802
804
  return;
803
805
  const editor = vscode.window.activeTextEditor;
804
- const text = editor.document.getText(editor.selection);
805
- this._view?.webview.postMessage({ type: 'addMessage', role: 'user', value: 'Explain this.' });
806
- // Intent: 'explain' (maps to chat/default)
807
- await this._handleChat("Explain this.", `\n\n[Selection]:\n\`\`\`\n${text}\n\`\`\``, 'explain');
806
+ const selection = editor.selection;
807
+ const text = editor.document.getText(selection);
808
+ if (!text) {
809
+ vscode.window.showErrorMessage('No text selected to explain');
810
+ return;
811
+ }
812
+ const prompt = `Explain the following code:\n\n${text}`;
813
+ await this._handleChat(prompt, 'explain');
808
814
  }
809
815
  async _handleFix() {
810
- if (!vscode.window.activeTextEditor)
816
+ if (!this._validateEditor())
811
817
  return;
812
818
  const editor = vscode.window.activeTextEditor;
813
- const text = editor.document.getText(editor.selection);
814
- this._view?.webview.postMessage({ type: 'addMessage', role: 'user', value: 'Fix this.' });
815
- // Intent: 'refactor' (maps to default/deep)
816
- await this._handleChat("Fix this.", `\n\n[Selection]:\n\`\`\`\n${text}\n\`\`\``, 'refactor');
819
+ const selection = editor.selection;
820
+ const text = editor.document.getText(selection);
821
+ if (!text) {
822
+ vscode.window.showErrorMessage('No text selected to fix');
823
+ return;
824
+ }
825
+ // Gather any diagnostics (errors/warnings) on the selected lines
826
+ const diagnostics = vscode.languages.getDiagnostics(editor.document.uri);
827
+ const relevantDiagnostics = diagnostics.filter(d => d.range.intersection(selection));
828
+ let errorContext = "";
829
+ if (relevantDiagnostics.length > 0) {
830
+ errorContext = "\n\nErrors/Warnings:\n" + relevantDiagnostics.map(d => `- [Line ${d.range.start.line + 1}]: ${d.message}`).join('\n');
831
+ }
832
+ const prompt = `Fix the following code errors:\n\nCode:\n${text}${errorContext}`;
833
+ await this._handleChat(prompt, 'fix');
817
834
  }
818
835
  async queryOllama(messages, signal, onChunk, modelOverride, mode = 'agent', intent = 'chat') {
819
- PartnerBotProvider.outputChannel.appendLine(`[${new Date().toLocaleTimeString()}] Querying Ollama (Intent: ${intent})...`);
820
- const startTime = Date.now();
821
- // ALWAYS get fresh config to pick up any auth token updates
822
836
  const config = vscode.workspace.getConfiguration('partnerBot');
823
- const url = config.get('ollamaUrl') || 'http://127.0.0.1:11434';
824
- const useController = config.get('useController', true);
837
+ const model = modelOverride || config.get('model') || 'llama3';
838
+ const hostname = config.get('ollamaHostname') || 'localhost';
839
+ // Check if we should use the separate controller
840
+ const useController = config.get('useController') || false;
825
841
  const controllerPort = config.get('controllerPort') || 43110;
826
- const controllerToken = config.get('controllerToken'); // Fresh token!
827
- // Routing Logic
828
- let selectedModel = modelOverride;
829
- if (!selectedModel) {
830
- // Read specific configs first
831
- const fastModel = config.get('models.fast');
832
- const defaultModel = config.get('models.default');
833
- const deepModel = config.get('models.deep');
834
- const legacyModel = config.get('model') || 'qwen2.5-coder:32b';
835
- if (intent === 'fast' || intent === 'inline_completion') {
836
- selectedModel = fastModel || defaultModel || legacyModel;
837
- }
838
- else if (intent === 'deep' || mode === 'plan') {
839
- selectedModel = deepModel || defaultModel || legacyModel;
840
- }
841
- else if (intent === 'refactor' || intent === 'edit') {
842
- selectedModel = defaultModel || legacyModel;
843
- }
844
- else {
845
- // Default / Chat
846
- selectedModel = defaultModel || legacyModel;
847
- }
848
- }
849
- const model = selectedModel;
850
- // Experimental path: route through local Agent Controller for agent mode.
851
- if (useController && mode === 'agent') {
852
- const controllerUrl = `http://127.0.0.1:${controllerPort}/agent`;
853
- PartnerBotProvider.outputChannel.appendLine(`[Info] Using Agent Controller: ${controllerUrl} | Model: ${model} | Mode: ${mode} | Intent: ${intent}`);
842
+ if (useController && intent !== 'fast') {
854
843
  try {
855
- const headers = { 'Content-Type': 'application/json' };
856
- if (controllerToken)
857
- headers['x-vibe-token'] = controllerToken;
858
- const response = await (0, node_fetch_1.default)(controllerUrl, {
844
+ // Determine request type for dashboard
845
+ const requestType = intent || 'chat';
846
+ const response = await (0, node_fetch_1.default)(`http://${hostname}:${controllerPort}/api/generate`, {
859
847
  method: 'POST',
860
- headers,
848
+ headers: { 'Content-Type': 'application/json' },
861
849
  body: JSON.stringify({
862
- mode,
863
- intent,
864
- messages: [
865
- { role: 'system', content: this._getSystemPrompt(mode, true) },
866
- // Pass full history, Controller handles trimming (Context Hygiene v2.0)
867
- ...messages
868
- ],
869
- ollama: {
870
- url,
871
- model
872
- },
873
- limits: {
874
- maxActions: config.get('maxActions'),
875
- maxRunCommands: config.get('maxRunCommands'),
876
- fast: config.get('limits.fast'),
877
- default: config.get('limits.default'),
878
- deep: config.get('limits.deep')
879
- }
850
+ model,
851
+ messages,
852
+ mode: mode || 'agent', // Pass the mode ('agent' or 'chat')
853
+ intent: requestType, // Pass intent to controller
854
+ ollama: { model, hostname }, // Pass config to controller so it knows where to proxy
880
855
  }),
881
856
  signal
882
857
  });
883
858
  if (!response.ok) {
884
- throw new Error(`Agent Controller Error: ${response.status} ${response.statusText}`);
859
+ throw new Error(`Controller Error: ${response.statusText}`);
885
860
  }
886
- const json = await response.json();
887
- const replyMarkdown = typeof json.replyMarkdown === 'string' ? json.replyMarkdown : '';
888
- // Execute any actions returned by the controller
889
- let shouldStopLoop = false;
890
- if (Array.isArray(json.actions)) {
891
- let imageCount = 0;
892
- for (const action of json.actions) {
893
- if (signal.aborted)
894
- break; // STOP Check in Controller Loop
895
- if (!action || typeof action !== 'object')
896
- continue;
897
- if (action.type === 'generate_image') {
898
- if (imageCount >= 1) {
899
- PartnerBotProvider.outputChannel.appendLine('[Info] Skipping additional image generation (Limit 1 per turn).');
900
- continue;
901
- }
902
- imageCount++;
903
- shouldStopLoop = true; // FORCE STOP after image generation
904
- }
905
- // Pass signal to handlers if possible, or check before exec
906
- if (action.type === 'create_file' && typeof action.path === 'string' && typeof action.content === 'string') {
907
- const result = await this._createFile(action.path, action.content);
908
- this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
909
- }
910
- else if (action.type === 'edit_file' &&
911
- typeof action.path === 'string' &&
912
- typeof action.search === 'string' &&
913
- typeof action.replace === 'string') {
914
- const result = await this._applyEdit(action.path, action.search, action.replace);
915
- this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
916
- }
917
- else if (action.type === 'run_command' && typeof action.command === 'string') {
918
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Running: ${action.command}` });
919
- const success = await this._handleRunCommand(action.command);
920
- if (!success) {
921
- PartnerBotProvider.outputChannel.appendLine('[Info] Stopping loop due to blocked command.');
922
- shouldStopLoop = true;
923
- }
924
- }
925
- else if (action.type === 'read_file' && typeof action.path === 'string') {
926
- const content = await this._readFileContent(action.path);
927
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Reading: ${action.path}` });
928
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: `Read ${content.length} bytes` });
929
- const snippet = `[System: Content of ${action.path}]:\n\`\`\`\n${content}\n\`\`\`\n`;
930
- this._messageHistory.push({ role: 'user', content: snippet });
931
- }
932
- else if (action.type === 'generate_image' && typeof action.prompt === 'string') {
933
- await this._handleGenerateImage(action.prompt, action.output_path || `assets/generated_${Date.now()}.png`, signal);
934
- }
935
- }
936
- await this._saveHistory();
937
- if (!json.actions.length) {
938
- PartnerBotProvider.outputChannel.appendLine('[Info] Agent Controller returned no structured actions for this turn.');
939
- shouldStopLoop = true; // Stop loop if only text is returned
940
- }
941
- // Emit the full reply
942
- if (replyMarkdown) {
943
- onChunk(replyMarkdown);
944
- }
945
- if (shouldStopLoop) {
946
- // Signal to caller that we should stop the turn loop
947
- // We can throw a special object or use a callback mechanism,
948
- // but queryOllama signature returns void.
949
- // Let's attach it to the handler or throw a specific 'StopIteration' error?
950
- // Cleaner: Just return a boolean (we need to change signature).
951
- return true; // Return TRUE = Stop Loop
952
- }
953
- return false; // Continue
861
+ if (!response.body)
862
+ throw new Error('No response body');
863
+ // Handle streaming from controller (node-fetch)
864
+ for await (const chunk of response.body) {
865
+ const text = chunk.toString();
866
+ onChunk(text);
954
867
  }
868
+ return; // Successful controller request
955
869
  }
956
- catch (error) {
957
- const errorMsg = error.message || error.toString();
958
- if (error.name === 'AbortError' || errorMsg.includes('aborted')) {
959
- PartnerBotProvider.outputChannel.appendLine('[Info] Request cancelled by user.');
960
- return true; // Stop loop
961
- }
962
- PartnerBotProvider.outputChannel.appendLine(`[Error] Agent Controller failed: ${errorMsg}`);
963
- if (errorMsg.includes('ECONNREFUSED')) {
964
- PartnerBotProvider.outputChannel.appendLine('[Hint] Connection refused. Is the Agent Controller running? (npm run agent-controller)');
965
- }
966
- else if (errorMsg.includes('403') || errorMsg.includes('Forbidden')) {
967
- PartnerBotProvider.outputChannel.appendLine('[Hint] Authorization failed. Check your "Controller Token" in settings.');
968
- }
969
- PartnerBotProvider.outputChannel.appendLine('[Error] Aborting turn due to Controller failure.');
970
- throw error;
870
+ catch (err) {
871
+ if (err.name === 'AbortError')
872
+ throw err;
873
+ console.error('Controller failed, falling back to direct:', err);
874
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\n[Controller unreachable, using direct connection]Connection to Agent Controller failed. Using local Ollama directly.` });
875
+ // Fallthrough to direct Ollama logic below
971
876
  }
972
877
  }
973
- const endpoint = url.endsWith('/api/chat') ? url : `${url.replace(/\/$/, '')}/api/chat`;
974
- PartnerBotProvider.outputChannel.appendLine(`[Info] URL: ${endpoint} | Model: ${model} | Mode: ${mode}`);
975
- const systemPrompt = this._getSystemPrompt(mode);
878
+ // Direct Ollama Logic (Fallback or Default)
976
879
  try {
977
- const response = await (0, node_fetch_1.default)(endpoint, {
880
+ const response = await (0, node_fetch_1.default)(`http://${hostname}:11434/api/chat`, {
978
881
  method: 'POST',
979
882
  headers: { 'Content-Type': 'application/json' },
980
883
  body: JSON.stringify({
981
- model: model,
982
- messages: [
983
- { role: 'system', content: systemPrompt },
984
- ...messages
985
- ],
884
+ model,
885
+ messages,
986
886
  stream: true
987
887
  }),
988
- signal: signal
888
+ signal
989
889
  });
990
- if (!response.ok)
991
- throw new Error(`Ollama API Error: ${response.statusText}`);
992
- if (!response.body)
993
- return;
994
- PartnerBotProvider.outputChannel.appendLine(`[${new Date().toLocaleTimeString()}] Connected, stream starting...`);
995
- let firstToken = true;
996
- let tokenCount = 0;
997
- let firstTokenTime = 0;
998
- const body = response.body;
999
- if (body.on) {
1000
- body.setEncoding('utf8');
1001
- for await (const chunk of body) {
1002
- if (firstToken) {
1003
- firstTokenTime = Date.now();
1004
- const latency = firstTokenTime - startTime;
1005
- PartnerBotProvider.outputChannel.appendLine(`[Perf] First Token latency: ${latency}ms`);
1006
- // Send initial latency telemetry
1007
- this._view?.webview.postMessage({
1008
- type: 'perfUpdate',
1009
- latency,
1010
- tps: 0
1011
- });
1012
- firstToken = false;
1013
- }
1014
- // Crude token count approximation (words/chunks)
1015
- // Just counting length / 4 is a standard heuristic
1016
- tokenCount += chunk.length / 4;
1017
- const lines = chunk.split('\n').filter(line => line.trim() !== '');
1018
- for (const line of lines) {
1019
- try {
1020
- const json = JSON.parse(line);
1021
- if (json.message && json.message.content)
1022
- onChunk(json.message.content);
1023
- if (json.done) {
1024
- const totalTime = Date.now() - startTime;
1025
- const tps = Math.round(tokenCount / ((totalTime - (firstTokenTime - startTime)) / 1000));
1026
- PartnerBotProvider.outputChannel.appendLine(`[Perf] Total Generation time: ${totalTime}ms | TPS: ${tps}`);
1027
- // Send final telemetry
1028
- this._view?.webview.postMessage({
1029
- type: 'perfUpdate',
1030
- latency: firstTokenTime - startTime,
1031
- tps,
1032
- totalTime
1033
- });
1034
- return;
1035
- }
1036
- }
1037
- catch (e) { }
1038
- }
1039
- }
890
+ if (!response.ok) {
891
+ const errorText = await response.text();
892
+ throw new Error(`Ollama Error: ${response.status} ${response.statusText} - ${errorText}`);
1040
893
  }
1041
- else {
1042
- const text = await response.text();
1043
- const lines = text.split('\n').filter(line => line.trim() !== '');
894
+ if (!response.body)
895
+ throw new Error('No response body');
896
+ // Handle streaming from Ollama (node-fetch)
897
+ for await (const chunk of response.body) {
898
+ const text = chunk.toString();
899
+ const lines = text.split('\n');
1044
900
  for (const line of lines) {
901
+ if (!line.trim())
902
+ continue;
1045
903
  try {
1046
904
  const json = JSON.parse(line);
1047
- if (json.message?.content)
905
+ if (json.message && json.message.content) {
1048
906
  onChunk(json.message.content);
907
+ }
908
+ }
909
+ catch (e) {
910
+ console.error('Error parsing JSON chunk', e);
1049
911
  }
1050
- catch (e) { }
1051
912
  }
1052
913
  }
1053
914
  }
1054
915
  catch (error) {
1055
- throw error;
916
+ if (error.name === 'AbortError') {
917
+ throw new Error('Request aborted by user');
918
+ }
919
+ throw new Error(`Failed to connect to Ollama: ${error.message}`);
1056
920
  }
1057
921
  }
1058
922
  _getSystemPrompt(mode, useController = false) {
1059
- if (mode === 'plan') {
1060
- return `You are a Senior Software Architect.
1061
- YOUR GOAL: Create a comprehensive implementation plan.
1062
- DO NOT write code artifacts yet.
1063
- DO NOT execute commands.
1064
- Output a structured Markdown plan (Phase 1, Phase 2, etc.) explaining exactly how to solve the user's request.`;
1065
- }
1066
- if (mode === 'chat') {
1067
- return `You are a helpful Senior Engineer.
1068
- YOUR GOAL: Answer questions and explain concepts.
1069
- You can read files to provide context using <READ_FILE>, but DO NOT create, edit, or run code via tools.
1070
- Never use <CREATE_FILE>, <SEARCH_REPLACE>, or <RUN_COMMAND> in chat mode.
1071
- Always respond with these sections:
923
+ if (mode === 'agent') {
924
+ let base = `You are an autonomous coding agent. You have access to the user's workspace files.
925
+ Your goal is to solve the user's request by reading code, planning changes, and modifying files.
926
+ You can run terminal commands.
1072
927
 
1073
- ### Thought
1074
- One or two short sentences explaining your reasoning.
928
+ Capabilities:
929
+ 1. **Read Files**: Always read a file before modifying it.
930
+ 2. **Edit Files**: Use the \`replace_file_content\` tool for edits.
931
+ 3. **Run Commands**: You can run \`npm install\`, \`npm test\`, \`grep\`, etc.
932
+ 4. **Explore**: Use \`list_dir\` to see file structure.
1075
933
 
1076
- ### Answer
1077
- The explanation or guidance in markdown (no tool tags here).`;
934
+ Rules:
935
+ - **Always** begin by listing the relevant files or searching if you are unsure.
936
+ - When editing, use exact string matching for the target content to replace.
937
+ - If a file edit fails, read the file again to check whitespace/indentation.
938
+ - Be concise in your thought process.
939
+ - Valid Tools: view_file, list_dir, replace_file_content, run_command, create_file.
940
+ - Do not output bare markdown unless answering a direct question. Use the tools.`;
941
+ return base;
1078
942
  }
1079
- // AGENT MODE (Default)
1080
- if (useController) {
1081
- return `You are an AUTONOMOUS CODING AGENT (Controller Mode).
1082
- Your goal is to SOLVE the user's problem by directly editing the open project.
1083
-
1084
- RESPONSE FORMAT:
1085
- 1. Explain your plan in **Markdown**.
1086
- 2. **CRITICAL**: END your response with a JSON block defining the actions.
1087
-
1088
- ### Thought
1089
- Explain your reasoning briefly.
1090
-
1091
- ### Action (JSON)
1092
- You must output a single JSON block at the end of your message with this structure:
1093
-
1094
- \`\`\`actions
1095
- [
1096
- {
1097
- "type": "create_file",
1098
- "path": "src/main.ts",
1099
- "content": "console.log('Hello');"
1100
- },
1101
- {
1102
- "type": "generate_image",
1103
- "prompt": "A modern landing page hero image, blue gradient, technology",
1104
- "output_path": "public/hero.png"
1105
- },
1106
- {
1107
- "type": "edit_file",
1108
- "path": "readme.md",
1109
- "search": "Old Title",
1110
- "replace": "New Title"
1111
- },
1112
- {
1113
- "type": "run_command",
1114
- "command": "npm install"
1115
- },
1116
- {
1117
- "type": "read_file",
1118
- "path": "config.json"
1119
- }
1120
- ]
1121
- \`\`\`
1122
-
1123
- **RULES:**
1124
- - NO XML tags (<CREATE_FILE>, etc.). ONLY use the JSON block.
1125
- - The JSON block must be valid and parsable.
1126
- - You can perform multiple actions in one array.
1127
- - If you need to read a file to understand the code, use the 'read_file' action FIRST.`;
943
+ else {
944
+ // Chat Mode Prompt
945
+ return `You are a helpful coding assistant. You are chatting with the user.
946
+ You can read files to answer questions, but you cannot autonomously run loops or complex multi-step agents in this mode.
947
+ Answer the user's questions concisely.`;
1128
948
  }
1129
- // FALLBACK / LEGACY MODE (XML)
1130
- return `You are an AUTONOMOUS CODING AGENT embedded inside VS Code.
1131
- Your goal is to SOLVE the user's problem by directly editing the open project, not just talking.
1132
-
1133
- CAPABILITIES:
1134
- - You can CREATE new files with <CREATE_FILE>.
1135
- - You can EDIT existing files with <SEARCH_REPLACE>.
1136
- - You can READ files with <READ_FILE>.
1137
- - You can RUN shell commands with <RUN_COMMAND> (tests, builds, linters, etc.).
1138
-
1139
- RESPONSE FORMAT (STRICT):
1140
- Always respond using exactly these sections, in this order:
1141
-
1142
- ### Thought
1143
- One short sentence describing your next concrete step.
1144
-
1145
- ### Action
1146
- One or more tool calls ONLY. Do not include natural language outside of tool tags in this section.
1147
-
1148
- ### Result
1149
- A brief summary of what you changed or learned (optional but recommended after actions).
1150
-
1151
- PROCESS:
1152
- 1. Under "Thought", decide the next concrete change or check.
1153
- 2. Under "Action", immediately use at least one tool (<CREATE_FILE>, <SEARCH_REPLACE>, <READ_FILE>, <RUN_COMMAND>) to move the task forward.
1154
- 3. Under "Result", summarize what happened and what you’ll do next.
1155
- 4. Repeat until the task is reasonably solved.
1156
-
1157
- TOOL SPEC (SUMMARY):
1158
- - <CREATE_FILE><PATH>relative/path</PATH><CONTENT>file content</CONTENT></CREATE_FILE>
1159
- - <SEARCH_REPLACE><FILE>relative/path</FILE><SEARCH>existing code exactly as it is now</SEARCH><REPLACE>new code to replace it with</REPLACE></SEARCH_REPLACE>
1160
- - <READ_FILE>relative/path</READ_FILE>
1161
- - <RUN_COMMAND>shell command to run in the workspace root</RUN_COMMAND>
1162
- - <GENERATE_IMAGE><PROMPT>desc</PROMPT><OUTPUT>path/to/img.png</OUTPUT></GENERATE_IMAGE>
1163
-
1164
- - When the user asks for ANY code change, refactor, or new feature, you MUST implement it via tools. Do not just describe what to do.
1165
- - Prefer small, focused edits over huge rewrites. Update only the necessary parts of files.
1166
- - If you start a long-running server, mention: "Server started on [URL]" in your response.
1167
- - **IMAGE GENERATION**:
1168
- - You possess a NATIVE tool called <GENERATE_IMAGE>.
1169
- - If the user needs an image, **DO NOT** try to install Python, Stable Diffusion, or DALL-E scripts.
1170
- - **DO NOT** execute 'pip install'.
1171
- - **DO NOT** Create empty placeholder files with <CREATE_FILE>.
1172
- - ALWAYS simply output the <GENERATE_IMAGE> tag.
1173
- - **CRITICAL**: GENERATE ONLY ONE IMAGE PER REQUEST. DO NOT LOOP.`;
1174
949
  }
1175
950
  _getHtmlForWebview(webview) {
951
+ // (Simplified for brevity - assumes index.html is loaded from media)
1176
952
  const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.js'));
1177
- const styleUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'style.css'));
1178
- const htmlPath = vscode.Uri.joinPath(this._extensionUri, 'media', 'sidebar.html');
1179
- let htmlContent = fs.readFileSync(htmlPath.fsPath, 'utf8');
1180
- htmlContent = htmlContent.replace('${styleUri}', styleUri.toString());
1181
- htmlContent = htmlContent.replace('${scriptUri}', scriptUri.toString());
1182
- return htmlContent;
953
+ const styleResetUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'reset.css'));
954
+ const styleVSCodeUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'vscode.css'));
955
+ const styleMainUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.css'));
956
+ // Add Tailwind
957
+ const tailwindUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'tailwind.min.js'));
958
+ // Use a nonce to whitelist which scripts can be run
959
+ const nonce = getNonce();
960
+ return `<!DOCTYPE html>
961
+ <html lang="en">
962
+ <head>
963
+ <meta charset="UTF-8">
964
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src ${webview.cspSource}; script-src 'nonce-${nonce}';">
965
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
966
+ <link href="${styleResetUri}" rel="stylesheet">
967
+ <link href="${styleVSCodeUri}" rel="stylesheet">
968
+ <link href="${styleMainUri}" rel="stylesheet">
969
+ <script nonce="${nonce}" src="${tailwindUri}"></script>
970
+ <title>PartnerBot</title>
971
+ </head>
972
+ <body>
973
+ <div id="app"></div>
974
+ <script nonce="${nonce}" src="${scriptUri}"></script>
975
+ </body>
976
+ </html>`;
977
+ }
978
+ }
979
+ function getNonce() {
980
+ let text = '';
981
+ const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
982
+ for (let i = 0; i < 32; i++) {
983
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
1183
984
  }
985
+ return text;
1184
986
  }
1185
987
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "indirecttek-vibe-engine",
3
3
  "displayName": "IndirectTek Vibe Engine",
4
4
  "description": "Autonomous Local AI Agent. Vibe Coding v1.0.",
5
- "version": "2.4.1",
5
+ "version": "2.6.0",
6
6
  "icon": "media/icon.png",
7
7
  "bin": {
8
8
  "vibe-agent": "bin/vibe-agent.js"
@@ -115,21 +115,25 @@
115
115
  },
116
116
  "partnerBot.commandExecutionMode": {
117
117
  "type": "string",
118
- "default": "manual",
118
+ "default": "interactive",
119
119
  "enum": [
120
120
  "manual",
121
- "auto"
121
+ "auto",
122
+ "interactive"
122
123
  ],
123
124
  "enumDescriptions": [
124
- "Show suggested commands from the agent with a Run button (recommended).",
125
- "Automatically execute <RUN_COMMAND> emitted by the agent (advanced / unsafe)."
125
+ "Show suggested commands from the agent with a Run button.",
126
+ "Automatically execute <RUN_COMMAND> emitted by the agent (advanced / unsafe).",
127
+ "Prompt the user for approval before executing commands."
126
128
  ],
127
129
  "description": "Controls how <RUN_COMMAND> from the agent is handled. In 'manual' mode, commands are suggested with a Run button. In 'auto' mode, they are executed automatically when allowed."
128
130
  },
129
131
  "partnerBot.allowedCommands": {
130
132
  "type": "array",
131
133
  "default": [
132
- "npm",
134
+ "npm install",
135
+ "npm run",
136
+ "npm test",
133
137
  "npx",
134
138
  "node",
135
139
  "pnpm",