Backend Auth & Model Map

Last verified: 2026-05-04 (second live probe this session) Status icons: ✓ working · ⚠ partial / pending · ✗ not built · 🆕 new since last map · 🔧 in progress


Backend Auth Audit

BackendHenry’s intentCurrent state (verified 2026-05-04)Gap
Anthropic Max #1Plan-limits, flat-rate:18903 anthropic-max-routerWORKING — 8/8 tests passedMonitor “extra usage” credit balance
teamsteph@betterfiles.comOAuth account for Max #1✓ Authenticated, bound to :18903This is the Max plan account all 40+ agents use via LOCAL-SHORTCUT
claude-max-api-proxy :18910Alternative max proxy🆕 ✓ RUNNING 127.0.0.1:18910 — hot standbyNot wired to portkey-proxy; kept as CCR Phase 0 candidate
Anthropic Max #2 (henry@reri.co)Second Max plan :18911✗ not built — no listener on 18911Mirror Phase 0 with henry@reri.co OAuth
Codex (ChatGPT plan)OAuth via codex loginLOGGED INauth_mode: chatgpt, henryhillre@gmail.com, refreshed 2026-05-04T14:30Z. ⚠ plan_type: plus (not Pro) — rate limits may be lower than expectedWire Codex subprocess into CCR Phase 2; confirm Plus vs Pro limits
Kimi (kimi.com)OAuth via kimi loginLOGGED IN~/.kimi/credentials/kimi-code.json populated: access_token (900s TTL) + refresh_token (30d). scope: kimi-code. Telemetry failures in logs are network-only, not auth.Wire Kimi subprocess into CCR Phase 3
DeepSeekAPI + OAuthDEEPSEEK_API_KEY + PORTKEY_DEEPSEEK_DIRECT_VK in master.env + OAuth set upBoth API and OAuth paths available
Gemma-4 (31B dense)OpenRouter via Portkey🔧 IN PROGRESSpc-opencl-2f97e0 config exists, model IDs mappedVerify OpenRouter VK has Gemma-4-31b access
Gemma-4 (26B MoE)OpenRouter via Portkey🔧 IN PROGRESSpc-opencl-1373ad config exists, model IDs mappedVerify OpenRouter VK has Gemma-4-26b access
Voyage-4 (embeddings)APIVOYAGE_API_KEY + Portkey pc-opencl-22d508✓ working
PerplexitySearch/Sonar🆕 PERPLEXITY_API_KEY in master.env + 4 Portkey configs live⚠ MCP perplexity server connected; Phase 6 5-layer integration pending
OpenAI (raw)APIOPENAI_API_KEY in master.env✓ available — not in Portkey (direct)
OpenRouterAPI fallbackOPENROUTER_API_KEY in master.env✓ working fallback for Gemma/cloud models
GeminiAPIGEMINI_API_KEY in master.env✓ available — not yet in Portkey config
GroqAPIGROQ_API_KEY in master.env✓ available — not yet in Portkey config
Ollama AWS MacCloud LLM hostSSH timeout (100.123.248.46) — EC2 impaired✗ unreachable — fix EC2 health first
Ollama Mac UltraHome M1 Ultra local LLMsOLLAMA_BRIDGE_HMAC in master.env; runs locally⚠ not reachable from VPS — needs HMAC bridge or SSH key fix
Moonshot direct APISuperseded by Kimi OAuthMOONSHOT_API_KEY + KIMI_CODE_API_KEY in master.env — stale⚠ archive after Kimi OAuth verified in Phase 3

Portkey Configs (21 model entries, live tier-config.json, verified 2026-05-04)

All 21 entries audited against live tier-config.json. defaultConfig: pc-opencl-bd87ab.

