verify_session_integration.sh
1 #!/bin/bash 2 # Ultra-fast verification that session_consult is integrated 3 # No LLM calls - just checks code and compilation 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} Session Consult Integration Verification${NC}" 17 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 18 echo "" 19 20 PASSED=0 21 FAILED=0 22 TOTAL=0 23 24 echo -e "${BLUE}Phase 1: Checking Shared Library${NC}" 25 echo "" 26 27 # Check Session module exists 28 echo -ne " Session module... " 29 TOTAL=$((TOTAL + 1)) 30 if grep -q "defmodule EchoShared.LLM.Session" "$PROJECT_ROOT/apps/echo_shared/lib/echo_shared/llm/session.ex"; then 31 echo -e "${GREEN}✓${NC}" 32 PASSED=$((PASSED + 1)) 33 else 34 echo -e "${RED}✗${NC}" 35 FAILED=$((FAILED + 1)) 36 fi 37 38 # Check ContextBuilder module exists 39 echo -ne " ContextBuilder module... " 40 TOTAL=$((TOTAL + 1)) 41 if grep -q "defmodule EchoShared.LLM.ContextBuilder" "$PROJECT_ROOT/apps/echo_shared/lib/echo_shared/llm/context_builder.ex"; then 42 echo -e "${GREEN}✓${NC}" 43 PASSED=$((PASSED + 1)) 44 else 45 echo -e "${RED}✗${NC}" 46 FAILED=$((FAILED + 1)) 47 fi 48 49 # Check DecisionHelper has consult_session 50 echo -ne " DecisionHelper.consult_session... " 51 TOTAL=$((TOTAL + 1)) 52 if grep -q "def consult_session" "$PROJECT_ROOT/apps/echo_shared/lib/echo_shared/llm/decision_helper.ex"; then 53 echo -e "${GREEN}✓${NC}" 54 PASSED=$((PASSED + 1)) 55 else 56 echo -e "${RED}✗${NC}" 57 FAILED=$((FAILED + 1)) 58 fi 59 60 # Check Application starts Session 61 echo -ne " Application supervision... " 62 TOTAL=$((TOTAL + 1)) 63 if grep -q "EchoShared.LLM.Session" "$PROJECT_ROOT/apps/echo_shared/lib/echo_shared/application.ex"; then 64 echo -e "${GREEN}✓${NC}" 65 PASSED=$((PASSED + 1)) 66 else 67 echo -e "${RED}✗${NC}" 68 FAILED=$((FAILED + 1)) 69 fi 70 71 echo "" 72 echo -e "${BLUE}Phase 2: Checking All 9 Agents${NC}" 73 echo "" 74 75 AGENTS=("ceo" "cto" "chro" "operations_head" "product_manager" "senior_architect" "uiux_engineer" "senior_developer" "test_lead") 76 77 for agent in "${AGENTS[@]}"; do 78 echo -ne " $agent... " 79 TOTAL=$((TOTAL + 1)) 80 81 # Check tool definition exists 82 if grep -q '"session_consult"' "$PROJECT_ROOT/apps/$agent/lib/$agent.ex"; then 83 # Check execute handler exists 84 if grep -q 'def execute_tool("session_consult"' "$PROJECT_ROOT/apps/$agent/lib/$agent.ex"; then 85 # Check helper function exists 86 if grep -q 'defp format_session_response' "$PROJECT_ROOT/apps/$agent/lib/$agent.ex"; then 87 echo -e "${GREEN}✓${NC} (tool + handler + helper)" 88 PASSED=$((PASSED + 1)) 89 else 90 echo -e "${RED}✗${NC} (missing helper)" 91 FAILED=$((FAILED + 1)) 92 fi 93 else 94 echo -e "${RED}✗${NC} (missing handler)" 95 FAILED=$((FAILED + 1)) 96 fi 97 else 98 echo -e "${RED}✗${NC} (missing tool)" 99 FAILED=$((FAILED + 1)) 100 fi 101 done 102 103 echo "" 104 echo -e "${BLUE}Phase 3: Compilation Check${NC}" 105 echo "" 106 107 echo -ne " Shared library compiles... " 108 TOTAL=$((TOTAL + 1)) 109 if (cd "$PROJECT_ROOT/apps/echo_shared" && mix compile > /dev/null 2>&1); then 110 echo -e "${GREEN}✓${NC}" 111 PASSED=$((PASSED + 1)) 112 else 113 echo -e "${RED}✗${NC}" 114 FAILED=$((FAILED + 1)) 115 fi 116 117 echo -ne " All agents compile... " 118 COMPILE_OK=0 119 for agent in "${AGENTS[@]}"; do 120 if ! (cd "$PROJECT_ROOT/apps/$agent" && mix compile > /dev/null 2>&1); then 121 echo -e "${RED}✗${NC} ($agent failed)" 122 COMPILE_OK=1 123 break 124 fi 125 done 126 127 TOTAL=$((TOTAL + 1)) 128 if [ $COMPILE_OK -eq 0 ]; then 129 echo -e "${GREEN}✓${NC}" 130 PASSED=$((PASSED + 1)) 131 else 132 FAILED=$((FAILED + 1)) 133 fi 134 135 echo "" 136 echo -e "${BLUE}Phase 4: Configuration Check${NC}" 137 echo "" 138 139 echo -ne " LLM session config... " 140 TOTAL=$((TOTAL + 1)) 141 if grep -q ":llm_session" "$PROJECT_ROOT/apps/echo_shared/config/dev.exs"; then 142 echo -e "${GREEN}✓${NC}" 143 PASSED=$((PASSED + 1)) 144 else 145 echo -e "${RED}✗${NC}" 146 FAILED=$((FAILED + 1)) 147 fi 148 149 echo -ne " Agent models config... " 150 TOTAL=$((TOTAL + 1)) 151 if grep -q ":agent_models" "$PROJECT_ROOT/apps/echo_shared/config/dev.exs"; then 152 echo -e "${GREEN}✓${NC}" 153 PASSED=$((PASSED + 1)) 154 else 155 echo -e "${RED}✗${NC}" 156 FAILED=$((FAILED + 1)) 157 fi 158 159 # Summary 160 echo "" 161 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 162 PERCENT=$((PASSED * 100 / TOTAL)) 163 echo -e "${BLUE}Results: ${GREEN}$PASSED/$TOTAL passed${NC} (${PERCENT}%)" 164 echo -e "${CYAN}════════════════════════════════════════════════${NC}" 165 echo "" 166 167 if [ $FAILED -eq 0 ]; then 168 echo -e "${GREEN}🎉 SUCCESS! Session consult fully integrated!${NC}" 169 echo "" 170 echo -e "${CYAN}Integration complete:${NC}" 171 echo -e " ✓ Shared library modules" 172 echo -e " ✓ All 9 agents updated" 173 echo -e " ✓ Everything compiles" 174 echo -e " ✓ Configuration set" 175 echo "" 176 echo -e "${BLUE}Next steps:${NC}" 177 echo -e " • Test with: cd apps/ceo && iex -S mix" 178 echo -e " • Then run: EchoShared.LLM.DecisionHelper.consult_session(:ceo, nil, \"Test\")" 179 echo "" 180 exit 0 181 else 182 echo -e "${RED}⚠️ $FAILED/$TOTAL checks failed${NC}" 183 echo "" 184 exit 1 185 fi