Add CCLI (CLI agent integration) complete implementation

- Complete Gemini CLI agent adapter with SSH execution
- CLI agent factory with connection pooling
- SSH executor with AsyncSSH for remote CLI execution
- Backend integration with CLI agent manager
- MCP server updates with CLI agent tools
- Frontend UI updates for mixed agent types
- Database migrations for CLI agent support
- Docker deployment with CLI source integration
- Comprehensive documentation and testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-07-10 12:45:43 +10:00
parent 85bf1341f3
commit 6933a6ccb1
28 changed files with 5706 additions and 0 deletions

43
scripts/test-ssh-simple.sh Executable file
View File

@@ -0,0 +1,43 @@
#!/bin/bash
# Simple SSH Connection Test for CCLI
set -e
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m'
function log() { echo -e "${BLUE}[$(date +'%H:%M:%S')]${NC} $1"; }
function success() { echo -e "${GREEN}$1${NC}"; }
echo "🔗 Simple SSH Connection Tests"
# Test basic SSH functionality
for host in walnut ironwood; do
log "Testing SSH to $host..."
if ssh -o ConnectTimeout=5 $host "echo 'SSH working'; hostname; uptime | cut -d',' -f1"; then
success "SSH connection to $host working"
fi
done
# Test SSH with connection sharing
log "Testing SSH connection sharing..."
control_path="/tmp/ssh_test_$$"
ssh_opts="-o ControlMaster=auto -o ControlPath=$control_path -o ControlPersist=10"
# Establish master connection to walnut
ssh $ssh_opts walnut "echo 'Master connection established'" > /dev/null
# Test reuse (should be very fast)
start_time=$(date +%s.%N)
ssh $ssh_opts walnut "echo 'Reused connection'"
end_time=$(date +%s.%N)
duration=$(echo "$end_time - $start_time" | bc -l)
success "SSH connection reuse took ${duration:0:4}s"
# Clean up
ssh $ssh_opts -O exit walnut 2>/dev/null || true
rm -f "$control_path"
success "SSH pooling tests completed successfully"