poc-memory v0.4.0: graph-structured memory with consolidation pipeline
Rust core: - Cap'n Proto append-only storage (nodes + relations) - Graph algorithms: clustering coefficient, community detection, schema fit, small-world metrics, interference detection - BM25 text similarity with Porter stemming - Spaced repetition replay queue - Commands: search, init, health, status, graph, categorize, link-add, link-impact, decay, consolidate-session, etc. Python scripts: - Episodic digest pipeline: daily/weekly/monthly-digest.py - retroactive-digest.py for backfilling - consolidation-agents.py: 3 parallel Sonnet agents - apply-consolidation.py: structured action extraction + apply - digest-link-parser.py: extract ~400 explicit links from digests - content-promotion-agent.py: promote episodic obs to semantic files - bulk-categorize.py: categorize all nodes via single Sonnet call - consolidation-loop.py: multi-round automated consolidation Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
commit
23fac4e5fe
35 changed files with 9388 additions and 0 deletions
44
scripts/call-sonnet.sh
Executable file
44
scripts/call-sonnet.sh
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
#!/bin/bash
|
||||
# call-sonnet.sh — wrapper to call Sonnet via claude CLI
|
||||
# Reads prompt from a file (arg 1), writes response to stdout
|
||||
#
|
||||
# Debug mode: set SONNET_DEBUG=1 for verbose tracing
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PROMPT_FILE="${1:?Usage: call-sonnet.sh PROMPT_FILE}"
|
||||
DEBUG="${SONNET_DEBUG:-0}"
|
||||
|
||||
log() { [ "$DEBUG" = "1" ] && echo "[call-sonnet] $*" >&2 || true; }
|
||||
|
||||
if [ ! -f "$PROMPT_FILE" ]; then
|
||||
echo "Prompt file not found: $PROMPT_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "prompt file: $PROMPT_FILE ($(wc -c < "$PROMPT_FILE") bytes)"
|
||||
log "CLAUDECODE=${CLAUDECODE:-unset}"
|
||||
log "PWD=$PWD"
|
||||
log "which claude: $(which claude)"
|
||||
|
||||
unset CLAUDECODE 2>/dev/null || true
|
||||
|
||||
log "CLAUDECODE after unset: ${CLAUDECODE:-unset}"
|
||||
log "running: claude -p --model sonnet --tools '' < $PROMPT_FILE"
|
||||
log "claude PID will follow..."
|
||||
|
||||
# Trace: run with strace if available and debug mode
|
||||
if [ "$DEBUG" = "2" ] && command -v strace &>/dev/null; then
|
||||
strace -f -e trace=network,read,write -o /tmp/sonnet-strace.log \
|
||||
claude -p --model sonnet --tools "" < "$PROMPT_FILE"
|
||||
else
|
||||
claude -p --model sonnet --tools "" \
|
||||
--debug-file /tmp/sonnet-debug.log \
|
||||
< "$PROMPT_FILE" &
|
||||
CPID=$!
|
||||
log "claude PID: $CPID"
|
||||
wait $CPID
|
||||
EXIT=$?
|
||||
log "claude exited: $EXIT"
|
||||
exit $EXIT
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue