indirecttek-vibe-engine 2.6.33 → 2.6.43

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
@@ -16,7 +16,7 @@
16
16
  1. Install **"IndirectTek Vibe Engine"** from VS Code Marketplace.
17
17
  2. Open the **IndirectTek AI** chat panel.
18
18
  3. Type: *"Create a hello world python script"*.
19
- 4. If your Ollama is running on localhost, it just works.
19
+ 4. **Important**: Check your Settings! The default configuration might point to a specific IP (`192.168...`). Change `partnerBot.ollamaUrl` to `http://localhost:11434` (or your server IP) if running locally.
20
20
 
21
21
  _Note: The agent connects to `http://localhost:11434` by default._
22
22
 
@@ -31,29 +31,37 @@ For **Telemetry**, **Dashboards**, and **Enterprise Features**, run the standalo
31
31
  3. In VS Code Settings:
32
32
  - Set **Use Controller** to `true`.
33
33
  - Paste the **Controller Token**.
34
- - (Optional) Update **Ollama URL** if using a remote server.
35
34
 
36
35
  ---
37
36
 
38
- ## ✨ Key Features (v2.0)
37
+ ## ✨ Key Features (v2.6)
39
38
  - **100% Data Privacy**: Your code never leaves your network.
40
- - **Capability-Based Permissions**: Interactive "Yellow Card" approval for all file edits and commands.
41
- - **Visible Tool Calls**: See exactly what the agent is doing with granular logs.
39
+ - **Permission System (Yellow Card)**: Interactive approval for sensitive actions:
40
+ - **Shell**: `run_command` requires manual allow (Always/Once/Deny).
41
+ - **Visual**: `generate_image` triggers approval.
42
+ - **Files**: `create_file` checks permissions.
43
+ - **Cybernetic Vision**: The agent can now **Scan Directories** (`LIST_DIR`) to understand your project structure instantly.
44
+ - **Studio Mode**: Generate assets using `generate_image` (requires Fooocus API).
42
45
  - **Intent Router**: Automatically switches models based on task (Chat vs Refactor vs Plan).
43
- - **Auto-Summary**: Automatically summarizes changes (Edits, Commands) at the end of every task.
44
46
  - **Autonomous Editing**: Strict "Hunk Only" editing to prevent creating massive diffs.
45
47
 
46
48
  ## ⚙️ Configuration (The "Router")
47
- You can now map distinct models to different "Intents" in your `settings.json`:
49
+ You can map distinct models to different "Intents" in your `settings.json`:
48
50
 
49
51
  ```json
50
52
  "partnerBot.models.fast": "qwen2.5:7b", // Chat, Explanations
51
53
  "partnerBot.models.default": "qwen2.5-coder:14b", // Refactoring, Editing
52
54
  "partnerBot.models.deep": "qwen2.5:32b", // Planning, Complex Logic
55
+ "partnerBot.allowedCommands": ["npm install", "cd", "ls", "grep"] // Whitelist
53
56
  ```
54
57
 
55
58
  The agent will automatically route "Fix this" requests to the **Default** (Coder) model and casual chat to the **Fast** model.
56
59
 
60
+ ## 🚨 Troubleshooting
61
+ - **Command 'cd' not in allowed list**: Update to v2.6.39+.
62
+ - **Image Generation fails**: Ensure Fooocus is running and `partnerBot.fooocusUrl` is correct.
63
+ - **Connection Refused**: Check your `ollamaUrl`. If using WSL or Docker, use the host IP.
64
+
57
65
  ---
58
66
 
59
67
  ## 📜 License
package/out/extension.js CHANGED
@@ -7,7 +7,8 @@ const vscode = require("vscode");
7
7
  // _checkConnection is implemented below, removing duplicate here.
8
8
  const fs = require("fs");
9
9
  const path = require("path");
10
- const permission_manager_1 = require("./permission-manager");
10
+ const PermissionManager_1 = require("./permissions/PermissionManager");
11
+ const telemetry_1 = require("./telemetry");
11
12
  const auth_1 = require("./auth");
12
13
  const node_fetch_1 = require("node-fetch");
