df6cf94dae
Implements external LLM routing via opencode CLI for: - GitHub Copilot (gpt-5.2, claude-sonnet-4.5, claude-haiku-4.5, o3, gemini-3-pro) - Z.AI (glm-4.7 for code generation) - OpenCode native (big-pickle) Components: - mcp/llm-router/invoke.py: Main router with task-based model selection - mcp/llm-router/delegate.py: Agent delegation helper (respects external mode) - mcp/llm-router/toggle.py: Enable/disable external-only mode - mcp/llm-router/providers/: CLI wrappers for opencode and gemini Features: - Persistent toggle via state/external-mode.json - Task routing: reasoning -> gpt-5.2, code-gen -> glm-4.7, long-context -> gemini - Claude tier mapping: opus -> gpt-5.2, sonnet -> claude-sonnet-4.5, haiku -> claude-haiku-4.5 - Session-start hook announces when external mode is active - Natural language toggle support via component registry Plan: gleaming-routing-mercury Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
State Files
Shared state for the multi-agent system. JSON format for machine readability.
Top-Level State
| File | Purpose | Writer |
|---|---|---|
system-instructions.json |
Central process definitions | master-orchestrator |
future-considerations.json |
Deferred features/decisions | master-orchestrator |
model-policy.json |
Model selection rules | master-orchestrator |
autonomy-levels.json |
Autonomy level definitions | master-orchestrator |
component-registry.json |
Skills, commands, agents for routing | master-orchestrator |
personal-assistant-preferences.json |
PA persistent config | personal-assistant |
kb.json |
Shared knowledge base | personal-assistant |
Subdirectories
personal-assistant/
| File | Purpose |
|---|---|
general-instructions.json |
User memory (via /pa --remember) |
session-context.json |
Session context override |
kb.json |
PA-specific knowledge base |
history/index.json |
Session history index |
memory/decisions.json |
Recorded decisions |
memory/preferences.json |
Learned preferences |
memory/projects.json |
Project context |
memory/facts.json |
Environment facts |
sysadmin/
| File | Purpose |
|---|---|
session-autonomy.json |
Per-session autonomy override |
programmer/
| File | Purpose |
|---|---|
projects/*.json |
Registered project configurations |
usage/
| File | Purpose |
|---|---|
config.json |
Usage tracking configuration |
File Format
All state files use JSON:
{
"version": "1.0",
"description": "What this file contains",
"data": {}
}
Reading State
Agents read state at session start:
cat ~/.claude/state/system-instructions.json
Writing State
- master-orchestrator: Primary writer for top-level state
- personal-assistant: Override authority, writes to PA state
- linux-sysadmin: Writes to
sysadmin/state
Principles
- No duplication - Each fact in one place only
- JSON format - Machine readable
- Clear ownership - Each file has one primary writer
- Override authority - PA can override master-orchestrator