From 085f7c71869abf0945383d07fc2398039f1d886f Mon Sep 17 00:00:00 2001 From: Hong Jiarong Date: Wed, 8 Jul 2026 01:48:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(hub):=20=E5=8E=BB=E6=8E=89=E5=86=97?= =?UTF-8?q?=E4=BD=99=20OPENROUTER=5FAPI=5FKEY,=E7=9B=B4=E6=8E=A5=E7=94=A8?= =?UTF-8?q?=20ANTHROPIC=5FAUTH=5FTOKEN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hub/.env.example | 13 ++++--------- hub/src/server.ts | 8 +++----- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/hub/.env.example b/hub/.env.example index 73d9d30..32ed939 100644 --- a/hub/.env.example +++ b/hub/.env.example @@ -3,16 +3,11 @@ # PostgreSQL connection string. DATABASE_URL="postgresql://paradigm:paradigm@127.0.0.1:5432/paradigm" -# OpenRouter API key — used as ANTHROPIC_AUTH_TOKEN for Claude Code SDK. -# OpenRouter's "Anthropic Skin" (https://openrouter.ai/api) is Anthropic-API -# compatible, so Claude Code SDK speaks its native protocol directly. -# Get one at https://openrouter.ai/keys -OPENROUTER_API_KEY="" - -# Claude Code SDK auth — derived from OpenRouter. Do NOT set ANTHROPIC_API_KEY -# to a real value; it must be explicitly empty to avoid auth conflicts. +# Claude Code SDK auth via OpenRouter's Anthropic Skin. +# ANTHROPIC_AUTH_TOKEN = your OpenRouter API key (https://openrouter.ai/keys) +# ANTHROPIC_API_KEY must be explicitly empty to avoid auth conflicts. ANTHROPIC_BASE_URL="https://openrouter.ai/api" -ANTHROPIC_AUTH_TOKEN="" # Set to same value as OPENROUTER_API_KEY +ANTHROPIC_AUTH_TOKEN="" ANTHROPIC_API_KEY="" # Model override (optional). Defaults to Claude Sonnet. To use GLM: diff --git a/hub/src/server.ts b/hub/src/server.ts index 56b183a..798f675 100644 --- a/hub/src/server.ts +++ b/hub/src/server.ts @@ -30,12 +30,10 @@ async function main(): Promise { const databaseUrl = requireEnv("DATABASE_URL"); void databaseUrl; - // Claude Code SDK auth via OpenRouter's Anthropic Skin. The SDK reads - // ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN from env. ANTHROPIC_API_KEY - // must be explicitly empty to avoid auth conflicts. - const openrouterKey = requireEnv("OPENROUTER_API_KEY"); + // Claude Code SDK auth via OpenRouter's Anthropic Skin. + // ANTHROPIC_AUTH_TOKEN = OpenRouter API key; ANTHROPIC_API_KEY must be empty. + requireEnv("ANTHROPIC_AUTH_TOKEN"); process.env["ANTHROPIC_BASE_URL"] ??= "https://openrouter.ai/api"; - process.env["ANTHROPIC_AUTH_TOKEN"] ??= openrouterKey; process.env["ANTHROPIC_API_KEY"] ??= ""; const feishuAppId = requireEnv("FEISHU_APP_ID"); const feishuAppSecret = requireEnv("FEISHU_APP_SECRET");