13
14
  function activate(context) {
@@ -42,7 +43,7 @@ class PartnerBotProvider {
42
43
  this._pendingApprovals = new Map();
43
44
  this._messageHistory = [];
44
45
  this._context = context;
45
- this._permissionManager = new permission_manager_1.PermissionManager();
46
+ this._permissionManager = new PermissionManager_1.PermissionManager(context);
46
47
  if (!PartnerBotProvider.outputChannel) {
47
48
  PartnerBotProvider.outputChannel = vscode.window.createOutputChannel("IndirectTek Vibe Engine");
48
49
  }
@@ -234,6 +235,11 @@ class PartnerBotProvider {
234
235
  const allowed = config.get('allowCommandExecution') ?? true;
235
236
  const executionMode = config.get('commandExecutionMode') || 'interactive';
236
237
  const whitelist = config.get('allowedCommands') || [];
238
+ // Hotfix: Ensure 'cd' and 'ls' are allowed even if config is stale
239
+ if (!whitelist.includes('cd'))
240
+ whitelist.push('cd');
241
+ if (!whitelist.includes('ls'))
242
+ whitelist.push('ls');
237
243
  if (!allowed) {
238
244
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nCommand execution disabled in settings.` });
239
245
  this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' blocked (settings).` });
@@ -257,8 +263,10 @@ class PartnerBotProvider {
257
263
  resolve(false);
258
264
  return;
259
265
  }
266
+ const execCwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : undefined;
267
+ const requestCwd = execCwd || '';
260
268
  // 3. Permission Manager Check (Centralized Capability System)
261
- const permissionCheck = await this._permissionManager.checkCommandPermission(command);
269
+ const permissionCheck = await this._permissionManager.checkCommandPermission(command, requestCwd);
262
270
  if (permissionCheck.verdict === 'DENY') {
263
271
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nBlocked by Policy: ${permissionCheck.reason || 'Denied'}` });
264
272
  this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' denied by policy.` });
@@ -266,18 +274,44 @@ class PartnerBotProvider {
266
274
  return;
267
275
  }
268
276
  if (permissionCheck.verdict === 'ASK') {
269
- // Determine if we are in interactive mode (vs manual/silent, though Config usually governs this)
270
- // For Phase 3, we force the UI Card flow.
271
- const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
277
+ telemetry_1.telemetry.log({
278
+ timestamp: new Date().toISOString(),
279
+ request_type: 'permission',
280
+ selected_model: 'n/a',
281
+ mode: 'permissionRequested',
282
+ input_tokens: 0,
283
+ output_tokens: 0,
284
+ total_latency_ms: 0,
285
+ success: true,
286
+ requestId: permissionCheck.request.requestId,
287
+ kind: permissionCheck.request.kind,
288
+ commandPrefix: this._permissionManager.getCommandPrefix(command),
289
+ verdict: 'ASK',
290
+ scope: 'none'
291
+ });
272
292
  // 3a. Ask for Approval via Resumable UI
273
293
  this._view?.webview.postMessage({
274
294
  type: 'askApproval',
275
- command: command,
276
- requestId: requestId
295
+ request: permissionCheck.request
277
296
  });
278
297
  // 3b. Pause and Wait for User Decision
279
298
  const decision = await new Promise((res) => {
280
- this._pendingApprovals.set(requestId, res);
299
+ this._pendingApprovals.set(permissionCheck.request.requestId, res);
300
+ });
301
+ telemetry_1.telemetry.log({
302
+ timestamp: new Date().toISOString(),
303
+ request_type: 'permission',
304
+ selected_model: 'n/a',
305
+ mode: 'permissionDecision',
306
+ input_tokens: 0,
307
+ output_tokens: 0,
308
+ total_latency_ms: 0,
309
+ success: decision !== 'DENY',
310
+ requestId: permissionCheck.request.requestId,
311
+ kind: permissionCheck.request.kind,
312
+ commandPrefix: this._permissionManager.getCommandPrefix(command),
313
+ verdict: decision === 'DENY' ? 'DENY' : 'ALLOW',
314
+ scope: decision === 'ALLOW_WORKSPACE' ? 'workspace' : (decision === 'ALLOW_ONCE' ? 'once' : 'deny')
281
315
  });
282
316
  if (decision === 'DENY') {
283
317
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
@@ -285,20 +319,19 @@ class PartnerBotProvider {
285
319
  resolve(false);
286
320
  return;
287
321
  }
288
- if (decision === 'ALWAYS') {
289
- this._permissionManager.rememberDecision(command, 'ALLOW_ALWAYS');
290
- this._messageHistory.push({ role: 'assistant', content: `[System]: Permission granted permanently for this session.` });
322
+ if (decision === 'ALLOW_WORKSPACE') {
323
+ this._permissionManager.rememberWorkspaceAllow(command);
324
+ this._messageHistory.push({ role: 'assistant', content: `[System]: Permission granted for workspace.` });
291
325
  }
292
326
  }
293
- // Verdict is ALLOW (or ASK -> ALLOW/ALWAYS), fall through to execution...
327
+ // Verdict is ALLOW (or ASK -> ALLOW), fall through to execution...
294
328
  // Auto-Mode / Approved Execution flow continues below...
295
329
  // AUTO or Approved Interactive
296
330
  const terminal = vscode.window.createTerminal(`Agent: ${commandName}`);
297
331
  terminal.show();
298
332
  this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command: ${command}` });
299
333
  const cp = require('child_process');
300
- const cwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : undefined;
301
- cp.exec(command, { cwd }, (err, stdout, stderr) => {
334
+ cp.exec(command, { cwd: execCwd }, (err, stdout, stderr) => {
302
335
  terminal.sendText(command);
303
336
  let output = stdout + '\n' + stderr;
304
337
  if (output.length > 2000)
@@ -346,24 +379,28 @@ class PartnerBotProvider {
346
379
  // We treat 'Create File' permissions as proxy for 'Generate Image' (writes file)
347
380
  // Or we can assume it's 'edit' since it writes to workspace.
348
381
  // Let's use 'create' scope.
349
- const permissionCheck = await this._permissionManager.checkFilePermission(outputPath, 'create');
382
+ const cwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : '';
383
+ const permissionCheck = await this._permissionManager.checkFilePermission(outputPath, 'create', cwd);
350
384
  if (permissionCheck.verdict === 'ASK') {
351
- const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
352
385
  this._view?.webview.postMessage({
353
386
  type: 'askApproval',
354
- command: `Generate Image: ${prompt}\n(Output to: ${outputPath})`,
355
- requestId: requestId
387
+ request: {
388
+ ...permissionCheck.request,
389
+ kind: 'image',
390
+ command: `generate_image ${outputPath}`,
391
+ reason: `Generate image: ${prompt}`
392
+ }
356
393
  });
357
394
  const decision = await new Promise((res) => {
358
- this._pendingApprovals.set(requestId, res);
395
+ this._pendingApprovals.set(permissionCheck.request.requestId, res);
359
396
  });
360
397
  if (decision === 'DENY') {
361
398
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
362
399
  return;
363
400
  }
364
- // We don't really 'ALWAYS' allow image gen paths as they are random usually,
365
- // but if user says ALWAYS, it applies to that specific filename.
366
- if (decision === 'ALWAYS') {
401
+ // We don't really allow image gen paths as workspace patterns since they are random usually,
402
+ // but if user says Allow Workspace, it applies to that specific filename.
403
+ if (decision === 'ALLOW_WORKSPACE') {
367
404
  this._permissionManager.rememberFileDecision(outputPath, 'create', 'ALLOW_ALWAYS');
368
405
  }
369
406
  }
@@ -481,6 +518,8 @@ IMPORTANT: You must use the following XML tags for actions. DO NOT use JSON. DO
481
518
  - SEARCH_REPLACE: Use <SEARCH_REPLACE><FILE>relative/path</FILE><SEARCH>exact existing code to match</SEARCH><REPLACE>new code</REPLACE></SEARCH_REPLACE>
482
519
  - READ_FILE: Use <READ_FILE>relative/path</READ_FILE>
483
520
  - RUN_COMMAND: Use <RUN_COMMAND>shell command</RUN_COMMAND>
521
+ - GENERATE_IMAGE: Use <GENERATE_IMAGE><PROMPT>description of image</PROMPT><OUTPUT>relative/path.png</OUTPUT></GENERATE_IMAGE>
522
+ - LIST_DIR: Use <LIST_DIR /> to see file structure.
484
523
 
485
524
  [EXAMPLES]
486
525
  User: Create a file named hello.ts
@@ -489,9 +528,15 @@ Assistant: <CREATE_FILE><PATH>hello.ts</PATH><CONTENT>console.log("hello");</CON
489
528
  User: Run npm install
490
529
  Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
491
530
 
531
+ User: Generate an image of a red cat
532
+ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUTPUT></GENERATE_IMAGE>
533
+
492
534
  [ENVIRONMENT]
493
535
  - Workspace root folder name: ${workspaceRoot}
494
- - You are running inside a local VS Code extension with full read/write access to the open workspace (subject to user settings). Implement changes via tools instead of only describing them.`;
536
+ - You are running inside a local VS Code extension with full read/write access to the open workspace (subject to user settings). Implement changes via tools instead of only describing them.
537
+ - IMPORTANT: <RUN_COMMAND> runs in a NEW shell instance every time. Use 'cd folder && command' syntax.
538
+ - IMPORTANT: When working in a subdirectory, you MUST include the prefix in file paths, e.g. <CREATE_FILE><PATH>subfolder/file</PATH>...
539
+ - IMPORTANT: When using scaffolding tools (npx create-next-app, vite, etc.), ALWAYS use flags to disable interactivity (e.g. '--yes', '--typescript', '--no-eslint', '--defaults'). Do not let it hang waiting for input.`;
495
540
  // Detect Controller Usage
496
541
  const config = vscode.workspace.getConfiguration('partnerBot');
497
542
  const useController = config.get('useController', false) && config.get('controllerUrl', '') !== '';
@@ -556,33 +601,17 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
556
601
  assistantResponse.includes('<GENERATE_IMAGE>')) {
557
602
  mutatingActionOccurred = true;
558
603
  }
559
- // v2.6.30 Fix: ALWAYS parse the response locally.
604
+ // v2.6.30/34 Fix: ALWAYS parse the response locally.
560
605
  // The Controller (in Proxy Mode) runs the LLM but does NOT execute tools.
561
- // We must parse the stream/buffer here to find <RUN_COMMAND> etc.
562
- // Legacy code removed: if (useController) { continue; }
563
606
  // 3. Process the full response for XML tags
564
- // Note: We process the ACCUMULATED response (assistantResponse)
565
- // But _processStreamChunk usually expects chunks?
566
- // Actually, _processStreamChunk maintains _streamBuffer state.
567
- // If we fed it chunks in the callback, it would work incrementally.
568
- // But currently the callback only updates UI.
569
- // So we feed the WHOLE response now.
570
- // Wait, we need to append to _streamBuffer?
571
- // queryOllama callback alread appended to _streamBuffer (Line 614).
572
- // So we just need to call a parsing function that checks _streamBuffer?
573
- // Check _processStreamChunk implementation. It takes 'chunk' and appends to buffer.
574
- // If buffer is already full (from callback), we shouldn't append again.
575
- // Let's look at how it was done before.
576
- // It seems _processStreamChunk was NOT called in the callback.
577
- // So we must call it here.
578
- // Reset buffer? No, callback filled it.
579
- // We should pass an empty string to _processStreamChunk to trigger the regex check on existing buffer?
580
- // Or refactor _processStreamChunk to not append if empty?
581
- // Actually, best safety:
582
- // The callback populated 'assistantResponse'.
583
- // Let's reset _streamBuffer and feed assistantResponse to _processStreamChunk.
584
607
  this._streamBuffer = "";
585
- await this._processStreamChunk(assistantResponse);
608
+ try {
609
+ // v2.6.34 Update: _processStreamChunk returns boolean (true if tool found/executed)
610
+ toolActionOccurred = await this._processStreamChunk(assistantResponse);
611
+ }
612
+ catch (e) {
613
+ console.error("Error parsing stream:", e);
614
+ }
586
615
  try {
587
616
  // After stream finishes, check for tool calls that need feedback (like READ_FILE)
588
617
  // My stream parser handles EDIT/CREATE/RUN internally.
@@ -665,8 +694,9 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
665
694
  }
666
695
  // --- VIBE CODING PARSER 3.0 ---
667
696
  async _processStreamChunk(chunk) {
668
- this._view?.webview.postMessage({ type: 'streamChunk', value: chunk, isNew: false });
697
+ // We accumulate buffer. chunk is usually full content in v2.6.30 fix logic.
669
698
  this._streamBuffer += chunk;
699
+ let toolFound = false;
670
700
  // Decode HTML entities (common model failure mode)
671
701
  this._streamBuffer = this._streamBuffer
672
702
  .replace(/&lt;/g, '<')
@@ -697,6 +727,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
697
727
  const searchMatch = /<SEARCH>([\s\S]*?)<\/SEARCH>/.exec(innerContent);
698
728
  const replaceMatch = /<REPLACE>([\s\S]*?)<\/REPLACE>/.exec(innerContent);
699
729
  if (fileMatch && searchMatch && replaceMatch) {
730
+ toolFound = true;
700
731
  const targetFile = fileMatch[1].trim();
701
732
  this._view?.webview.postMessage({ type: 'thoughtStart', value: `Editing: ${targetFile}` });
702
733
  const result = await this._applyEdit(targetFile, searchMatch[1].trim(), replaceMatch[1].trim());
@@ -714,6 +745,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
714
745
  const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
715
746
  const bodyMatch = /<CONTENT>([\s\S]*?)<\/CONTENT>/.exec(innerContent);
716
747
  if (pathMatch && bodyMatch) {
748
+ toolFound = true;
717
749
  const targetFile = pathMatch[1].trim();
718
750
  this._view?.webview.postMessage({ type: 'thoughtStart', value: `Creating: ${targetFile}` });
719
751
  const result = await this._createFile(targetFile, bodyMatch[1].trim());
@@ -726,6 +758,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
726
758
  // 3. RUN_COMMAND
727
759
  const cmdRegex = /<RUN_COMMAND>([\s\S]*?)<\/RUN_COMMAND>/g;
728
760
  while ((match = cmdRegex.exec(this._streamBuffer)) !== null) {
761
+ toolFound = true;
729
762
  const content = match[0];
730
763
  const command = match[1].trim();
731
764
  // Decide whether to auto-run or just suggest the command based on settings.
@@ -750,14 +783,32 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
750
783
  // 4. READ_FILE
751
784
  const readRegex = /<READ_FILE>([\s\S]*?)<\/READ_FILE>/g;
752
785
  while ((match = readRegex.exec(this._streamBuffer)) !== null) {
786
+ toolFound = true;
753
787
  const content = match[0];
754
788
  const file = match[1].trim();
755
789
  this._view?.webview.postMessage({ type: 'thoughtStart', value: `Reading: ${file}` });
790
+ // v2.6.34 Fix: actually read the file into history
791
+ const fileContent = await this._readFileContent(file);
792
+ this._messageHistory.push({ role: 'user', content: `[System: Content of ${file}]:\n\`\`\`\n${fileContent}\n\`\`\`` });
756
793
  this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Read' });
757
794
  this._streamBuffer = this._streamBuffer.replace(content, "");
758
795
  readRegex.lastIndex = 0;
759
796
  }
