name: Check Extensions

on:
  pull_request:
    branches: ["*"]
  push:
    branches: ["main", "master"]

jobs:
  validate-claude-code:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"

      - name: Install Claude Code CLI
        run: npm install -g @anthropic-ai/claude-code

      - name: Validate all plugins with Claude Code
        run: |
          failed=0
          for plugin_dir in plugins/*/; do
            if [ -d "${plugin_dir}.plugin" ]; then
              echo "Validating ${plugin_dir}..."
              if ! claude plugin validate "${plugin_dir}"; then
                echo "❌ Validation failed for ${plugin_dir}"
                failed=1
              else
                echo "✅ ${plugin_dir} is valid"
              fi
            fi
          done
          if [ "$failed" -ne 0 ]; then
            echo "::error::One or more plugins failed Claude Code validation"
            exit 1
          fi

  sync-extensions:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Install dependencies
        run: pip install pyyaml

      - name: Check extensions are in sync
        run: python scripts/sync_extensions.py --check

  sync-sdk-skill:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Check SDK skill is up to date
        run: python scripts/sync_openhands_sdk_skill.py --check
