import { resolvePath } from '@kevisual/use-config'; import { execSync } from 'node:child_process'; const buildFn = async (opts: { entry?: string, naming?: string }) => { const entry = opts.entry || 'agent/opencode.ts'; const naming = opts.naming || 'opencode'; const external: string[] = ["bun", "ws"]; await Bun.build({ target: 'node', format: 'esm', entrypoints: [resolvePath(entry, { meta: import.meta })], outdir: resolvePath('./dist', { meta: import.meta }), naming: { entry: `${naming}.js`, }, external, }); const cmd = `dts -i ${entry} -o ${naming}.d.ts`; execSync(cmd); }; await buildFn({ naming: 'config-permission', entry: 'src/config-permission.ts' });