import { createSkill } from '@kevisual/router' import { app } from '../../app.ts' import { tool } from '@opencode-ai/plugin/tool' // "调用 path: cnb key: list-repos" app.route({ path: 'call', key: '', description: '调用', middleware: ['auth'], metadata: { tags: ['opencode'], ...createSkill({ skill: 'call-app', title: '调用app应用', summary: '调用router的应用, 参数path, key, payload', args: { path: tool.schema.string().describe('应用路径,例如 cnb'), key: tool.schema.string().optional().describe('应用key,例如 list-repos'), payload: tool.schema.object({}).optional().describe('调用参数'), } }) }, }).define(async (ctx) => { const { path, key } = ctx.query; console.log('call app', ctx.query); if (!path) { ctx.throw('路径path不能为空'); } const res = await ctx.run({ path, key, payload: ctx.query.payload || {} }); ctx.forward(res); }).addTo(app)