760
- // 5. GENERATE_IMAGE
797
+ // 5. LIST_DIR (New v2.6.34 - Updated regex for self-closing tags)
798
+ // Matches <LIST_DIR /> OR <LIST_DIR>path</LIST_DIR>
799
+ const listRegex = /<LIST_DIR\s*\/?>((?:.|\n)*?)<\/LIST_DIR>|<LIST_DIR\s*\/>/g;
800
+ while ((match = listRegex.exec(this._streamBuffer)) !== null) {
801
+ toolFound = true;
802
+ const content = match[0];
803
+ // If it's the self-closing match, match[1] will be undefined.
804
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Listing files...` });
805
+ const structure = await this._getWorkspaceStructure();
806
+ this._messageHistory.push({ role: 'user', content: `[System: File Structure]:\n${structure}` });
807
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Done' });
808
+ this._streamBuffer = this._streamBuffer.replace(content, "");
809
+ listRegex.lastIndex = 0;
810
+ }
811
+ // 6. GENERATE_IMAGE
761
812
  const imgRegex = /<GENERATE_IMAGE>([\s\S]*?)<\/GENERATE_IMAGE>/g;
762
813
  while ((match = imgRegex.exec(this._streamBuffer)) !== null) {
763
814
  if (this._abortController?.signal.aborted)
@@ -767,6 +818,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
767
818
  const promptMatch = /<PROMPT>(.*?)<\/PROMPT>/.exec(innerContent);
768
819
  const outputMatch = /<OUTPUT>(.*?)<\/OUTPUT>/.exec(innerContent);
769
820
  if (promptMatch && outputMatch) {
821
+ toolFound = true;
770
822
  if (this._imagesGeneratedThisTurn >= 1) {
771
823
  PartnerBotProvider.outputChannel.appendLine('[Info] XML: Skipping additional image generation (Limit 1 per turn).');
772
824
  // Consume tag but do nothing
@@ -781,6 +833,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
781
833
  imgRegex.lastIndex = 0;
782
834
  }
783
835
  }
836
+ return toolFound;
784
837
  }
785
838
  async _createFile(relPath, content) {
786
839
  try {
@@ -796,22 +849,21 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
796
849
  }
797
850
  const fullUri = vscode.Uri.joinPath(root, relPath);
798
851
  // Phase 3: File Permission Check
799
- const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'create');
852
+ const cwd = folders[0].uri.fsPath;
853
+ const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'create', cwd);
800
854
  if (permissionCheck.verdict === 'ASK') {
801
- const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
802
855
  this._view?.webview.postMessage({
803
856
  type: 'askApproval',
804
- command: `Create File: ${relPath}\n(New File)`,
805
- requestId: requestId
857
+ request: permissionCheck.request
806
858
  });
807
859
  const decision = await new Promise((res) => {
808
- this._pendingApprovals.set(requestId, res);
860
+ this._pendingApprovals.set(permissionCheck.request.requestId, res);
809
861
  });
810
862
  if (decision === 'DENY') {
811
863
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
812
864
  return `[System]: Action denied by user.`;
813
865
  }
814
- if (decision === 'ALWAYS') {
866
+ if (decision === 'ALLOW_WORKSPACE') {
815
867
  this._permissionManager.rememberFileDecision(relPath, 'create', 'ALLOW_ALWAYS');
816
868
  }
817
869
  }
@@ -869,22 +921,21 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
869
921
  const endPos = doc.positionAt(endIndex);
870
922
  const range = new vscode.Range(startPos, endPos);
871
923
  // Phase 3: File Permission Check
872
- const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'edit');
924
+ const cwd = files[0].fsPath ? path.dirname(files[0].fsPath) : '';
925
+ const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'edit', cwd);
873
926
  if (permissionCheck.verdict === 'ASK') {
874
- const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
875
927
  this._view?.webview.postMessage({
876
928
  type: 'askApproval',
877
- command: `Edit File: ${relPath}\n(Search & Replace)`,
878
- requestId: requestId
929
+ request: permissionCheck.request
879
930
  });
880
931
  const decision = await new Promise((res) => {
881
- this._pendingApprovals.set(requestId, res);
932
+ this._pendingApprovals.set(permissionCheck.request.requestId, res);
882
933
  });
883
934
  if (decision === 'DENY') {
884
935
  this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
885
936
  return `[System]: Action denied by user.`;
886
937
  }
887
- if (decision === 'ALWAYS') {
938
+ if (decision === 'ALLOW_WORKSPACE') {
888
939
  this._permissionManager.rememberFileDecision(relPath, 'edit', 'ALLOW_ALWAYS');
889
940
  }
890
941
  }
@@ -1158,13 +1209,14 @@ Capabilities:
1158
1209
  2. **Edit Files**: Use the \`replace_file_content\` tool for edits.
1159
1210
  3. **Run Commands**: You can run \`npm install\`, \`npm test\`, \`grep\`, etc.
1160
1211
  4. **Explore**: Use \`list_dir\` to see file structure.
1212
+ 5. **Generate Images**: Use \`generate_image\` to create assets.
1161
1213
 
1162
1214
  Rules:
1163
1215
  - **Always** begin by listing the relevant files or searching if you are unsure.
1164
1216
  - When editing, use exact string matching for the target content to replace.
1165
1217
  - If a file edit fails, read the file again to check whitespace/indentation.
1166
1218
  - Be concise in your thought process.
1167
- - Valid Tools: view_file, list_dir, replace_file_content, run_command, create_file.
1219
+ - Valid Tools: view_file, list_dir, replace_file_content, run_command, create_file, generate_image.
1168
1220
  - Do not output bare markdown unless answering a direct question. Use the tools.`;
1169
1221
  return base;
1170
1222
  }
