/ scripts / testing / verify_session_integration.sh
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