#!/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 回填用量、以 comment-scope.sh sweep # 掃一次整個工作區的註解範圍,最後回傳 CLI 的結束碼。 # 注意: JSC_CLI 存的是 CLI 代號(antigravity、kiro),實際執行的是 cli_bin 對應的 # 執行檔(agy、kiro-cli)。直接拿代號當指令跑會 127,因為沒有這兩個執行檔。 HERE=$(cd "$(dirname "$0")" && pwd) HOOKS="$HERE/../hooks" . "$HOOKS/lib.sh" cli="${1:-}" if [ -z "$cli" ]; then echo "用法:jsc-wrap.sh {cli} [args...]" >&2 exit 2 fi shift bin=$(cli_bin "$cli") 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