feat: 添加 CNB API 接口定义,包括用户验证、仓库管理和工作空间操作

This commit is contained in:
2026-03-06 02:50:35 +08:00
parent 6c914c3186
commit 253ef2ac7d

906
src/pages/cnb/api.ts Normal file
View File

@@ -0,0 +1,906 @@
import { createQueryApi } from '@kevisual/query/api';
import { queryClient as query } from '@/modules/query.ts';
const api = {
"cnb": {
/**
* 验证 CNB 登录信息是否有效
*
* @param data - Request parameters
* @param data.checkToken - {boolean} 是否检查 Token 的有效性
* @param data.checkCookie - {boolean} 是否检查 Cookie 的有效性
*/
"user-check": {
"path": "cnb",
"key": "user-check",
"description": "检查用户登录状态参数checkToken,default true; checkCookie, default false",
"metadata": {
"tags": [
"opencode"
],
"args": {
"checkToken": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"default": true,
"type": "boolean",
"description": "是否检查 Token 的有效性",
"optional": true
},
"checkCookie": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"default": false,
"type": "boolean",
"description": "是否检查 Cookie 的有效性",
"optional": true
}
},
"skill": "cnb-login-verify",
"title": "CNB 登录验证信息",
"summary": "验证 CNB 登录信息是否有效",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 列出cnb代码仓库, 可选flags参数如 KnowledgeBase
*
* @param data - Request parameters
* @param data.search - {string} 搜索关键词
* @param data.pageSize - {number} 每页数量默认999
* @param data.flags - {string} 仓库标记,如果是知识库则填写 KnowledgeBase
*/
"list-repos": {
"path": "cnb",
"key": "list-repos",
"description": "列出我的代码仓库",
"metadata": {
"tags": [
"opencode"
],
"args": {
"search": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "搜索关键词",
"type": "string",
"optional": true
},
"pageSize": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "每页数量默认999",
"type": "number",
"optional": true
},
"flags": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "仓库标记,如果是知识库则填写 KnowledgeBase",
"type": "string",
"optional": true
}
},
"skill": "list-repos",
"title": "列出cnb代码仓库",
"summary": "列出cnb代码仓库, 可选flags参数如 KnowledgeBase",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 创建一个新的代码仓库
*
* @param data - Request parameters
* @param data.name - {string} 代码仓库名称, 如 my-user/my-repo
* @param data.visibility - {string} 代码仓库可见性, public 或 private
* @param data.description - {string} 代码仓库描述
*/
"create-repo": {
"path": "cnb",
"key": "create-repo",
"description": "创建代码仓库, 参数name, visibility, description",
"metadata": {
"tags": [
"opencode"
],
"args": {
"name": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称, 如 my-user/my-repo"
},
"visibility": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"default": "public",
"type": "string",
"description": "代码仓库可见性, public 或 private",
"optional": true
},
"description": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库描述"
}
},
"skill": "create-repo",
"title": "创建代码仓库",
"summary": "创建一个新的代码仓库",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 在代码仓库中创建文件, encoding 可选,默认 raw
*
* @param data - Request parameters
* @param data.repoName - {string} 代码仓库名称, 如 my-user/my-repo
* @param data.filePath - {string} 文件路径, 如 src/index.ts
* @param data.content - {string} 文本的字符串的内容
* @param data.encoding - {string} 编码方式,如 raw
*/
"create-repo-file": {
"path": "cnb",
"key": "create-repo-file",
"description": "在代码仓库中创建文件, repoName, filePath, content, encoding。使用CNB_COOKIE进行鉴权",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repoName": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称, 如 my-user/my-repo"
},
"filePath": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "文件路径, 如 src/index.ts"
},
"content": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "文本的字符串的内容"
},
"encoding": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "编码方式,如 raw",
"optional": true
}
},
"skill": "create-repo-file",
"title": "在代码仓库中创建文件",
"summary": "在代码仓库中创建文件, encoding 可选,默认 raw",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 删除一个代码仓库
*
* @param data - Request parameters
* @param data.name - {string} 代码仓库名称
*/
"delete-repo": {
"path": "cnb",
"key": "delete-repo",
"description": "删除代码仓库, 参数name",
"metadata": {
"tags": [
"opencode"
],
"args": {
"name": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称"
}
},
"skill": "delete-repo",
"title": "删除代码仓库",
"summary": "删除一个代码仓库",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 批量删除已停止的cnb工作空间释放资源
*/
"clean-closed-workspace": {
"path": "cnb",
"key": "clean-closed-workspace",
"description": "批量删除已停止的cnb工作空间",
"metadata": {
"tags": [
"opencode"
],
"args": {},
"skill": "clean-closed-workspace",
"title": "清理已关闭的cnb工作空间",
"summary": "批量删除已停止的cnb工作空间释放资源",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 保持工作空间存活技能参数repo:代码仓库路径,例如 user/repopipelineId:流水线ID例如 cnb-708-1ji9sog7o-001
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库路径,例如 user/repo
* @param data.pipelineId - {string} 流水线ID例如 cnb-708-1ji9sog7o-001
*/
"keep-workspace-alive": {
"path": "cnb",
"key": "keep-workspace-alive",
"description": "保持工作空间存活技能参数repo:代码仓库路径,例如 user/repopipelineId:流水线ID例如 cnb-708-1ji9sog7o-001",
"metadata": {
"tags": [],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库路径,例如 user/repo"
},
"pipelineId": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "流水线ID例如 cnb-708-1ji9sog7o-001"
}
},
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 停止保持工作空间存活技能, 参数repo:代码仓库路径,例如 user/repopipelineId:流水线ID例如 cnb-708-1ji9sog7o-001
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库路径,例如 user/repo
* @param data.pipelineId - {string} 流水线ID例如 cnb-708-1ji9sog7o-001
*/
"stop-keep-workspace-alive": {
"path": "cnb",
"key": "stop-keep-workspace-alive",
"description": "停止保持工作空间存活技能, 参数repo:代码仓库路径,例如 user/repopipelineId:流水线ID例如 cnb-708-1ji9sog7o-001",
"metadata": {
"tags": [],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库路径,例如 user/repo"
},
"pipelineId": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "流水线ID例如 cnb-708-1ji9sog7o-001"
}
},
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 保持当前工作空间存活,防止被关闭或释放资源
*/
"keep-alive-current-workspace": {
"path": "cnb",
"key": "keep-alive-current-workspace",
"description": "保持当前工作空间存活技能",
"metadata": {
"tags": [
"opencode"
],
"skill": "keep-alive-current-workspace",
"title": "保持当前工作空间存活",
"summary": "保持当前工作空间存活,防止被关闭或释放资源",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 启动cnb工作空间
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库路径,例如 user/repo
* @param data.branch - {string} 分支名称,默认主分支
* @param data.ref - {string} 提交引用,例如 commit sha
*/
"start-workspace": {
"path": "cnb",
"key": "start-workspace",
"description": "启动开发工作空间, 参数 repo",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库路径,例如 user/repo"
},
"branch": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分支名称,默认主分支",
"type": "string",
"optional": true
},
"ref": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "提交引用,例如 commit sha",
"type": "string",
"optional": true
}
},
"skill": "start-workspace",
"title": "启动cnb工作空间",
"summary": "启动cnb工作空间",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 列出cnb工作空间列表支持按状态过滤 status 可选值 running 或 closed
*
* @param data - Request parameters
* @param data.status - {string} 开发环境状态running: 运行中closed: 已关闭和停止的
* @param data.page - {number} 分页页码,默认 1
* @param data.pageSize - {number} 分页大小,默认 20最大 100
* @param data.slug - {string} 仓库路径,例如 groupname/reponame
* @param data.branch - {string} 分支名称
*/
"list-workspace": {
"path": "cnb",
"key": "list-workspace",
"description": "获取cnb开发工作空间列表可选参数 status=running 获取运行中的环境",
"metadata": {
"tags": [
"opencode"
],
"args": {
"status": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "开发环境状态running: 运行中closed: 已关闭和停止的",
"type": "string",
"optional": true
},
"page": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分页页码,默认 1",
"type": "number",
"optional": true
},
"pageSize": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分页大小,默认 20最大 100",
"type": "number",
"optional": true
},
"slug": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "仓库路径,例如 groupname/reponame",
"type": "string",
"optional": true
},
"branch": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分支名称",
"type": "string",
"optional": true
}
},
"skill": "list-workspace",
"title": "列出cnb工作空间",
"summary": "列出cnb工作空间列表支持按状态过滤 status 可选值 running 或 closed",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 获取工作空间详细信息
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库路径,例如 user/repo
* @param data.sn - {string} 工作空间流水线的 sn
*/
"get-workspace": {
"path": "cnb",
"key": "get-workspace",
"description": "获取工作空间详情,通过 repo 和 sn 获取",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库路径,例如 user/repo"
},
"sn": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "工作空间流水线的 sn"
}
},
"skill": "get-workspace",
"title": "获取工作空间详情",
"summary": "获取工作空间详细信息",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 删除工作空间pipelineId 和 sn 二选一
*
* @param data - Request parameters
* @param data.pipelineId - {string} 流水线 ID优先使用
* @param data.sn - {string} 流水线构建号
* @param data.sns - {array} 批量流水线构建号
*/
"delete-workspace": {
"path": "cnb",
"key": "delete-workspace",
"description": "删除工作空间,通过 pipelineId 或 sn",
"metadata": {
"tags": [
"opencode"
],
"args": {
"pipelineId": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "流水线 ID优先使用",
"type": "string",
"optional": true
},
"sn": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "流水线构建号",
"type": "string",
"optional": true
},
"sns": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "批量流水线构建号",
"type": "array",
"items": {
"type": "string"
},
"optional": true
}
},
"skill": "delete-workspace",
"title": "删除工作空间",
"summary": "删除工作空间pipelineId 和 sn 二选一",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 停止运行中的工作空间
*
* @param data - Request parameters
* @param data.pipelineId - {string} 流水线 ID优先使用
* @param data.sn - {string} 流水线构建号
*/
"stop-workspace": {
"path": "cnb",
"key": "stop-workspace",
"description": "停止工作空间,通过 pipelineId 或 sn",
"metadata": {
"tags": [
"opencode"
],
"args": {
"pipelineId": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "流水线 ID优先使用",
"type": "string",
"optional": true
},
"sn": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "流水线构建号",
"type": "string",
"optional": true
}
},
"skill": "stop-workspace",
"title": "停止工作空间",
"summary": "停止运行中的工作空间",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 获取当前cnb工作空间的port代理uri用于端口转发
*
* @param data - Request parameters
* @param data.port - {number} 端口号默认为51515
*/
"get-cnb-port-uri": {
"path": "cnb",
"key": "get-cnb-port-uri",
"description": "获取当前cnb工作空间的port代理uri",
"metadata": {
"tags": [
"opencode"
],
"args": {
"port": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "端口号默认为51515",
"type": "number",
"optional": true
}
},
"skill": "get-cnb-port-uri",
"title": "获取当前cnb工作空间的port代理uri",
"summary": "获取当前cnb工作空间的port代理uri用于端口转发",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 获取当前cnb工作空间的vscode代理uri用于在浏览器中访问vscode包含多种访问方式如web、vscode、codebuddy、cursor、ssh
*
* @param data - Request parameters
* @param data.web - {boolean} 是否获取vscode web的访问uri默认为false
* @param data.vscode - {boolean} 是否获取vscode的代理uri默认为true
* @param data.codebuddy - {boolean} 是否获取codebuddy的代理uri默认为false
* @param data.cursor - {boolean} 是否获取cursor的代理uri默认为false
* @param data.ssh - {boolean} 是否获取vscode remote ssh的连接字符串默认为false
*/
"get-cnb-vscode-uri": {
"path": "cnb",
"key": "get-cnb-vscode-uri",
"description": "获取当前cnb工作空间的vscode代理uri, 包括多种访问方式, 如web、vscode、codebuddy、cursor、ssh",
"metadata": {
"tags": [
"opencode"
],
"args": {
"web": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "是否获取vscode web的访问uri默认为false",
"type": "boolean",
"optional": true
},
"vscode": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "是否获取vscode的代理uri默认为true",
"type": "boolean",
"optional": true
},
"codebuddy": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "是否获取codebuddy的代理uri默认为false",
"type": "boolean",
"optional": true
},
"cursor": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "是否获取cursor的代理uri默认为false",
"type": "boolean",
"optional": true
},
"ssh": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "是否获取vscode remote ssh的连接字符串默认为false",
"type": "boolean",
"optional": true
}
},
"skill": "get-cnb-vscode-uri",
"title": "获取当前cnb工作空间的编辑器访问地址",
"summary": "获取当前cnb工作空间的vscode代理uri用于在浏览器中访问vscode包含多种访问方式如web、vscode、codebuddy、cursor、ssh",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 设置当前cnb工作空间的cookie环境变量用于界面操作定制模块功能,例子CNBSESSION=xxxx;csrfkey=2222xxxx;
*
* @param data - Request parameters
* @param data.cookie - {string} cnb的cookie值
*/
"set-cnb-cookie": {
"path": "cnb",
"key": "set-cnb-cookie",
"description": "设置当前cnb工作空间的cookie环境变量",
"metadata": {
"tags": [
"opencode"
],
"args": {
"cookie": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "cnb的cookie值"
}
},
"skill": "set-cnb-cookie",
"title": "设置当前cnb工作空间的cookie环境变量",
"summary": "设置当前cnb工作空间的cookie环境变量用于界面操作定制模块功能,例子CNBSESSION=xxxx;csrfkey=2222xxxx;",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 获取当前cnb工作空间的cookie环境变量用于界面操作定制模块功能
*/
"get-cnb-cookie": {
"path": "cnb",
"key": "get-cnb-cookie",
"description": "获取当前cnb工作空间的cookie环境变量",
"metadata": {
"tags": [
"opencode"
],
"args": {},
"skill": "get-cnb-cookie",
"title": "获取当前cnb工作空间的cookie环境变量",
"summary": "获取当前cnb工作空间的cookie环境变量用于界面操作定制模块功能",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 调用cnb的知识库ai对话功能进行聊天基于cnb提供的ai能力
*
* @param data - Request parameters
* @param data.question - {string} 用户输入的消息内容
* @param data.repo - {string} 知识库仓库ID默认为空表示使用默认知识库
*/
"cnb-ai-chat": {
"path": "cnb",
"key": "cnb-ai-chat",
"description": "调用cnb的知识库ai对话功能进行聊天",
"metadata": {
"tags": [
"opencode"
],
"args": {
"question": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "用户输入的消息内容"
},
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "知识库仓库ID默认为空表示使用默认知识库",
"type": "string",
"optional": true
}
},
"skill": "cnb-ai-chat",
"title": "调用cnb的知识库ai对话功能进行聊天",
"summary": "调用cnb的知识库ai对话功能进行聊天基于cnb提供的ai能力",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 调用cnb的知识库RAG查询功能进行问答基于cnb提供的知识库能力
*
* @param data - Request parameters
* @param data.question - {string} 用户输入的消息内容
* @param data.repo - {string} 知识库仓库ID默认为空表示使用默认知识库
*/
"cnb-rag-query": {
"path": "cnb",
"key": "cnb-rag-query",
"description": "调用cnb的知识库RAG查询功能进行问答",
"metadata": {
"tags": [
"opencode"
],
"args": {
"question": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "用户输入的消息内容"
},
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "知识库仓库ID默认为空表示使用默认知识库",
"type": "string",
"optional": true
}
},
"skill": "cnb-rag-query",
"title": "调用cnb的知识库RAG查询功能进行问答",
"summary": "调用cnb的知识库RAG查询功能进行问答基于cnb提供的知识库能力",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 查询 Issue 列表
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库名称, 如 my-user/my-repo
* @param data.state - {string} Issue 状态open 或 closed
* @param data.keyword - {string} 问题搜索关键词
* @param data.labels - {string} 问题标签,多个用逗号分隔
* @param data.page - {number} 分页页码,默认: 1
* @param data.page_size - {number} 分页每页大小,默认: 30
* @param data.order_by - {string} 排序方式,如 created_at, -updated_at
*/
"list-issues": {
"path": "cnb",
"key": "list-issues",
"description": "查询 Issue 列表, 参数 repo, state, keyword, labels, page, page_size 等",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称, 如 my-user/my-repo"
},
"state": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Issue 状态open 或 closed",
"type": "string",
"optional": true
},
"keyword": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "问题搜索关键词",
"type": "string",
"optional": true
},
"labels": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "问题标签,多个用逗号分隔",
"type": "string",
"optional": true
},
"page": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分页页码,默认: 1",
"type": "number",
"optional": true
},
"page_size": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "分页每页大小,默认: 30",
"type": "number",
"optional": true
},
"order_by": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "排序方式,如 created_at, -updated_at",
"type": "string",
"optional": true
}
},
"skill": "list-issues",
"title": "查询 Issue 列表",
"summary": "查询 Issue 列表",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 创建一个新的 Issue
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库名称, 如 my-user/my-repo
* @param data.title - {string} Issue 标题
* @param data.body - {string} Issue 描述内容
* @param data.assignees - {array} 指派人列表
* @param data.labels - {array} 标签列表
* @param data.priority - {string} 优先级
*/
"create-issue": {
"path": "cnb",
"key": "create-issue",
"description": "创建 Issue, 参数 repo, title, body, assignees, labels, priority",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称, 如 my-user/my-repo"
},
"title": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "Issue 标题"
},
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Issue 描述内容",
"type": "string",
"optional": true
},
"assignees": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "指派人列表",
"type": "array",
"items": {
"type": "string"
},
"optional": true
},
"labels": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "标签列表",
"type": "array",
"items": {
"type": "string"
},
"optional": true
},
"priority": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "优先级",
"type": "string",
"optional": true
}
},
"skill": "create-issue",
"title": "创建 Issue",
"summary": "创建一个新的 Issue",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
},
/**
* 完成一个 Issue将 state 改为 closed
*
* @param data - Request parameters
* @param data.repo - {string} 代码仓库名称, 如 my-user/my-repo
* @param data.issueNumber - {unknown} Issue 编号
* @param data.state - {string} Issue 状态,默认为 closed
*/
"complete-issue": {
"path": "cnb",
"key": "complete-issue",
"description": "完成 Issue, 参数 repo, issueNumber",
"metadata": {
"tags": [
"opencode"
],
"args": {
"repo": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "string",
"description": "代码仓库名称, 如 my-user/my-repo"
},
"issueNumber": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
],
"description": "Issue 编号"
},
"state": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Issue 状态,默认为 closed",
"type": "string",
"optional": true
}
},
"skill": "complete-issue",
"title": "完成 CNB的任务Issue",
"summary": "完成一个 Issue将 state 改为 closed",
"url": "/root/v1/cnb-dev",
"source": "query-proxy-api"
}
}
}
} as const;
const queryApi = createQueryApi({ api, query });
export { queryApi };