Full sync - all projects, memory, configs

This commit is contained in:
2026-03-21 20:27:59 -05:00
parent 2447677d4a
commit b33de10902
395 changed files with 1635300 additions and 459211 deletions

91
process_memory_turns.py Normal file
View File

@ -0,0 +1,91 @@
#!/usr/bin/env python3
import json
import subprocess
import sys
# Read the session file and extract the last 10 assistant turns
session_file = '/home/wdjones/.openclaw/agents/main/sessions/2c022034-fccc-4c2c-b8f0-dce45ad22e68.jsonl'
messages = []
with open(session_file, 'r') as f:
for line in f:
try:
data = json.loads(line.strip())
if data.get('type') == 'message':
messages.append(data)
except:
continue
# Find assistant turns and their corresponding user messages
assistant_turns = []
for i in range(len(messages)):
msg = messages[i]
if msg.get('message', {}).get('role') == 'assistant':
# Find the preceding user message
user_msg = None
for j in range(i-1, -1, -1):
if messages[j].get('message', {}).get('role') == 'user':
user_msg = messages[j]
break
if user_msg:
# Extract text content
user_text = ''
assistant_text = ''
# Get user text
user_content = user_msg.get('message', {}).get('content', [])
if isinstance(user_content, list):
for item in user_content:
if item.get('type') == 'text':
user_text += item.get('text', '')
elif isinstance(user_content, str):
user_text = user_content
# Get assistant text (skip thinking blocks and tool calls)
assistant_content = msg.get('message', {}).get('content', [])
if isinstance(assistant_content, list):
for item in assistant_content:
if item.get('type') == 'text':
assistant_text += item.get('text', '')
elif isinstance(assistant_content, str):
assistant_text = assistant_content
if user_text.strip() and assistant_text.strip():
assistant_turns.append({
'user': user_text.strip(),
'assistant': assistant_text.strip(),
'agent_id': 'case',
'session': 'main'
})
# Get the last 10 turns
recent_turns = assistant_turns[-10:]
print(f'Found {len(recent_turns)} recent assistant turns to process')
# Process each turn through the auto-memory hook
success_count = 0
for i, turn in enumerate(recent_turns):
try:
# Pipe JSON to the auto-memory hook script
result = subprocess.run(
['python3', '/home/wdjones/.openclaw/workspace/tools/auto-memory-hook.py'],
input=json.dumps(turn),
text=True,
capture_output=True,
timeout=30
)
if result.returncode == 0:
print(f'Turn {i+1}: SUCCESS')
success_count += 1
else:
print(f'Turn {i+1}: FAILED - {result.stderr.strip()}')
except subprocess.TimeoutExpired:
print(f'Turn {i+1}: TIMEOUT')
except Exception as e:
print(f'Turn {i+1}: ERROR - {str(e)}')
print(f'\nProcessed {success_count}/{len(recent_turns)} turns successfully')