#!/usr/bin/env bash

npm_packages() {
  packages=(
    "@openai/codex"
    "@google/gemini-cli"
    "@iflow-ai/iflow-cli"
    "@qwen-code/qwen-code"
    "@tencent-ai/codebuddy-code"
    "@musistudio/claude-code-router"
  )

  echo
  for pkg in "${packages[@]}"; do
    echo
    echo "Installing $pkg..."
    npm install -g "$pkg"
  done
}

spec() {
  echo
  echo "Installing @fission-ai/openspec"
  npm install -g @fission-ai/openspec

  echo "Installing uv spec-kit"
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
}

binary_list() {
  urls=(
    "https://opencode.ai/install"
    "https://filetas.asfd.cn/claude.ai/install.sh"
  )

  echo
  for url in "${urls[@]}"; do
    echo
    echo "execute: curl -L fx4.cn/x | bash -s -- $url | bash"
    curl -L fx4.cn/x | bash -s -- "$url" | bash
  done
}

fix_tools_claude() {
  set -- ~/.claude/downloads/claude-*-linux-x64
  if [ -f "$1" ]; then
    if "$1" --version 2>/dev/null | grep -q "Claude"; then
      mv "$1" ~/.local/bin/claude
    fi
  fi
}

fix_tools() {
  // fix_tools_claude
  echo
}

main() {
  npm_packages
  spec
  binary_list
  fix_tools
}

main "$@"