fix: 更新 AssistantConfig 以启用共享功能,并优化本地用户检查逻辑

This commit is contained in:
xiongxiao
2026-02-22 00:20:59 +08:00
parent e377557587
commit 88313d5b8e
7 changed files with 23 additions and 62 deletions

View File

@@ -1,11 +0,0 @@
# .cnb/web_trigger.yml
branch:
# 如下按钮在分支名以 release 开头的分支详情页面显示
- reg: "^main"
buttons:
- name: 同步代码到gitea
description: 同步代码到gitea
event: web_trigger_sync_to_gitea
- name: 同步gitea代码到当前仓库
description: 同步gitea代码到当前仓库
event: web_trigger_sync_from_gitea

View File

@@ -390,7 +390,7 @@ export class AssistantConfig {
home: '/root/home', home: '/root/home',
proxy: [], proxy: [],
share: { share: {
enabled: false, enabled: true,
url: 'https://kevisual.cn/ws/proxy', url: 'https://kevisual.cn/ws/proxy',
}, },
} as AssistantConfigData; } as AssistantConfigData;

View File

@@ -301,11 +301,11 @@ const checkLocalUser = async (opts: { assistantApp: AssistantApp }) => {
const config = assistantApp.config.getConfig(); const config = assistantApp.config.getConfig();
const auth = config?.auth || {}; const auth = config?.auth || {};
const isLogin = await assistantQuery.queryLogin.getToken(); const isLogin = await assistantQuery.queryLogin.getToken();
logger.log('[assistant] 正在检查本地用户登录状态...', auth, '是否已登录', !!isLogin); logger.log('[assistant] 正在检查本地用户登录状态...', 'user', auth.username, '是否已登录', !!isLogin);
const saveAuth = (auth: typeof config.auth, opts: { appId?: string, username: string; share: 'protected' | 'private' }) => { const saveAuth = (auth: typeof config.auth, opts: { appId?: string, username: string; share: 'protected' | 'private' }) => {
auth.username = opts.username; auth.username = auth.username ?? opts.username;
auth.share = opts.share; auth.share = auth.share ?? opts.share;
const app = config?.app || {}; const app = config?.app || {};
if (!app?.id) { if (!app?.id) {
app.id = opts.appId || 'dev-cnb' app.id = opts.appId || 'dev-cnb'
@@ -333,15 +333,23 @@ const checkLocalUser = async (opts: { assistantApp: AssistantApp }) => {
const res = await assistantQuery.queryLogin.loginByCnb({ cnbToken }) const res = await assistantQuery.queryLogin.loginByCnb({ cnbToken })
if (res.code === 200) { if (res.code === 200) {
const userInfo = await assistantQuery.queryLogin.checkLocalUser() const userInfo = await assistantQuery.queryLogin.checkLocalUser()
saveAuth(auth, { username: userInfo.username, share: 'protected' }) if (!userInfo.username) {
saveAuth(auth, { username: userInfo.username, share: 'protected' })
}
return return
} else { } else {
logger.error('CNB登录失败无法获取用户信息', res); logger.error('CNB登录失败无法获取用户信息', res);
} }
} }
const kevisualToken = useKey('KEVISUAL_TOKEN'); const accessToken = useKey('KEVISUAL_TOKEN');
if (kevisualToken) { if (accessToken) {
logger.info('[cnb]检测到 KEVISUAL_TOKEN正在尝试使用 KEVISUAL_TOKEN 登录...'); logger.info('[cnb]检测到 KEVISUAL_TOKEN正在尝试使用 KEVISUAL_TOKEN 登录...');
const res = await assistantQuery.queryLogin.refreshLoginUser(kevisualToken) const res = await assistantQuery.queryLogin.refreshLoginUser({ accessToken, refreshToken: '' })
if (res.code === 200) {
if (!auth.username) {
const userInfo = await assistantQuery.queryLogin.checkLocalUser()
saveAuth(auth, { username: userInfo.username, share: 'protected' })
}
}
} }
} }

View File

@@ -5,10 +5,10 @@ import fs from 'node:fs';
import glob from 'fast-glob'; import glob from 'fast-glob';
import { runCode } from './run.ts'; import { runCode } from './run.ts';
const codeDemoId = '0e700dc8-90dd-41b7-91dd-336ea51de3d2' const codeDemoId = '0e700dc8-90dd-41b7-91dd-336ea51de3d2'
import { filter } from "@kevisual/js-filter";
import { getHash, getStringHash } from '../file-hash.ts'; import { getHash, getStringHash } from '../file-hash.ts';
import { AssistantConfig } from '@/lib.ts'; import { AssistantConfig } from '@/lib.ts';
import { assistantQuery } from '@/app.ts'; import { assistantQuery } from '@/app.ts';
import { logger } from '../logger.ts';
const codeDemo = `// 这是一个示例代码文件 const codeDemo = `// 这是一个示例代码文件
import {App} from '@kevisual/router'; import {App} from '@kevisual/router';
@@ -47,17 +47,17 @@ type LightCodeFile = {
export const initLightCode = async (opts: Opts) => { export const initLightCode = async (opts: Opts) => {
const token = await assistantQuery.getToken(); const token = await assistantQuery.getToken();
if (!token) { if (!token) {
console.error('[light-code] 当前未登录,无法初始化 light-code'); logger.error('[light-code] 当前未登录,无法初始化 light-code');
return; return;
} }
// 注册 light-code 路由 // 注册 light-code 路由
const config = opts.config as AssistantInit; const config = opts.config as AssistantInit;
const app = opts.router; const app = opts.router;
console.log('初始化 light-code 路由'); logger.log('[light-code] 初始化 light-code 路由');
const query = config.query; const query = config.query;
const sync = opts.sync ?? 'remote'; const sync = opts.sync ?? 'remote';
if (!config || !app) { if (!config || !app) {
console.error('[light-code] initLightCode 缺少必要参数, config 或 app'); logger.error('[light-code] initLightCode 缺少必要参数, config 或 app');
return; return;
} }
const lightcodeDir = opts.rootPath; const lightcodeDir = opts.rootPath;

View File

@@ -1,34 +0,0 @@
{
"metadata": {
"name": "kevisual",
"share": "public"
},
"checkDir": {
"./build/tools/kevisual-sync": {
"url": "https://kevisual.xiongxiao.me/root/ai/kevisual/tools/kevisual-sync/",
"enabled": true
}
},
"syncDirectory": [
{
"files": [
"build/**/*"
],
"ignore": [
"build/ignore.md"
],
"registry": "https://kevisual.xiongxiao.me/root/ai/kevisual",
"replace": {
"build/": ""
}
}
],
"sync": {
"./build/01-summary.md": {
"url": "https://kevisual.xiongxiao.me/root/ai/kevisual/01-summary.md",
"meta": {
"share": "public"
}
}
}
}

View File

@@ -19,7 +19,9 @@ const checkAuth = (value: string = '', baseURL: string = '') => {
return false; return false;
}; };
const DEFAULT_IGNORE = ['node_modules/**', '.git/**', '.next/**', '.astro/**', '.pack-dist/**']; const DEFAULT_IGNORE = [
'node_modules/**', '.git/**', '.next/**', '.astro/**', '.pack-dist/**',
];
export class SyncBase { export class SyncBase {
config: Config; config: Config;
#filename: string; #filename: string;

View File

@@ -1,4 +0,0 @@
"@nut-tree-fork/nut-js": "^4.2.6",
"@kevisual/hot-api": "^0.0.3",
KEVISUAL_TOKEN="" LOG_LEVEL=DEBUG pnpm dev deploy ./cli-center/dist -k cli -v 0.0.4 -u -y y