personal memory agent

Add Ollama local provider (cherry-pick from Parker Davis's fork) master

Cherry-picks Parker's Ollama provider implementation with four targeted modifications at integration seams: 1. Provider core (think/providers/ollama.py): Routes generate requests to Ollama's native /api/chat endpoint via httpx, cogitate through OpenCode CLI subprocess. Added shutil.which check for clear error when OpenCode CLI is not installed. 2. Keyless provider support: Set env_key="" in provider registry (Ollama needs no API key). Patched three sites in agents.py to handle keyless providers — _check_generate() uses validate_key() reachability check, health and cogitate fallback logic allows keyless providers as backups. 3. Declared httpx as explicit dependency in pyproject.toml (was transitive). 4. Excluded .opencode/opencode.json from merge — documented in PROVIDERS.md that cogitate config belongs in user-level directory, not project root. Source: https://github.com/parkerhdavis/Solstone (commits 7560649a..7217b59f) Spec: cpo/specs/in-flight/ollama-local-provider.md Co-Authored-By: Parker Davis <phd@parkerhdavis.com>