import { createSkill } from '@kevisual/router' import { app } from './index.ts' import { tool } from '@opencode-ai/plugin/tool' // "调用 path: router key: list" 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; if (!path) { ctx.throw('路径path不能为空'); } const res = await ctx.run({ path, key, payload: ctx.query.payload || {} }, { ...ctx }); ctx.forward(res); }).addTo(app)