Files
log/tools/usage-stats.sh
T
2026-08-21 13:08:43 +08:00

33 lines
1.1 KiB
Bash
Executable File
Raw 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.
#!/usr/bin/env sh
# usage-stats.sh — 聚合 jsc-hooks 記錄的技能用量。
# 用法:
# usage-stats.sh skills [--cli <name>] # 每個 skill 的使用次數(降冪)
# usage-stats.sh chains [--cli <name>] # 每條 from -> to 呼叫鏈的次數(降冪)
# 資料: $JSC_HOME/usage/skills.jsonl、chains.jsonl(預設 $HOME/.jsc)
set -u
JSC_HOME="${JSC_HOME:-$HOME/.jsc}"
cmd="${1:?usage: usage-stats.sh skills|chains [--cli <name>]}"; shift
cli=""
while [ $# -gt 0 ]; do
case "$1" in
--cli) cli="${2:?--cli needs a value}"; shift 2 ;;
*) shift ;;
esac
done
by_cli() { # 依 --cli 過濾;未指定就原樣輸出
if [ -n "$cli" ]; then grep "\"cli\":\"$cli\""; else cat; fi
}
rank() { sort | uniq -c | sort -rn | sed 's/^ *\([0-9][0-9]*\) /\1\t/'; }
case "$cmd" in
skills)
f="$JSC_HOME/usage/skills.jsonl"; [ -f "$f" ] || exit 0
by_cli < "$f" | sed -n 's/.*"skill":"\([^"]*\)".*/\1/p' | rank ;;
chains)
f="$JSC_HOME/usage/chains.jsonl"; [ -f "$f" ] || exit 0
by_cli < "$f" | sed -n 's/.*"from":"\([^"]*\)".*"to":"\([^"]*\)".*/\1 -> \2/p' | rank ;;
*)
echo "unknown command: $cmd" >&2; exit 2 ;;
esac