feat: update package dependencies and add new routes for CNB environment management

- Updated package.json and pnpm-lock.yaml with new dependencies and versions.
- Removed outdated readme files from requirements.
- Enhanced CNB environment configuration in cnb-env.ts with new VS Code remote SSH settings.
- Modified KnowledgeBase class to return structured results.
- Updated Workspace class to return structured results.
- Implemented new routes for managing CNB cookies and VS Code proxy URIs.
- Added AI chat functionality for querying knowledge base.
- Created skills for cleaning up closed workspaces.
This commit is contained in:
xiongxiao
2026-01-27 04:02:34 +08:00
parent da7b06e519
commit 50332fe2f4
23 changed files with 665 additions and 201 deletions

View File

@@ -7,41 +7,51 @@
import { useKey } from "@kevisual/use-config"
export const CNB_ENV = {
// 仓库相关配置
/** 仓库的 HTTPS 地址,如 "https://cnb.cool/kevisual/cnb" */
CNB_REPO_URL_HTTPS: useKey('CNB_REPO_URL_HTTPS'),
// 仓库相关配置
/** 仓库的 HTTPS 地址,如 "https://cnb.cool/kevisual/cnb" */
CNB_REPO_URL_HTTPS: useKey('CNB_REPO_URL_HTTPS'),
// 构建相关配置
/** 流水线 ID唯一标识一次构建流水线如 "cnb-108-1jer5qekq-001" */
CNB_PIPELINE_ID: useKey('CNB_PIPELINE_ID'),
/** 构建 ID与流水线 ID 相关联,如 "cnb-108-1jer5qekq" */
CNB_BUILD_ID: useKey('CNB_BUILD_ID'),
/** 构建开始时间ISO 8601 格式,如 "2026-01-13T07:58:41.825Z" */
CNB_BUILD_START_TIME: useKey('CNB_BUILD_START_TIME'),
/** 构建日志 Web 界面 URL用于在浏览器中查看构建日志 */
CNB_BUILD_WEB_URL: useKey('CNB_BUILD_WEB_URL'),
/** 触发构建的事件类型,如 "vscode" 表示由 VS Code 触发 */
CNB_EVENT: useKey('CNB_EVENT'),
/** 当前构建对应的 Git 提交哈希值 */
CNB_COMMIT: useKey('CNB_COMMIT'),
// 构建相关配置
/** 流水线 ID唯一标识一次构建流水线如 "cnb-upo-1jfth1771-001" */
CNB_PIPELINE_ID: useKey('CNB_PIPELINE_ID'),
/** 构建 ID与流水线 ID 相关联,如 "cnb-upo-1jfth1771" */
CNB_BUILD_ID: useKey('CNB_BUILD_ID'),
/** 构建开始时间ISO 8601 格式,如 "2026-01-13T07:58:41.825Z" */
CNB_BUILD_START_TIME: useKey('CNB_BUILD_START_TIME'),
/** 构建日志 Web 界面 URL用于在浏览器中查看构建日志 */
CNB_BUILD_WEB_URL: useKey('CNB_BUILD_WEB_URL'),
/** 触发构建的事件类型,如 "vscode" 表示由 VS Code 触发 */
CNB_EVENT: useKey('CNB_EVENT'),
/** 当前构建对应的 Git 提交哈希值 */
CNB_COMMIT: useKey('CNB_COMMIT'),
// VS Code 相关配置
/** VS Code Web 界面的访问 URL用于在浏览器中打开 VS Code */
CNB_VSCODE_WEB_URL: useKey('CNB_VSCODE_WEB_URL'),
/** VS Code 代理 URI用于端口转发{{port}} 会被替换为实际端口号, 例如: "https://1wnts22gq3-{{port}}.cnb.run"*/
CNB_VSCODE_PROXY_URI: useKey('CNB_VSCODE_PROXY_URI'),
// VS Code 相关配置
/** VS Code Web 界面的访问 URL用于在浏览器中打开 VS Code,例如:'https://cnb.cool/kevisual/cnb/-/workspace/vscode-web/cnb-upo-1jfth1771-001/'*/
CNB_VSCODE_WEB_URL: useKey('CNB_VSCODE_WEB_URL'),
/** VS Code 代理 URI用于端口转发{{port}} 会被替换为实际端口号, 例如: "https://1wnts22gq3-{{port}}.cnb.run"*/
CNB_VSCODE_PROXY_URI: useKey('CNB_VSCODE_PROXY_URI'),
/**
* VS Code Remote SSH 连接字符串,例如: vscode://vscode-remote/ssh-remote+cnb-upo-1jfth1771-001.8939f3d1-de13-486e-921f-f07943fcfa28-qng@cnb.space/workspace/"
* 是CNB_PIPELINE_ID和CNB_VSCODE_SSH_TOKEN的组合
*/
CNB_VSCODE_REMOTE_SSH_SCHEMA: useKey('CNB_VSCODE_REMOTE_SSH_SCHEMA'),
/**
* VS Code Remote SSH 连接的认证 Token 8939f3d1-de13-486e-921f-f07943fcfa28-qng
* 组装为ssh的链接字符串是 ssh CNB_PIPELINE_ID + '.' + CNB_VSCODE_SSH_TOKEN@cnb.space
*/
CNB_VSCODE_SSH_TOKEN: useKey('CNB_VSCODE_SSH_TOKEN'),
// 仓库标识配置
/** 仓库标识符,格式为 "组名/仓库名",如 "kevisual/cnb" */
CNB_REPO_SLUG: useKey('CNB_REPO_SLUG'),
/** 组名/命名空间标识符,如 "kevisual" */
CNB_GROUP_SLUG: useKey('CNB_GROUP_SLUG'),
// 仓库标识配置
/** 仓库标识符,格式为 "组名/仓库名",如 "kevisual/cnb" */
CNB_REPO_SLUG: useKey('CNB_REPO_SLUG'),
/** 组名/命名空间标识符,如 "kevisual" */
CNB_GROUP_SLUG: useKey('CNB_GROUP_SLUG'),
// 运行器资源配置
/** 运行器分配的 CPU 核心数,单位为核, 例如: "8"*/
CNB_CPUS: useKey('CNB_CPUS'),
/** 运行器分配的内存大小,单位为 GB 例如: "16"*/
CNB_MEMORY: useKey('CNB_MEMORY'),
/** 运行器的 IP 地址,用于网络连接和调试 */
CNB_RUNNER_IP: useKey('CNB_RUNNER_IP'),
// 运行器资源配置
/** 运行器分配的 CPU 核心数,单位为核, 例如: "8"*/
CNB_CPUS: useKey('CNB_CPUS'),
/** 运行器分配的内存大小,单位为 GB 例如: "16"*/
CNB_MEMORY: useKey('CNB_MEMORY'),
/** 运行器的 IP 地址,用于网络连接和调试 */
CNB_RUNNER_IP: useKey('CNB_RUNNER_IP'),
}

View File

@@ -10,7 +10,7 @@ export class KnowledgeBase extends CNBCore {
score_threshold?: number,
top_k?: number,
metadata_filtering_conditions?: MetadataFilteringConditions
}): Promise<any> {
}): Promise<Result<QueryRag[]>> {
const url = `/${repo}/-/knowledge/base/query`;
let postData = {
query: data.query,
@@ -43,4 +43,17 @@ type MetadataFilteringConditions = {
value?: string
}>
logical_operator?: 'adn' | 'or'
}
type QueryRag = {
chunk: string;
score: number;
metadata: {
hash: string;
name: string;
path: string;
position: string;
type: string; // code, text
url: string;
}
}

View File

@@ -54,7 +54,7 @@ export class Workspace extends CNBCore {
return this.post({ url: '/workspace/delete', data });
}
/** 获取我的云原生开发环境列表 */
async list(params?: ListParams): Promise<WorkspaceResult> {
async list(params?: ListParams): Promise<Result<WorkspaceResult>> {
return this.get({ url: '/workspace/list', params });
}