Config slugBound model ID(s)Provider VK / RouteStatus
pc-opus-f-be2d19claude-opus-4-7 · claude-opus-4-6 · claude-opus-4primary anthropic-direc-40d4a5 + OpenRouter fallback on 400/401/429✓ live
pc-sonnet-df3a4cclaude-sonnet-4-6 · claude-sonnet-4same fallback chain✓ live
pc-haiku-5c4a73claude-haiku-4-5-20251001 · claude-haiku-4-5same fallback chain✓ live
pc-opencl-22d508voyage-4 · voyage-3Voyage AI embeddings✓ live
pc-opencl-2f97e0gemma-4-31b-it · google/gemma-4-31b-itOpenRouter Gemma 31B dense🔧 in progress
pc-opencl-1373adgemma-4-26b-a4b-it · google/gemma-4-26b-a4b-itOpenRouter Gemma 26B MoE🔧 in progress
pc-opencl-bd87abdefault fallbackAPI-tier anthropic-direc-40d4a5✓ live
pc-perple-ee827asonar · sonar-pro · sonar-reasoning-pro · sonar-deep-research · perplexity/sonar · perplexity/sonar-pro · perplexity/sonar-reasoning-pro · perplexity/sonar-deep-researchPerplexity API✓ live
pc-opencl-98748edavid-socal agent onlyOpenRouter (Gemma/mixed)✓ live
(missing)Codex / Kimi / DeepSeek-direct / Gemini / Groq / cloud models belowNot yet in Portkey✗ Phase 4 CCR wires these

Postgres governance (CHOKEPOINT-2): Each Portkey config change must write an infra_config_changes row with change_type, target_system, after_state, reason, approved_by, applied_via before going live.


All Models (complete)

Anthropic (via Max plan :18903 → teamsteph@betterfiles.com)

Model IDTierContextRouting
claude-opus-4-7Strategic200kLOCAL-SHORTCUT → :18903 → claude.ai plan
claude-opus-4-6 🆕Strategic200kconfirmed valid; same route
claude-sonnet-4-6Operations200kLOCAL-SHORTCUT → :18903
claude-haiku-4-5-20251001Automation200kLOCAL-SHORTCUT → :18903
Anthropic Batches APIBulk backgroundPhase 4 CCR — high-volume async jobs

Max plan account: teamsteph@betterfiles.com — all 40+ agents tagged tier: max-plan in agentConfigs route here via LOCAL-SHORTCUT in proxy.js, bypassing Portkey cloud. henryRERI stays on interactive VS Code session.

models.json name vs id discrepancy: aurora and acquisitions agents have "id": "claude-opus-4-7" but "name": "claude-opus-4-6". The id field is what gets sent to Anthropic. Standardization pending.

Cloud Models — LLM Build (via OpenRouter / direct APIs)

Model IDProvider routeContextStrengthsCCR priority
deepseek/deepseek-v3-2025OpenRouter128kCode, reasoning, cheapP1
moonshotai/kimi-k2.5Kimi OAuth → kimi-cli128kLong-context, ChineseP1
moonshotai/kimi-k2-turboKimi OAuth → kimi-cli32kFast Kimi variantP2
meta-llama/llama-4-maverick-17b-128e-instruct-fp8OpenRouter128kFast MoE, cheapP1
qwen/qwen3.5-397b-a17b-instruct-fp8OpenRouter32kMassive dense, best-in-class reasonP2
minimax/minimax-m2.5OpenRouter1MUltra-long contextP3
x-ai/grok-4-fastOpenRouter128kSpeed, multimodalP2
google/gemini-3-flash-previewGemini API direct1MFlash speed, multimodalP1
google/gemini-3-pro-previewGemini API direct1MPro qualityP2
groq/llama-3.3-70b-versatileGroq API direct128kUltra-fast inferenceP1
deepseek/deepseek-r1OpenRouter + OAuth64kOpen-source reasoningP2
gemma-4-31b-itOpenRouter → pc-opencl-2f97e0128kPortkey-wired dense🔧
gemma-4-26b-a4b-itOpenRouter → pc-opencl-1373ad128kPortkey-wired MoE🔧

These models are in the CCR routing table but not yet flowing through Portkey. CCR Phase 4 wires them with per-model intent rules.

Local Ollama Models (M1 Ultra — not yet reachable from VPS)

