#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ENV_FILE="$SCRIPT_DIR/.env.memory" if [[ -f "$ENV_FILE" ]]; then VAULT_DIR="$(grep '^VAULT_DIR=' "$ENV_FILE" | cut -d= -f2- | tr -d '"' | tr -d "'")" fi if [[ -z "${VAULT_DIR:-}" ]]; then VAULT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" fi QUERY="${*:-}" if [[ -z "$QUERY" ]]; then echo "用法: bash .scripts/memory/agent-with-memory.sh <你的需求>" exit 1 fi PROMPT_FILE="$(mktemp -t mem-prompt.XXXXXX)" trap 'rm -f "$PROMPT_FILE"' EXIT echo "[memory] 正在检索本地语义记忆..." >&2 MEMORY_CONTEXT="$(uv run --project "$VAULT_DIR/.scripts/memory" python "$VAULT_DIR/.scripts/memory/query_pgvector.py" "$QUERY" || true)" MEMORY_FACTS="" VAULT_BASENAME="$(basename "$VAULT_DIR")" MEMORY_FILE="$(find "$HOME/.claude/projects" -maxdepth 2 -name "MEMORY.md" -path "*${VAULT_BASENAME}*" 2>/dev/null | head -n 1)" if [[ -n "${MEMORY_FILE:-}" && -f "$MEMORY_FILE" ]]; then MEMORY_FACTS="$(head -n 50 "$MEMORY_FILE" 2>/dev/null || true)" fi cat > "$PROMPT_FILE" <