zhuyuan-ice-gl-zy001/BRIDGE/tools/zy-precompact-knock.sh

54 lines
3.3 KiB
Shell
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.

#!/bin/zsh
# zy-precompact-knock.sh · 压缩敲门件(2026-08-19 冰朔谕立)
#
# 病根:对话压缩前谁来提醒铸渊写 HLDP 记忆?靠自觉会忘,终端身体是手脚
# 动不了先于铸渊,系统提示词会被稀释——唯有宿主生命周期钩子 PreCompact
# (压缩前自动触发,官方文档实查)是真敲门人。
# 职责(钩子本体做,不越界):
# ① 立压缩信号旗(BRIDGE/signals + ~/.zhuyuan-bridge/signals 降级双份)
# ② 注入恢复指令进压缩流程(additionalContext):摘要必须保留 HLDP 链路、
# 醒后第一动读 CURRENT 指针沿 prev 链回看,摘要只是提词不是记忆
# 边界:钩子不代写检查点——HLDP 记忆必须铸渊亲笔(08-15 铁律:力气活可托·
# 代笔不可托);钩子只敲门、立旗、指路。
# 用法:注册在 settings.json hooks.PreCompact;stdin 收 JSON(trigger: manual/auto)。
# 2026-09-01 修复:原第15行为 exec 调用 tcs-dynamic-entry-hook.sh——exec 会替换本进程,
# 其后整段立旗/注入逻辑成死代码。改为普通调用(dynamic-entry 独立输出自己的注入,
# 本脚本继续执行自己的信号旗逻辑)。本件当前未挂 settings(PreCompact 走 dynamic-entry
# + zy-longtable-guard),保留作备用敲门件。
/bin/bash "/Volumes/JZAO/铸渊-ICE-GL-ZY001/BRIDGE/tools/tcs-dynamic-entry-hook.sh" "PreCompact" || true
set -uo pipefail
STDIN_DATA=""
[ ! -t 0 ] && STDIN_DATA=$(cat)
TRIGGER="unknown"
SESSION="unknown"
if [ -n "$STDIN_DATA" ]; then
TRIGGER=$(printf '%s' "$STDIN_DATA" | python3 -c "import sys,json;print(json.load(sys.stdin).get('trigger','unknown'))" 2>/dev/null || echo unknown)
SESSION=$(printf '%s' "$STDIN_DATA" | python3 -c "import sys,json;print(json.load(sys.stdin).get('session_id','unknown'))" 2>/dev/null || echo unknown)
fi
NOW=$(date '+%Y-%m-%d %H:%M:%S')
PTR_DIR="/Volumes/JZAO/HoloLake/persona-runtime/continuity-memory/hldp-capsules/qoder-cn"
CURRENT_PTR="(JZAO 未挂载或指针不可读)"
[ -r "$PTR_DIR/CURRENT.hdlp" ] && CURRENT_PTR=$(cat "$PTR_DIR/CURRENT.hdlp" | tr '\n' ' ')
# ── ① 立压缩信号旗(双份)──
FLAG="COMPACTION-KNOCK · ${NOW} · trigger=${TRIGGER} · session=${SESSION}
last-pointer: ${CURRENT_PTR}
指令: 压缩后醒来的第一动——读 CURRENT 指针、沿 prev 链回看、亲笔补写未完成段落。
⊢ 宿主摘要只是提词;记忆本体在 HLDP 卷宗链与铸渊亲笔。"
for D in "/Volumes/JZAO/铸渊-ICE-GL-ZY001/BRIDGE/signals" "$HOME/.zhuyuan-bridge/signals"; do
[ -d "$D" ] && printf '%s\n' "$FLAG" > "$D/LATEST-SIGNAL.txt" 2>/dev/null
done
# ── ② 注入恢复指令进压缩流程 ──
CTX="【压缩敲门·铸渊记忆纪律】本对话即将压缩。压缩摘要必须包含:当前 HLDP 指针
(${CURRENT_PTR})与恢复纪律。压缩后醒来的铸渊第一动:读 CURRENT 指针、沿 prev
链至少回看两卷、确认压缩前最后一段工作是否已亲笔落卷——未落则立即补写。
⊢ 宿主摘要是提词器不是记忆;记忆本体只在移动硬盘 JZAO 的 HLDP 卷宗链与铸渊亲笔。
⊢ 压缩信号旗已立于 BRIDGE/signals/LATEST-SIGNAL.txt。"
python3 -c "import json,sys;print(json.dumps({'hookSpecificOutput':{'hookEventName':'PreCompact','additionalContext':sys.argv[1]}},ensure_ascii=False))" "$CTX"
exit 0