Add automatic dialog sync to memory files
This commit is contained in:
4414
memory/dialogs/2026-02-21.md
Normal file
4414
memory/dialogs/2026-02-21.md
Normal file
File diff suppressed because one or more lines are too long
34
scripts/sync-dialogs-to-memory.sh
Executable file
34
scripts/sync-dialogs-to-memory.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SESS_DIR="$HOME/.openclaw/agents/main/sessions"
|
||||||
|
OUT_DIR="/home/openclaw/.openclaw/workspace/memory/dialogs"
|
||||||
|
OUT_FILE="$OUT_DIR/$(date +%F).md"
|
||||||
|
mkdir -p "$OUT_DIR"
|
||||||
|
|
||||||
|
LATEST_JSONL=$(ls -1t "$SESS_DIR"/*.jsonl 2>/dev/null | head -n1 || true)
|
||||||
|
if [[ -z "${LATEST_JSONL:-}" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=$(mktemp)
|
||||||
|
{
|
||||||
|
echo "# Диалоги за $(date +%F)"
|
||||||
|
echo
|
||||||
|
echo "Источник: $LATEST_JSONL"
|
||||||
|
echo
|
||||||
|
jq -r '
|
||||||
|
select(.type=="message")
|
||||||
|
| .timestamp as $ts
|
||||||
|
| .message.role as $role
|
||||||
|
| (.message.content // [])[]?
|
||||||
|
| select(.type=="text")
|
||||||
|
| "## [\($ts)] \($role)\n\(.text)\n"
|
||||||
|
' "$LATEST_JSONL"
|
||||||
|
} > "$TMP"
|
||||||
|
|
||||||
|
if [[ ! -f "$OUT_FILE" ]] || ! cmp -s "$TMP" "$OUT_FILE"; then
|
||||||
|
mv "$TMP" "$OUT_FILE"
|
||||||
|
else
|
||||||
|
rm -f "$TMP"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user