Add AI profiles and harness adapters (claude-code, codex, opencode, native)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QKxGW1raAWaqeU8WdHsMsp
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
# omarchy:summary=Create an AI profile binding a harness, provider, and model
|
||||
# omarchy:args=<name> <harness> <provider> <model|default-coding|fast>
|
||||
# omarchy:examples=omarchycn ai profile create work claude-code deepseek default-coding
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source "$OMARCHY_PATH/cn/lib/ai.sh"
|
||||
|
||||
name="${1:?usage: omarchycn ai profile create <name> <harness> <provider> <model>}"
|
||||
harness="${2:?missing harness}"
|
||||
provider="${3:?missing provider}"
|
||||
model="${4:?missing model}"
|
||||
|
||||
if [[ ! $name =~ ^[a-z0-9-]+$ ]]; then
|
||||
echo "Profile name must be lowercase alphanumeric/dashes: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cn_ai_harness_field "$harness" command > /dev/null || {
|
||||
echo "Unknown harness: $harness (known: $(cn_ai_harness_ids | tr '\n' ' '))" >&2
|
||||
exit 1
|
||||
}
|
||||
jq -e --arg p "$provider" '.providers[$p]' "$CN_AI_PROVIDERS" > /dev/null || {
|
||||
echo "Unknown provider: $provider (known: $(cn_ai_provider_ids | tr '\n' ' '))" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
level=$(cn_ai_combo_level "$harness" "$provider")
|
||||
if [[ $level == "unsupported" ]]; then
|
||||
echo "Combo $harness x $provider is not in the compatibility matrix" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
resolved=$(cn_ai_model_by_alias "$provider" "$model" 2>/dev/null || true)
|
||||
if [[ -n $resolved ]]; then
|
||||
model="$resolved"
|
||||
elif ! cn_ai_models "$provider" | grep -qxF "$model"; then
|
||||
echo "Unknown model for $provider: $model" >&2
|
||||
echo "Available: $(cn_ai_models "$provider" | tr '\n' ' ')" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$CN_AI_PROFILE_DIR"
|
||||
cat > "$CN_AI_PROFILE_DIR/$name.toml" <<EOF
|
||||
schema_version = 1
|
||||
name = "$name"
|
||||
harness = "$harness"
|
||||
provider = "$provider"
|
||||
model = "$model"
|
||||
secret_ref = "omarchycn://ai/$provider"
|
||||
EOF
|
||||
|
||||
echo "Profile $name: $harness x $provider x $model (compat: $level)"
|
||||
if ! omarchy-cn-ai-secret get "$provider" > /dev/null 2>&1; then
|
||||
echo "提示: 尚未存储 $provider 的 API Key,运行: omarchycn ai secret set $provider"
|
||||
fi
|
||||
Reference in New Issue
Block a user