UNPKG

contaigents

Version:

Modular AI Content Ecosystem with Audio Generation

107 lines (106 loc) โ€ข 3.91 kB
#!/usr/bin/env tsx import { CommandExecutionTool } from './CommandExecutionTool.js'; async function testCommandTool() { console.log('๐Ÿงช Testing CommandExecutionTool...\n'); const baseDir = process.cwd(); const tool = new CommandExecutionTool(baseDir); // Test 1: Simple command (pwd) console.log('Test 1: Execute pwd command'); try { const result1 = await tool.execute({ command: 'pwd' }); console.log('โœ… Success:', result1.success); console.log('๐Ÿ“ Working directory:', result1.data?.stdout?.trim()); console.log('โฑ๏ธ Execution time:', result1.data?.executionTime + 'ms'); } catch (error) { console.log('โŒ Error:', error); } console.log(); // Test 2: File listing console.log('Test 2: List files in current directory'); try { const result2 = await tool.execute({ command: 'ls -la' }); console.log('โœ… Success:', result2.success); console.log('๐Ÿ“„ Files found:', result2.data?.stdout?.split('\n').length - 1, 'lines'); console.log('โฑ๏ธ Execution time:', result2.data?.executionTime + 'ms'); } catch (error) { console.log('โŒ Error:', error); } console.log(); // Test 3: Git status (if in a git repo) console.log('Test 3: Git status'); try { const result3 = await tool.execute({ command: 'git status --porcelain' }); console.log('โœ… Success:', result3.success); if (result3.success) { const changes = result3.data?.stdout?.trim(); console.log('๐Ÿ”„ Git changes:', changes ? changes.split('\n').length + ' files' : 'No changes'); } console.log('โฑ๏ธ Execution time:', result3.data?.executionTime + 'ms'); } catch (error) { console.log('โŒ Error:', error); } console.log(); // Test 4: Security test - should fail console.log('Test 4: Security test (should fail)'); try { const result4 = await tool.execute({ command: 'sudo ls' }); console.log('โŒ Unexpected success:', result4.success); console.log('Error:', result4.error); } catch (error) { console.log('โœ… Security check worked - command blocked'); } console.log(); // Test 5: Timeout test console.log('Test 5: Timeout test (1 second timeout)'); try { const result5 = await tool.execute({ command: 'sleep 2', timeout: 1000 }); console.log('โŒ Unexpected success:', result5.success); console.log('Error:', result5.error); } catch (error) { console.log('โœ… Timeout worked correctly'); } console.log(); // Test 6: Working directory test console.log('Test 6: Working directory test'); try { const result6 = await tool.execute({ command: 'pwd', working_directory: '..' }); console.log('โœ… Success:', result6.success); if (result6.success) { console.log('๐Ÿ“ Parent directory:', result6.data?.stdout?.trim()); console.log('โฑ๏ธ Execution time:', result6.data?.executionTime + 'ms'); } else { console.log('โŒ Error:', result6.error); } } catch (error) { console.log('โŒ Error:', error); } console.log(); // Test 7: Node.js command console.log('Test 7: Node.js version'); try { const result7 = await tool.execute({ command: 'node --version' }); console.log('โœ… Success:', result7.success); console.log('๐ŸŸข Node version:', result7.data?.stdout?.trim()); console.log('โฑ๏ธ Execution time:', result7.data?.executionTime + 'ms'); } catch (error) { console.log('โŒ Error:', error); } console.log(); console.log('๐ŸŽ‰ Command tool testing completed!'); } // Run the test testCommandTool().catch(console.error);