From d9fda44e78f2be1093670cbd9ede839030e25742 Mon Sep 17 00:00:00 2001 From: xiongxiao Date: Fri, 13 Mar 2026 04:33:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20CNB=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9C=AA=E6=8E=88=E6=9D=83=E9=97=AE=E9=A2=98=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/modules/cnb-manager.ts | 6 +++++- agent/routes/cnb-manager/index.ts | 5 +++-- agent/routes/cnb-manager/test.ts | 6 ++++++ package.json | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 agent/routes/cnb-manager/test.ts diff --git a/agent/modules/cnb-manager.ts b/agent/modules/cnb-manager.ts index 5e8e959..6553138 100644 --- a/agent/modules/cnb-manager.ts +++ b/agent/modules/cnb-manager.ts @@ -4,7 +4,9 @@ import { useKey } from '@kevisual/context'; import { createOpenAICompatible } from '@ai-sdk/openai-compatible'; export const getConfig = async (opts: { token?: string }) => { const kevisualEnv = useKey('KEVISUAL_ENV') - const baseUrl = kevisualEnv === 'production' ? 'https://kevisual.cn/api/router' : 'https://kevisual.xiongxiao.me/api/router'; + const isCNB = useKey('CNB'); + let isProduction = kevisualEnv !== 'development' || (isCNB && !kevisualEnv); + const baseUrl = isProduction ? 'https://kevisual.cn/api/router' : 'https://kevisual.xiongxiao.me/api/router'; const res = await fetch(baseUrl, { method: 'POST', body: JSON.stringify({ @@ -70,6 +72,8 @@ export class CNBManager { if (token) { return this.addCNB({ username, token, cookie }) } + } else { + console.error('获取 CNB 配置失败', username, res) } return null } diff --git a/agent/routes/cnb-manager/index.ts b/agent/routes/cnb-manager/index.ts index ed5270d..0fe062b 100644 --- a/agent/routes/cnb-manager/index.ts +++ b/agent/routes/cnb-manager/index.ts @@ -9,7 +9,7 @@ app.route({ middleware: ['auth'], }).define(async (ctx) => { - const tokenUser = ctx.tokenUser; + const tokenUser = ctx.state?.tokenUser; if (!tokenUser) { ctx.throw(401, '未授权'); } @@ -29,7 +29,8 @@ app.route({ description: '获取我的cnb配置', middleware: ['auth'], }).define(async (ctx) => { - const username = ctx.tokenUser?.username; + const tokenUser = ctx.state?.tokenUser; + const username = tokenUser?.username; const token = ctx.query?.token; if (!username) { ctx.throw(400, '未授权'); diff --git a/agent/routes/cnb-manager/test.ts b/agent/routes/cnb-manager/test.ts new file mode 100644 index 0000000..516a2ec --- /dev/null +++ b/agent/routes/cnb-manager/test.ts @@ -0,0 +1,6 @@ +const token = 'st_logh1b3ozq2resntxlnk4bccao0bon8e' +import { CNBManager } from "../../modules/cnb-manager.ts" +const cnbManager = new CNBManager() + +const cnbItem = await cnbManager.getCNB({ username: 'root', kevisualToken: token }); +console.log('cnbItem', cnbItem) \ No newline at end of file diff --git a/package.json b/package.json index 22103b2..8747713 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/cnb", - "version": "0.0.43", + "version": "0.0.45", "description": "", "main": "index.js", "basename": "/root/cnb",