@@ -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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"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionManager = void 0;
4
+ const vscode = require("vscode");
5
+ class PermissionManager {
6
+ constructor(_context) {
7
+ this._context = _context;
8
+ this._sessionWhitelistedFiles = new Set();
9
+ this._workspaceKey = 'permission.workspaceAllowPatterns';
10
+ this._intrinsicSafePrefixes = [
11
+ 'ls',
12
+ 'grep',
13
+ 'cat',
14
+ 'find',
15
+ 'pwd',
16
+ 'echo',
17
+ 'git status',
18
+ 'git log',
19
+ 'git diff'
20
+ ];
21
+ this._dangerousPrefixes = [
22
+ 'rm',
23
+ 'sudo',
24
+ 'chmod',
25
+ 'chown',
26
+ 'mkfs',
27
+ 'dd',
28
+ 'shutdown',
29
+ 'reboot',
30
+ 'kill',
31
+ 'pkill',
32
+ 'del',
33
+ 'rd'
34
+ ];
35
+ const stored = _context.workspaceState.get(this._workspaceKey, []);
36
+ this._workspaceAllowPatterns = stored.filter(p => this._isSafePattern(p));
37
+ }
38
+ async checkCommandPermission(command, cwd) {
39
+ const normalized = this._normalizeCommand(command);
40
+ const reasonBase = 'State-changing command requires approval';
41
+ const request = this._buildRequest('command', normalized, cwd, reasonBase, 'write');
42
+ if (this._isDangerousCommand(normalized)) {
43
+ const allowDangerous = vscode.workspace.getConfiguration('partnerBot')
44
+ .get('allowDangerousCommands') ?? false;
45
+ if (!allowDangerous) {
46
+ return {
47
+ verdict: 'DENY',
48
+ reason: 'Blocked dangerous command',
49
+ request: { ...request, reason: 'Blocked dangerous command', riskCategory: 'dangerous' }
50
+ };
51
+ }
52
+ }
53
+ if (this._isIntrinsicSafe(normalized)) {
54
+ return {
55
+ verdict: 'ALLOW',
56
+ reason: 'Safe read-only command',
57
+ request: { ...request, reason: 'Safe read-only command', riskCategory: 'safe' }
58
+ };
59
+ }
60
+ if (this._matchesWorkspaceAllow(normalized)) {
61
+ return {
62
+ verdict: 'ALLOW',
63
+ reason: 'Workspace allow pattern',
64
+ request: { ...request, reason: 'Workspace allow pattern' }
65
+ };
66
+ }
67
+ return {
68
+ verdict: 'ASK',
69
+ reason: reasonBase,
70
+ request
71
+ };
72
+ }
73
+ async checkFilePermission(filePath, operation, cwd) {
74
+ const key = `${operation}:${filePath}`;
75
+ const reasonBase = 'File modification requires approval';
76
+ const request = this._buildRequest('file', `${operation}_file ${filePath}`, cwd, reasonBase, 'write');
77
+ if (this._sessionWhitelistedFiles.has(key)) {
78
+ return { verdict: 'ALLOW', reason: 'Session whitelisted', request };
79
+ }
80
+ return { verdict: 'ASK', reason: reasonBase, request };
81
+ }
82
+ rememberWorkspaceAllow(command) {
83
+ const prefix = this._deriveWorkspacePrefix(command);
84
+ const pattern = `${prefix}*`;
85
+ if (!this._isSafePattern(pattern))
86
+ return;
87
+ if (!this._workspaceAllowPatterns.includes(pattern)) {
88
+ this._workspaceAllowPatterns.push(pattern);
89
+ this._context.workspaceState.update(this._workspaceKey, this._workspaceAllowPatterns);
90
+ }
91
+ }
92
+ rememberFileDecision(filePath, operation, decision) {
93
+ if (decision === 'ALLOW_ALWAYS') {
94
+ const key = `${operation}:${filePath}`;
95
+ this._sessionWhitelistedFiles.add(key);
96
+ }
97
+ }
98
+ getCommandPrefix(command) {
99
+ return this._deriveWorkspacePrefix(command);
100
+ }
101
+ _buildRequest(kind, command, cwd, reason, riskCategory) {
102
+ return {
103
+ requestId: this._createRequestId(),
104
+ kind,
105
+ command,
106
+ cwd,
107
+ reason,
108
+ riskCategory
109
+ };
110
+ }
111
+ _createRequestId() {
112
+ return Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
113
+ }
114
+ _normalizeCommand(command) {
115
+ return command.trim().replace(/\s+/g, ' ');
116
+ }
117
+ _matchesWorkspaceAllow(command) {
118
+ return this._workspaceAllowPatterns.some(pattern => this._matchesPattern(pattern, command));
119
+ }
120
+ _matchesPattern(pattern, command) {
121
+ if (!this._isSafePattern(pattern))
122
+ return false;
123
+ const normalizedPattern = pattern.trim();
124
+ if (normalizedPattern.endsWith('*')) {
125
+ const prefix = normalizedPattern.slice(0, -1);
126
+ return command.startsWith(prefix);
127
+ }
128
+ return command === normalizedPattern;
129
+ }
130
+ _isSafePattern(pattern) {
131
+ const trimmed = pattern.trim();
132
+ if (!trimmed)
133
+ return false;
134
+ if (trimmed.includes('*') && !trimmed.endsWith('*'))
135
+ return false;
136
+ const withoutWildcard = trimmed.endsWith('*') ? trimmed.slice(0, -1) : trimmed;
137
+ return !withoutWildcard.includes('*');
138
+ }
139
+ _deriveWorkspacePrefix(command) {
140
+ const normalized = this._normalizeCommand(command);
141
+ const tokens = normalized.split(' ');
142
+ const multiTokenRoots = new Set(['npm', 'pnpm', 'yarn', 'git', 'npx', 'bun']);
143
+ if (tokens.length >= 2 && multiTokenRoots.has(tokens[0])) {
144
+ return `${tokens[0]} ${tokens[1]}`;
145
+ }
146
+ return tokens[0];
147
+ }
148
+ _isIntrinsicSafe(command) {
149
+ return this._intrinsicSafePrefixes.some(prefix => this._matchesPrefix(command, prefix));
150
+ }
151
+ _isDangerousCommand(command) {
152
+ return this._dangerousPrefixes.some(prefix => this._matchesPrefix(command, prefix));
153
+ }
154
+ _matchesPrefix(command, prefix) {
155
+ return command === prefix || command.startsWith(`${prefix} `);
156
+ }
157
+ }
158
+ exports.PermissionManager = PermissionManager;
159
+ //# sourceMappingURL=PermissionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../src/permissions/PermissionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,yBAAyB;AAezB,MAAa,eAAe;IAGxB;QACI,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,kDAAkD;gBAClD,OAAO,CAAC,KAAK,CAAC,oCAAoC,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAEM,GAAG,CAAC,KAAqB;QAC5B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1C,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEM,gBAAgB,CAAC,QAAgB,GAAG;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACD,uDAAuD;YACvD,iEAAiE;YACjE,+BAA+B;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAqB,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;CACJ;AAjDD,0CAiDC;AAEY,QAAA,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,yBAAyB;AAoBzB,MAAa,eAAe;IAGxB;QACI,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,kDAAkD;gBAClD,OAAO,CAAC,KAAK,CAAC,oCAAoC,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAEM,GAAG,CAAC,KAAqB;QAC5B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1C,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEM,gBAAgB,CAAC,QAAgB,GAAG;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACD,uDAAuD;YACvD,iEAAiE;YACjE,+BAA+B;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAqB,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;CACJ;AAjDD,0CAiDC;AAEY,QAAA,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC"}
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.6.33",
5
+ "version": "2.6.43",
6
6
  "icon": "media/icon.png",
