#!/bin/bash
# omarchy:summary=Interactive wizard: pick harness, provider, model, store key, test
# omarchy:examples=omarchycn ai setup

set -euo pipefail

source "$OMARCHY_PATH/cn/lib/ai.sh"

if [[ ! -t 0 ]]; then
  echo "omarchycn ai setup 需要交互终端；非交互场景用 omarchycn ai profile create" >&2
  exit 1
fi

harness=$(cn_ai_harness_ids | gum choose --header "选择 Harness")

mapfile -t providers < <(jq -r --arg h "$harness" '.combos[$h] | keys[]' "$CN_AI_COMPAT")
if (( ${#providers[@]} == 0 )); then
  echo "兼容矩阵中没有 $harness 的 Provider 组合" >&2
  exit 1
fi
provider=$(printf '%s\n' "${providers[@]}" | gum choose --header "选择 Provider（兼容级别见 docs）")

allowlist=$(cn_ai_combo_models "$harness" "$provider")
if [[ -n $allowlist ]]; then
  model=$(gum choose --header "选择模型" <<<"$allowlist")
else
  model=$(cn_ai_models "$provider" | gum choose --header "选择模型")
fi

default_name="$harness-$provider"
name=$(gum input --header "Profile 名称" --value "$default_name")

proto=$(cn_ai_harness_field "$harness" protocol)
if [[ $proto == "native" ]]; then
  omarchy-cn-ai-profile-create "$name" "$harness" "$provider" "$model"
  omarchy-cn-ai-profile-use "$name"
  echo "$harness 自管鉴权：首次启动时按其官方流程登录/配置"
  echo "完成。启动: omarchycn ai launch"
  exit 0
fi

if ! omarchy-cn-ai-secret get "$provider" > /dev/null 2>&1; then
  key=$(gum input --password --header "$provider API Key（获取: $(jq -r --arg p "$provider" '.providers[$p].key_url' "$CN_AI_PROVIDERS")）")
  printf '%s' "$key" | omarchy-cn-ai-secret set "$provider"
fi

omarchy-cn-ai-profile-create "$name" "$harness" "$provider" "$model"
omarchy-cn-ai-profile-use "$name"

if gum confirm "运行连接测试？"; then
  omarchy-cn-ai-test "$name"
fi

echo "完成。启动: omarchycn ai launch"
