feat: добавить ai-opencode лаунчер (OpenCode Go + routatic-proxy)

- Новый лаунчер ai-opencode с routatic-proxy на 127.0.0.1:3456
- Автоустановка routatic-proxy под linux/darwin amd64/arm64
- Модели: deepseek-v4-pro (opus/sonnet), kimi-k2.6 (haiku)
- AI_RESET_KEY, OPENCODE_GO_API_KEY env fallback, управление opencode_key
- Документация: EFFORT_MAPPING.md, QUICK_START.md, README.md
- Статус-проверка в setup.sh: ai-opencode, opencode_key, opencode.ai
- Тесты: 4 новых теста для ai-opencode в test_fixes.sh

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Виталий Никитенко
2026-06-23 08:41:38 +03:00
parent cf0cd749e9
commit a74597dba6
6 changed files with 209 additions and 15 deletions

View File

@@ -177,7 +177,7 @@ case "$choice" in
echo ""
echo -e "${BLD}AI инструменты:${CLR}"
for cmd in ai-claude ai-gpt ai-deepseek ai-kimi ai-glm ai-openrouter ai-gemini android; do
for cmd in ai-claude ai-gpt ai-deepseek ai-kimi ai-glm ai-openrouter ai-opencode ai-gemini android; do
if command -v "$cmd" &>/dev/null; then
echo -e " ${GRN}${CLR} $cmd"
else
@@ -188,7 +188,7 @@ case "$choice" in
echo ""
echo -e "${BLD}API ключи:${CLR}"
cfg="$HOME/.config/ai-setup"
for f in deepseek_key kimi_key glm_key openrouter_key; do
for f in deepseek_key kimi_key glm_key openrouter_key opencode_key; do
name="${f/_key/}"
if [ -s "$cfg/$f" ]; then
echo -e " ${GRN}${CLR} $name"
@@ -199,7 +199,7 @@ case "$choice" in
echo ""
echo -e "${BLD}API доступность:${CLR}"
for entry in "Anthropic:api.anthropic.com" "DeepSeek:api.deepseek.com" "OpenAI:api.openai.com" "Kimi:api.kimi.com" "GLM:api.z.ai" "OpenRouter:openrouter.ai"; do
for entry in "Anthropic:api.anthropic.com" "DeepSeek:api.deepseek.com" "OpenAI:api.openai.com" "Kimi:api.kimi.com" "GLM:api.z.ai" "OpenRouter:openrouter.ai" "OpenCode:opencode.ai"; do
_name="${entry%%:*}"
_host="${entry##*:}"
_ms=$(curl -s -o /dev/null -w "%{time_connect}" --max-time 5 "https://$_host" 2>/dev/null)