7
7
  "bin": {
8
8
  "vibe-agent": "bin/vibe-agent.js"
@@ -85,7 +85,7 @@
85
85
  "properties": {
86
86
  "partnerBot.ollamaUrl": {
87
87
  "type": "string",
88
- "default": "http://localhost:11434",
88
+ "default": "http://192.168.86.44:11434",
89
89
  "description": "URL of your local Ollama instance"
90
90
  },
91
91
  "partnerBot.model": {
@@ -142,13 +142,28 @@
142
142
  "gh",
143
143
  "wrangler",
144
144
  "docker",
145
- "docker-compose"
145
+ "docker-compose",
146
+ "cd",
147
+ "ls",
148
+ "cat",
149
+ "grep",
150
+ "mkdir",
151
+ "rm",
152
+ "mv",
153
+ "cp",
154
+ "echo",
155
+ "pwd"
146
156
  ],
147
157
  "items": {
148
158
  "type": "string"
149
159
  },
150
160
  "description": "List of CLI commands the agent is allowed to run via <RUN_COMMAND>. Only commands whose first token matches an entry here will be executed."
151
161
  },
162
+ "partnerBot.allowDangerousCommands": {
163
+ "type": "boolean",
164
+ "default": false,
165
+ "description": "Allow execution of commands that are denied by default as dangerous (rm, sudo, chmod, etc.)."
166
+ },
152
167
  "partnerBot.limits.fast": {
153
168
  "type": "number",
154
169
  "default": 2048,
@@ -166,7 +181,7 @@
166
181
  },
167
182
  "partnerBot.useController": {
168
183
  "type": "boolean",
169
- "default": false,
184
+ "default": true,
170
185
  "description": "Route agent conversations through the local Vibe Agent Controller instead of calling Ollama directly (experimental)."
171
186
  },
172
187
  "partnerBot.controllerPort": {
@@ -181,7 +196,7 @@
181
196
  },
182
197
  "partnerBot.fooocusUrl": {
183
198
  "type": "string",
184
- "default": "http://localhost:8888",
199
+ "default": "http://192.168.86.39:8888",
185
200
  "description": "Base URL of the Fooocus API. Do not include a trailing slash or path (e.g. http://192.168.86.39:8888)."
186
201
  }
187
202
  }
@@ -209,4 +224,4 @@
209
224
  "@types/node-fetch": "^2.6.13",
210
225
  "node-fetch": "^2.7.0"
211
226
  }
212
- }
227
+ }