feat(wrapper): 新增無 Hook CLI 的包裝啟動器與日誌回填
What:新增 tools/jsc-wrap.sh 包裝啟動器與 tools/scan-logs.sh 離線日誌回填腳本。 Why:copilot、antigravity 沒有 hook 系統,計時與技能用量原本完全缺漏,需要 hook 之外的落地方案。 How:jsc-wrap.sh 匯出 JSC_CLI 與 JSC_SESSION_ID,啟動前後各呼叫一次 session-timer.sh,結束時自動執行 scan-logs.sh 並原樣傳遞子行程退出碼;scan-logs.sh 解析 copilot、antigravity、codex 的原生日誌,把技能用量與階段界線補進 $JSC_HOME,重掃不產生重複記錄。 Who:無 hook 系統的 CLI(copilot、antigravity)與僅有 notify 的 codex,資料供 jsc-log:worklog 與 jsc-log:stats 使用。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env sh
|
||||
# jsc-wrap.sh — 無 hook 系統 CLI 的包裝啟動器(例:copilot、antigravity)。
|
||||
# 用法: jsc-wrap.sh {cli} [args...]
|
||||
# 行為: 匯出 JSC_CLI 與 JSC_SESSION_ID → session-timer start → 執行 CLI →
|
||||
# 結束後 session-timer mark 並以 scan-logs.sh 回填用量,最後回傳 CLI 的結束碼。
|
||||
HERE=$(cd "$(dirname "$0")" && pwd)
|
||||
HOOKS="$HERE/../hooks"
|
||||
cli="${1:-}"
|
||||
if [ -z "$cli" ]; then
|
||||
echo "用法:jsc-wrap.sh {cli} [args...]" >&2
|
||||
exit 2
|
||||
fi
|
||||
shift
|
||||
JSC_CLI="$cli"
|
||||
# 未提供 session id 就自動產生({cli}-時間戳-PID),讓計時與用量共用同一個 session
|
||||
[ -n "${JSC_SESSION_ID:-}" ] || JSC_SESSION_ID="$cli-$(date +%Y%m%d%H%M%S)-$$"
|
||||
export JSC_CLI JSC_SESSION_ID
|
||||
sh "$HOOKS/session-timer.sh" start </dev/null
|
||||
"$cli" "$@"
|
||||
rc=$?
|
||||
# 收尾:補記結束時間,並從原生日誌回填技能用量
|
||||
sh "$HOOKS/session-timer.sh" mark </dev/null
|
||||
sh "$HERE/scan-logs.sh" --cli "$cli" --session "$JSC_SESSION_ID" </dev/null || true
|
||||
exit "$rc"
|
||||
Reference in New Issue
Block a user