#!/bin/zsh
# Ollama コード生成スクリプト
# 使い方: 生成させたい内容をクリップボードにコピーしてからタスクを実行

MODEL="${OLLAMA_MODEL:-qwen2.5-coder:7b}"
OLLAMA_URL="${OLLAMA_URL:-http://localhost:11434}"

# Ollama 起動確認
if ! curl -s --connect-timeout 2 "$OLLAMA_URL/api/tags" > /dev/null 2>&1; then
    echo "❌ Ollama が起動していません。"
    echo "   ollama serve を実行してください。"
    exit 1
fi

# クリップボードからプロンプト取得
PROMPT=$(pbpaste)
if [ -z "$PROMPT" ]; then
    echo "❌ クリップボードが空です。"
    echo "   プロンプトをコピーしてから実行してください。"
    exit 1
fi

echo "🤖 モデル: $MODEL"
echo "📋 プロンプト:"
echo "$PROMPT"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""

# JSON エスケープ
ESCAPED=$(echo "$PROMPT" | python3 -c "
import sys, json
print(json.dumps(sys.stdin.read()))
")

# Ollama API 呼び出し
RESPONSE=$(curl -s "$OLLAMA_URL/api/generate" \
    -H "Content-Type: application/json" \
    -d "{\"model\":\"$MODEL\",\"prompt\":$ESCAPED,\"stream\":false}")

# レスポンス確認
if [ $? -ne 0 ]; then
    echo "❌ API呼び出し失敗"
    exit 1
fi

RESULT=$(echo "$RESPONSE" | python3 -c "
import sys, json
data = json.load(sys.stdin)
print(data.get('response', '(レスポンスなし)'))
")

echo "$RESULT"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

# クリップボードにコピー
echo "$RESULT" | pbcopy
echo "✅ 結果をクリップボードにコピーしました。"
