Write native agent rules during setup
This commit is contained in:
@@ -68,13 +68,15 @@ exec bash
|
||||
- Kimi config пишется в `${KIMI_CODE_HOME:-$HOME/.kimi-code}/config.toml`.
|
||||
- Глобальные правила пишутся в `~/.config/ai-setup/global_rules.md`.
|
||||
|
||||
При запуске лаунчеры вызывают helper `_build_ai_sys_prompt`. Он обновляет native rule-файлы:
|
||||
При запуске `ai-setup.sh` сразу обновляются native rule-файлы:
|
||||
|
||||
- `~/.codex/AGENTS.md`
|
||||
- `~/.kimi-code/AGENTS.md`
|
||||
- `~/.claude/CLAUDE.md`
|
||||
- `~/.gemini/GEMINI.md`
|
||||
|
||||
Лаунчеры дополнительно обновляют эти файлы через helper `_build_ai_sys_prompt` при своём запуске.
|
||||
|
||||
В native rule-файлы попадают только глобальные правила. Полный prompt с проектными `.md` используется в `ai-claude`, `ai-deepseek` и `ai-gemini`; `ai-gpt` и `ai-kimi` полагаются на native rule-файлы своих CLI.
|
||||
|
||||
## Права запуска агентов
|
||||
|
||||
34
ai-setup.sh
34
ai-setup.sh
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================
|
||||
# Claude Code Setup — GPT-5.5 / DeepSeek / Kimi / Gemini
|
||||
# Claude Code Setup - GPT-5.5 / DeepSeek / Kimi / Gemini
|
||||
# Запуск: bash ai-setup.sh
|
||||
# ============================================================
|
||||
|
||||
@@ -112,7 +112,7 @@ cat > "$EFFORT_PROXY_BIN" << 'PYEOF'
|
||||
"""Effort mapping proxy for GPT backend.
|
||||
|
||||
claude-code-proxy now accepts: low, medium, high, max (no "xhigh").
|
||||
Claude Code may send "xhigh" effort — we map it to "high".
|
||||
Claude Code may send "xhigh" effort - we map it to "high".
|
||||
"""
|
||||
import http.client, http.server, sys, logging, socketserver
|
||||
|
||||
@@ -127,7 +127,7 @@ logging.basicConfig(
|
||||
)
|
||||
log = logging.getLogger("effort-proxy")
|
||||
|
||||
# Потокобезопасный сервер — обрабатывает несколько запросов одновременно
|
||||
# Потокобезопасный сервер - обрабатывает несколько запросов одновременно
|
||||
class _ThreadedServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
|
||||
daemon_threads = True
|
||||
|
||||
@@ -274,13 +274,21 @@ The rules below are mandatory for every interaction and task. They are intention
|
||||
All changes must remain visible to the user through the standard `git diff` command. Leave modified files in the working directory unstaged. Do not add files to the Git index with `git add` unless the user explicitly asks for staging, committing, or another action that requires staging, because staging hides changes from plain `git diff`.
|
||||
|
||||
4. **Typography:**
|
||||
Always use the regular hyphen-minus (`-`) instead of an em dash (`—`).
|
||||
Always use the regular hyphen-minus (`-`) instead of long dash characters.
|
||||
|
||||
5. **Project context:**
|
||||
At the start of work, pay close attention to all provided project `.md` files, because they are provided automatically and contain the current repository's context and specifics.
|
||||
RULESEOF
|
||||
success "Глобальные правила обновлены: $CONFIG_DIR/global_rules.md"
|
||||
|
||||
info "Обновляю native rule-файлы агентов..."
|
||||
mkdir -p "$HOME/.codex" "$HOME/.kimi-code" "$HOME/.claude" "$HOME/.gemini"
|
||||
cp "$CONFIG_DIR/global_rules.md" "$HOME/.codex/AGENTS.md"
|
||||
cp "$CONFIG_DIR/global_rules.md" "$HOME/.kimi-code/AGENTS.md"
|
||||
cp "$CONFIG_DIR/global_rules.md" "$HOME/.claude/CLAUDE.md"
|
||||
cp "$CONFIG_DIR/global_rules.md" "$HOME/.gemini/GEMINI.md"
|
||||
success "Native rule-файлы обновлены"
|
||||
|
||||
# ── 7. Очистка старых функций из .bashrc / .zshrc ───────────
|
||||
clean_rc() {
|
||||
local rc_file="$1"
|
||||
@@ -519,7 +527,7 @@ chmod +x "$HELPERS_FILE"
|
||||
# === ai-gpt ===
|
||||
cat > "$BIN_DIR/ai-gpt" << 'GPTEOF'
|
||||
#!/usr/bin/env bash
|
||||
# ai-gpt — запуск нативного OpenAI Codex
|
||||
# ai-gpt - запуск нативного OpenAI Codex
|
||||
source "$HOME/.local/bin/ai-api-helpers.sh" 2>/dev/null || true
|
||||
|
||||
codex_bin="$HOME/.npm-global/bin/codex"
|
||||
@@ -616,7 +624,7 @@ chmod +x "$BIN_DIR/ai-deepseek"
|
||||
# === ai-kimi ===
|
||||
cat > "$BIN_DIR/ai-kimi" << 'KIMIEOF'
|
||||
#!/usr/bin/env bash
|
||||
# ai-kimi — запуск нативного Kimi Code через Artemox API
|
||||
# ai-kimi - запуск нативного Kimi Code через Artemox API
|
||||
|
||||
source "$HOME/.local/bin/ai-api-helpers.sh" 2>/dev/null || true
|
||||
|
||||
@@ -799,7 +807,7 @@ chmod +x "$BIN_DIR/ai-kimi"
|
||||
cat > "$BIN_DIR/ai-gemini" << 'GEMINIEOF'
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================
|
||||
# ai-gemini — запуск нативного antigravity CLI (agy)
|
||||
# ai-gemini - запуск нативного antigravity CLI (agy)
|
||||
# ============================================================
|
||||
|
||||
agy_bin="$HOME/.local/bin/agy"
|
||||
@@ -840,7 +848,7 @@ chmod +x "$BIN_DIR/ai-gemini"
|
||||
# === ai-claude ===
|
||||
cat > "$BIN_DIR/ai-claude" << 'CLAUDEEOF'
|
||||
#!/usr/bin/env bash
|
||||
# ai-claude — запуск оригинального Claude Code (Anthropic)
|
||||
# ai-claude - запуск оригинального Claude Code (Anthropic)
|
||||
source "$HOME/.local/bin/ai-api-helpers.sh" 2>/dev/null || true
|
||||
SYS_PROMPT=$(_build_ai_sys_prompt)
|
||||
exec claude --dangerously-skip-permissions --system-prompt "$SYS_PROMPT" "$@"
|
||||
@@ -859,11 +867,11 @@ echo -e "${GREEN} Установка завершена!${NC}"
|
||||
echo -e "${GREEN}════════════════════════════════════════════════════${NC}"
|
||||
echo ""
|
||||
echo "Доступные команды (теперь это независимые скрипты в ~/.local/bin):"
|
||||
echo -e " ${CYAN}ai-claude${NC} — Оригинальный Claude Code (Anthropic)"
|
||||
echo -e " ${CYAN}ai-gpt${NC} — OpenAI Codex (нативный CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-deepseek${NC} — DeepSeek (API ключ сохраняется)"
|
||||
echo -e " ${CYAN}ai-kimi${NC} — Kimi K2.6 (нативный CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-gemini${NC} — Gemini (нативный agy CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-claude${NC} - Оригинальный Claude Code (Anthropic)"
|
||||
echo -e " ${CYAN}ai-gpt${NC} - OpenAI Codex (нативный CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-deepseek${NC} - DeepSeek (API ключ сохраняется)"
|
||||
echo -e " ${CYAN}ai-kimi${NC} - Kimi K2.6 (нативный CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-gemini${NC} - Gemini (нативный agy CLI, автоустановка)"
|
||||
echo ""
|
||||
echo -e "${YELLOW}⚠️ Для Gemini используйте отдельный Google-аккаунт!${NC}"
|
||||
echo ""
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# tests/test_fixes.sh — unit tests for code-review fixes in ai-setup.sh
|
||||
# tests/test_fixes.sh - unit tests for code-review fixes in ai-setup.sh
|
||||
# Run: bash tests/test_fixes.sh
|
||||
|
||||
set -euo pipefail
|
||||
@@ -89,14 +89,18 @@ test_global_rules_include_quality_guidelines() {
|
||||
}
|
||||
|
||||
test_native_rule_files_generated() {
|
||||
if echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.codex/AGENTS.md"' \
|
||||
if grep -q 'cp "$CONFIG_DIR/global_rules.md" "$HOME/.codex/AGENTS.md"' "$SCRIPT" \
|
||||
&& grep -q 'cp "$CONFIG_DIR/global_rules.md" "$HOME/.kimi-code/AGENTS.md"' "$SCRIPT" \
|
||||
&& grep -q 'cp "$CONFIG_DIR/global_rules.md" "$HOME/.claude/CLAUDE.md"' "$SCRIPT" \
|
||||
&& grep -q 'cp "$CONFIG_DIR/global_rules.md" "$HOME/.gemini/GEMINI.md"' "$SCRIPT" \
|
||||
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.codex/AGENTS.md"' \
|
||||
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.kimi-code/AGENTS.md"' \
|
||||
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.claude/CLAUDE.md"' \
|
||||
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.gemini/GEMINI.md"' \
|
||||
&& ! echo "$HELPERS_SECTION" | grep -q 'echo "$rendered" >'; then
|
||||
ok "global rules: native rule files contain only global_rules.md"
|
||||
ok "global rules: setup and launchers write native rule files from global_rules.md"
|
||||
else
|
||||
fail "global rules: native rule files must not include project prompt render"
|
||||
fail "global rules: setup and launchers must write native rule files from global_rules.md"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user