quick_session_test.sh
1 #!/bin/bash 2 # Quick Session Consult Test - Fast verification across all agents 3 # Tests basic functionality without full LLM queries 4 5 set -euo pipefail 6 7 GREEN='\033[0;32m' 8 RED='\033[0;31m' 9 BLUE='\033[0;34m' 10 CYAN='\033[0;36m' 11 NC='\033[0m' 12 13 PROJECT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 14 15 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 16 echo -e "${CYAN} Quick Session Consult Test${NC}" 17 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 18 echo "" 19 20 PASSED=0 21 FAILED=0 22 23 # Test CEO in detail (full LLM test) 24 echo -e "${BLUE}[1/9] Testing CEO (full LLM test)...${NC}" 25 RESULT=$(cd "$PROJECT_ROOT/apps/ceo" && timeout 60 mix run -e ' 26 alias EchoShared.LLM.DecisionHelper 27 28 # Test 1: Create session 29 case DecisionHelper.consult_session(:ceo, nil, "What is my role?") do 30 {:ok, r1} -> 31 # Test 2: Continue 32 case DecisionHelper.consult_session(:ceo, r1.session_id, "What are my priorities?") do 33 {:ok, r2} -> 34 IO.puts("SUCCESS:session=#{r2.session_id},turns=#{r2.turn_count},tokens=#{r2.total_tokens}") 35 EchoShared.LLM.Session.end_session(r2.session_id) 36 _ -> IO.puts("FAIL:continuation") 37 end 38 _ -> IO.puts("FAIL:creation") 39 end 40 ' 2>&1 | grep -E "(SUCCESS|FAIL)") 41 42 if echo "$RESULT" | grep -q "SUCCESS"; then 43 echo -e " ${GREEN}✓ CEO passed${NC}" 44 SESSION_ID=$(echo "$RESULT" | grep -oP 'session=\K[^,]+') 45 TURNS=$(echo "$RESULT" | grep -oP 'turns=\K[^,]+') 46 TOKENS=$(echo "$RESULT" | grep -oP 'tokens=\K[^,]+') 47 echo -e " Session: $SESSION_ID" 48 echo -e " Turns: $TURNS, Tokens: $TOKENS" 49 PASSED=$((PASSED + 1)) 50 else 51 echo -e " ${RED}✗ CEO failed${NC}" 52 FAILED=$((FAILED + 1)) 53 fi 54 echo "" 55 56 # Test other agents (compilation + basic API test) 57 for agent in cto chro operations_head product_manager senior_architect uiux_engineer senior_developer test_lead; do 58 AGENT_NUM=$((PASSED + FAILED + 1)) 59 echo -e "${BLUE}[$AGENT_NUM/9] Testing $agent (API test)...${NC}" 60 61 # Just verify the tool exists and API works (no LLM call) 62 RESULT=$(cd "$PROJECT_ROOT/apps/$agent" && timeout 30 mix run -e " 63 alias EchoShared.LLM.{Config, Session} 64 65 # Verify model configured 66 model = Config.get_model(:$agent) 67 IO.puts(\"MODEL:#{model}\") 68 69 # Verify Session module accessible 70 sessions = Session.list_sessions() 71 IO.puts(\"SESSIONS:#{length(sessions)}\") 72 73 IO.puts(\"SUCCESS\") 74 " 2>&1 | grep -E "(SUCCESS|MODEL|ERROR)") 75 76 if echo "$RESULT" | grep -q "SUCCESS"; then 77 echo -e " ${GREEN}✓ $agent passed${NC}" 78 MODEL=$(echo "$RESULT" | grep "MODEL:" | cut -d: -f2-) 79 echo -e " Model: $MODEL" 80 PASSED=$((PASSED + 1)) 81 else 82 echo -e " ${RED}✗ $agent failed${NC}" 83 FAILED=$((FAILED + 1)) 84 fi 85 echo "" 86 done 87 88 # Summary 89 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 90 echo -e "${BLUE}Results: ${GREEN}$PASSED passed${NC} | ${RED}$FAILED failed${NC}" 91 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 92 93 if [ $FAILED -eq 0 ]; then 94 echo -e "${GREEN}🎉 All tests passed!${NC}" 95 exit 0 96 else 97 echo -e "${RED}⚠️ Some tests failed.${NC}" 98 exit 1 99 fi