mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-23 04:27:11 +00:00
Scripts to push discovery findings to the shared brain API and check status. https://claude.ai/code/session_01UWE22wnsZRSHKhT4h4Axby
116 lines
3.6 KiB
Bash
Executable file
116 lines
3.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# check_brain_status.sh - Query pi.ruv.io brain API status and recent discoveries
|
|
#
|
|
# Usage: ./scripts/check_brain_status.sh [search_query] [limit]
|
|
#
|
|
set -euo pipefail
|
|
|
|
BRAIN_API="https://pi.ruv.io"
|
|
SEARCH_QUERY="${1:-discovery}"
|
|
LIMIT="${2:-5}"
|
|
|
|
CYAN='\033[0;36m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
BOLD='\033[1m'
|
|
DIM='\033[2m'
|
|
NC='\033[0m'
|
|
|
|
# -------------------------------------------------------------------
|
|
# Dependency check
|
|
# -------------------------------------------------------------------
|
|
if ! command -v jq &>/dev/null; then
|
|
echo "jq is required. Install it with: sudo apt-get install jq" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# -------------------------------------------------------------------
|
|
# Brain status
|
|
# -------------------------------------------------------------------
|
|
echo ""
|
|
echo -e "${BOLD}=========================================="
|
|
echo " Brain Status - pi.ruv.io"
|
|
echo -e "==========================================${NC}"
|
|
echo ""
|
|
|
|
status_response=$(curl -sf --max-time 10 "${BRAIN_API}/v1/status" 2>/dev/null) || {
|
|
echo -e "${RED}Failed to reach ${BRAIN_API}/v1/status${NC}"
|
|
echo "The brain API may be temporarily unavailable."
|
|
echo ""
|
|
exit 1
|
|
}
|
|
|
|
# Display status fields -- handle various response shapes
|
|
echo -e "${CYAN}API Status:${NC}"
|
|
echo "$status_response" | jq -r '
|
|
to_entries[] |
|
|
" \(.key): \(.value)"
|
|
' 2>/dev/null || echo " $status_response"
|
|
|
|
echo ""
|
|
|
|
# -------------------------------------------------------------------
|
|
# Recent discoveries search
|
|
# -------------------------------------------------------------------
|
|
echo -e "${BOLD}------------------------------------------"
|
|
echo " Recent Discoveries (query: \"${SEARCH_QUERY}\", limit: ${LIMIT})"
|
|
echo -e "------------------------------------------${NC}"
|
|
echo ""
|
|
|
|
search_url="${BRAIN_API}/v1/memories/search?q=$(python3 -c "import urllib.parse; print(urllib.parse.quote('${SEARCH_QUERY}'))" 2>/dev/null || echo "${SEARCH_QUERY}")&limit=${LIMIT}"
|
|
|
|
search_response=$(curl -sf --max-time 10 "$search_url" 2>/dev/null) || {
|
|
echo -e "${YELLOW}Could not fetch discoveries from search endpoint.${NC}"
|
|
echo "Endpoint: ${search_url}"
|
|
echo ""
|
|
exit 0
|
|
}
|
|
|
|
# Count results
|
|
result_count=$(echo "$search_response" | jq '
|
|
if type == "array" then length
|
|
elif .memories then (.memories | length)
|
|
elif .results then (.results | length)
|
|
elif .data then (.data | length)
|
|
else 0
|
|
end
|
|
' 2>/dev/null || echo "0")
|
|
|
|
echo -e "${CYAN}Results found: ${result_count}${NC}"
|
|
echo ""
|
|
|
|
# Extract and display results -- try common response shapes
|
|
display_results() {
|
|
local data="$1"
|
|
|
|
# Normalize to array
|
|
local items
|
|
items=$(echo "$data" | jq -c '
|
|
if type == "array" then .
|
|
elif .memories then .memories
|
|
elif .results then .results
|
|
elif .data then .data
|
|
else [.]
|
|
end
|
|
' 2>/dev/null) || return
|
|
|
|
echo "$items" | jq -r '
|
|
.[] |
|
|
" \u001b[1m\(.title // .name // "Untitled")\u001b[0m",
|
|
" \u001b[2mCategory: \(.category // "N/A") | Tags: \(.tags // [] | join(", "))\u001b[0m",
|
|
" \(.content // .description // "No content" | if length > 120 then .[:120] + "..." else . end)",
|
|
""
|
|
' 2>/dev/null || echo " (Could not parse results)"
|
|
}
|
|
|
|
display_results "$search_response"
|
|
|
|
# -------------------------------------------------------------------
|
|
# Footer
|
|
# -------------------------------------------------------------------
|
|
echo -e "${DIM}------------------------------------------${NC}"
|
|
echo -e "${DIM} API: ${BRAIN_API}${NC}"
|
|
echo -e "${DIM} Time: $(date '+%Y-%m-%d %H:%M:%S %Z')${NC}"
|
|
echo ""
|