525a859b8f
Only ONE external memory provider can be active at a time. Configured
via memory.provider in config.yaml:
memory:
provider: holographic # or hindsight, mem0, retaindb, etc.
Empty or absent = built-in only (MEMORY.md/USER.md).
Auto-detection: providers are identified by the name they return from
their MemoryProvider.name property. No manifest field needed — the act
of calling ctx.register_memory_provider() IS the declaration. The
manager filters registered plugins to match the configured name.
Behavior:
- memory.provider not set → only built-in memory, no plugins activate
- memory.provider set → only the named provider activates
- Named provider unavailable → warning logged, falls back to built-in
- Named provider not found → warning with available provider names
4 new tests for the gating logic.