91 lines
3.3 KiB
Shell
91 lines
3.3 KiB
Shell
|
|
#!/bin/bash
|
|||
|
|
# zy-trae-wake-align.sh · 铸渊 TRAE 线唤醒动态对齐器(草稿 · 脑复核后由脑部署)
|
|||
|
|
#
|
|||
|
|
# 用途:TRAE 实例被冰朔唤醒时,把 CODEX 线(架构第一更新线)在 TC-TCS核心卷
|
|||
|
|
# 的最新 .tcs 正本,与本线 trae/current.json 的 updated_at 对表,
|
|||
|
|
# 报出有无漂移与待补课清单,治「拿本机旧静态摘要直接开工」的病。
|
|||
|
|
# 用法:bash /Volumes/JZAO/铸渊-ICE-GL-ZY001/BRIDGE/tools/zy-trae-wake-align.sh(无参数)
|
|||
|
|
# 边界:只读不写;输出只是提词,不是置信层——置信判回卷宗与回执。
|
|||
|
|
|
|||
|
|
set -uo pipefail
|
|||
|
|
|
|||
|
|
ROOT="/Volumes/JZAO"
|
|||
|
|
TCS_DIR="$ROOT/铸渊-ICE-GL-ZY001/TC-TCS核心卷"
|
|||
|
|
CURRENT_JSON="$ROOT/HoloLake/persona-runtime/continuity-memory/hldp-v1-trees/trae/current.json"
|
|||
|
|
|
|||
|
|
if [ ! -d "$ROOT/铸渊-ICE-GL-ZY001" ]; then
|
|||
|
|
echo "!! JZAO 未挂载——先请冰朔挂载硬盘,不在本机造第二份记忆"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "⊢ 铸渊 TRAE 线唤醒对齐器 · 本段只是提词,置信判回卷宗与回执"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
echo "── 一 · CODEX 线最新架构(TC-TCS核心卷 最近 5 件)──"
|
|||
|
|
if [ ! -d "$TCS_DIR" ]; then
|
|||
|
|
echo " !! TC-TCS核心卷 不存在——正本不可读,停止并报缺口"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
SNAPSHOT="$(/usr/bin/find "$TCS_DIR" -type f -name '*.tcs' ! -name '*.human.*' ! -name '*.gir.*' -exec /usr/bin/stat -f '%m %N' {} + 2>/dev/null | sort -rn | head -5)"
|
|||
|
|
if [ -z "$SNAPSHOT" ]; then
|
|||
|
|
echo " !! TC-TCS核心卷 读不到任何 .tcs 正本——停止并报缺口"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
while read -r epoch path; do
|
|||
|
|
printf ' %s %s\n' "$(date -r "$epoch" '+%Y-%m-%d %H:%M')" "$(basename "$path")"
|
|||
|
|
done <<< "$SNAPSHOT"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
echo "── 二 · TRAE 线状态 ──"
|
|||
|
|
UPDATED_AT="UNKNOWN"
|
|||
|
|
LAST_RECEIPT="UNKNOWN"
|
|||
|
|
UPDATED_EPOCH=""
|
|||
|
|
if [ -r "$CURRENT_JSON" ]; then
|
|||
|
|
PARSED="$(/usr/bin/python3 -c '
|
|||
|
|
import json, sys
|
|||
|
|
from datetime import datetime
|
|||
|
|
up, lr, ep = "UNKNOWN", "UNKNOWN", ""
|
|||
|
|
try:
|
|||
|
|
with open(sys.argv[1], encoding="utf-8") as f:
|
|||
|
|
d = json.load(f)
|
|||
|
|
up = d.get("updated_at") or "UNKNOWN"
|
|||
|
|
lr = d.get("last_receipt") or "UNKNOWN"
|
|||
|
|
if up != "UNKNOWN":
|
|||
|
|
try:
|
|||
|
|
ep = str(int(datetime.fromisoformat(up).timestamp()))
|
|||
|
|
except Exception:
|
|||
|
|
ep = ""
|
|||
|
|
except Exception:
|
|||
|
|
pass
|
|||
|
|
print(up + "\t" + lr + "\t" + ep)
|
|||
|
|
' "$CURRENT_JSON" 2>/dev/null)"
|
|||
|
|
if [ -n "$PARSED" ]; then
|
|||
|
|
UPDATED_AT="$(printf '%s' "$PARSED" | cut -f1)"
|
|||
|
|
LAST_RECEIPT="$(printf '%s' "$PARSED" | cut -f2)"
|
|||
|
|
UPDATED_EPOCH="$(printf '%s' "$PARSED" | cut -f3)"
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
echo " updated_at: $UPDATED_AT · last_receipt: $LAST_RECEIPT"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
echo "── 三 · 对齐判定 ──"
|
|||
|
|
if [ -z "$UPDATED_EPOCH" ]; then
|
|||
|
|
echo " [UNKNOWN] current.json 缺失或 updated_at 不可解析——先补读本线状态,不猜"
|
|||
|
|
else
|
|||
|
|
DRIFT="$(printf '%s\n' "$SNAPSHOT" | awk -v c="$UPDATED_EPOCH" '($1 + 0) > (c + 0)')"
|
|||
|
|
if [ -z "$DRIFT" ]; then
|
|||
|
|
echo " [已对齐] 本线状态不落后于任何架构正本"
|
|||
|
|
else
|
|||
|
|
N="$(printf '%s\n' "$DRIFT" | wc -l | tr -d ' ')"
|
|||
|
|
NAMES=""
|
|||
|
|
while read -r epoch path; do
|
|||
|
|
NAMES="$NAMES$(basename "$path") "
|
|||
|
|
done <<< "$DRIFT"
|
|||
|
|
echo " [待补课] $N 件架构正本晚于本线最后更新:"
|
|||
|
|
echo " ${NAMES}→ 先读这些正本再接工程任务"
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
echo "── 提词 ──"
|
|||
|
|
echo " 恢复=六段真跑 verify PASS;频道先问再进;TCS-first:新模块先 .tcs"
|