AI default/tests: env-passed key, secure creation, harness install, isolated strict mocks

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QKxGW1raAWaqeU8WdHsMsp
This commit is contained in:
2026-08-24 20:58:35 -04:00
co-authored by Claude Fable 5
parent bc2a3c09db
commit bf0d2a4e2a
2 changed files with 44 additions and 13 deletions
+22 -11
View File
@@ -29,6 +29,13 @@ codex) agent="codex" ;;
;;
esac
command=$(cn_ai_harness_field "$harness" command)
if ! command -v "$command" > /dev/null 2>&1; then
install=$(cn_ai_harness_field "$harness" install)
echo "Installing $harness: $install"
$install
fi
key=$(omarchy-cn-ai-secret get "$provider")
case "$harness" in
@@ -44,17 +51,21 @@ claude-code)
current=$(cat "$settings")
cp "$settings" "$settings.omarchycn-bak-$(date +%Y%m%d-%H%M%S)"
fi
jq --arg base "$base" --arg key "$key" --arg model "$model" --arg fast "$fast" \
'.env = (.env // {}) + {
ANTHROPIC_BASE_URL: $base,
ANTHROPIC_AUTH_TOKEN: $key,
ANTHROPIC_API_KEY: $key,
ANTHROPIC_MODEL: $model,
ANTHROPIC_DEFAULT_SONNET_MODEL: $model,
ANTHROPIC_DEFAULT_OPUS_MODEL: $model,
ANTHROPIC_DEFAULT_HAIKU_MODEL: $fast
}' <<<"$current" > "$settings.omarchycn-new"
chmod 600 "$settings.omarchycn-new"
# Key reaches jq via environment, never the argument list
rm -f "$settings.omarchycn-new"
(
umask 077
CN_AI_KEY="$key" jq --arg base "$base" --arg model "$model" --arg fast "$fast" \
'.env = (.env // {}) + {
ANTHROPIC_BASE_URL: $base,
ANTHROPIC_AUTH_TOKEN: env.CN_AI_KEY,
ANTHROPIC_API_KEY: env.CN_AI_KEY,
ANTHROPIC_MODEL: $model,
ANTHROPIC_DEFAULT_SONNET_MODEL: $model,
ANTHROPIC_DEFAULT_OPUS_MODEL: $model,
ANTHROPIC_DEFAULT_HAIKU_MODEL: $fast
}' <<<"$current" > "$settings.omarchycn-new"
)
mv "$settings.omarchycn-new" "$settings"
;;
codex)