feat: 添加新的分享路由以获取cnb工作空间中助手的访问地址

This commit is contained in:
2026-03-07 01:50:50 +08:00
parent 2eecbe273e
commit dd5331bbaa
7 changed files with 105 additions and 31 deletions

4
agent/command.ts Normal file
View File

@@ -0,0 +1,4 @@
import { app } from './index.ts';
import { parse } from '@kevisual/router/src/commander.ts';
parse({ app: app as any, description: 'CNB控制台命令行工具', parse: true })

View File

@@ -7,7 +7,7 @@ import './cnb-env/index.ts'
import './knowledge/index.ts'
import './issues/index.ts'
import './cnb-board/index.ts';
import './share/index.ts';
/**
* 验证上下文中的 App ID 是否与指定的 App ID 匹配
* @param {any} ctx - 上下文对象,可能包含 appId 属性

View File

@@ -0,0 +1,48 @@
import { useKey } from '@kevisual/context';
import { app, cnb } from '../../app.ts';
import z from 'zod';
app.route({
path: 'cnb',
key: 'get-assistant-url',
description: '获取cnb工作空间中部署的各个助手的访问地址',
middleware: ['auth'],
metadata: {
args: {
more: z.boolean().describe('需要更多信息')
}
}
}).define(async (ctx) => {
const uri = useKey('CNB_VSCODE_PROXY_URI') as string || '';
const base = {
base: uri,
link: uri.replace('{{port}}', '51515'),
kevisual: uri.replace('{{port}}', '51515'),
openclaw: uri.replace('{{port}}', '80'),
opencode: uri.replace('{{port}}', '100'),
openwebui: uri.replace('{{port}}', '200'),
note: uri.replace('{{port}}', '3000'),
uptime: uri.replace('{{port}}', '3001'),
immich: uri.replace('{{port}}', '2283'),
nocodb: uri.replace('{{port}}', '4000'),
openlist: uri.replace('{{port}}', '5244'),
xiaoyao: uri.replace('{{port}}', '5678'),
meilisearch: uri.replace('{{port}}', '7700'),
bark: uri.replace('{{port}}', '9111'),
vaultwarden: uri.replace('{{port}}', '8180'),
music: uri.replace('{{port}}', '8096'),
jellyfin: uri.replace('{{port}}', '8096'),
homeassistant: uri.replace('{{port}}', '8123'),
cloudreve: uri.replace('{{port}}', '5212'),
filebrowser: uri.replace('{{port}}', '8081'),
// newapi: uri.replace('{{port}}', '8080'),
vscode: useKey('CNB_VSCODE_PROXY_URI') as string || '',
codeServer: uri.replace('{{port}}', '10000'),
gitea: uri.replace('{{port}}', '3000'),
calibre: uri.replace('{{port}}', '8083'),
searXNG: uri.replace('{{port}}', '8888'),
}
ctx.body = {
...base,
}
}).addTo(app);