148 lines
5.1 KiB
Bash
148 lines
5.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# cognitive-memory init script
|
||
|
|
# Usage: bash init_memory.sh /path/to/workspace
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
WORKSPACE="${1:-.}"
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
SKILL_DIR="$(dirname "$SCRIPT_DIR")"
|
||
|
|
TEMPLATES="$SKILL_DIR/assets/templates"
|
||
|
|
|
||
|
|
echo "🧠 Initializing cognitive memory system in: $WORKSPACE"
|
||
|
|
|
||
|
|
# --- Create directory structure ---
|
||
|
|
echo "📁 Creating directory structure..."
|
||
|
|
mkdir -p "$WORKSPACE/memory/episodes"
|
||
|
|
mkdir -p "$WORKSPACE/memory/graph/entities"
|
||
|
|
mkdir -p "$WORKSPACE/memory/procedures"
|
||
|
|
mkdir -p "$WORKSPACE/memory/vault"
|
||
|
|
mkdir -p "$WORKSPACE/memory/meta"
|
||
|
|
mkdir -p "$WORKSPACE/memory/meta/reflections"
|
||
|
|
mkdir -p "$WORKSPACE/memory/meta/reflections/dialogues"
|
||
|
|
mkdir -p "$WORKSPACE/memory/meta/rewards"
|
||
|
|
|
||
|
|
# --- Copy templates ---
|
||
|
|
echo "📋 Copying templates..."
|
||
|
|
|
||
|
|
# Core memory
|
||
|
|
if [ ! -f "$WORKSPACE/MEMORY.md" ]; then
|
||
|
|
cp "$TEMPLATES/MEMORY.md" "$WORKSPACE/MEMORY.md"
|
||
|
|
echo " ✅ Created MEMORY.md"
|
||
|
|
else
|
||
|
|
echo " ⏭️ MEMORY.md already exists, skipping"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Identity
|
||
|
|
if [ ! -f "$WORKSPACE/IDENTITY.md" ]; then
|
||
|
|
cp "$TEMPLATES/IDENTITY.md" "$WORKSPACE/IDENTITY.md"
|
||
|
|
echo " ✅ Created IDENTITY.md"
|
||
|
|
else
|
||
|
|
echo " ⏭️ IDENTITY.md already exists, skipping"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Soul
|
||
|
|
if [ ! -f "$WORKSPACE/SOUL.md" ]; then
|
||
|
|
cp "$TEMPLATES/SOUL.md" "$WORKSPACE/SOUL.md"
|
||
|
|
echo " ✅ Created SOUL.md"
|
||
|
|
else
|
||
|
|
echo " ⏭️ SOUL.md already exists, skipping"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Graph templates
|
||
|
|
if [ ! -f "$WORKSPACE/memory/graph/index.md" ]; then
|
||
|
|
cp "$TEMPLATES/graph-index.md" "$WORKSPACE/memory/graph/index.md"
|
||
|
|
echo " ✅ Created graph/index.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/graph/relations.md" ]; then
|
||
|
|
cp "$TEMPLATES/relations.md" "$WORKSPACE/memory/graph/relations.md"
|
||
|
|
echo " ✅ Created graph/relations.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Meta files
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/decay-scores.json" ]; then
|
||
|
|
cp "$TEMPLATES/decay-scores.json" "$WORKSPACE/memory/meta/decay-scores.json"
|
||
|
|
echo " ✅ Created meta/decay-scores.json"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/reflection-log.md" ]; then
|
||
|
|
cp "$TEMPLATES/reflection-log.md" "$WORKSPACE/memory/meta/reflection-log.md"
|
||
|
|
echo " ✅ Created meta/reflection-log.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/reward-log.md" ]; then
|
||
|
|
cp "$TEMPLATES/reward-log.md" "$WORKSPACE/memory/meta/reward-log.md"
|
||
|
|
echo " ✅ Created meta/reward-log.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/audit.log" ]; then
|
||
|
|
echo "# Audit Log — Cognitive Memory System" > "$WORKSPACE/memory/meta/audit.log"
|
||
|
|
echo "# Format: TIMESTAMP | ACTION | FILE | ACTOR | APPROVAL | SUMMARY" >> "$WORKSPACE/memory/meta/audit.log"
|
||
|
|
echo "" >> "$WORKSPACE/memory/meta/audit.log"
|
||
|
|
echo " ✅ Created meta/audit.log"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/pending-memories.md" ]; then
|
||
|
|
cp "$TEMPLATES/pending-memories.md" "$WORKSPACE/memory/meta/pending-memories.md"
|
||
|
|
echo " ✅ Created meta/pending-memories.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/evolution.md" ]; then
|
||
|
|
cp "$TEMPLATES/evolution.md" "$WORKSPACE/memory/meta/evolution.md"
|
||
|
|
echo " ✅ Created meta/evolution.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$WORKSPACE/memory/meta/pending-reflection.md" ]; then
|
||
|
|
cp "$TEMPLATES/pending-reflection.md" "$WORKSPACE/memory/meta/pending-reflection.md"
|
||
|
|
echo " ✅ Created meta/pending-reflection.md"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# --- Initialize git ---
|
||
|
|
echo "🔍 Setting up git audit tracking..."
|
||
|
|
cd "$WORKSPACE"
|
||
|
|
|
||
|
|
if [ ! -d ".git" ]; then
|
||
|
|
git init -q
|
||
|
|
git add -A
|
||
|
|
git commit -q -m "[INIT] Cognitive memory system initialized
|
||
|
|
|
||
|
|
Actor: system:init
|
||
|
|
Approval: auto
|
||
|
|
Trigger: init_memory.sh"
|
||
|
|
echo " ✅ Git repository initialized"
|
||
|
|
else
|
||
|
|
echo " ⏭️ Git repository already exists"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# --- Summary ---
|
||
|
|
echo ""
|
||
|
|
echo "✅ Cognitive memory system initialized!"
|
||
|
|
echo ""
|
||
|
|
echo "Directory structure:"
|
||
|
|
echo " $WORKSPACE/"
|
||
|
|
echo " ├── MEMORY.md (core memory)"
|
||
|
|
echo " ├── IDENTITY.md (facts + self-image)"
|
||
|
|
echo " ├── SOUL.md (values, principles)"
|
||
|
|
echo " ├── memory/"
|
||
|
|
echo " │ ├── episodes/ (daily logs)"
|
||
|
|
echo " │ ├── graph/ (knowledge graph)"
|
||
|
|
echo " │ ├── procedures/ (learned workflows)"
|
||
|
|
echo " │ ├── vault/ (pinned memories)"
|
||
|
|
echo " │ └── meta/"
|
||
|
|
echo " │ ├── decay-scores.json (tracking + token economy)"
|
||
|
|
echo " │ ├── reflection-log.md (summaries)"
|
||
|
|
echo " │ ├── reflections/ (full archive)"
|
||
|
|
echo " │ │ └── dialogues/ (post-reflection conversations)"
|
||
|
|
echo " │ ├── reward-log.md (result + reason)"
|
||
|
|
echo " │ ├── rewards/ (full requests)"
|
||
|
|
echo " │ ├── evolution.md"
|
||
|
|
echo " │ └── audit.log"
|
||
|
|
echo " └── .git/ (audit ground truth)"
|
||
|
|
echo ""
|
||
|
|
echo "Next steps:"
|
||
|
|
echo " 1. Update config to enable memorySearch"
|
||
|
|
echo " 2. Append assets/templates/agents-memory-block.md to AGENTS.md"
|
||
|
|
echo " 3. Customize IDENTITY.md and SOUL.md for your agent"
|
||
|
|
echo " 4. Test: 'Remember that I prefer dark mode.'"
|