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