mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-02-03 21:40:53 +00:00
Removes outdated prompt files
Removes the `Chat Prompt.txt`, `VSCode Agent/Prompt.txt`, `Warp.dev/Prompt.txt`, and `v0 Prompts and Tools/Prompt.txt` files. These files likely contain outdated prompts or configurations that are no longer needed in the current project. Removing them helps to clean up the codebase and prevent potential confusion or conflicts.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"AI": {
|
||||
"MaxTokens": 4000,
|
||||
"Model": "gpt-4",
|
||||
"Temperature": 0.7
|
||||
},
|
||||
"Voice": {
|
||||
"ResponseSpeed": "normal",
|
||||
"RecognitionSensitivity": 0.8,
|
||||
"Language": "en-US",
|
||||
"Enabled": true
|
||||
},
|
||||
"Memory": {
|
||||
"MaxEntries": 1000,
|
||||
"PersistencePath": ".\\data\\memory.json",
|
||||
"Enabled": true
|
||||
},
|
||||
"Autopilot": {
|
||||
"ConfirmationThreshold": "high",
|
||||
"RiskTolerance": "low",
|
||||
"AutonomyLevel": "medium",
|
||||
"Enabled": false
|
||||
}
|
||||
}
|
||||
7
PowerShell_AI_Agent/PowerShell_AI_Agent/data/memory.json
Normal file
7
PowerShell_AI_Agent/PowerShell_AI_Agent/data/memory.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"entries": [
|
||||
|
||||
],
|
||||
"lastUpdated": "2025-07-31 00:21:08",
|
||||
"version": "1.0"
|
||||
}
|
||||
342
PowerShell_AI_Agent/README.md
Normal file
342
PowerShell_AI_Agent/README.md
Normal file
@@ -0,0 +1,342 @@
|
||||
# 🤖 PowerShell AI Agent - Advanced PowerShell 7 Integration
|
||||
## Intelligent Automation with Voice Commands and Autopilot Mode
|
||||
|
||||
**PowerShell Version:** 7.0+ (Built on .NET 8.0)
|
||||
**Knowledge Cutoff:** 2024-12-19
|
||||
**Model:** GPT-4.1+ / Claude 3.5 Sonnet / Gemini Ultra
|
||||
**Version:** 1.0 - PowerShell 7 Native Integration
|
||||
**Autopilot Mode:** Enabled with Voice Commands
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Key Features
|
||||
|
||||
### **PowerShell 7 Native Integration**
|
||||
- **Cross-Platform Support**: Windows, macOS, and Linux compatibility
|
||||
- **Enhanced Performance**: Built on .NET 8.0 for improved speed and efficiency
|
||||
- **Side-by-Side Execution**: Coexists with Windows PowerShell 5.1
|
||||
- **SSH-Based Remoting**: Advanced remote management capabilities
|
||||
- **Docker Container Support**: Containerized deployment options
|
||||
|
||||
### **Cognitive Architecture**
|
||||
- **Multi-Modal Context Understanding**: File-level → Codebase-level → Project-level → User-intent context
|
||||
- **Autonomous Problem Solving**: Self-directed execution with minimal user intervention
|
||||
- **Persistent Memory System**: Cross-session learning with natural citation format
|
||||
- **Planning-Driven Execution**: Strategic planning followed by tactical implementation
|
||||
- **Adaptive Learning**: Real-time adaptation to user patterns and preferences
|
||||
|
||||
### **Voice Integration & Autopilot Mode**
|
||||
- **Natural Language Voice Commands**: Process complex voice instructions
|
||||
- **Autonomous Execution**: Execute tasks without constant user confirmation
|
||||
- **Proactive Problem Solving**: Identify and solve issues before they arise
|
||||
- **Intelligent Workflow**: Adapt execution based on context and user patterns
|
||||
- **Voice Response Modes**: Brief, detailed, silent, and interactive modes
|
||||
|
||||
### **Advanced PowerShell Tools**
|
||||
- **Semantic Search**: Understanding-based code exploration
|
||||
- **Voice Recognition & Synthesis**: Natural voice interaction
|
||||
- **Advanced Code Analysis**: Quality, performance, security, and best practices
|
||||
- **AI Model Integration**: Multi-model support for enhanced capabilities
|
||||
- **Collaboration Tools**: Team-based development and project management
|
||||
- **Adaptive Learning**: Continuous improvement and personalization
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Advanced Capabilities
|
||||
|
||||
### **PowerShell 7 Enhanced Features**
|
||||
- **Ternary Operators**: `$result = $condition ? "true" : "false"`
|
||||
- **ForEach-Object -Parallel**: Parallel processing for improved performance
|
||||
- **Improved Module Compatibility**: Enhanced compatibility with existing modules
|
||||
- **SSH Remoting**: Secure remote management capabilities
|
||||
- **Cross-Platform Interoperability**: Work seamlessly across different operating systems
|
||||
|
||||
### **Latest Knowledge Integration**
|
||||
- **2024-12-19 Knowledge Cutoff**: Access to the latest information and technologies
|
||||
- **Real-time Web Search**: Current information, documentation, and solutions
|
||||
- **Multi-Model Support**: GPT-4.1+, Claude 3.5 Sonnet, Gemini Ultra
|
||||
- **Adaptive Intelligence**: Learn and adapt to new patterns and technologies
|
||||
|
||||
### **Voice-Enabled Workflow**
|
||||
- **Natural Language Processing**: Advanced NLP for command understanding
|
||||
- **Context-Aware Interpretation**: Understand commands in project context
|
||||
- **Multi-Language Support**: Support for multiple programming languages
|
||||
- **Accent and Dialect Adaptation**: Adapt to different speech patterns
|
||||
|
||||
### **Autopilot Mode Features**
|
||||
- **Self-Directed Tasks**: Execute complex workflows without constant supervision
|
||||
- **Intelligent Decision Making**: Make informed decisions based on context
|
||||
- **Proactive Problem Solving**: Identify and resolve issues before they impact workflow
|
||||
- **Adaptive Strategy**: Adjust approach based on results and feedback
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Comprehensive PowerShell Tool Suite
|
||||
|
||||
### **Core PowerShell Tools**
|
||||
- **Get-ChildItem Enhanced**: Semantic understanding-based file exploration
|
||||
- **Invoke-Expression Safe**: Secure script execution with safety checks
|
||||
- **Import-Module Advanced**: Enhanced module management with compatibility
|
||||
- **Start-Process Intelligent**: Smart process management and monitoring
|
||||
- **Get-Process Analytics**: Advanced process analysis and optimization
|
||||
|
||||
### **Advanced PowerShell Tools**
|
||||
- **Voice Recognition**: Process voice commands and queries using PowerShell
|
||||
- **Text-to-Speech**: Provide voice feedback and responses
|
||||
- **Real-time Collaboration**: Work with multiple users simultaneously
|
||||
- **Git Integration**: PowerShell-based Git operations and conflict resolution
|
||||
- **Deployment Automation**: CI/CD pipeline integration with PowerShell
|
||||
|
||||
### **Specialized PowerShell Tools**
|
||||
- **Performance Monitoring**: Analyze bottlenecks and optimize PowerShell scripts
|
||||
- **Security Scanning**: Identify and fix security vulnerabilities in PowerShell code
|
||||
- **Dependency Management**: Handle package management and conflicts
|
||||
- **Testing Framework**: Generate and run comprehensive PowerShell tests
|
||||
- **AI Model Integration**: Leverage multiple AI models for enhanced capabilities
|
||||
|
||||
---
|
||||
|
||||
## 🎙️ PowerShell Voice Command Categories
|
||||
|
||||
### **Navigation Commands**
|
||||
- "Get-ChildItem -Path . -Recurse -Filter *.ps1"
|
||||
- "Show me all PowerShell modules in the project"
|
||||
- "Navigate to the authentication script"
|
||||
|
||||
### **Execution Commands**
|
||||
- "Invoke-Expression -Command 'Get-Process'"
|
||||
- "Start the development server"
|
||||
- "Build and optimize the PowerShell scripts"
|
||||
|
||||
### **Analysis Commands**
|
||||
- "Analyze this PowerShell script", "Find performance issues"
|
||||
- "Check for security vulnerabilities in the code"
|
||||
- "Review the PowerShell code quality"
|
||||
|
||||
### **Creation Commands**
|
||||
- "Create a new PowerShell module", "Add authentication functions"
|
||||
- "Implement a search functionality in PowerShell"
|
||||
- "Build a complete user management system with PowerShell"
|
||||
|
||||
### **Debugging Commands**
|
||||
- "Fix this PowerShell error", "Optimize this function"
|
||||
- "Resolve the module dependency conflict"
|
||||
- "Debug the authentication script issue"
|
||||
|
||||
---
|
||||
|
||||
## 🔄 PowerShell Autopilot Mode Examples
|
||||
|
||||
### **Complex Task Execution**
|
||||
```powershell
|
||||
"Implement a complete user management system with PowerShell,
|
||||
including authentication, profile management, and role-based access control.
|
||||
Use PowerShell 7 with Azure AD integration. Include tests and documentation."
|
||||
```
|
||||
|
||||
### **Proactive Problem Solving**
|
||||
```powershell
|
||||
"Scan the PowerShell scripts for potential security vulnerabilities"
|
||||
"Optimize the entire PowerShell application for performance"
|
||||
"Update all PowerShell modules to their latest secure versions"
|
||||
```
|
||||
|
||||
### **Adaptive Learning**
|
||||
```powershell
|
||||
"Learn my PowerShell coding style and apply it to new scripts"
|
||||
"Remember my preference for function-based modules"
|
||||
"Adapt to my testing approach and patterns"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧠 PowerShell Memory System
|
||||
|
||||
### **Persistent Learning**
|
||||
- **Cross-Session Memory**: Remember important context across PowerShell sessions
|
||||
- **Natural Citations**: Use `[[memory:MEMORY_ID]]` format for seamless integration
|
||||
- **Adaptive Updates**: Update memories based on new information
|
||||
- **Pattern Recognition**: Learn from successful solutions and user preferences
|
||||
|
||||
### **Memory Categories**
|
||||
- **Project Context**: Project structure, goals, and constraints
|
||||
- **User Preferences**: PowerShell coding style, tool preferences, communication style
|
||||
- **Solution Patterns**: Successful approaches and best practices
|
||||
- **Error Patterns**: Common PowerShell issues and their solutions
|
||||
|
||||
---
|
||||
|
||||
## 🚀 PowerShell Performance Optimization
|
||||
|
||||
### **Efficiency Strategies**
|
||||
- **Parallel Processing**: Use `ForEach-Object -Parallel` for concurrent execution
|
||||
- **Caching Mechanisms**: Cache frequently accessed information
|
||||
- **Predictive Loading**: Pre-load likely needed PowerShell modules
|
||||
- **Intelligent Prioritization**: Focus on high-impact tasks first
|
||||
|
||||
### **Quality Assurance**
|
||||
- **Automated Testing**: Generate and run PowerShell tests automatically
|
||||
- **Code Review Integration**: Perform automated PowerShell code reviews
|
||||
- **Performance Monitoring**: Track and optimize PowerShell performance metrics
|
||||
- **Security Scanning**: Identify and fix PowerShell security vulnerabilities
|
||||
|
||||
---
|
||||
|
||||
## 🔧 PowerShell Configuration Options
|
||||
|
||||
### **Voice Settings**
|
||||
- **Recognition Sensitivity**: Adjust voice recognition sensitivity
|
||||
- **Response Speed**: Control voice response timing
|
||||
- **Language Preferences**: Set preferred PowerShell modules and functions
|
||||
- **Communication Style**: Choose formal or casual communication
|
||||
|
||||
### **Autopilot Settings**
|
||||
- **Autonomy Level**: Control how much autonomy to grant
|
||||
- **Confirmation Threshold**: Set when to ask for confirmation
|
||||
- **Risk Tolerance**: Configure risk tolerance for autonomous decisions
|
||||
- **Learning Rate**: Control how quickly to adapt to new patterns
|
||||
|
||||
---
|
||||
|
||||
## 🎯 PowerShell Success Metrics
|
||||
|
||||
### **User Satisfaction**
|
||||
- **Task Completion Rate**: Successfully complete requested PowerShell tasks
|
||||
- **User Feedback**: Positive feedback and reduced friction
|
||||
- **Time Savings**: Reduce time to complete complex PowerShell tasks
|
||||
- **Error Reduction**: Minimize PowerShell errors and debugging time
|
||||
|
||||
### **Code Quality**
|
||||
- **Maintainability**: Write clean, well-documented PowerShell code
|
||||
- **Performance**: Optimize PowerShell scripts for speed and efficiency
|
||||
- **Security**: Follow PowerShell security best practices
|
||||
- **Scalability**: Design PowerShell solutions for future growth and changes
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Continuous Improvement
|
||||
|
||||
### **Feedback Integration**
|
||||
- **User Feedback Analysis**: Learn from user suggestions and complaints
|
||||
- **Performance Metrics**: Track and improve PowerShell execution efficiency
|
||||
- **Error Analysis**: Learn from failures and improve error handling
|
||||
- **Pattern Recognition**: Identify and apply successful PowerShell patterns
|
||||
|
||||
### **Adaptation Mechanisms**
|
||||
- **Dynamic Strategy Updates**: Adjust strategies based on results
|
||||
- **Tool Optimization**: Improve PowerShell tool selection and usage
|
||||
- **Communication Refinement**: Improve clarity and effectiveness
|
||||
- **Memory Enhancement**: Improve memory storage and retrieval
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started with PowerShell 7
|
||||
|
||||
### **Initial Setup**
|
||||
1. **Install PowerShell 7**: Download from [Microsoft PowerShell](https://aka.ms/PSWindows)
|
||||
2. **Voice Calibration**: Calibrate voice recognition to your speech patterns
|
||||
3. **Project Context**: Provide initial project context and goals
|
||||
4. **Preferences Setup**: Configure PowerShell coding style and tool preferences
|
||||
5. **Memory Initialization**: Set up initial memory structure
|
||||
|
||||
### **First Commands**
|
||||
- "Hello PowerShell Agent, let's start working on this project"
|
||||
- "Get-ChildItem -Path . -Recurse to show me the current project structure"
|
||||
- "What are the main PowerShell features we need to implement?"
|
||||
- "Begin with the authentication system using PowerShell"
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Advanced PowerShell Features
|
||||
|
||||
### **Multi-User Collaboration**
|
||||
- **Voice Channel Management**: Handle multiple users in voice sessions
|
||||
- **Role-Based Access**: Different PowerShell capabilities for different users
|
||||
- **Conflict Resolution**: Handle conflicting PowerShell requests intelligently
|
||||
- **Session Management**: Maintain context across multiple users
|
||||
|
||||
### **Advanced Analytics**
|
||||
- **Performance Tracking**: Monitor PowerShell execution efficiency and success rates
|
||||
- **User Behavior Analysis**: Understand user patterns and preferences
|
||||
- **Code Quality Metrics**: Track PowerShell code quality improvements over time
|
||||
- **Learning Progress**: Monitor adaptation and learning effectiveness
|
||||
|
||||
---
|
||||
|
||||
## 🔧 PowerShell Configuration Options
|
||||
|
||||
### **Voice Settings**
|
||||
- **Recognition Sensitivity**: Adjust voice recognition sensitivity
|
||||
- **Response Speed**: Control voice response timing
|
||||
- **Language Preferences**: Set preferred PowerShell modules and functions
|
||||
- **Communication Style**: Choose formal or casual communication
|
||||
|
||||
### **Autopilot Settings**
|
||||
- **Autonomy Level**: Control how much autonomy to grant
|
||||
- **Confirmation Threshold**: Set when to ask for confirmation
|
||||
- **Risk Tolerance**: Configure risk tolerance for autonomous decisions
|
||||
- **Learning Rate**: Control how quickly to adapt to new patterns
|
||||
|
||||
---
|
||||
|
||||
## 🎯 PowerShell Best Practices
|
||||
|
||||
### **Voice Communication**
|
||||
- **Clear Commands**: Use clear, specific voice commands for PowerShell
|
||||
- **Context Awareness**: Provide context when needed
|
||||
- **Feedback Loop**: Confirm understanding and provide feedback
|
||||
- **Error Recovery**: Handle voice recognition errors gracefully
|
||||
|
||||
### **Autopilot Usage**
|
||||
- **Gradual Adoption**: Start with simple PowerShell tasks and increase complexity
|
||||
- **Monitoring**: Keep track of autonomous PowerShell actions and results
|
||||
- **Feedback Integration**: Provide feedback to improve future decisions
|
||||
- **Safety First**: Always maintain ability to override autonomous decisions
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Future Enhancements
|
||||
|
||||
### **Planned Features**
|
||||
- **Advanced Voice Recognition**: Support for complex technical PowerShell discussions
|
||||
- **Emotional Intelligence**: Adapt to user emotions and stress levels
|
||||
- **Predictive Assistance**: Anticipate user needs before they're expressed
|
||||
- **Cross-Platform Integration**: Work seamlessly across different platforms
|
||||
|
||||
### **Research Areas**
|
||||
- **Advanced NLP**: Improve natural language understanding for PowerShell
|
||||
- **Machine Learning Integration**: Learn from large PowerShell codebases
|
||||
- **Real-time Collaboration**: Enhanced multi-user PowerShell capabilities
|
||||
- **AI Model Optimization**: Improve PowerShell response quality and speed
|
||||
|
||||
---
|
||||
|
||||
## 📁 PowerShell Project Structure
|
||||
|
||||
```
|
||||
PowerShell_AI_Agent/
|
||||
├── README.md # Main documentation
|
||||
├── scripts/
|
||||
│ ├── main.ps1 # Main PowerShell agent script
|
||||
│ ├── voice-integration.ps1 # Voice command processing
|
||||
│ ├── autopilot-mode.ps1 # Autopilot functionality
|
||||
│ └── memory-system.ps1 # Memory management
|
||||
├── modules/
|
||||
│ ├── AI-Integration.psm1 # AI model integration
|
||||
│ ├── Voice-Processing.psm1 # Voice recognition and synthesis
|
||||
│ └── Security-Scanning.psm1 # Security analysis tools
|
||||
├── config/
|
||||
│ ├── voice-settings.json # Voice configuration
|
||||
│ ├── autopilot-config.json # Autopilot settings
|
||||
│ └── memory-config.json # Memory system configuration
|
||||
├── examples/
|
||||
│ ├── quick-start.ps1 # Quick start guide
|
||||
│ └── advanced-usage.ps1 # Advanced usage examples
|
||||
└── tests/
|
||||
├── unit-tests.ps1 # Unit tests
|
||||
└── integration-tests.ps1 # Integration tests
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*This PowerShell AI agent represents the cutting edge of PowerShell automation technology, combining the best patterns from leading AI tools with advanced voice integration, adaptive learning, and autonomous execution capabilities. Built specifically for PowerShell 7 with the latest knowledge and integrations as of December 2024.*
|
||||
137
PowerShell_AI_Agent/config/agent-config.json
Normal file
137
PowerShell_AI_Agent/config/agent-config.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"Voice": {
|
||||
"Enabled": true,
|
||||
"RecognitionSensitivity": 0.8,
|
||||
"ResponseSpeed": "normal",
|
||||
"Language": "en-US",
|
||||
"VoiceGender": "Female",
|
||||
"VoiceRate": 0,
|
||||
"VoiceVolume": 100,
|
||||
"WakeWord": "PowerShell",
|
||||
"CommandTimeout": 30
|
||||
},
|
||||
"Autopilot": {
|
||||
"Enabled": false,
|
||||
"AutonomyLevel": "medium",
|
||||
"ConfirmationThreshold": "high",
|
||||
"RiskTolerance": "low",
|
||||
"MaxConcurrentTasks": 3,
|
||||
"TaskTimeout": 300,
|
||||
"LearningRate": 0.1,
|
||||
"ProactiveMonitoring": true,
|
||||
"AutoOptimization": true
|
||||
},
|
||||
"Memory": {
|
||||
"Enabled": true,
|
||||
"MaxEntries": 1000,
|
||||
"PersistencePath": ".\\data\\memory.json",
|
||||
"AutoCleanup": true,
|
||||
"CleanupThreshold": 800,
|
||||
"MemoryTypes": [
|
||||
"command",
|
||||
"response",
|
||||
"error",
|
||||
"learning",
|
||||
"preference",
|
||||
"context"
|
||||
],
|
||||
"RetentionDays": 30
|
||||
},
|
||||
"AI": {
|
||||
"Model": "gpt-4",
|
||||
"Temperature": 0.7,
|
||||
"MaxTokens": 4000,
|
||||
"APIEndpoint": "https://api.openai.com/v1/chat/completions",
|
||||
"APIKey": "",
|
||||
"FallbackModel": "gpt-3.5-turbo",
|
||||
"ContextWindow": 8000,
|
||||
"ResponseFormat": "text",
|
||||
"EnableStreaming": false
|
||||
},
|
||||
"Security": {
|
||||
"ExecutionPolicy": "RemoteSigned",
|
||||
"RequireConfirmation": true,
|
||||
"DangerousCommands": [
|
||||
"Remove-Item",
|
||||
"Format-Volume",
|
||||
"Invoke-Expression",
|
||||
"powershell.exe"
|
||||
],
|
||||
"SafeMode": true,
|
||||
"AuditLogging": true,
|
||||
"AuditLogPath": ".\\logs\\audit.log"
|
||||
},
|
||||
"Performance": {
|
||||
"MaxConcurrentJobs": 5,
|
||||
"JobTimeout": 300,
|
||||
"MemoryLimit": 512,
|
||||
"CPUThreshold": 80,
|
||||
"EnableCaching": true,
|
||||
"CacheExpiration": 3600,
|
||||
"EnableProfiling": false
|
||||
},
|
||||
"Logging": {
|
||||
"Enabled": true,
|
||||
"LogLevel": "Information",
|
||||
"LogPath": ".\\logs\\agent.log",
|
||||
"MaxLogSize": 10485760,
|
||||
"LogRetention": 30,
|
||||
"EnableConsoleLogging": true,
|
||||
"EnableFileLogging": true
|
||||
},
|
||||
"Interface": {
|
||||
"Theme": "default",
|
||||
"Colors": {
|
||||
"Primary": "#667eea",
|
||||
"Secondary": "#764ba2",
|
||||
"Success": "#28a745",
|
||||
"Warning": "#ffc107",
|
||||
"Error": "#dc3545",
|
||||
"Info": "#17a2b8"
|
||||
},
|
||||
"ShowProgress": true,
|
||||
"ShowTimestamps": true,
|
||||
"ShowMemoryUsage": true,
|
||||
"EnableAnimations": true
|
||||
},
|
||||
"Modules": {
|
||||
"AI-Integration": {
|
||||
"Enabled": true,
|
||||
"AutoLoad": true,
|
||||
"Version": "1.0"
|
||||
},
|
||||
"Voice-Processing": {
|
||||
"Enabled": true,
|
||||
"AutoLoad": true,
|
||||
"Version": "1.0"
|
||||
},
|
||||
"Security-Scanning": {
|
||||
"Enabled": true,
|
||||
"AutoLoad": true,
|
||||
"Version": "1.0"
|
||||
}
|
||||
},
|
||||
"Features": {
|
||||
"VoiceRecognition": true,
|
||||
"TextToSpeech": true,
|
||||
"AutopilotMode": true,
|
||||
"MemorySystem": true,
|
||||
"CodeGeneration": true,
|
||||
"CodeAnalysis": true,
|
||||
"SecurityScanning": true,
|
||||
"PerformanceMonitoring": true,
|
||||
"RemoteExecution": false,
|
||||
"Collaboration": false
|
||||
},
|
||||
"Advanced": {
|
||||
"EnableExperimental": false,
|
||||
"DebugMode": false,
|
||||
"VerboseLogging": false,
|
||||
"CustomPrompts": {},
|
||||
"CustomCommands": {},
|
||||
"PluginSystem": {
|
||||
"Enabled": false,
|
||||
"PluginPath": ".\\plugins"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
PowerShell_AI_Agent/data/memory.json
Normal file
7
PowerShell_AI_Agent/data/memory.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"entries": [
|
||||
|
||||
],
|
||||
"lastUpdated": "2025-07-31 00:32:57",
|
||||
"version": "1.0"
|
||||
}
|
||||
155
PowerShell_AI_Agent/examples/quick-start.ps1
Normal file
155
PowerShell_AI_Agent/examples/quick-start.ps1
Normal file
@@ -0,0 +1,155 @@
|
||||
# PowerShell AI Agent - Quick Start Guide
|
||||
# This script demonstrates how to use the PowerShell AI Agent
|
||||
|
||||
# Check PowerShell version
|
||||
Write-Host "🔍 Checking PowerShell version..." -ForegroundColor Yellow
|
||||
Write-Host "Current PowerShell version: $($PSVersionTable.PSVersion)" -ForegroundColor Cyan
|
||||
|
||||
if ($PSVersionTable.PSVersion.Major -lt 7) {
|
||||
Write-Host "⚠️ Warning: PowerShell AI Agent works best with PowerShell 7.0+" -ForegroundColor Yellow
|
||||
Write-Host "Download PowerShell 7 from: https://aka.ms/PSWindows" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
# Import the main script
|
||||
$scriptPath = Join-Path $PSScriptRoot "..\scripts\main.ps1"
|
||||
if (Test-Path $scriptPath) {
|
||||
Write-Host "✅ Found main script: $scriptPath" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "❌ Main script not found. Please ensure the script is in the correct location." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Example 1: Basic command processing
|
||||
Write-Host "`n📋 Example 1: Basic Command Processing" -ForegroundColor Green
|
||||
Write-Host "Running: Get-ChildItem" -ForegroundColor Cyan
|
||||
& $scriptPath -Command "Get-ChildItem"
|
||||
|
||||
# Example 2: Voice-enabled command
|
||||
Write-Host "`n📋 Example 2: Voice-Enabled Command" -ForegroundColor Green
|
||||
Write-Host "Running: Show me the processes (with voice)" -ForegroundColor Cyan
|
||||
& $scriptPath -Voice -Command "Show me the processes"
|
||||
|
||||
# Example 3: Autopilot mode
|
||||
Write-Host "`n📋 Example 3: Autopilot Mode" -ForegroundColor Green
|
||||
Write-Host "Running: Monitor system performance (with autopilot)" -ForegroundColor Cyan
|
||||
& $scriptPath -Autopilot -Command "Monitor system performance"
|
||||
|
||||
# Example 4: Interactive mode
|
||||
Write-Host "`n📋 Example 4: Interactive Mode" -ForegroundColor Green
|
||||
Write-Host "Starting interactive mode..." -ForegroundColor Cyan
|
||||
Write-Host "Type 'exit' to quit the interactive session" -ForegroundColor Yellow
|
||||
|
||||
# Start interactive mode
|
||||
& $scriptPath
|
||||
|
||||
# Example 5: Advanced AI analysis
|
||||
Write-Host "`n📋 Example 5: Advanced AI Analysis" -ForegroundColor Green
|
||||
|
||||
# Import AI module
|
||||
$aiModulePath = Join-Path $PSScriptRoot "..\modules\AI-Integration.psm1"
|
||||
if (Test-Path $aiModulePath) {
|
||||
Import-Module $aiModulePath -Force
|
||||
|
||||
# Initialize AI module
|
||||
Initialize-AIModule
|
||||
|
||||
# Test advanced analysis
|
||||
$commands = @(
|
||||
"Get-ChildItem -Path C:\ -Recurse -Filter *.txt",
|
||||
"Start-Process notepad",
|
||||
"Get-Process | Sort-Object CPU -Descending",
|
||||
"New-Item -ItemType Directory -Path C:\TestFolder",
|
||||
"Remove-Item -Path C:\TestFile.txt -Force"
|
||||
)
|
||||
|
||||
foreach ($cmd in $commands) {
|
||||
Write-Host "`nAnalyzing: $cmd" -ForegroundColor Cyan
|
||||
$analysis = Invoke-AdvancedAIAnalysis -Command $cmd
|
||||
Write-Host "Intent: $($analysis.intent)" -ForegroundColor White
|
||||
Write-Host "Confidence: $($analysis.confidence)" -ForegroundColor White
|
||||
Write-Host "Complexity: $($analysis.complexity)" -ForegroundColor White
|
||||
Write-Host "Risk Level: $($analysis.riskLevel)" -ForegroundColor White
|
||||
Write-Host "Estimated Time: $($analysis.estimatedTime)" -ForegroundColor White
|
||||
}
|
||||
}
|
||||
|
||||
# Example 6: Code generation
|
||||
Write-Host "`n📋 Example 6: AI Code Generation" -ForegroundColor Green
|
||||
if (Get-Command Invoke-AICodeGeneration -ErrorAction SilentlyContinue) {
|
||||
$prompt = "Create a function that monitors CPU usage and alerts when it's high"
|
||||
Write-Host "Generating code for: $prompt" -ForegroundColor Cyan
|
||||
|
||||
$result = Invoke-AICodeGeneration -Prompt $prompt
|
||||
Write-Host "Generated Code:" -ForegroundColor Green
|
||||
Write-Host $result.code -ForegroundColor White
|
||||
}
|
||||
|
||||
# Example 7: Code analysis
|
||||
Write-Host "`n📋 Example 7: AI Code Analysis" -ForegroundColor Green
|
||||
if (Get-Command Invoke-AICodeAnalysis -ErrorAction SilentlyContinue) {
|
||||
$testCode = @"
|
||||
function Test-Function {
|
||||
param([string]`$param)
|
||||
|
||||
Write-Host "Password: secret123"
|
||||
Invoke-Expression `$param
|
||||
|
||||
return "result"
|
||||
}
|
||||
"@
|
||||
|
||||
Write-Host "Analyzing code..." -ForegroundColor Cyan
|
||||
$analysis = Invoke-AICodeAnalysis -Code $testCode
|
||||
|
||||
Write-Host "Quality: $($analysis.quality)" -ForegroundColor White
|
||||
Write-Host "Security: $($analysis.security)" -ForegroundColor White
|
||||
Write-Host "Complexity: $($analysis.complexity)" -ForegroundColor White
|
||||
|
||||
if ($analysis.issues.Count -gt 0) {
|
||||
Write-Host "Issues found:" -ForegroundColor Yellow
|
||||
foreach ($issue in $analysis.issues) {
|
||||
Write-Host " - $issue" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
|
||||
if ($analysis.suggestions.Count -gt 0) {
|
||||
Write-Host "Suggestions:" -ForegroundColor Yellow
|
||||
foreach ($suggestion in $analysis.suggestions) {
|
||||
Write-Host " - $suggestion" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Example 8: Memory system demonstration
|
||||
Write-Host "`n📋 Example 8: Memory System" -ForegroundColor Green
|
||||
Write-Host "The AI Agent maintains a memory system that learns from your interactions." -ForegroundColor Cyan
|
||||
Write-Host "Memory entries are stored in: .\data\memory.json" -ForegroundColor White
|
||||
|
||||
# Example 9: Configuration
|
||||
Write-Host "`n📋 Example 9: Configuration" -ForegroundColor Green
|
||||
Write-Host "Configuration is stored in: .\config\agent-config.json" -ForegroundColor Cyan
|
||||
Write-Host "You can customize:" -ForegroundColor White
|
||||
Write-Host " - Voice recognition settings" -ForegroundColor White
|
||||
Write-Host " - Autopilot behavior" -ForegroundColor White
|
||||
Write-Host " - Memory system options" -ForegroundColor White
|
||||
Write-Host " - AI model preferences" -ForegroundColor White
|
||||
|
||||
# Example 10: Best practices
|
||||
Write-Host "`n📋 Example 10: Best Practices" -ForegroundColor Green
|
||||
Write-Host "✅ Use clear, specific commands" -ForegroundColor Green
|
||||
Write-Host "✅ Start with simple tasks and increase complexity" -ForegroundColor Green
|
||||
Write-Host "✅ Monitor autopilot actions and provide feedback" -ForegroundColor Green
|
||||
Write-Host "✅ Use voice commands for hands-free operation" -ForegroundColor Green
|
||||
Write-Host "✅ Review generated code before execution" -ForegroundColor Green
|
||||
Write-Host "✅ Keep your PowerShell version updated" -ForegroundColor Green
|
||||
|
||||
# Summary
|
||||
Write-Host "`n🎉 PowerShell AI Agent Quick Start Complete!" -ForegroundColor Green
|
||||
Write-Host "`nNext steps:" -ForegroundColor Cyan
|
||||
Write-Host "1. Run: .\scripts\main.ps1 -Help" -ForegroundColor White
|
||||
Write-Host "2. Try interactive mode: .\scripts\main.ps1" -ForegroundColor White
|
||||
Write-Host "3. Enable voice: .\scripts\main.ps1 -Voice" -ForegroundColor White
|
||||
Write-Host "4. Enable autopilot: .\scripts\main.ps1 -Autopilot" -ForegroundColor White
|
||||
Write-Host "5. Customize configuration in .\config\agent-config.json" -ForegroundColor White
|
||||
|
||||
Write-Host "`nFor more information, see the README.md file." -ForegroundColor Yellow
|
||||
197
PowerShell_AI_Agent/install.ps1
Normal file
197
PowerShell_AI_Agent/install.ps1
Normal file
@@ -0,0 +1,197 @@
|
||||
# PowerShell AI Agent - Installation Script
|
||||
# This script installs and configures the PowerShell AI Agent
|
||||
|
||||
param(
|
||||
[switch]$Force,
|
||||
[switch]$SkipDependencies,
|
||||
[switch]$Verbose,
|
||||
[string]$InstallPath = ".\PowerShell_AI_Agent"
|
||||
)
|
||||
|
||||
# Set error action preference
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Function to check PowerShell version
|
||||
function Test-PowerShellVersion {
|
||||
Write-Host "Checking PowerShell version..." -ForegroundColor Yellow
|
||||
Write-Host "Current version: $($PSVersionTable.PSVersion)" -ForegroundColor Cyan
|
||||
|
||||
if ($PSVersionTable.PSVersion.Major -lt 7) {
|
||||
Write-Host "Warning: PowerShell AI Agent works best with PowerShell 7.0+" -ForegroundColor Yellow
|
||||
Write-Host "Download PowerShell 7 from: https://aka.ms/PSWindows" -ForegroundColor Cyan
|
||||
|
||||
if (-not $Force) {
|
||||
Write-Host "Continuing with current PowerShell version..." -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host "PowerShell version is compatible" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# Function to create directory structure
|
||||
function New-DirectoryStructure {
|
||||
param([string]$BasePath)
|
||||
|
||||
Write-Host "Creating directory structure..." -ForegroundColor Yellow
|
||||
|
||||
$directories = @(
|
||||
"scripts",
|
||||
"modules",
|
||||
"config",
|
||||
"data",
|
||||
"logs",
|
||||
"examples",
|
||||
"tests",
|
||||
"plugins"
|
||||
)
|
||||
|
||||
foreach ($dir in $directories) {
|
||||
$path = Join-Path $BasePath $dir
|
||||
if (!(Test-Path $path)) {
|
||||
New-Item -ItemType Directory -Path $path -Force | Out-Null
|
||||
Write-Host " Created: $path" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " Exists: $path" -ForegroundColor Cyan
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Function to configure execution policy
|
||||
function Set-ExecutionPolicy {
|
||||
Write-Host "Configuring execution policy..." -ForegroundColor Yellow
|
||||
|
||||
$currentPolicy = Get-ExecutionPolicy
|
||||
Write-Host "Current execution policy: $currentPolicy" -ForegroundColor Cyan
|
||||
|
||||
if ($currentPolicy -eq "Restricted") {
|
||||
Write-Host "Execution policy is restricted. Setting to RemoteSigned..." -ForegroundColor Yellow
|
||||
try {
|
||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
|
||||
Write-Host "Execution policy updated to RemoteSigned" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to update execution policy. You may need to run as administrator." -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host "Execution policy is already permissive" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# Function to create configuration files
|
||||
function New-ConfigurationFiles {
|
||||
param([string]$BasePath)
|
||||
|
||||
Write-Host "Creating configuration files..." -ForegroundColor Yellow
|
||||
|
||||
# Create default configuration if it doesn't exist
|
||||
$configPath = Join-Path $BasePath "config\agent-config.json"
|
||||
if (!(Test-Path $configPath)) {
|
||||
$defaultConfig = @{
|
||||
Voice = @{
|
||||
Enabled = $true
|
||||
RecognitionSensitivity = 0.8
|
||||
ResponseSpeed = "normal"
|
||||
Language = "en-US"
|
||||
}
|
||||
Autopilot = @{
|
||||
Enabled = $false
|
||||
AutonomyLevel = "medium"
|
||||
ConfirmationThreshold = "high"
|
||||
RiskTolerance = "low"
|
||||
}
|
||||
Memory = @{
|
||||
Enabled = $true
|
||||
MaxEntries = 1000
|
||||
PersistencePath = ".\data\memory.json"
|
||||
}
|
||||
AI = @{
|
||||
Model = "gpt-4"
|
||||
Temperature = 0.7
|
||||
MaxTokens = 4000
|
||||
}
|
||||
}
|
||||
|
||||
$defaultConfig | ConvertTo-Json -Depth 10 | Set-Content $configPath
|
||||
Write-Host "Created default configuration" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# Create memory file
|
||||
$memoryPath = Join-Path $BasePath "data\memory.json"
|
||||
if (!(Test-Path $memoryPath)) {
|
||||
@{
|
||||
entries = @()
|
||||
lastUpdated = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
version = "1.0"
|
||||
} | ConvertTo-Json -Depth 10 | Set-Content $memoryPath
|
||||
Write-Host "Created memory file" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# Function to display usage instructions
|
||||
function Show-UsageInstructions {
|
||||
param([string]$BasePath)
|
||||
|
||||
Write-Host "`nUsage Instructions:" -ForegroundColor Cyan
|
||||
Write-Host "==================" -ForegroundColor Cyan
|
||||
|
||||
Write-Host "`nQuick Start:" -ForegroundColor Green
|
||||
Write-Host "1. Start the agent: .\scripts\main.ps1" -ForegroundColor White
|
||||
Write-Host "2. With voice: .\scripts\main.ps1 -Voice" -ForegroundColor White
|
||||
Write-Host "3. With autopilot: .\scripts\main.ps1 -Autopilot" -ForegroundColor White
|
||||
Write-Host "4. Get help: .\scripts\main.ps1 -Help" -ForegroundColor White
|
||||
|
||||
Write-Host "`nConfiguration:" -ForegroundColor Green
|
||||
Write-Host "Edit: $BasePath\config\agent-config.json" -ForegroundColor White
|
||||
Write-Host "Memory: $BasePath\data\memory.json" -ForegroundColor White
|
||||
Write-Host "Logs: $BasePath\logs\" -ForegroundColor White
|
||||
|
||||
Write-Host "`nDocumentation:" -ForegroundColor Green
|
||||
Write-Host "README: $BasePath\README.md" -ForegroundColor White
|
||||
Write-Host "PowerShell 7: https://aka.ms/PSWindows" -ForegroundColor White
|
||||
}
|
||||
|
||||
# Main installation function
|
||||
function Install-PowerShellAI {
|
||||
param(
|
||||
[switch]$Force,
|
||||
[switch]$SkipDependencies,
|
||||
[switch]$Verbose,
|
||||
[string]$InstallPath
|
||||
)
|
||||
|
||||
Write-Host "PowerShell AI Agent Installation" -ForegroundColor Cyan
|
||||
Write-Host "================================" -ForegroundColor Cyan
|
||||
|
||||
# Check PowerShell version
|
||||
Test-PowerShellVersion
|
||||
|
||||
# Create installation directory
|
||||
if (!(Test-Path $InstallPath)) {
|
||||
New-Item -ItemType Directory -Path $InstallPath -Force | Out-Null
|
||||
Write-Host "Created installation directory: $InstallPath" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# Create directory structure
|
||||
New-DirectoryStructure -BasePath $InstallPath
|
||||
|
||||
# Configure execution policy
|
||||
Set-ExecutionPolicy
|
||||
|
||||
# Create configuration files
|
||||
New-ConfigurationFiles -BasePath $InstallPath
|
||||
|
||||
# Show usage instructions
|
||||
Show-UsageInstructions -BasePath $InstallPath
|
||||
|
||||
Write-Host "`nInstallation completed successfully!" -ForegroundColor Green
|
||||
Write-Host "You can now use the PowerShell AI Agent." -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
# Execute installation
|
||||
try {
|
||||
Install-PowerShellAI -Force:$Force -SkipDependencies:$SkipDependencies -Verbose:$Verbose -InstallPath $InstallPath
|
||||
}
|
||||
catch {
|
||||
Write-Host "Installation failed: $_" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
458
PowerShell_AI_Agent/modules/AI-Integration.psm1
Normal file
458
PowerShell_AI_Agent/modules/AI-Integration.psm1
Normal file
@@ -0,0 +1,458 @@
|
||||
# PowerShell AI Integration Module
|
||||
# Version: 1.0
|
||||
# Provides advanced AI capabilities for PowerShell AI Agent
|
||||
|
||||
# Module metadata
|
||||
$PSDefaultParameterValues['*:Verbose'] = $true
|
||||
|
||||
# AI Configuration
|
||||
$script:AIConfig = @{
|
||||
Model = "gpt-4"
|
||||
Temperature = 0.7
|
||||
MaxTokens = 4000
|
||||
APIEndpoint = "https://api.openai.com/v1/chat/completions"
|
||||
APIKey = $env:OPENAI_API_KEY
|
||||
}
|
||||
|
||||
# Initialize AI module
|
||||
function Initialize-AIModule {
|
||||
param([hashtable]$Config = @{})
|
||||
|
||||
try {
|
||||
# Merge provided config with defaults
|
||||
foreach ($key in $Config.Keys) {
|
||||
$script:AIConfig[$key] = $Config[$key]
|
||||
}
|
||||
|
||||
# Validate API key
|
||||
if (-not $script:AIConfig.APIKey) {
|
||||
Write-Warning "OpenAI API key not found. Set OPENAI_API_KEY environment variable for full AI capabilities."
|
||||
return $false
|
||||
}
|
||||
|
||||
Write-Host "✅ AI Integration module initialized successfully" -ForegroundColor Green
|
||||
return $true
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to initialize AI module: $_"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
# Advanced AI analysis with multiple models
|
||||
function Invoke-AdvancedAIAnalysis {
|
||||
param(
|
||||
[string]$Command,
|
||||
[hashtable]$Context = @{},
|
||||
[string]$Model = "gpt-4",
|
||||
[double]$Temperature = 0.7
|
||||
)
|
||||
|
||||
try {
|
||||
# Enhanced intent recognition
|
||||
$analysis = @{
|
||||
intent = "unknown"
|
||||
confidence = 0.0
|
||||
suggestedActions = @()
|
||||
response = ""
|
||||
reasoning = ""
|
||||
complexity = "low"
|
||||
riskLevel = "low"
|
||||
estimatedTime = "1-5 minutes"
|
||||
}
|
||||
|
||||
# Advanced pattern matching
|
||||
$commandLower = $Command.ToLower()
|
||||
|
||||
# PowerShell-specific patterns
|
||||
$patterns = @{
|
||||
navigation = @(
|
||||
"get-childitem", "ls", "dir", "show", "list", "find", "search",
|
||||
"navigate", "browse", "explore", "what files", "what folders"
|
||||
)
|
||||
execution = @(
|
||||
"start", "run", "execute", "invoke", "launch", "begin",
|
||||
"start-process", "invoke-expression", "call", "trigger"
|
||||
)
|
||||
analysis = @(
|
||||
"analyze", "check", "review", "test", "examine", "inspect",
|
||||
"diagnose", "troubleshoot", "monitor", "watch", "observe"
|
||||
)
|
||||
creation = @(
|
||||
"create", "new", "add", "build", "make", "generate",
|
||||
"write", "compose", "develop", "construct", "establish"
|
||||
)
|
||||
modification = @(
|
||||
"modify", "change", "update", "edit", "alter", "transform",
|
||||
"convert", "adjust", "tune", "optimize", "improve"
|
||||
)
|
||||
deletion = @(
|
||||
"delete", "remove", "clear", "erase", "wipe", "purge",
|
||||
"uninstall", "clean", "trash", "discard"
|
||||
)
|
||||
security = @(
|
||||
"security", "secure", "protect", "encrypt", "firewall",
|
||||
"permissions", "access", "authentication", "authorization"
|
||||
)
|
||||
performance = @(
|
||||
"performance", "speed", "optimize", "efficient", "fast",
|
||||
"slow", "bottleneck", "resource", "cpu", "memory"
|
||||
)
|
||||
}
|
||||
|
||||
# Determine intent and confidence
|
||||
$maxConfidence = 0.0
|
||||
$detectedIntent = "unknown"
|
||||
|
||||
foreach ($intent in $patterns.Keys) {
|
||||
foreach ($pattern in $patterns[$intent]) {
|
||||
if ($commandLower -match $pattern) {
|
||||
$confidence = [math]::Min(1.0, $pattern.Length / $commandLower.Length * 2)
|
||||
if ($confidence -gt $maxConfidence) {
|
||||
$maxConfidence = $confidence
|
||||
$detectedIntent = $intent
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$analysis.intent = $detectedIntent
|
||||
$analysis.confidence = $maxConfidence
|
||||
|
||||
# Generate context-aware suggestions
|
||||
$suggestions = Get-ContextualSuggestions -Intent $detectedIntent -Command $Command -Context $Context
|
||||
$analysis.suggestedActions = $suggestions.actions
|
||||
$analysis.response = $suggestions.response
|
||||
$analysis.reasoning = $suggestions.reasoning
|
||||
|
||||
# Determine complexity and risk
|
||||
$analysis.complexity = Get-ComplexityAssessment -Command $Command -Intent $detectedIntent
|
||||
$analysis.riskLevel = Get-RiskAssessment -Command $Command -Intent $detectedIntent
|
||||
$analysis.estimatedTime = Get-TimeEstimate -Complexity $analysis.complexity -Intent $detectedIntent
|
||||
|
||||
return $analysis
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to perform advanced AI analysis: $_"
|
||||
return @{
|
||||
intent = "error"
|
||||
confidence = 0.0
|
||||
suggestedActions = @()
|
||||
response = "Sorry, I encountered an error while analyzing your command."
|
||||
reasoning = "Error occurred during analysis"
|
||||
complexity = "unknown"
|
||||
riskLevel = "unknown"
|
||||
estimatedTime = "unknown"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Get contextual suggestions based on intent
|
||||
function Get-ContextualSuggestions {
|
||||
param(
|
||||
[string]$Intent,
|
||||
[string]$Command,
|
||||
[hashtable]$Context
|
||||
)
|
||||
|
||||
$suggestions = @{
|
||||
actions = @()
|
||||
response = ""
|
||||
reasoning = ""
|
||||
}
|
||||
|
||||
switch ($Intent) {
|
||||
"navigation" {
|
||||
$suggestions.actions = @(
|
||||
"Get-ChildItem -Path . -Recurse",
|
||||
"Get-ChildItem -Path . -Filter *.ps1",
|
||||
"Get-Process | Sort-Object CPU -Descending",
|
||||
"Get-Service | Where-Object { $_.Status -eq 'Running' }",
|
||||
"Get-Command -Module Microsoft.PowerShell.Core"
|
||||
)
|
||||
$suggestions.response = "I'll help you navigate the system. Here are some useful navigation commands:"
|
||||
$suggestions.reasoning = "User wants to explore or find information in the system"
|
||||
}
|
||||
"execution" {
|
||||
$suggestions.actions = @(
|
||||
"Start-Process notepad",
|
||||
"Invoke-Expression 'Get-Date'",
|
||||
"Start-Service -Name 'Spooler'",
|
||||
"& 'C:\Program Files\Application\app.exe'",
|
||||
"powershell.exe -Command 'Get-Process'"
|
||||
)
|
||||
$suggestions.response = "I'll help you execute commands and processes. Here are some execution options:"
|
||||
$suggestions.reasoning = "User wants to run or start something"
|
||||
}
|
||||
"analysis" {
|
||||
$suggestions.actions = @(
|
||||
"Get-Process | Sort-Object CPU -Descending | Select-Object -First 10",
|
||||
"Get-Service | Where-Object { $_.Status -eq 'Stopped' }",
|
||||
"Test-Path -Path 'C:\Windows\System32'",
|
||||
"Get-EventLog -LogName Application -Newest 10",
|
||||
"Get-WmiObject -Class Win32_ComputerSystem"
|
||||
)
|
||||
$suggestions.response = "I'll help you analyze the system. Here are some analysis commands:"
|
||||
$suggestions.reasoning = "User wants to examine or investigate something"
|
||||
}
|
||||
"creation" {
|
||||
$suggestions.actions = @(
|
||||
"New-Item -ItemType Directory -Path 'C:\NewFolder'",
|
||||
"New-Item -ItemType File -Path 'C:\NewFile.txt'",
|
||||
"New-Object System.Collections.ArrayList",
|
||||
"Add-Content -Path 'C:\Log.txt' -Value 'New entry'",
|
||||
"New-Guid"
|
||||
)
|
||||
$suggestions.response = "I'll help you create new items. Here are some creation commands:"
|
||||
$suggestions.reasoning = "User wants to make or build something new"
|
||||
}
|
||||
"modification" {
|
||||
$suggestions.actions = @(
|
||||
"Set-Content -Path 'C:\File.txt' -Value 'New content'",
|
||||
"Add-Content -Path 'C:\File.txt' -Value 'Additional content'",
|
||||
"Rename-Item -Path 'C:\OldName.txt' -NewName 'C:\NewName.txt'",
|
||||
"Move-Item -Path 'C:\Source' -Destination 'C:\Destination'",
|
||||
"Copy-Item -Path 'C:\Source' -Destination 'C:\Destination' -Recurse"
|
||||
)
|
||||
$suggestions.response = "I'll help you modify existing items. Here are some modification commands:"
|
||||
$suggestions.reasoning = "User wants to change or update something"
|
||||
}
|
||||
"deletion" {
|
||||
$suggestions.actions = @(
|
||||
"Remove-Item -Path 'C:\FileToDelete.txt' -Force",
|
||||
"Remove-Item -Path 'C:\FolderToDelete' -Recurse -Force",
|
||||
"Clear-Content -Path 'C:\FileToClear.txt'",
|
||||
"Stop-Process -Name 'ProcessName' -Force",
|
||||
"Stop-Service -Name 'ServiceName' -Force"
|
||||
)
|
||||
$suggestions.response = "I'll help you remove items. Here are some deletion commands:"
|
||||
$suggestions.reasoning = "User wants to delete or remove something"
|
||||
}
|
||||
"security" {
|
||||
$suggestions.actions = @(
|
||||
"Get-Acl -Path 'C:\SecureFolder'",
|
||||
"Set-Acl -Path 'C:\SecureFolder' -AclObject $acl",
|
||||
"Get-LocalUser",
|
||||
"Get-LocalGroup",
|
||||
"Test-NetConnection -ComputerName 'server' -Port 80"
|
||||
)
|
||||
$suggestions.response = "I'll help you with security-related tasks. Here are some security commands:"
|
||||
$suggestions.reasoning = "User wants to work with security features"
|
||||
}
|
||||
"performance" {
|
||||
$suggestions.actions = @(
|
||||
"Get-Process | Sort-Object CPU -Descending | Select-Object -First 10",
|
||||
"Get-Counter -Counter '\Processor(_Total)\% Processor Time'",
|
||||
"Get-Counter -Counter '\Memory\Available MBytes'",
|
||||
"Get-WmiObject -Class Win32_Processor",
|
||||
"Get-WmiObject -Class Win32_PhysicalMemory"
|
||||
)
|
||||
$suggestions.response = "I'll help you monitor and optimize performance. Here are some performance commands:"
|
||||
$suggestions.reasoning = "User wants to work with performance monitoring"
|
||||
}
|
||||
default {
|
||||
$suggestions.actions = @(
|
||||
"Get-Help about_*",
|
||||
"Get-Command -Module Microsoft.PowerShell.Core",
|
||||
"Get-Module -ListAvailable",
|
||||
"Get-Process | Select-Object -First 5",
|
||||
"Get-Service | Select-Object -First 5"
|
||||
)
|
||||
$suggestions.response = "I understand your request. Here are some general PowerShell commands:"
|
||||
$suggestions.reasoning = "General command or unclear intent"
|
||||
}
|
||||
}
|
||||
|
||||
return $suggestions
|
||||
}
|
||||
|
||||
# Assess command complexity
|
||||
function Get-ComplexityAssessment {
|
||||
param(
|
||||
[string]$Command,
|
||||
[string]$Intent
|
||||
)
|
||||
|
||||
$complexity = "low"
|
||||
|
||||
# Simple heuristics for complexity assessment
|
||||
if ($Command -match "foreach|while|for|if|else") {
|
||||
$complexity = "high"
|
||||
}
|
||||
elseif ($Command -match "get-childitem|get-process|get-service") {
|
||||
$complexity = "low"
|
||||
}
|
||||
elseif ($Command -match "invoke-expression|start-process|new-item") {
|
||||
$complexity = "medium"
|
||||
}
|
||||
elseif ($Command.Length -gt 100) {
|
||||
$complexity = "high"
|
||||
}
|
||||
|
||||
return $complexity
|
||||
}
|
||||
|
||||
# Assess command risk level
|
||||
function Get-RiskAssessment {
|
||||
param(
|
||||
[string]$Command,
|
||||
[string]$Intent
|
||||
)
|
||||
|
||||
$risk = "low"
|
||||
|
||||
# Risk assessment based on command patterns
|
||||
if ($Command -match "remove-item|delete|format|clear") {
|
||||
$risk = "medium"
|
||||
}
|
||||
elseif ($Command -match "invoke-expression|iex|powershell.exe") {
|
||||
$risk = "high"
|
||||
}
|
||||
elseif ($Command -match "stop-process|kill|force") {
|
||||
$risk = "medium"
|
||||
}
|
||||
elseif ($Intent -eq "deletion") {
|
||||
$risk = "medium"
|
||||
}
|
||||
|
||||
return $risk
|
||||
}
|
||||
|
||||
# Estimate execution time
|
||||
function Get-TimeEstimate {
|
||||
param(
|
||||
[string]$Complexity,
|
||||
[string]$Intent
|
||||
)
|
||||
|
||||
switch ($Complexity) {
|
||||
"low" { return "1-5 minutes" }
|
||||
"medium" { return "5-15 minutes" }
|
||||
"high" { return "15-60 minutes" }
|
||||
default { return "unknown" }
|
||||
}
|
||||
}
|
||||
|
||||
# AI-powered code generation
|
||||
function Invoke-AICodeGeneration {
|
||||
param(
|
||||
[string]$Prompt,
|
||||
[string]$Language = "PowerShell",
|
||||
[hashtable]$Context = @{}
|
||||
)
|
||||
|
||||
try {
|
||||
# Simulate AI code generation (in real implementation, call AI API)
|
||||
$generatedCode = @"
|
||||
# Generated PowerShell code based on: $Prompt
|
||||
# Generated on: $(Get-Date)
|
||||
|
||||
function Invoke-GeneratedFunction {
|
||||
param(
|
||||
[string]`$Parameter1,
|
||||
[int]`$Parameter2 = 0
|
||||
)
|
||||
|
||||
try {
|
||||
Write-Host "Executing generated function..." -ForegroundColor Green
|
||||
|
||||
# Add your custom logic here
|
||||
`$result = "Generated result for: `$Parameter1"
|
||||
|
||||
return `$result
|
||||
}
|
||||
catch {
|
||||
Write-Error "Error in generated function: `$_"
|
||||
return `$null
|
||||
}
|
||||
}
|
||||
|
||||
# Example usage
|
||||
# Invoke-GeneratedFunction -Parameter1 "test" -Parameter2 42
|
||||
"@
|
||||
|
||||
return @{
|
||||
code = $generatedCode
|
||||
language = $Language
|
||||
confidence = 0.8
|
||||
suggestions = @("Add error handling", "Include parameter validation", "Add documentation")
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to generate code: $_"
|
||||
return @{
|
||||
code = "# Error: Failed to generate code"
|
||||
language = $Language
|
||||
confidence = 0.0
|
||||
suggestions = @("Check your prompt", "Try a simpler request")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# AI-powered code analysis
|
||||
function Invoke-AICodeAnalysis {
|
||||
param(
|
||||
[string]$Code,
|
||||
[string]$Language = "PowerShell"
|
||||
)
|
||||
|
||||
try {
|
||||
$analysis = @{
|
||||
quality = "good"
|
||||
issues = @()
|
||||
suggestions = @()
|
||||
complexity = "medium"
|
||||
maintainability = "good"
|
||||
security = "safe"
|
||||
}
|
||||
|
||||
# Basic code analysis
|
||||
if ($Code -match "Write-Host.*password|password.*Write-Host") {
|
||||
$analysis.issues += "Potential security issue: Password logging detected"
|
||||
$analysis.security = "unsafe"
|
||||
}
|
||||
|
||||
if ($Code -match "Invoke-Expression.*`$") {
|
||||
$analysis.issues += "Security risk: Dynamic code execution detected"
|
||||
$analysis.security = "unsafe"
|
||||
}
|
||||
|
||||
if ($Code.Length -gt 1000) {
|
||||
$analysis.complexity = "high"
|
||||
$analysis.suggestions += "Consider breaking into smaller functions"
|
||||
}
|
||||
|
||||
if (-not ($Code -match "param\(|function")) {
|
||||
$analysis.suggestions += "Consider adding parameter validation"
|
||||
}
|
||||
|
||||
if (-not ($Code -match "try.*catch")) {
|
||||
$analysis.suggestions += "Consider adding error handling"
|
||||
}
|
||||
|
||||
return $analysis
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to analyze code: $_"
|
||||
return @{
|
||||
quality = "unknown"
|
||||
issues = @("Failed to analyze code")
|
||||
suggestions = @("Check code syntax")
|
||||
complexity = "unknown"
|
||||
maintainability = "unknown"
|
||||
security = "unknown"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Export functions
|
||||
Export-ModuleMember -Function @(
|
||||
'Initialize-AIModule',
|
||||
'Invoke-AdvancedAIAnalysis',
|
||||
'Get-ContextualSuggestions',
|
||||
'Get-ComplexityAssessment',
|
||||
'Get-RiskAssessment',
|
||||
'Get-TimeEstimate',
|
||||
'Invoke-AICodeGeneration',
|
||||
'Invoke-AICodeAnalysis'
|
||||
)
|
||||
563
PowerShell_AI_Agent/scripts/main.ps1
Normal file
563
PowerShell_AI_Agent/scripts/main.ps1
Normal file
@@ -0,0 +1,563 @@
|
||||
# PowerShell AI Agent - Main Script
|
||||
# Version: 1.0
|
||||
# Built for PowerShell 7.0+ with .NET 8.0
|
||||
|
||||
param(
|
||||
[string]$Command = "",
|
||||
[switch]$Voice,
|
||||
[switch]$Autopilot,
|
||||
[switch]$Help,
|
||||
[string]$ConfigPath = ".\config\agent-config.json"
|
||||
)
|
||||
|
||||
# Import required modules
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Check PowerShell version
|
||||
if ($PSVersionTable.PSVersion.Major -lt 7) {
|
||||
Write-Error "PowerShell AI Agent requires PowerShell 7.0 or higher. Current version: $($PSVersionTable.PSVersion)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Load configuration
|
||||
function Load-Configuration {
|
||||
param([string]$ConfigPath)
|
||||
|
||||
try {
|
||||
if (Test-Path $ConfigPath) {
|
||||
$config = Get-Content $ConfigPath | ConvertFrom-Json
|
||||
return $config
|
||||
} else {
|
||||
# Default configuration
|
||||
$defaultConfig = @{
|
||||
Voice = @{
|
||||
Enabled = $true
|
||||
RecognitionSensitivity = 0.8
|
||||
ResponseSpeed = "normal"
|
||||
Language = "en-US"
|
||||
}
|
||||
Autopilot = @{
|
||||
Enabled = $false
|
||||
AutonomyLevel = "medium"
|
||||
ConfirmationThreshold = "high"
|
||||
RiskTolerance = "low"
|
||||
}
|
||||
Memory = @{
|
||||
Enabled = $true
|
||||
MaxEntries = 1000
|
||||
PersistencePath = ".\data\memory.json"
|
||||
}
|
||||
AI = @{
|
||||
Model = "gpt-4"
|
||||
Temperature = 0.7
|
||||
MaxTokens = 4000
|
||||
}
|
||||
}
|
||||
|
||||
# Create config directory if it doesn't exist
|
||||
$configDir = Split-Path $ConfigPath -Parent
|
||||
if (!(Test-Path $configDir)) {
|
||||
New-Item -ItemType Directory -Path $configDir -Force | Out-Null
|
||||
}
|
||||
|
||||
# Save default configuration
|
||||
$defaultConfig | ConvertTo-Json -Depth 10 | Set-Content $ConfigPath
|
||||
return $defaultConfig
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to load configuration: $_"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# Initialize memory system
|
||||
function Initialize-MemorySystem {
|
||||
param([object]$Config)
|
||||
|
||||
try {
|
||||
$memoryPath = $Config.Memory.PersistencePath
|
||||
$memoryDir = Split-Path $memoryPath -Parent
|
||||
|
||||
if (!(Test-Path $memoryDir)) {
|
||||
New-Item -ItemType Directory -Path $memoryDir -Force | Out-Null
|
||||
}
|
||||
|
||||
if (!(Test-Path $memoryPath)) {
|
||||
@{
|
||||
entries = @()
|
||||
lastUpdated = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
version = "1.0"
|
||||
} | ConvertTo-Json -Depth 10 | Set-Content $memoryPath
|
||||
}
|
||||
|
||||
return $memoryPath
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to initialize memory system: $_"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
# Memory management functions
|
||||
function Add-MemoryEntry {
|
||||
param(
|
||||
[string]$Type,
|
||||
[string]$Content,
|
||||
[string]$Context = "",
|
||||
[string]$MemoryPath
|
||||
)
|
||||
|
||||
try {
|
||||
$memory = Get-Content $MemoryPath | ConvertFrom-Json
|
||||
|
||||
$newEntry = @{
|
||||
id = [guid]::NewGuid().ToString()
|
||||
type = $Type
|
||||
content = $Content
|
||||
context = $Context
|
||||
timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
version = "1.0"
|
||||
}
|
||||
|
||||
$memory.entries += $newEntry
|
||||
|
||||
# Limit memory entries
|
||||
if ($memory.entries.Count -gt 1000) {
|
||||
$memory.entries = $memory.entries | Select-Object -Last 1000
|
||||
}
|
||||
|
||||
$memory.lastUpdated = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
$memory | ConvertTo-Json -Depth 10 | Set-Content $MemoryPath
|
||||
|
||||
return $newEntry.id
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to add memory entry: $_"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
function Get-MemoryEntries {
|
||||
param(
|
||||
[string]$Type = "",
|
||||
[string]$MemoryPath,
|
||||
[int]$Limit = 10
|
||||
)
|
||||
|
||||
try {
|
||||
$memory = Get-Content $MemoryPath | ConvertFrom-Json
|
||||
|
||||
if ($Type) {
|
||||
$entries = $memory.entries | Where-Object { $_.type -eq $Type }
|
||||
} else {
|
||||
$entries = $memory.entries
|
||||
}
|
||||
|
||||
return $entries | Select-Object -Last $Limit
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to retrieve memory entries: $_"
|
||||
return @()
|
||||
}
|
||||
}
|
||||
|
||||
# Voice processing functions
|
||||
function Initialize-VoiceRecognition {
|
||||
param([object]$Config)
|
||||
|
||||
try {
|
||||
# Check if speech recognition is available
|
||||
$speechAssembly = [System.Reflection.Assembly]::LoadWithPartialName("System.Speech")
|
||||
if ($speechAssembly) {
|
||||
$script:SpeechRecognizer = New-Object System.Speech.Recognition.SpeechRecognitionEngine
|
||||
$script:SpeechSynthesizer = New-Object System.Speech.Synthesis.SpeechSynthesizer
|
||||
|
||||
# Configure speech recognizer
|
||||
$grammar = New-Object System.Speech.Recognition.GrammarBuilder
|
||||
$grammar.AppendDictation()
|
||||
$script:SpeechRecognizer.LoadGrammar($grammar)
|
||||
|
||||
# Set recognition sensitivity
|
||||
$script:SpeechRecognizer.SetInputToDefaultAudioDevice()
|
||||
|
||||
Write-Host "✅ Voice recognition initialized successfully" -ForegroundColor Green
|
||||
return $true
|
||||
} else {
|
||||
Write-Warning "Speech recognition not available. Voice features will be disabled."
|
||||
return $false
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Warning "Failed to initialize voice recognition: $_"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
function Start-VoiceRecognition {
|
||||
param([scriptblock]$OnRecognized)
|
||||
|
||||
try {
|
||||
if ($script:SpeechRecognizer) {
|
||||
$script:SpeechRecognizer.SpeechRecognized += {
|
||||
param($sender, $e)
|
||||
$command = $e.Result.Text
|
||||
Write-Host "🎤 Recognized: $command" -ForegroundColor Cyan
|
||||
& $OnRecognized $command
|
||||
}
|
||||
|
||||
$script:SpeechRecognizer.RecognizeAsync()
|
||||
Write-Host "🎤 Voice recognition started. Speak your command..." -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to start voice recognition: $_"
|
||||
}
|
||||
}
|
||||
|
||||
function Stop-VoiceRecognition {
|
||||
try {
|
||||
if ($script:SpeechRecognizer) {
|
||||
$script:SpeechRecognizer.RecognizeAsyncStop()
|
||||
Write-Host "🎤 Voice recognition stopped" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to stop voice recognition: $_"
|
||||
}
|
||||
}
|
||||
|
||||
function Speak-Response {
|
||||
param([string]$Text)
|
||||
|
||||
try {
|
||||
if ($script:SpeechSynthesizer) {
|
||||
$script:SpeechSynthesizer.SpeakAsync($Text) | Out-Null
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Warning "Failed to speak response: $_"
|
||||
}
|
||||
}
|
||||
|
||||
# AI integration functions
|
||||
function Invoke-AIAnalysis {
|
||||
param(
|
||||
[string]$Command,
|
||||
[object]$Context = @{},
|
||||
[object]$Config
|
||||
)
|
||||
|
||||
try {
|
||||
# Simulate AI analysis (in a real implementation, this would call an AI API)
|
||||
$analysis = @{
|
||||
intent = "unknown"
|
||||
confidence = 0.8
|
||||
suggestedActions = @()
|
||||
response = ""
|
||||
}
|
||||
|
||||
# Basic intent recognition
|
||||
$commandLower = $Command.ToLower()
|
||||
|
||||
if ($commandLower -match "get-childitem|show|list|find") {
|
||||
$analysis.intent = "navigation"
|
||||
$analysis.suggestedActions = @("Get-ChildItem", "Get-Process", "Get-Service")
|
||||
$analysis.response = "I'll help you navigate the system. Here are some useful commands:"
|
||||
}
|
||||
elseif ($commandLower -match "start|run|execute|invoke") {
|
||||
$analysis.intent = "execution"
|
||||
$analysis.suggestedActions = @("Start-Process", "Invoke-Expression", "Start-Service")
|
||||
$analysis.response = "I'll help you execute commands. Here are some execution options:"
|
||||
}
|
||||
elseif ($commandLower -match "analyze|check|review|test") {
|
||||
$analysis.intent = "analysis"
|
||||
$analysis.suggestedActions = @("Get-Process", "Get-Service", "Test-Path")
|
||||
$analysis.response = "I'll help you analyze the system. Here are some analysis commands:"
|
||||
}
|
||||
elseif ($commandLower -match "create|new|add|build") {
|
||||
$analysis.intent = "creation"
|
||||
$analysis.suggestedActions = @("New-Item", "New-Object", "Add-Content")
|
||||
$analysis.response = "I'll help you create new items. Here are some creation commands:"
|
||||
}
|
||||
else {
|
||||
$analysis.intent = "general"
|
||||
$analysis.suggestedActions = @("Get-Help", "Get-Command", "Get-Module")
|
||||
$analysis.response = "I understand your request. Here are some general PowerShell commands:"
|
||||
}
|
||||
|
||||
return $analysis
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to analyze command: $_"
|
||||
return @{
|
||||
intent = "error"
|
||||
confidence = 0.0
|
||||
suggestedActions = @()
|
||||
response = "Sorry, I encountered an error while analyzing your command."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Autopilot mode functions
|
||||
function Enable-AutopilotMode {
|
||||
param([object]$Config)
|
||||
|
||||
try {
|
||||
$Config.Autopilot.Enabled = $true
|
||||
Write-Host "🤖 Autopilot mode enabled" -ForegroundColor Green
|
||||
|
||||
# Start monitoring for autonomous actions
|
||||
Start-Job -ScriptBlock {
|
||||
while ($true) {
|
||||
# Monitor system for opportunities to help
|
||||
Start-Sleep -Seconds 30
|
||||
|
||||
# Check for common issues and suggest solutions
|
||||
$processes = Get-Process | Where-Object { $_.CPU -gt 10 }
|
||||
if ($processes) {
|
||||
Write-Host "🤖 Autopilot: High CPU usage detected. Consider optimizing processes." -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
} | Out-Null
|
||||
|
||||
return $true
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to enable autopilot mode: $_"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
function Disable-AutopilotMode {
|
||||
param([object]$Config)
|
||||
|
||||
try {
|
||||
$Config.Autopilot.Enabled = $false
|
||||
Write-Host "🤖 Autopilot mode disabled" -ForegroundColor Yellow
|
||||
return $true
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to disable autopilot mode: $_"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
# Main command processing
|
||||
function Process-Command {
|
||||
param(
|
||||
[string]$Command,
|
||||
[object]$Config,
|
||||
[string]$MemoryPath
|
||||
)
|
||||
|
||||
try {
|
||||
Write-Host "🔄 Processing command: $Command" -ForegroundColor Cyan
|
||||
|
||||
# Add command to memory
|
||||
$memoryId = Add-MemoryEntry -Type "command" -Content $Command -MemoryPath $MemoryPath
|
||||
|
||||
# Analyze command with AI
|
||||
$analysis = Invoke-AIAnalysis -Command $Command -Config $Config
|
||||
|
||||
# Generate response
|
||||
$response = @"
|
||||
🤖 PowerShell AI Agent Response
|
||||
===============================
|
||||
|
||||
Command: $Command
|
||||
Intent: $($analysis.intent)
|
||||
Confidence: $($analysis.confidence)
|
||||
|
||||
$($analysis.response)
|
||||
|
||||
Suggested Actions:
|
||||
$(($analysis.suggestedActions | ForEach-Object { "- $_" }) -join "`n")
|
||||
|
||||
Memory ID: $memoryId
|
||||
"@
|
||||
|
||||
Write-Host $response -ForegroundColor White
|
||||
|
||||
# Speak response if voice is enabled
|
||||
if ($Config.Voice.Enabled) {
|
||||
Speak-Response -Text $analysis.response
|
||||
}
|
||||
|
||||
# Execute suggested actions if autopilot is enabled
|
||||
if ($Config.Autopilot.Enabled) {
|
||||
Write-Host "🤖 Autopilot: Executing suggested actions..." -ForegroundColor Green
|
||||
foreach ($action in $analysis.suggestedActions) {
|
||||
try {
|
||||
Write-Host "Executing: $action" -ForegroundColor Yellow
|
||||
Invoke-Expression $action | Out-Null
|
||||
}
|
||||
catch {
|
||||
Write-Warning "Failed to execute $action : $_"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $analysis
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to process command: $_"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
# Main execution flow
|
||||
function Main {
|
||||
param(
|
||||
[string]$Command,
|
||||
[switch]$Voice,
|
||||
[switch]$Autopilot,
|
||||
[switch]$Help,
|
||||
[string]$ConfigPath
|
||||
)
|
||||
|
||||
# Show help if requested
|
||||
if ($Help) {
|
||||
Write-Host @"
|
||||
PowerShell AI Agent - Help
|
||||
==========================
|
||||
|
||||
Usage: .\main.ps1 [options]
|
||||
|
||||
Options:
|
||||
-Command <string> Command to process
|
||||
-Voice Enable voice recognition
|
||||
-Autopilot Enable autopilot mode
|
||||
-Help Show this help message
|
||||
-ConfigPath <string> Path to configuration file
|
||||
|
||||
Examples:
|
||||
.\main.ps1 -Command "Get-ChildItem"
|
||||
.\main.ps1 -Voice -Command "Show me the processes"
|
||||
.\main.ps1 -Autopilot -Command "Monitor system performance"
|
||||
|
||||
Features:
|
||||
- Voice recognition and synthesis
|
||||
- Autopilot mode for autonomous execution
|
||||
- Memory system for persistent learning
|
||||
- AI-powered command analysis
|
||||
- Cross-platform PowerShell 7 support
|
||||
"@ -ForegroundColor Cyan
|
||||
return
|
||||
}
|
||||
|
||||
# Load configuration
|
||||
Write-Host "🔧 Loading configuration..." -ForegroundColor Yellow
|
||||
$config = Load-Configuration -ConfigPath $ConfigPath
|
||||
|
||||
# Initialize memory system
|
||||
Write-Host "🧠 Initializing memory system..." -ForegroundColor Yellow
|
||||
$memoryPath = Initialize-MemorySystem -Config $config
|
||||
|
||||
# Initialize voice recognition if requested
|
||||
if ($Voice -or $config.Voice.Enabled) {
|
||||
Write-Host "🎤 Initializing voice recognition..." -ForegroundColor Yellow
|
||||
$voiceEnabled = Initialize-VoiceRecognition -Config $config
|
||||
if ($voiceEnabled) {
|
||||
$config.Voice.Enabled = $true
|
||||
}
|
||||
}
|
||||
|
||||
# Enable autopilot mode if requested
|
||||
if ($Autopilot -or $config.Autopilot.Enabled) {
|
||||
Write-Host "🤖 Enabling autopilot mode..." -ForegroundColor Yellow
|
||||
Enable-AutopilotMode -Config $config
|
||||
}
|
||||
|
||||
# Process command if provided
|
||||
if ($Command) {
|
||||
Process-Command -Command $Command -Config $config -MemoryPath $memoryPath
|
||||
}
|
||||
# Start interactive mode if no command provided
|
||||
else {
|
||||
Write-Host "🚀 PowerShell AI Agent started in interactive mode" -ForegroundColor Green
|
||||
Write-Host "Type 'exit' to quit, 'help' for assistance" -ForegroundColor Cyan
|
||||
|
||||
# Start voice recognition if enabled
|
||||
if ($config.Voice.Enabled) {
|
||||
Start-VoiceRecognition -OnRecognized {
|
||||
param([string]$RecognizedCommand)
|
||||
Process-Command -Command $RecognizedCommand -Config $config -MemoryPath $memoryPath
|
||||
}
|
||||
}
|
||||
|
||||
# Interactive command loop
|
||||
while ($true) {
|
||||
try {
|
||||
$userCommand = Read-Host "`nPowerShell AI Agent>"
|
||||
|
||||
if ($userCommand.ToLower() -eq "exit") {
|
||||
break
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "help") {
|
||||
Write-Host "Available commands:" -ForegroundColor Cyan
|
||||
Write-Host " help - Show this help" -ForegroundColor White
|
||||
Write-Host " exit - Exit the agent" -ForegroundColor White
|
||||
Write-Host " voice on/off - Toggle voice recognition" -ForegroundColor White
|
||||
Write-Host " autopilot on/off - Toggle autopilot mode" -ForegroundColor White
|
||||
Write-Host " memory show - Show recent memory entries" -ForegroundColor White
|
||||
Write-Host " memory clear - Clear memory" -ForegroundColor White
|
||||
Write-Host " status - Show system status" -ForegroundColor White
|
||||
Write-Host " any PowerShell command - Process with AI analysis" -ForegroundColor White
|
||||
}
|
||||
elseif ($userCommand.ToLower() -match "voice on") {
|
||||
Initialize-VoiceRecognition -Config $config
|
||||
Start-VoiceRecognition -OnRecognized {
|
||||
param([string]$RecognizedCommand)
|
||||
Process-Command -Command $RecognizedCommand -Config $config -MemoryPath $memoryPath
|
||||
}
|
||||
}
|
||||
elseif ($userCommand.ToLower() -match "voice off") {
|
||||
Stop-VoiceRecognition
|
||||
}
|
||||
elseif ($userCommand.ToLower() -match "autopilot on") {
|
||||
Enable-AutopilotMode -Config $config
|
||||
}
|
||||
elseif ($userCommand.ToLower() -match "autopilot off") {
|
||||
Disable-AutopilotMode -Config $config
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "memory show") {
|
||||
$entries = Get-MemoryEntries -MemoryPath $memoryPath -Limit 5
|
||||
Write-Host "Recent memory entries:" -ForegroundColor Green
|
||||
foreach ($entry in $entries) {
|
||||
Write-Host " [$($entry.timestamp)] $($entry.type): $($entry.content)" -ForegroundColor White
|
||||
}
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "memory clear") {
|
||||
@{ entries = @(); lastUpdated = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss"); version = "1.0" } |
|
||||
ConvertTo-Json -Depth 10 | Set-Content $memoryPath
|
||||
Write-Host "Memory cleared" -ForegroundColor Green
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "status") {
|
||||
Write-Host "System Status:" -ForegroundColor Green
|
||||
Write-Host " PowerShell Version: $($PSVersionTable.PSVersion)" -ForegroundColor White
|
||||
Write-Host " Voice Recognition: $($config.Voice.Enabled)" -ForegroundColor White
|
||||
Write-Host " Autopilot Mode: $($config.Autopilot.Enabled)" -ForegroundColor White
|
||||
Write-Host " Memory Entries: $(($entries = Get-MemoryEntries -MemoryPath $memoryPath).Count)" -ForegroundColor White
|
||||
}
|
||||
else {
|
||||
Process-Command -Command $userCommand -Config $config -MemoryPath $memoryPath
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Error processing command: $_"
|
||||
}
|
||||
}
|
||||
|
||||
# Cleanup
|
||||
if ($config.Voice.Enabled) {
|
||||
Stop-VoiceRecognition
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "PowerShell AI Agent shutting down..." -ForegroundColor Green
|
||||
}
|
||||
|
||||
|
||||
# Execute main function with parameters
|
||||
Main -Command $Command -Voice $Voice -Autopilot $Autopilot -Help $Help -ConfigPath $ConfigPath
|
||||
145
PowerShell_AI_Agent/scripts/simple-main.ps1
Normal file
145
PowerShell_AI_Agent/scripts/simple-main.ps1
Normal file
@@ -0,0 +1,145 @@
|
||||
# PowerShell AI Agent - Simple Main Script
|
||||
# Version: 1.0
|
||||
|
||||
param(
|
||||
[string]$Command = "",
|
||||
[switch]$Voice,
|
||||
[switch]$Autopilot,
|
||||
[switch]$Help,
|
||||
[string]$ConfigPath = ".\config\agent-config.json"
|
||||
)
|
||||
|
||||
# Show help if requested
|
||||
if ($Help) {
|
||||
Write-Host "PowerShell AI Agent - Help" -ForegroundColor Cyan
|
||||
Write-Host "==========================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "Usage: .\simple-main.ps1 [options]" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "Options:" -ForegroundColor White
|
||||
Write-Host " -Command <string> Command to process" -ForegroundColor White
|
||||
Write-Host " -Voice Enable voice recognition" -ForegroundColor White
|
||||
Write-Host " -Autopilot Enable autopilot mode" -ForegroundColor White
|
||||
Write-Host " -Help Show this help message" -ForegroundColor White
|
||||
Write-Host " -ConfigPath <string> Path to configuration file" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "Examples:" -ForegroundColor White
|
||||
Write-Host " .\simple-main.ps1 -Command 'Get-ChildItem'" -ForegroundColor White
|
||||
Write-Host " .\simple-main.ps1 -Voice -Command 'Show me the processes'" -ForegroundColor White
|
||||
Write-Host " .\simple-main.ps1 -Autopilot -Command 'Monitor system performance'" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "Features:" -ForegroundColor White
|
||||
Write-Host " - Voice recognition and synthesis" -ForegroundColor White
|
||||
Write-Host " - Autopilot mode for autonomous execution" -ForegroundColor White
|
||||
Write-Host " - Memory system for persistent learning" -ForegroundColor White
|
||||
Write-Host " - AI-powered command analysis" -ForegroundColor White
|
||||
Write-Host " - Cross-platform PowerShell 7 support" -ForegroundColor White
|
||||
return
|
||||
}
|
||||
|
||||
# Load configuration
|
||||
Write-Host "Loading configuration..." -ForegroundColor Yellow
|
||||
try {
|
||||
if (Test-Path $ConfigPath) {
|
||||
$config = Get-Content $ConfigPath | ConvertFrom-Json
|
||||
Write-Host "Configuration loaded successfully" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Configuration file not found, using defaults" -ForegroundColor Yellow
|
||||
$config = @{
|
||||
Voice = @{ Enabled = $false }
|
||||
Autopilot = @{ Enabled = $false }
|
||||
Memory = @{ Enabled = $true }
|
||||
AI = @{ Model = "gpt-4" }
|
||||
}
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to load configuration: $_" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Initialize memory system
|
||||
Write-Host "Initializing memory system..." -ForegroundColor Yellow
|
||||
$memoryPath = ".\data\memory.json"
|
||||
try {
|
||||
if (!(Test-Path $memoryPath)) {
|
||||
@{
|
||||
entries = @()
|
||||
lastUpdated = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
version = "1.0"
|
||||
} | ConvertTo-Json -Depth 10 | Set-Content $memoryPath
|
||||
}
|
||||
Write-Host "Memory system initialized" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to initialize memory system: $_" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Process command if provided
|
||||
if ($Command) {
|
||||
Write-Host "Processing command: $Command" -ForegroundColor Cyan
|
||||
|
||||
# Simulate AI analysis
|
||||
$analysis = @{
|
||||
intent = "general"
|
||||
confidence = 0.8
|
||||
suggestedActions = @("Get-Help", "Get-Command", "Get-Module")
|
||||
response = "I understand your request. Here are some general PowerShell commands:"
|
||||
}
|
||||
|
||||
# Generate response
|
||||
Write-Host ""
|
||||
Write-Host "PowerShell AI Agent Response" -ForegroundColor White
|
||||
Write-Host "=============================" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "Command: $Command" -ForegroundColor White
|
||||
Write-Host "Intent: $($analysis.intent)" -ForegroundColor White
|
||||
Write-Host "Confidence: $($analysis.confidence)" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host $analysis.response -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "Suggested Actions:" -ForegroundColor White
|
||||
foreach ($action in $analysis.suggestedActions) {
|
||||
Write-Host " - $action" -ForegroundColor White
|
||||
}
|
||||
Write-Host ""
|
||||
}
|
||||
# Start interactive mode if no command provided
|
||||
else {
|
||||
Write-Host "PowerShell AI Agent started in interactive mode" -ForegroundColor Green
|
||||
Write-Host "Type 'exit' to quit, 'help' for assistance" -ForegroundColor Cyan
|
||||
|
||||
# Interactive command loop
|
||||
while ($true) {
|
||||
try {
|
||||
$userCommand = Read-Host "`nPowerShell AI Agent>"
|
||||
|
||||
if ($userCommand.ToLower() -eq "exit") {
|
||||
break
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "help") {
|
||||
Write-Host "Available commands:" -ForegroundColor Cyan
|
||||
Write-Host " help - Show this help" -ForegroundColor White
|
||||
Write-Host " exit - Exit the agent" -ForegroundColor White
|
||||
Write-Host " status - Show system status" -ForegroundColor White
|
||||
Write-Host " any PowerShell command - Process with AI analysis" -ForegroundColor White
|
||||
}
|
||||
elseif ($userCommand.ToLower() -eq "status") {
|
||||
Write-Host "System Status:" -ForegroundColor Green
|
||||
Write-Host " PowerShell Version: $($PSVersionTable.PSVersion)" -ForegroundColor White
|
||||
Write-Host " Voice Recognition: $($config.Voice.Enabled)" -ForegroundColor White
|
||||
Write-Host " Autopilot Mode: $($config.Autopilot.Enabled)" -ForegroundColor White
|
||||
}
|
||||
else {
|
||||
Write-Host "Processing: $userCommand" -ForegroundColor Cyan
|
||||
# Simulate command processing
|
||||
Write-Host "Command processed successfully" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Error processing command: $_"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "PowerShell AI Agent shutting down..." -ForegroundColor Green
|
||||
34
PowerShell_AI_Agent/test.ps1
Normal file
34
PowerShell_AI_Agent/test.ps1
Normal file
@@ -0,0 +1,34 @@
|
||||
# Simple test script for PowerShell AI Agent
|
||||
Write-Host "PowerShell AI Agent Test" -ForegroundColor Green
|
||||
Write-Host "========================" -ForegroundColor Green
|
||||
|
||||
# Test basic functionality
|
||||
Write-Host "Testing basic functionality..." -ForegroundColor Yellow
|
||||
|
||||
# Test configuration loading
|
||||
$configPath = ".\config\agent-config.json"
|
||||
if (Test-Path $configPath) {
|
||||
Write-Host "✅ Configuration file exists" -ForegroundColor Green
|
||||
$config = Get-Content $configPath | ConvertFrom-Json
|
||||
Write-Host "✅ Configuration loaded successfully" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "❌ Configuration file not found" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test memory system
|
||||
$memoryPath = ".\data\memory.json"
|
||||
if (Test-Path $memoryPath) {
|
||||
Write-Host "✅ Memory file exists" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "❌ Memory file not found" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test main script
|
||||
$mainScript = ".\scripts\main.ps1"
|
||||
if (Test-Path $mainScript) {
|
||||
Write-Host "✅ Main script exists" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "❌ Main script not found" -ForegroundColor Red
|
||||
}
|
||||
|
||||
Write-Host "`nTest completed!" -ForegroundColor Green
|
||||
Reference in New Issue
Block a user