diff --git a/scripts/verify-openclaw-poc.sh b/scripts/verify-openclaw-poc.sh new file mode 100755 index 0000000..1c3bc04 --- /dev/null +++ b/scripts/verify-openclaw-poc.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ $# -lt 2 ]]; then + echo "usage: $0 " >&2 + exit 1 +fi + +STATE_DIR="$1" +DIST_DIR="$2" +MANIFEST_PATH="$(dirname "$0")/../reports/live-openclawtest-manifest.json" + +echo "== reply-end-controls PoC verify ==" +echo "state_dir=${STATE_DIR}" +echo "dist_dir=${DIST_DIR}" + +echo +echo "== state files ==" +for f in \ + "${STATE_DIR}/reply-end-controls.json" \ + "${STATE_DIR}/reply-end-debug.log" \ + "${STATE_DIR}/governance/claims.jsonl"; do + if [[ -f "$f" ]]; then + echo "present: $f" + else + echo "missing: $f" + fi +done + +echo +echo "== patch markers ==" +python3 - <<'PY' "$DIST_DIR" +from pathlib import Path +import json, sys + +live_dist = Path(sys.argv[1]) +checks = { + 'send-sxDwUGaO.js': { + 'defaultButtonsInjected': 'buildInlineKeyboard(opts.buttons ??', + 'continueCallback': 'rec:continue', + 'stopCallback': 'rec:stop', + }, + 'bot-Ce301bOE.js': { + 'stateFilePath': 'reply-end-controls.json', + 'continueAck': 'reply-end-controls: continue received', + 'stopAck': 'reply-end-controls: stop received', + 'stopPolicy': 'Treat the previous thread as closed', + }, +} +for name, markers in checks.items(): + path = live_dist / name + text = path.read_text(encoding='utf-8') if path.exists() else '' + print(f'[{name}]') + for key, marker in markers.items(): + print(f' {key}: {marker in text}') +PY + +echo +echo "== latest state ==" +cat "${STATE_DIR}/reply-end-controls.json" 2>/dev/null || true + +echo +echo "== latest debug tail ==" +tail -n 20 "${STATE_DIR}/reply-end-debug.log" 2>/dev/null || true + +echo +echo "== reference manifest ==" +if [[ -f "${MANIFEST_PATH}" ]]; then + cat "${MANIFEST_PATH}" +else + echo "missing manifest: ${MANIFEST_PATH}" +fi