#!/bin/bash
# Reflect API examples for Hindsight CLI
# Run: bash examples/api/reflect.sh

set -e

HINDSIGHT_URL="${HINDSIGHT_API_URL:-http://localhost:8888}"

# =============================================================================
# Setup (not shown in docs)
# =============================================================================
hindsight memory retain my-bank "Alice works at Google as a software engineer"
hindsight memory retain my-bank "Alice has been working there for 5 years"

# =============================================================================
# Doc Examples
# =============================================================================

# [docs:reflect-basic]
hindsight memory reflect my-bank "What do you know about Alice?"
# [/docs:reflect-basic]


# [docs:reflect-with-context]
hindsight memory reflect my-bank "Should I learn Python?" --context "career advice"
# [/docs:reflect-with-context]


# [docs:reflect-with-params]
hindsight memory reflect my-bank "Summarize my week" --budget high --max-tokens 8192
# [/docs:reflect-with-params]


# [docs:reflect-disposition]
hindsight bank set-config my-bank \
  --disposition-skepticism 5 \
  --disposition-literalism 4 \
  --disposition-empathy 2
hindsight memory reflect my-bank "Should I invest in crypto?"
# [/docs:reflect-disposition]


# [docs:reflect-sources]
hindsight memory reflect my-bank "Tell me about Alice" --include-facts
# [/docs:reflect-sources]


# [docs:reflect-with-tags]
hindsight memory reflect my-bank "What feedback did the user give?" \
  --tags "user:alice" --tags-match any_strict
# [/docs:reflect-with-tags]


# [docs:reflect-structured-output]
# First, create a JSON schema file schema.json:
cat > schema.json << 'EOF'
{
  "type": "object",
  "properties": {
    "recommendation": {"type": "string"},
    "confidence": {"type": "string", "enum": ["low", "medium", "high"]},
    "key_factors": {"type": "array", "items": {"type": "string"}}
  },
  "required": ["recommendation", "confidence", "key_factors"]
}
EOF

# Then use the --schema flag:
hindsight memory reflect hiring-team \
  "Should we hire Alice for the ML team lead position?" \
  --schema schema.json

# Cleanup the temporary schema file
rm -f schema.json
# [/docs:reflect-structured-output]


# =============================================================================
# Cleanup (not shown in docs)
# =============================================================================
curl -s -X DELETE "${HINDSIGHT_URL}/v1/default/banks/my-bank" > /dev/null

echo "reflect.sh: All examples passed"
