import os
# どのシェル(cmd/PS7/関連付け起動)から呼ばれてもカレントを ac.py の置かれたフォルダに固定
# こうしないと相対パスの画像ファイルが見つからず、監視ループが空回りする
os.chdir(os.path.dirname(os.path.abspath(__file__)))

import pyautogui
import time
import sys

TARGET_IMAGES = [
    'accall2.png',
    'all2.png',
    'btn_accept_all.png',
    'btn_accept_changes.png',
    'btn_accept1.png',
    'btn_allow_this_conversation.png',
    'btn_retry.png',
    'btn_run.png',
    'run2.png',
    'vsCode_ClaudeCord_1.png',
    'vsCode_ClaudeCord_2.png',
    'vsCode_ClaudeCord_3.png',
    'yes1.png',
    'yes2.png',

]

print("==================================================")
print("Antigravity 自動承認＆進行スクリプト (厳格なカラー判定版)")
print("終了するにはこのウィンドウで Ctrl+C")
print("==================================================")

for img in TARGET_IMAGES:
    if os.path.exists(img):
        print(f"[OK] 監視対象として {img} を確認。")
    else:
        print(f"[無視] {img} はカレントディレクトリにありません。")

print("監視を開始します...")

try:
    while True:
        for image in TARGET_IMAGES:
            if not os.path.exists(image):
                continue
                
            try:
                # 色味や形が完全に一致（90%）しない限りクリックしない仕様。
                # 余計な背景や全く別のボタンでの誤爆（フォールスポジティブ）を防ぐ。
                loc = pyautogui.locateCenterOnScreen(image, confidence=0.9)
                if loc is not None:
                    print(f"[{time.strftime('%X')}] 検出成功: {image} -> クリック実行: {loc}")
                    pyautogui.click(loc)
                    
                    # 画面が遷移する時間を考慮し少し長めに休止
                    time.sleep(4)
            except pyautogui.ImageNotFoundException:
                pass
            except Exception as e:
                pass
                
        time.sleep(2)

except KeyboardInterrupt:
    print("\nシステムストップ。上キーで再入力され、エンターで再起動。")
    sys.exit()
