vigthoria-cli 1.5.0 → 1.5.2

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.
@@ -51,6 +51,7 @@ export declare class ChatCommand {
51
51
  private truncateOutput;
52
52
  /**
53
53
  * Ask user for permission to execute dangerous action
54
+ * Returns: true (yes), false (no), 'batch' (approve all of this type for this turn)
54
55
  */
55
56
  private askPermission;
56
57
  private addFileToContext;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAapC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuG9C,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,YAAY;YAmBN,SAAS;YAqOT,IAAI;IA+ClB;;OAEG;YACW,gBAAgB;IA+B9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;YACW,aAAa;YAgBb,gBAAgB;YAkBhB,aAAa;IAqB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;YAkBL,cAAc;IA6C5B,OAAO,CAAC,WAAW;CAUpB"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAapC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuG9C,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,YAAY;YAmBN,SAAS;YAqOT,IAAI;IAoDlB;;OAEG;YACW,gBAAgB;IA+B9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;;OAGG;YACW,aAAa;YA4Bb,gBAAgB;YAkBhB,aAAa;IAqB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;YAkBL,cAAc;IA6C5B,OAAO,CAAC,WAAW;CAUpB"}
@@ -453,6 +453,10 @@ Special Commands (user may use these):
453
453
  // Add user message (skip if empty - used for tool continuation)
454
454
  if (userInput) {
455
455
  this.messages.push({ role: 'user', content: userInput });
456
+ // Clear session-approved tools for new user turn
457
+ if (this.tools) {
458
+ this.tools.clearSessionApprovals();
459
+ }
456
460
  }
