Files
llm-wiki/scripts/hook-session-start.sh
2026-07-12 21:26:08 +08:00

47 lines
1.1 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# SessionStart hook: 会话开始时注入 wiki 上下文(只触发一次)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck disable=SC1091
source "$SCRIPT_DIR/shared-config.sh"
WIKI_PATH=""
if [ -f "$HOME/.llm-wiki-path" ]; then
WIKI_PATH="$(cat "$HOME/.llm-wiki-path")"
fi
if [ -z "$WIKI_PATH" ] && [ -f .wiki-schema.md ]; then
WIKI_PATH="$(pwd)"
fi
if [ -z "$WIKI_PATH" ] || [ ! -f "$WIKI_PATH/.wiki-schema.md" ]; then
printf '{}\n'
exit 0
fi
require_python_cmd
"$PYTHON_CMD" - "$WIKI_PATH" <<'PY'
import json
import os
import sys
# 防御性:即使上游 shared-config.sh 未设置 PYTHONIOENCODING
# 此处也强制 stdout 为 UTF-8,避免 Agent 接到 gbk 字节
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8")
wiki_path = os.path.realpath(sys.argv[1])
message = f"[llm-wiki] 检测到知识库: {wiki_path}/index.md,回答问题时优先查阅 wiki 内容获取上下文"
print(json.dumps({
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": message,
}
}, ensure_ascii=False))
PY