ModelVariantContextRole in CCR
qwen3.5:122b-instruct-q4kmctx32k32kdefault routing target
qwen3.5:122b-instruct-q4kmctx64k64kshort doc analysis
qwen3.5:122b-instruct-q4kmctx96k96kmedium context
qwen3.5:122b-instruct-q4kmctx128k128klong context
qwen3.5:122b-instruct-q4kmctx192k192kextended context
qwen3.5:122b-instruct-q4kmctx262k262kmax local context
qwen3.6:35b-a3b-instruct-q4km32kbackground tasks (cheap)
qwen3:235b-a22b-thinking-q3km32kheavy local reasoning
gemma4:26bMoE128klight/fast local (preferred over 31b)
gemma4:31bdense128kquality local (⚠ low-priority — dominated by 26b MoE, 3-15× slower)
deepseek-r1:32b32kmath/reasoning only (⚠ lane:math-only — Ollama bug #8517 tool-reject)

Routing rule (CCR): default→qwen3.5:122b-ctx32k · think→122b-ctx96k (→235B) · longContext→122b-ctx262k · background→qwen3.6:35b · fallback→Portkey-Sonnet Blocker: M1 Ultra SSH (Permission denied publickey) + EC2 impaired. Ollama install deferred until bridge fixed.


Agent Tier Map (44 active + 5 retired)

Tier 1 — Strategic (Opus) — 2 agents

Max-plan LOCAL-SHORTCUT · teamsteph@betterfiles.com account

AgentRoleDiscord
auroraChief AI Ops, Discord commander, primary builderaurora-build
solaraStrategic orchestration, system governancesolara-build

Tier 2 — Operations (Sonnet) — 13 agents

Max-plan LOCAL-SHORTCUT · same teamsteph account

AgentRoleKey Services
mainCentral orchestration, 80%+ of cron jobssm-token-refresh.service
atlasArchitecture, InvestorLift ops, infrastructureproperty-view-watcher.service, investorlift-gateway.service
acquisitionsAcquisitions engine, inbound lead handling
betterfilesDocument management, TC coordination
dispoDisposition management, buyer outreach
bizintelBusiness intelligence, market analysis
reriRERI brand operations
ryan-norcalSales — Northern California
david-socalSales — Southern CaliforniaGemma route via pc-opencl-98748e (only agent NOT on max-plan LOCAL-SHORTCUT)
hhill-socalFounder/executive ops
auctionscoutAuction intelligence
prediction-traderPrediction market + crypto tradingprediction-ingestor.service
betterbetsMulti-sport betting orchestrator

Tier 3 — Automation (Haiku) — 18 agents

Max-plan LOCAL-SHORTCUT · same teamsteph account

ClusterAgents
General automationresearch · ops · mktg · webops · social
Real estate / financebackfill · bettershowings · betterhomeoffers · bettercredit · betterarbitrage · tradelines · crowdfunding
Fund calls (parent + 3)fund-callsangel-calls · h2-calls · h3-calls
InvestorLift (parent + 3)investorliftinvestorlift-angel · investorlift-h2 · investorlift-h3
Inactivebettertrading · tablegames

Special / Mixed-Model — 3 agents

AgentPrimary ModelNotes
kimimoonshot-v1-128k / Kimi OAuthLong-context, Chinese-language tasks
chatgptgpt-4oGPT-4o bridge
anthropicconfig-onlyNot a real agent — provider entry only

Retired / Archived — 5 (do not delete per feedback_archive_not_delete.md)

stefania · stefania-asst · default · betteracq (→ acquisitions) · dealcmd (→ dispo)


Full Pipeline Visual Map

┌──────────────────────────────────────────────────────────────────────────────┐
│                    OPENCLAW REQUEST → DISPATCH PIPELINE                        │
└──────────────────────────────────────────────────────────────────────────────┘

                         44 AGENTS (gateway-embedded)
       Aurora · Solara · Atlas · Acq · Dispo · BetterFiles · Main · 38 more
                                     │
                                     ▼
             ┌──────────────────────────────────────────┐
             │  openclaw-gateway :18789  (Go binary)     │  ✓ running
             │  Tags x-openclaw-agent header             │
             └─────────────────────┬────────────────────┘
                                   ▼
             ┌──────────────────────────────────────────┐
             │  portkey-proxy :18900 (Node.js)           │  ✓ running
             │  - tier-config.json model→config map      │
             │  - 21 model entries (9 configs)            │
             │  - LOCAL-SHORTCUT → :18903 for max-plan   │
             │    agents (teamsteph@betterfiles.com)      │
             │  - Portkey cloud for fallback/API-tier     │
             │  - SIGHUP hot-reload (no restart needed)  │
             └─────────────────────┬────────────────────┘
                                   ▼
       ╔══════════════════════════════════════════════════════════════════════╗
       ║   CCR DISPATCHER :18902  (TO BUILD — Phase 4)                       ║  ✗ not built
       ║   claude-code-router (musistudio)                                   ║
       ║   - intent classifier → route per-call                              ║
       ║   - per-account inflight tracking                                   ║
       ║   - failover ladder per backend                                     ║
       ║   - backend health probes                                           ║
       ║   - CHOKEPOINT-1: writes tool_calls row to Postgres before return   ║
       ║   - CHOKEPOINT-2: config changes write infra_config_changes first   ║
       ║   - sends Langfuse trace per call                                   ║
       ╚══╤════╤═══════╤═══════╤══════╤══════╤════════╤══════╤═══════╤══════╝
          │    │       │       │      │      │        │      │       │
    ┌─────┘    │  ┌────┘  ┌───┘  ┌───┘  ┌───┘  ┌────┘  ┌───┘  ┌───┘
    ▼          ▼  ▼       ▼      ▼      ▼      ▼       ▼      ▼
 ┌──────┐ ┌──────┐ ┌────┐ ┌────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌────┐ ┌──────┐
 │Anth  │ │Anth  │ │Cod │ │Kimi│ │Deep  │ │Gemini│ │Groq  │ │Perp│ │Open  │
 │Max#1 │ │Max#2 │ │ex  │ │    │ │Seek  │ │API   │ │API   │ │lex │ │Router│
 │:18903│ │:18911│ │    │ │    │ │      │ │      │ │      │ │ity │ │      │
 │teamst│ │henry │ │    │ │    │ │      │ │      │ │      │ │    │ │      │
 │ph ✓  │ │✗ not │ │✓   │ │✓   │ │✓ API │ │✓ key │ │✓ key │ │✓ MCP│ │✓ key│
 │      │ │built │ │logd│ │logd│ │+OAuth│ │in env│ │in env│ │+key│ │in env│
 └──┬───┘ └──┬───┘ └─┬──┘ └─┬──┘ └──┬───┘ └──┬───┘ └──┬───┘ └─┬──┘ └──┬───┘
    │         │       │      │       │        │        │       │       │
    ▼         ▼       ▼      ▼       ▼        ▼        ▼       ▼       ▼
 ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌────────┐ ┌──────┐ ┌──────┐ ┌──────┐
 │anth- │ │anth- │ │codex │ │kimi- │ │deepsk  │ │gemini│ │llama │ │sonar │
 │max-  │ │max-  │ │CLI   │ │CLI   │ │v3.2/r1 │ │3-fls/│ │3.3-  │ │/pro/ │
 │router│ │api-  │ │subprc│ │subprc│ │direct  │ │pro   │ │70b   │ │rsn/  │
 │:18903│ │proxy │ │      │ │      │ │VK in   │ │API   │ │Groq  │ │deep  │
 │✓LIVE │ │:18911│ │      │ │      │ │Portkey │ │      │ │fast  │ │rsrch │
 │(teamst│ │✗NOT  │ │chatg │ │kimi  │ │        │ │      │ │      │ │      │
 │efan) │ │BUILT │ │pt.com│ │.com  │ │        │ │      │ │      │ │      │
 └──────┘ └──────┘ └──────┘ └──────┘ └────────┘ └──────┘ └──────┘ └──────┘

          ┌─────────────────────────────────────────────────────────────────┐
          │  claude-max-api-proxy :18910  🆕 ✓ RUNNING (hot standby)        │
          │  Not wired to portkey-proxy — available for CCR Phase 0 cutover │
          └─────────────────────────────────────────────────────────────────┘


 ══════════════════ ADDITIONAL BACKENDS (retained — CCR Phase 4) ═══════════════

 Cloud LLMs via OpenRouter (single API key, all models below):
 ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
 │ deepseek-v3.2    │  │ llama-4-maverick │  │ qwen3.5-397b     │
 │ (code/reason)    │  │ 17B-128E MoE     │  │ dense FP8        │
 │ P1               │  │ P1               │  │ P2               │
 └──────────────────┘  └──────────────────┘  └──────────────────┘
 ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
 │ grok-4-fast      │  │ minimax-m2.5     │  │ deepseek-r1      │
 │ xAI fast         │  │ 1M context       │  │ OSS reasoning    │
 │ P2               │  │ P3               │  │ P2               │
 └──────────────────┘  └──────────────────┘  └──────────────────┘

 Kimi-direct via OAuth (kimi-cli subprocess):
 ┌──────────────────┐  ┌──────────────────┐
 │ kimi-k2.5        │  │ kimi-k2-turbo    │
 │ 128k context     │  │ 32k fast variant │
 │ P1               │  │ P2               │
 └──────────────────┘  └──────────────────┘

 Gemini direct API (GEMINI_API_KEY in master.env):
 ┌──────────────────┐  ┌──────────────────┐
 │gemini-3-flash    │  │gemini-3-pro      │
 │1M ctx, fast, P1  │  │1M ctx, quality P2│
 └──────────────────┘  └──────────────────┘

 Groq (ultra-fast inference):              Codex (ChatGPT plan OAuth):
 ┌──────────────────┐                      ┌──────────────────┐
 │ llama-3.3-70b    │                      │ ChatGPT plan     │
 │ ~800 tok/s P1    │                      │ ✓ logged in      │
 └──────────────────┘                      └──────────────────┘

 Ollama (M1 Ultra local — pending bridge fix):
 ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
 │ qwen3.5:122b     │  │ qwen3:235b-think │  │ qwen3.6:35b-a3b  │
 │ 6 ctx variants   │  │ heavy reasoning  │  │ background tasks │
 │ default target   │  │ q3km quant       │  │ cheap            │
 └──────────────────┘  └──────────────────┘  └──────────────────┘
 ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
 │ gemma4:26b MoE   │  │ gemma4:31b dense │  │ deepseek-r1:32b  │
 │ light/fast       │  │ quality local    │  │ local reasoning  │
 └──────────────────┘  └──────────────────┘  └──────────────────┘
 Blocker: SSH key + EC2 impaired (100.123.248.46). OLLAMA_BRIDGE_HMAC in master.env ✓


┌──────────────────────────────────────────────────────────────────────────────┐
│              OBSERVABILITY + PERSISTENCE FAN-OUT                              │
│    (every CCR-routed call writes to ALL of the below — CHOKEPOINT-1)          │
└──────────────────────────────────────────────────────────────────────────────┘
                                   │
         ┌─────────────────────────┼─────────────────────────┐
         ▼                         ▼                         ▼
┌──────────────────┐   ┌──────────────────┐   ┌────────────────────────┐
│  PORTKEY (cloud) │   │  LANGFUSE :18840 │   │  SUPABASE CCP          │
│  ✓ live          │   │  ✓ env vars live  │   │  svueekfvfrvhylxygktb  │
│                  │   │  OSIL Langfuse   │   │  ✓ live, 373 tables    │
│  9 Portkey cfgs  │   │  Docker :18840   │   │                        │
│  (7 Anthropic +  │   │  Worker :18841   │   │  tool_calls table      │
│   2 Gemma 🔧 +   │   │  LANGFUSE_HOST   │   │  CHOKEPOINT-1: every   │
│   4 Perplexity✓ +│   │  LANGFUSE_PUBLIC │   │  LLM call → row here   │
│   1 default +    │   │  LANGFUSE_SECRET │   │  BEFORE returning       │
│   1 OpenRouter)  │   │  LANGFUSE_ROTATE │   │                        │
│                  │   │                  │   │  infra_config_changes  │
│  Pro plan $49/mo │   │  trace per call  │   │  CHOKEPOINT-2: config  │
│  logging, retry  │   │  phoenix-arize   │   │  changes written FIRST │
│  cache observe   │   │  eval hooks (T10)│   │                        │
└──────────────────┘   └──────────────────┘   │  omni_events           │
                                               │  9.85 GB HNSW idx      │
                                               │  tool_calls_fallback:  │
                                               │  /tmp/openclaw/        │
                                               │  tool-calls-fallback   │
                                               │  .jsonl (if PG down)   │
                                               └───────────┬────────────┘
                                                           ▼
              ┌────────────────────────────────────────────────────────────┐
              │              EMBEDDING + HYBRID SEARCH                      │
              └────────────────────────────────────────────────────────────┘
                                          │
     ┌────────────────────────────────────┼────────────────────────────────┐
     ▼                                    ▼                                ▼
┌────────────────────┐   ┌──────────────────────────────┐   ┌───────────────────┐
│  EMBEDDING PIPELINE│   │  HYBRID SEARCH               │   │  PER-AGENT SQLite │
│                    │   │                              │   │                   │
│  Voyage-4 primary  │   │  60 vector cols total        │   │  44 DBs in        │
│  ✓ via Portkey     │   │  52 HNSW indexes (halfvec)   │   │  memory/*.sqlite  │
│  pc-opencl-22d508  │   │  halfvec migration in-flight │   │  ~5,568 chunks    │
│                    │   │                              │   │  vec0 + FTS5      │
│  Voyage-3 fallback │   │  7 hybrid_search_* RPCs      │   │  70% vector /     │
│  pc-opencl-22d508  │   │  ✗ UNWIRED — 0 calls 5 mo   │   │  30% keyword      │
│                    │   │                              │   │                   │
│  Perplexity embed  │   │  Coverage today:             │   │  SEMANTIC MCP:    │
│  ⚠ deferred        │   │   salesmsg_inbox  30.9%      │   │  8 semantic_      │
│  (Phase 6 sub.)    │   │   omni_events     43.4%      │   │  search_* tools   │
│                    │   │   thread_msgs     42.1%      │   │  ✗ not built      │
│  embed-if-text     │   │   knowledge_docs   0.0% ✗    │   │  Phase 8 sub.plan │
│  ✗ not scheduled   │   │                              │   │                   │
│  (Phase 5 sub.)    │   │  mem0 / Honcho patterns      │   │  acquisitions.    │
│                    │   │  ⚠ audit pending (OSIL T4)   │   │  sqlite only 1    │
└────────────────────┘   └──────────────────────────────┘   │  chunk ⚠ Phase   │
                                                             │  7.5 investigation│
                                                             └───────────────────┘


┌──────────────────────────────────────────────────────────────────────────────┐
│                        AUDIT + DRIFT DETECTION                                │
└──────────────────────────────────────────────────────────────────────────────┘
 ┌──────────────────┐  ┌───────────────────┐  ┌──────────────────┐  ┌──────────────────┐
 │ cost-monitor.js  │  │ models-guardian.sh │  │ security-audit-  │  │ tool-calls-      │
 │ ⏸ PAUSED         │  │ ✓ running          │  │ funnel           │  │ health-check.js  │
 │                  │  │                   │  │ ✓ Mon 06:00 PT   │  │ ✓ every 5 min   │
 │ TODO: add CCR    │  │ guards models.json │  │                  │  │ CHOKEPOINT-1:    │
 │ fallback header  │  │ from drift on     │  │ Detects:         │  │ compares Portkey │
 │ check before     │  │ gateway restart   │  │ - unregistered   │  │ call count vs    │
 │ re-enable        │  │                   │  │   webhooks       │  │ tool_calls rows  │
 │                  │  │ TODO: rewrite for │  │ - sig fail >5%   │  │ >10% delta →    │
 │                  │  │ CCR semantics     │  │ - stale WAF rules│  │ Discord #ops     │
 └──────────────────┘  └───────────────────┘  └──────────────────┘  └──────────────────┘
 ┌───────────────────────────────────────────────────────────────────────────────────┐
 │ claude-orphan-reaper.js  ✓ running (5-min timer)                                  │
 │ 🆕 FIXED 2026-05-04: hasActivePipe() guard — checks /proc/PID/fd/0 for            │
 │ socket/pipe link. Skips reaping if stdin is active VS Code socket.                │
 │ Was: killing live VS Code sessions (root cause of exit code 143). Now fixed.      │
 └───────────────────────────────────────────────────────────────────────────────────┘


┌──────────────────────────────────────────────────────────────────────────────┐
│                   MCP TOOLS (live in .mcp.json — 21 servers)                  │
└──────────────────────────────────────────────────────────────────────────────┘
 Core 8 (always loaded):
 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ openclaw-tools     │  │ aurora-orchestrator │  │ context7           │
 │ ✓ 11 tools:        │  │ ✓ 20 tools:         │  │ ✓ 2 tools:         │
 │  memory_search     │  │  hubspot_lookup     │  │  resolve-library-id│
 │  memory_save       │  │  hubspot_deal_*     │  │  query-docs        │
 │  workspace_query   │  │  semantic_search    │  │ (library docs)     │
 │  run_script        │  │  openphone_thread   │  └────────────────────┘
 │  portkey_status    │  │  schedule_followup  │  ┌────────────────────┐
 │  agent_status      │  │  supabase_query     │  │ playwright          │
 │  gateway_logs      │  │  memory_search      │  │ ✓ headless browser │
 │  supabase_query    │  │  omni_contact_      │  │  DOM/screenshot    │
 │  hubspot_lookup    │  │   timeline          │  │  JS execution      │
 │  memory_health     │  │  reply_to_imessage  │  └────────────────────┘
 │  stack_query       │  │  ...more            │
 └────────────────────┘  └────────────────────┘

 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ shortio            │  │ 21st-magic         │  │ figma              │
 │ ✓ 11 tools:        │  │ ✓ 4 tools:          │  │ ✓ design files     │
 │  create-short-link │  │  component_builder │  │ (read-only)        │
 │  edit-link         │  │  component_refine  │  └────────────────────┘
 │  link-statistics   │  │  component_inspire │
 │  domain-statistics │  │  logo_search       │
 └────────────────────┘  └────────────────────┘

 Additional active (partial load):
 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ perplexity         │  │ firecrawl          │  │ sequential-thinking│
 │ ✓ 4 tools:         │  │ ✓ tools:            │  │ ✓ 1 tool:          │
 │  perplexity_ask    │  │  firecrawl_scrape  │  │  sequentialthink   │
 │  perplexity_reason │  │  firecrawl_search  │  │  (chain-of-thought)│
 │  perplexity_search │  │  firecrawl_crawl   │  └────────────────────┘
 │  perplexity_rsrch  │  │  firecrawl_extract │
 └────────────────────┘  └────────────────────┘

 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ memory (graph)     │  │ github             │  │ supabase           │
 │ ✓ 10 tools:        │  │ ✓ 40+ tools:        │  │ ✓ tools:           │
 │  create_entities   │  │  search_code       │  │  execute_sql       │
 │  create_relations  │  │  list_issues       │  │  apply_migration   │
 │  read_graph        │  │  create_pr         │  │  get_logs          │
 │  search_nodes      │  │  get_commit        │  │  list_tables       │
 │  add_observations  │  │  push_files        │  │  ...more           │
 └────────────────────┘  └────────────────────┘  └────────────────────┘

 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ dune               │  │ airtable           │  │ notion             │
 │ ✓ (HTTP mode)      │  │ ✓ tools:            │  │ ✓ tools:           │
 │  on-chain queries  │  │  list_bases        │  │  post-page         │
 │  dashboard create  │  │  list_records      │  │  retrieve-database │
 │  query execute     │  │  create_record     │  │  query-datasource  │
 └────────────────────┘  └────────────────────┘  └────────────────────┘

 ┌────────────────────┐  ┌────────────────────┐  ┌────────────────────┐
 │ discord            │  │ slack              │  │ hubspot (direct)   │
 │ ✓ 18 tools:        │  │ ✗ PLACEHOLDER      │  │ ✗ token stub       │
 │  send_message      │  │  token not set     │  │  (uses aurora-orc  │
 │  get_history       │  │                    │  │   hubspot_lookup   │
 │  add_reaction      │  └────────────────────┘  │   instead)         │
 │  edit_message      │  ┌────────────────────┐  └────────────────────┘
 └────────────────────┘  │ stripe             │  ┌────────────────────┐
                         │ ✗ PLACEHOLDER      │  │ google-workspace   │
                         │  token not set     │  │ ✗ wrong creds file │
                         └────────────────────┘  └────────────────────┘
                                                  ┌────────────────────┐
                                                  │ postgres-diag      │
                                                  │ ✗ env var not      │
                                                  │  expanded (known)  │
                                                  └────────────────────┘

 MCP servers MISSING from .mcp.json (not yet installed):
 ✗ Perplexity MCP full 5-layer     — Phase 6 of Perplexity plan (perplexity server IS
                                     connected but full 5-layer integration pending Q1-Q7)
 ✗ semantic_search_* RPCs          — Phase 8 of substrate plan
 ✗ CCR MCP                         — N/A (CCR is a backend service, not MCP)

Governance Gate Compliance

GateRuleStatus
CHOKEPOINT-1Every LLM call writes tool_calls row before returning⚠ CCR must implement when built. tool-calls-health-check.js monitors drift
CHOKEPOINT-2Config changes write infra_config_changes BEFORE going live✓ Required for every Portkey config edit
CHOKEPOINT-3Schema migrations via workspace/migrations/ files only✓ No raw ALTER TABLE from chat
G-NO-PLAINTEXT-CREDSAll credentials via op://Aurora/<item>/<field>⚠ master.env is chmod 600 but still plaintext — op:// migration in progress
G-SERVICE-PRE-START-DOCNew services in CLAUDE.md port map + ARCHITECTURE.md before first start✓ :18903/:18910 documented
G-FAILED-SERVICE-MTTRFailed services fixed/disabled/archived within 24hMonitor via daily cron
G-MODEL-ROUTING-AT-EXECExecution mode dispatches Sonnet first via Agent tool✓ Active this session
G-BLOCKER-SURFACINGOpen blockers mirrored to SESSION-AUDIT.md same session✓ See Open Decisions below

CCR Migration Plan Status (12 phases)

PhaseDescriptionStatus
0Stand up claude-max-api-proxy@teamsteph :18910, smoke test🆕 :18910 RUNNING — :18903 also working. Keep both (Q1)
1Add henry@reri.co Max #2 on :18911✗ not built
2Codex auth — wire Codex CLI subprocess into CCR✓ Codex logged in — CCR wiring pending Phase 4
3Kimi auth — wire kimi-cli subprocess into CCR✓ Kimi logged in — CCR wiring pending Phase 4
4CCR install + base config (:18902, intent classifier, routing rules)✗ not built
5Wire instrumentation fan-out (Postgres tool_calls, Langfuse)✗ not built
6Perplexity wire-in (depends on Q1-Q7 answers)⚠ partial — API key + Portkey live; MCP connected; full 5-layer pending
7Substrate touchpoints (coordinate with substrate plan)✗ not built
8Cut proxy.js LOCAL-SHORTCUT → CCR (:18902)✗ not built
9Update tier-config.json semantics (route field replacing max-plan tag)✗ not built
10Audit fix + un-pause cost-monitor✗ paused
11Decommission anthropic-max-router, archive stale env vars✗ pending Phase 0 decision
12Ollama install (AWS Mac) + Mac Ultra reachability✗ EC2 impaired, SSH timeout

Open Decisions

#QuestionRecommendation
Q1:18903 (anthropic-max-router) now working — keep alongside :18910 or cut over to claude-max-api-proxy?Keep :18903 as primary (it works), wire :18910 as hot-standby
Q2New plan ccr-server-side-dispatcher OR amend misty-valley?New plan — different scope
Q3ChatGPT account for Codex OAuth Phase 2 wiring?Whichever holds the $200 ChatGPT plan
Q4Archive MOONSHOT_API_KEY + KIMI_CODE_API_KEY after Phase 3?Yes, after Kimi OAuth subprocess verified
Q5Ollama AWS Mac — block on EC2 health fix first?Yes — resolve EC2 impaired status first
Q6Perplexity Q1-Q7 in perplexity plan need answers before Phase 6Answer next session
Q7Gemma-4 OpenRouter VK access — verify 31B + 26B models accessible?Smoke-test: curl OpenRouter with model ID, check 200
Q8Gemini + Groq — add to Portkey configs or route direct via CCR?Direct via CCR intent router (no Portkey overhead for fast models)
Q9Anthropic Batches API — which agents should use it?research/backfill/social for bulk background jobs (Phase 4 CCR rule)

What Changed Since Last Map Version

ChangeDetail
✓ Codex logged inUpdated from ⚠ API-key mode
✓ Kimi logged inUpdated from ⚠ empty credentials
✓ DeepSeek OAuthBoth API + OAuth available
🔧 Gemma-4 addedgemma-4-31b-it + gemma-4-26b-a4b-it in tier-config (in progress)
teamsteph@betterfiles.com labeledMax plan account correctly labeled throughout
📋 All cloud models addeddeepseek-v3.2, kimi-k2.5/turbo, maverick, qwen3.5-397b, minimax-m2.5, grok-4-fast, gemini-3-flash/pro, groq/llama-3.3-70b, deepseek-r1, Batches API
📋 All local Ollama models addedqwen3.5:122b (6 ctx), qwen3.6:35b, qwen3:235b-thinking, gemma4:26b/31b, deepseek-r1:32b
📋 Additional backends inside CCR sectionMoved from footnote to inside pipeline diagram
📋 Portkey configs fully auditedAll 21 model entries verified against live tier-config.json
📋 Governance gates addedCHOKEPOINT-1/2/3 + G-gates table added
📋 MCP tools expandedAll 21 .mcp.json servers documented (was 8) — includes perplexity, firecrawl, sequential-thinking, memory graph, github, supabase, dune, airtable, notion, discord, slack✗, stripe✗, google-workspace✗, postgres-diag✗
✓ :18903 working8/8 tests passed (Sonnet/Opus4.7/Opus4.6/Haiku × direct + proxy)
✓ :18910 runningclaude-max-api-proxy now on 127.0.0.1:18910 (hot standby)
🆕 claude-opus-4-6Confirmed valid Anthropic model. In tier-config. Works through max-plan route.
🆕 Orphan reaper fixedhasActivePipe() guard — no longer kills active VS Code sessions (exit 143 fix)