457
461
  const spinner = (0, ora_1.default)({
458
462
  text: chalk_1.default.gray('Thinking...'),
@@ -547,16 +551,26 @@ Special Commands (user may use these):
547
551
  }
548
552
  /**
549
553
  * Ask user for permission to execute dangerous action
554
+ * Returns: true (yes), false (no), 'batch' (approve all of this type for this turn)
550
555
  */
551
- async askPermission(action) {
556
+ async askPermission(action, options) {
552
557
  return new Promise((resolve) => {
553
558
  console.log('\n' + action);
554
559
  if (!this.rl) {
555
560
  resolve(false);
556
561
  return;
557
562
  }
558
- this.rl.question(chalk_1.default.yellow('Allow? [y/N] '), (answer) => {
559
- const allowed = answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes';
563
+ const prompt = options?.batchApproval
564
+ ? chalk_1.default.yellow('Allow? [y/N/a] ')
565
+ : chalk_1.default.yellow('Allow? [y/N] ');
566
+ this.rl.question(prompt, (answer) => {
567
+ const normalized = answer.toLowerCase().trim();
568
+ // Check for batch approval first
569
+ if (options?.batchApproval && (normalized === 'a' || normalized === 'all')) {
570
+ resolve('batch');
571
+ return;
572
+ }
573
+ const allowed = normalized === 'y' || normalized === 'yes';
560
574
  resolve(allowed);
561
575
  });
562
576
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,18 @@ export declare class AgenticTools {
68
68
  private undoStack;
69
69
  private maxUndoStack;
70
70
  private retryConfig;
71
- constructor(logger: Logger, cwd: string, permissionCallback: (action: string) => Promise<boolean>, autoApprove?: boolean);
71
+ private sessionApprovedTools;
72
+ constructor(logger: Logger, cwd: string, permissionCallback: (action: string, options?: {
73
+ batchApproval?: boolean;
74
+ }) => Promise<boolean | 'batch'>, autoApprove?: boolean);
75
+ /**
76
+ * Clear session-approved tools (call this at the start of each new AI turn)
77
+ */
78
+ clearSessionApprovals(): void;
79
+ /**
80
+ * Get currently approved tools for this session
81
+ */
82
+ getSessionApprovedTools(): string[];
72
83
  /**
73
84
  * Get the undo stack for inspection
74
85
  */
@@ -126,6 +137,7 @@ export declare class AgenticTools {
126
137
  /**
127
138
  * Execute bash command with enhanced error handling
128
139
  * SECURITY: Commands are sandboxed to workspace directory
140
+ * WINDOWS: Detects Unix-specific commands and suggests alternatives
129
141
  */
130
142
  private bash;
131
143
  private grep;
@@ -137,6 +149,16 @@ export declare class AgenticTools {
137
149
  * Allows AI to push, pull, list, share, and manage projects in the Vigthoria Repository
138
150
  */
139
151
  private repo;
152
+ /**
153
+ * Fetch URL content - Cross-platform web fetching
154
+ * Uses Node.js native fetch (available in Node 18+)
155
+ */
156
+ private fetchUrl;
157
+ /**
158
+ * Execute command via SSH on remote server
159
+ * Useful for running Unix commands from Windows
160
+ */
161
+ private sshExec;
140
162
  /**
141
163
  * Resolve and SANITIZE path - prevent path traversal outside workspace
142
164
  * SECURITY: All paths MUST stay within the workspace (cwd)
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/utils/tools.ts"],"names":[],"mappings":"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"}
@@ -80,12 +80,26 @@ class AgenticTools {
80
80
  maxDelayMs: 10000,
81
81
  retryableErrors: ['ECONNRESET', 'ETIMEDOUT', 'ENOTFOUND', 'ECONNREFUSED', 'EAI_AGAIN'],
82
82
  };
83
+ // Session-based tool approvals - remembers which tools user approved for this turn
84
+ sessionApprovedTools = new Set();
83
85
  constructor(logger, cwd, permissionCallback, autoApprove = false) {
84
86
  this.logger = logger;
85
87
  this.cwd = cwd;
86
88
  this.permissionCallback = permissionCallback;
87
89
  this.autoApprove = autoApprove;
88
90
  }
91
+ /**
92
+ * Clear session-approved tools (call this at the start of each new AI turn)
93
+ */
94
+ clearSessionApprovals() {
95
+ this.sessionApprovedTools.clear();
96
+ }
97
+ /**
98
+ * Get currently approved tools for this session
99
+ */
100
+ getSessionApprovedTools() {
101
+ return Array.from(this.sessionApprovedTools);
102
+ }
89
103
  /**
90
104
  * Get the undo stack for inspection
91
105
  */
@@ -260,6 +274,34 @@ class AgenticTools {
260
274
  riskLevel: 'medium',
261
275
  category: 'execute',
262
276
  },
277
+ {
278
+ name: 'fetch_url',
279
+ description: 'Fetch content from a URL (web page, API endpoint). Works cross-platform on Windows, Mac, and Linux.',
280
+ parameters: [
281
+ { name: 'url', description: 'URL to fetch (must be http or https)', required: true },
282
+ { name: 'method', description: 'HTTP method (GET, POST, etc.)', required: false },
283
+ { name: 'headers', description: 'JSON string of headers to send', required: false },
284
+ { name: 'body', description: 'Request body for POST/PUT requests', required: false },
285
+ { name: 'selector', description: 'CSS selector to extract specific content (for HTML)', required: false },
286
+ ],
287
+ requiresPermission: true,
288
+ dangerous: false,
289
+ riskLevel: 'low',
290
+ category: 'read',
291
+ },
292
+ {
293
+ name: 'ssh_exec',
294
+ description: 'Execute a command on a remote server via SSH (useful for Unix commands from Windows)',
295
+ parameters: [
296
+ { name: 'command', description: 'Command to execute on remote server', required: true },
297
+ { name: 'host', description: 'SSH host (default: vigthoria-server)', required: false },
298
+ { name: 'timeout', description: 'Timeout in seconds', required: false },
299
+ ],
300
+ requiresPermission: true,
301
+ dangerous: true,
302
+ riskLevel: 'high',
303
+ category: 'execute',
304
+ },
263
305
  ];
264
306
  }
265
307
  /**
@@ -277,13 +319,24 @@ class AgenticTools {
277
319
  }
278
320
  // Check permission for dangerous/modifying actions
279
321
  if (tool.requiresPermission && !this.autoApprove) {
280
- const approved = await this.permissionCallback(this.formatPermissionRequest(call, tool));
281
- if (!approved) {
282
- return {
283
- success: false,
284
- error: 'Permission denied by user',
285
- canRetry: true,
286
- };
322
+ // Check if this tool was already approved for this session/turn
323
+ if (this.sessionApprovedTools.has(call.tool)) {
324
+ // Already approved - skip permission prompt
325
+ this.logger.info(`${call.tool}: Auto-approved (batch)`);
326
+ }
327
+ else {
328
+ const approved = await this.permissionCallback(this.formatPermissionRequest(call, tool), { batchApproval: true });
329
+ if (approved === false) {
330
+ return {
331
+ success: false,
332
+ error: 'Permission denied by user',
333
+ canRetry: true,
334
+ };
335
+ }
336
+ // If user approved with 'batch' or just 'yes', remember for this session
337
+ if (approved === 'batch' || approved === true) {
338
+ this.sessionApprovedTools.add(call.tool);
339
+ }
287
340
  }
288
341
  }
289
342
  // Execute with retry logic for applicable operations
@@ -344,6 +397,10 @@ class AgenticTools {
344
397
  return this.git(call.args);
345
398
  case 'repo':
346
399
  return this.repo(call.args);
400
+ case 'fetch_url':
401
+ return this.fetchUrl(call.args);
402
+ case 'ssh_exec':
403
+ return this.sshExec(call.args);
347
404
  default:
348
405
  return this.createErrorResult(ToolErrorType.INVALID_ARGS, `Tool not implemented: ${call.tool}`);
349
406
  }
@@ -436,6 +493,8 @@ class AgenticTools {
436
493
  msg += `\n${chalk_1.default.red.bold('⚠️ WARNING: This is a potentially dangerous action!')}\n`;
437
494
  msg += chalk_1.default.red(' The AI is requesting to execute commands on your system.\n');
438
495
  }
496
+ // Add batch approval hint
497
+ msg += `\n${chalk_1.default.gray('Respond:')} ${chalk_1.default.white('[y]es')} ${chalk_1.default.gray('/')} ${chalk_1.default.white('[n]o')} ${chalk_1.default.gray('/')} ${chalk_1.default.cyan('[a]pprove all')} ${chalk_1.default.cyan(call.tool)} ${chalk_1.default.gray('for this turn')}\n`;
439
498
  return msg;
440
499
  }
441
500
  sleep(ms) {
@@ -613,10 +672,40 @@ class AgenticTools {
613
672
  /**
614
673
  * Execute bash command with enhanced error handling
615
674
  * SECURITY: Commands are sandboxed to workspace directory
675
+ * WINDOWS: Detects Unix-specific commands and suggests alternatives
616
676
  */
617
677
  bash(args) {
618
678
  const cwd = args.cwd ? this.resolvePath(args.cwd) : this.cwd;
619
679
  const timeout = args.timeout ? parseInt(args.timeout) * 1000 : 30000;
680
+ const os = require('os');
681
+ const platform = os.platform();
682
+ // Unix-specific commands that don't exist on Windows
683
+ const unixOnlyCommands = [
684
+ 'head', 'tail', 'grep', 'awk', 'sed', 'wc', 'cut', 'sort', 'uniq',
685
+ 'xargs', 'find', 'chmod', 'chown', 'ln', 'df', 'du', 'ps', 'kill',
686
+ 'top', 'htop', 'which', 'whereis', 'man', 'less', 'more', 'cat',
687
+ ];
688
+ // Check if command uses Unix-only tools on Windows
689
+ if (platform === 'win32') {
690
+ const cmdParts = args.command.split(/[|&;]/);
691
+ for (const part of cmdParts) {
692
+ const firstWord = part.trim().split(/\s+/)[0].toLowerCase();
693
+ if (unixOnlyCommands.includes(firstWord)) {
694
+ return this.createErrorResult(ToolErrorType.EXECUTION_FAILED, `Command '${firstWord}' is not available on Windows`, `Use the 'ssh_exec' tool to run Unix commands on the server, ` +
695
+ `or use 'fetch_url' for web requests. ` +
696
+ `PowerShell alternatives: dir (ls), type (cat), findstr (grep), select-string (grep)`);
697
+ }
698
+ }
699
+ // Check for pipe to Unix command
700
+ if (args.command.includes('|')) {
701
+ const pipedCommands = args.command.split('|').map(c => c.trim().split(/\s+/)[0].toLowerCase());
702
+ for (const cmd of pipedCommands) {
703
+ if (unixOnlyCommands.includes(cmd)) {
704
+ return this.createErrorResult(ToolErrorType.EXECUTION_FAILED, `Piped command '${cmd}' is not available on Windows`, `Windows doesn't have '${cmd}'. Use 'ssh_exec' tool to run this command on the Vigthoria server instead.`);
705
+ }
706
+ }
707
+ }
708
+ }
620
709
  // SECURITY: Block dangerous commands that could access outside workspace
621
710
  const blockedPatterns = [
622
711
  /\bcat\s+\/etc\//i, // Reading system files
@@ -645,8 +734,6 @@ class AgenticTools {
645
734
  }
646
735
  try {
647
736
  const startTime = Date.now();
648
- const os = require('os');
649
- const platform = os.platform();
650
737
  // Build exec options based on platform
651
738
  const execOptions = {
652
739
  cwd,
@@ -888,6 +975,166 @@ class AgenticTools {
888
975
  };
889
976
  }
890
977
  }
978
+ /**
979
+ * Fetch URL content - Cross-platform web fetching
980
+ * Uses Node.js native fetch (available in Node 18+)
981
+ */
982
+ async fetchUrl(args) {
983
+ const url = args.url;
984
+ const method = (args.method || 'GET').toUpperCase();
985
+ // Validate URL
986
+ if (!url.startsWith('http://') && !url.startsWith('https://')) {
987
+ return this.createErrorResult(ToolErrorType.INVALID_ARGS, 'URL must start with http:// or https://', 'Provide a valid URL, e.g., https://example.com');
988
+ }
989
+ try {
990
+ const fetchOptions = {
991
+ method,
992
+ headers: {
993
+ 'User-Agent': 'Vigthoria-CLI/1.5.1',
994
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
995
+ },
996
+ };
997
+ // Parse custom headers if provided
998
+ if (args.headers) {
999
+ try {
1000
+ const customHeaders = JSON.parse(args.headers);
1001
+ fetchOptions.headers = { ...fetchOptions.headers, ...customHeaders };
1002
+ }
1003
+ catch {
1004
+ this.logger.warn('Invalid headers JSON, using defaults');
1005
+ }
1006
+ }
1007
+ // Add body for POST/PUT requests
1008
+ if (args.body && ['POST', 'PUT', 'PATCH'].includes(method)) {
1009
+ fetchOptions.body = args.body;
1010
+ fetchOptions.headers['Content-Type'] = 'application/json';
1011
+ }
1012
+ // Use AbortController for timeout
1013
+ const controller = new AbortController();
1014
+ const timeout = setTimeout(() => controller.abort(), 30000);
1015
+ fetchOptions.signal = controller.signal;
1016
+ const response = await fetch(url, fetchOptions);
1017
+ clearTimeout(timeout);
1018
+ if (!response.ok) {
1019
+ return this.createErrorResult(ToolErrorType.NETWORK_ERROR, `HTTP ${response.status}: ${response.statusText}`, `The server returned an error. Status: ${response.status}`);
1020
+ }
1021
+ let content = await response.text();
1022
+ // Extract content based on selector if provided (basic HTML extraction)
1023
+ if (args.selector && content.includes('<')) {
1024
+ // Basic extraction - for title, meta, etc.
1025
+ const selector = args.selector.toLowerCase();
1026
+ if (selector === 'title') {
1027
+ const match = content.match(/<title[^>]*>([^<]*)<\/title>/i);
1028
+ content = match ? match[1].trim() : 'No title found';
1029
+ }
1030
+ else if (selector === 'meta') {
1031
+ const matches = content.match(/<meta[^>]+>/gi) || [];
1032
+ content = matches.join('\n');
1033
+ }
1034
+ else if (selector === 'body') {
1035
+ const match = content.match(/<body[^>]*>([\s\S]*)<\/body>/i);
1036
+ content = match ? match[1].replace(/<script[\s\S]*?<\/script>/gi, '').replace(/<style[\s\S]*?<\/style>/gi, '').replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim() : content;
1037
+ }
1038
+ else if (selector.startsWith('h')) {
1039
+ const regex = new RegExp(`<${selector}[^>]*>([^<]*)</${selector}>`, 'gi');
1040
+ const matches = [];
1041
+ let match;
1042
+ while ((match = regex.exec(content)) !== null) {
1043
+ matches.push(match[1].trim());
1044
+ }
1045
+ content = matches.length > 0 ? matches.join('\n') : `No ${selector} tags found`;
1046
+ }
1047
+ }
1048
+ // Truncate if too long
1049
+ if (content.length > 50000) {
1050
+ content = content.substring(0, 50000) + '\n... (truncated, content too long)';
1051
+ }
1052
+ return {
1053
+ success: true,
1054
+ output: content,
1055
+ metadata: {
1056
+ url,
1057
+ status: response.status,
1058
+ contentType: response.headers.get('content-type') || 'unknown',
1059
+ contentLength: content.length,
1060
+ },
1061
+ };
1062
+ }
1063
+ catch (error) {
1064
+ if (error.name === 'AbortError') {
1065
+ return this.createErrorResult(ToolErrorType.TIMEOUT, 'Request timed out after 30 seconds', 'The server took too long to respond. Try again or use a different URL.');
1066
+ }
1067
+ return this.createErrorResult(ToolErrorType.NETWORK_ERROR, error.message, 'Check your internet connection and ensure the URL is correct.');
1068
+ }
1069
+ }
1070
+ /**
1071
+ * Execute command via SSH on remote server
1072
+ * Useful for running Unix commands from Windows
1073
+ */
1074
+ async sshExec(args) {
1075
+ const command = args.command;
1076
+ const host = args.host || 'vigthoria-server';
1077
+ const timeout = args.timeout ? parseInt(args.timeout) * 1000 : 60000;
1078
+ // Security checks for SSH commands
1079
+ const blockedPatterns = [
1080
+ /\brm\s+-rf?\s+\//i, // Dangerous rm commands
1081
+ /\bsudo\s+rm/i, // Sudo rm
1082
+ />\s*\/dev\/sd/i, // Writing to disk devices
1083
+ /\bdd\s+.*of=\/dev/i, // dd to devices
1084
+ /\bmkfs/i, // Format filesystems
1085
+ /shutdown|reboot|halt|poweroff/i, // System control
1086
+ ];
1087
+ for (const pattern of blockedPatterns) {
1088
+ if (pattern.test(command)) {
1089
+ return this.createErrorResult(ToolErrorType.PERMISSION_DENIED, 'This command is blocked for security reasons', 'Dangerous system commands cannot be executed via SSH.');
1090
+ }
1091
+ }
1092
+ try {
1093
+ const os = require('os');
1094
+ const platform = os.platform();
1095
+ let sshCommand;
1096
+ let execOptions = {
1097
+ encoding: 'utf-8',
1098
+ timeout,
1099
+ maxBuffer: 10 * 1024 * 1024,
1100
+ };
1101
+ if (platform === 'win32') {
1102
+ // On Windows, use the ssh command from OpenSSH
1103
+ sshCommand = `ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${host} "${command.replace(/"/g, '\\"')}"`;
1104
+ execOptions.shell = true;
1105
+ }
1106
+ else {
1107
+ // On Unix-like systems
1108
+ sshCommand = `ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${host} '${command.replace(/'/g, "'\\''")}'`;
1109
+ execOptions.shell = '/bin/sh';
1110
+ }
1111
+ const output = (0, child_process_1.execSync)(sshCommand, execOptions);
1112
+ return {
1113
+ success: true,
1114
+ output: output.trim(),
1115
+ metadata: { host, command },
1116
+ };
1117
+ }
1118
+ catch (error) {
1119
+ // Check for common SSH errors
1120
+ const errorMsg = error.stderr || error.message || '';
1121
+ if (errorMsg.includes('Connection refused') || errorMsg.includes('No route to host')) {
1122
+ return this.createErrorResult(ToolErrorType.NETWORK_ERROR, `Cannot connect to SSH host: ${host}`, 'Check that the SSH host is correct and the server is running.');
1123
+ }
1124
+ if (errorMsg.includes('Permission denied') || errorMsg.includes('authentication')) {
1125
+ return this.createErrorResult(ToolErrorType.PERMISSION_DENIED, 'SSH authentication failed', 'Make sure you have SSH key authentication set up for this host.');
1126
+ }
1127
+ if (error.killed) {
1128
+ return this.createErrorResult(ToolErrorType.TIMEOUT, `SSH command timed out after ${timeout / 1000}s`, 'Try a simpler command or increase the timeout.');
1129
+ }
1130
+ return {
1131
+ success: false,
1132
+ output: error.stdout || '',
1133
+ error: errorMsg,
1134
+ suggestion: 'Check the command syntax and ensure SSH access is configured.',
1135
+ };
1136
+ }
1137
+ }
891
1138
  /**
892
1139
  * Resolve and SANITIZE path - prevent path traversal outside workspace
893
1140
  * SECURITY: All paths MUST stay within the workspace (cwd)
@@ -1100,21 +1347,44 @@ To use a tool, output a JSON block in a code fence with "tool" language:
1100
1347
  {"tool": "read_file", "args": {"path": "src/index.js"}}
1101
1348
  \`\`\`
1102
1349
 
1103
- 3. Run a shell command:
1350
+ 3. Fetch a web page:
1104
1351
  \`\`\`tool
1105
- {"tool": "bash", "args": {"command": "ls -la"}}
1352
+ {"tool": "fetch_url", "args": {"url": "https://example.com", "selector": "title"}}
1106
1353
  \`\`\`
1107
1354
 
1108
- 4. Write a file:
1355
+ 4. Run command on remote server (for Unix commands from Windows):
1356
+ \`\`\`tool
1357
+ {"tool": "ssh_exec", "args": {"command": "curl -s https://example.com | head -20"}}
1358
+ \`\`\`
1359
+
1360
+ 5. Write a file:
1109
1361
  \`\`\`tool
1110
1362
  {"tool": "write_file", "args": {"path": "hello.py", "content": "print('Hello World')"}}
1111
1363
  \`\`\`
1112
1364
 
1113
- IMPORTANT:
1365
+ ## CRITICAL RULES:
1366
+
1367
+ ### Cross-Platform Compatibility:
1368
+ - On Windows, Unix commands (head, tail, grep, awk, sed, wc) are NOT available
1369
+ - Use \`fetch_url\` for web requests instead of curl|grep
1370
+ - Use \`ssh_exec\` to run Unix commands on the Vigthoria server if needed
1371
+ - Use \`read_file\` instead of cat
1372
+ - Use \`list_dir\` instead of ls
1373
+
1374
+ ### Handling Tool Failures:
1375
+ - If a tool fails, REPORT the failure honestly to the user
1376
+ - NEVER make up or hallucinate content when a tool fails
1377
+ - If you cannot access a URL, say "I was unable to fetch the URL because..."
1378
+ - If a command fails, explain what happened and suggest alternatives
1379
+ - Do NOT write analysis or comparison reports if you couldn't gather the actual data
1380
+
1381
+ ### File Access:
1114
1382
  - You can ONLY access files within the current project workspace
1115
1383
  - Use relative paths (e.g., "src/file.js", "app.py", "./config.json")
1116
1384
  - Never try to access system files or directories outside the workspace
1117
- - Use ONLY the exact tool names: list_dir, read_file, write_file, edit_file, bash, grep, glob, git
1385
+
1386
+ ### Tool Names:
1387
+ - Use ONLY these exact tool names: list_dir, read_file, write_file, edit_file, bash, grep, glob, git, repo, fetch_url, ssh_exec
1118
1388
  - The JSON must be valid with double quotes for all keys and string values
1119
1389
  - After tool execution, you will receive results and can continue with the next step
1120
1390
  - Explain what you're doing before using tools