← back to Daily Reporting

send-report-to-steve.sh

124 lines

#!/bin/bash
###############################################################################
# Send Daily Report to Steve via #claude-to-steve
#
# This script runs the daily report and sends it to Steve using the
# existing DW-MCP dm-user.js Slack Bot API integration
###############################################################################

set -e

REPORT_TYPE="${1:-morning}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DW_MCP_DIR="/root/Projects/Designer-Wallcoverings/DW-MCP"

echo "========================================"
echo "📊 Daily Report to Steve - $REPORT_TYPE"
echo "========================================"
echo ""

# Step 1: Generate the report and save to file
echo "1️⃣ Generating $REPORT_TYPE report..."
cd "$SCRIPT_DIR"
export REPORTS_DIR="/root/DW-Agents/reports"
/root/DW-Agents/node_modules/.bin/tsx daily-report-runner.ts "$REPORT_TYPE" 2>&1 | tee /tmp/daily-report-$REPORT_TYPE.log

# Get the most recent report file
LATEST_REPORT=$(ls -t /root/DW-Agents/reports/$REPORT_TYPE-report-*.json 2>/dev/null | head -1)

if [ -z "$LATEST_REPORT" ]; then
  echo "❌ Error: No report file generated"
  exit 1
fi

echo "✅ Report generated: $LATEST_REPORT"
echo ""

# Step 2: Extract summary from report
echo "2️⃣ Extracting report summary..."

SYSTEM_HEALTH=$(jq -r '.executiveSummary.systemHealth' "$LATEST_REPORT")
AGENTS_ONLINE=$(jq -r '.executiveSummary.agentsOnline' "$LATEST_REPORT")
TOTAL_AGENTS=$(jq -r '.executiveSummary.totalAgents' "$LATEST_REPORT")
CRITICAL_ISSUES=$(jq -r '.executiveSummary.criticalIssues' "$LATEST_REPORT")
TASKS_COMPLETED=$(jq -r '.executiveSummary.tasksCompletedToday' "$LATEST_REPORT")
QNA_READINESS=$(jq -r '.qnaStatus.overallReadiness' "$LATEST_REPORT")

# Get current date/time
REPORT_TIME=$(date '+%A, %B %d, %Y at %I:%M %p')

# Build the Slack message
if [ "$REPORT_TYPE" == "morning" ]; then
  EMOJI="☀️"
  TITLE="MORNING STANDUP REPORT"
else
  EMOJI="🌙"
  TITLE="END-OF-DAY SUMMARY REPORT"
fi

MESSAGE="$EMOJI *$TITLE*
$REPORT_TIME

*📊 EXECUTIVE SUMMARY*
• System Health: *${SYSTEM_HEALTH}%*
• Agents Online: *${AGENTS_ONLINE}/${TOTAL_AGENTS}*
• Tasks Completed Today: *${TASKS_COMPLETED}*
• Critical Issues: *${CRITICAL_ISSUES}*
• Q&A Readiness: *${QNA_READINESS}%*

*🎯 KEY HIGHLIGHTS*"

# Add top 3 highlights
HIGHLIGHT_COUNT=0
for i in 0 1 2; do
  HIGHLIGHT=$(jq -r ".executiveSummary.keyHighlights[$i] // empty" "$LATEST_REPORT")
  if [ -n "$HIGHLIGHT" ]; then
    MESSAGE="$MESSAGE
• $HIGHLIGHT"
    HIGHLIGHT_COUNT=$((HIGHLIGHT_COUNT + 1))
  fi
done

# Add critical issues if any
if [ "$CRITICAL_ISSUES" -gt 0 ]; then
  MESSAGE="$MESSAGE

*🚨 ISSUES REQUIRING ATTENTION*"

  for i in 0 1 2; do
    ISSUE_AGENT=$(jq -r ".issuesRequiringAttention[$i].agent // empty" "$LATEST_REPORT")
    ISSUE_TEXT=$(jq -r ".issuesRequiringAttention[$i].issue // empty" "$LATEST_REPORT")
    ISSUE_SEVERITY=$(jq -r ".issuesRequiringAttention[$i].severity // empty" "$LATEST_REPORT")

    if [ -n "$ISSUE_AGENT" ] && [ -n "$ISSUE_TEXT" ]; then
      MESSAGE="$MESSAGE
• [$ISSUE_SEVERITY] $ISSUE_AGENT: $ISSUE_TEXT"
    fi
  done
fi

MESSAGE="$MESSAGE

📁 Full report saved to: \`$(basename $LATEST_REPORT)\`
🌐 Dashboard: http://45.61.58.125:9893"

echo "✅ Message prepared"
echo ""

# Step 3: Send to Steve via dm-user.js
echo "3️⃣ Sending to Steve via #claude-to-steve..."

cd "$DW_MCP_DIR"
node dm-user.js "steve" "$MESSAGE"

if [ $? -eq 0 ]; then
  echo ""
  echo "✅ Report successfully sent to Steve!"
  echo "========================================"
else
  echo ""
  echo "❌ Failed to send report to Steve"
  echo "========================================"
  exit 1
fi