Files
llm-wiki/scripts/runtime-context.sh
2026-07-12 21:26:08 +08:00

78 lines
1.6 KiB
Bash

#!/bin/bash
# 共享运行场景解析:供 install.sh 和 adapter-state.sh 复用
resolve_platform_skill_root() {
case "$1" in
claude)
printf '%s\n' "$HOME/.claude/skills"
;;
codex)
if [ -d "$HOME/.codex/skills" ] || [ ! -d "$HOME/.Codex/skills" ]; then
printf '%s\n' "$HOME/.codex/skills"
else
printf '%s\n' "$HOME/.Codex/skills"
fi
;;
openclaw)
printf '%s\n' "$HOME/.openclaw/skills"
;;
hermes)
printf '%s\n' "$HOME/.hermes/skills"
;;
*)
echo "不支持的平台:$1" >&2
return 1
;;
esac
}
detect_layout_mode() {
local bundle_root="$1"
if [ -e "$bundle_root/.git" ]; then
printf '%s\n' "source_checkout"
return 0
fi
printf '%s\n' "installed_skill"
}
resolve_layout_mode() {
local bundle_root="$1"
local override_mode="${2:-}"
if [ -n "$override_mode" ]; then
printf '%s\n' "$override_mode"
return 0
fi
detect_layout_mode "$bundle_root"
}
resolve_optional_adapter_root() {
local bundle_root="$1"
local skill_root_override="${2:-}"
local override_mode="${3:-}"
local layout_mode
if [ -n "$skill_root_override" ]; then
printf '%s\n' "$skill_root_override"
return 0
fi
layout_mode="$(resolve_layout_mode "$bundle_root" "$override_mode")"
case "$layout_mode" in
source_checkout)
printf '%s\n' "$bundle_root/deps"
;;
installed_skill|upgrade_target)
printf '%s\n' "$(dirname "$bundle_root")"
;;
*)
echo "未知运行模式:$layout_mode" >&2
return 1
;;
esac
}