#!/usr/bin/env bash # session-context-path — print the active session-context path for this agent. # # Single-agent (AI_AGENT_ID unset or empty): .ai/session-context.org — the # historical singleton path, unchanged, so one-agent-per-project sessions # behave exactly as before (Codex spec's compatibility rule). # # Multi-agent (AI_AGENT_ID set): .ai/session-context.d/.org, so two agents # running in the same project at the same time keep separate session logs # instead of clobbering the singleton. The id is sanitized to filename-safe # characters so a stray value can't escape the .d/ directory. # # Workflows call this to resolve the path; both startup (existence check) and # wrap-up (rename source) read/write through it. Callers should fall back to # .ai/session-context.org if this script isn't present yet (older checkouts # mid-sync). set -euo pipefail id="${AI_AGENT_ID:-}" if [ -n "$id" ]; then safe=$(printf '%s' "$id" | tr -c 'A-Za-z0-9._-' '_') printf '.ai/session-context.d/%s.org\n' "$safe" else printf '.ai/session-context.org\n' fi