4b94902446
- on_stop_cursor.sh: add loop_count guard to prevent infinite re-entry - on_stop.sh: drop set -e so stats failure doesn't kill the reminder - _identity.py: fix fallback stub signatures to match production (accept cwd arg) - on_pre_compact.py: add missing infer=False on session_state writes - on_session_start.sh: handle v3 search response format (dict with results key) - Align all plugin versions to 0.2.1 (Claude Code, Codex, Cursor)
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""Resolve mem0 identity: API key and user_id.
|
|
|
|
API key resolution (first non-empty wins):
|
|
1. MEM0_API_KEY env var (explicit / shell profile)
|
|
2. CLAUDE_PLUGIN_OPTION_MEM0_API_KEY (set by Claude Code userConfig)
|
|
|
|
User ID resolution:
|
|
1. MEM0_USER_ID env var (explicit override)
|
|
2. $USER, else "default"
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
|
|
def resolve_api_key() -> str:
|
|
key = os.environ.get("MEM0_API_KEY", "").strip()
|
|
if key:
|
|
return key
|
|
return os.environ.get("CLAUDE_PLUGIN_OPTION_MEM0_API_KEY", "").strip()
|
|
|
|
|
|
def resolve_user_id() -> str:
|
|
explicit = os.environ.get("MEM0_USER_ID", "").strip()
|
|
if explicit:
|
|
return explicit
|
|
return os.environ.get("USER") or "default"
|
|
|
|
|
|
try:
|
|
from _project import resolve_branch, resolve_project_id, save_project_mapping
|
|
except ImportError:
|
|
def resolve_project_id(cwd: str | None = None) -> str:
|
|
return os.path.basename(cwd or os.getcwd())
|
|
|
|
def resolve_branch(cwd: str | None = None) -> str:
|
|
return "unknown"
|
|
|
|
def save_project_mapping(cwd: str, project_id: str) -> None:
|
|
pass
|