#!/usr/bin/env node /** * fmode-code-agent CLI * 用法: * node bin/fmode-code-agent.js install # 装技能到 ~/.claude/skills/(默认) * node bin/fmode-code-agent.js workspace # 装技能到 ./.claude/skills/ * node bin/fmode-code-agent.js rules [dir] # 把智能体规则装入目标项目 ./.claude/rules/ * node bin/fmode-code-agent.js scaffold --project # 生成智能体骨架 * node bin/fmode-code-agent.js smoke # 自检 */ import { spawnSync } from 'node:child_process'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; const __dirname = dirname(fileURLToPath(import.meta.url)); const SCRIPTS = join(__dirname, '..', 'scripts'); const [cmd = 'install', ...rest] = process.argv.slice(2); const MAP = { install: 'install.mjs', workspace: 'install.mjs', rules: 'install-rules.mjs', scaffold: 'scaffold.mjs', smoke: 'smoke.mjs', }; const script = MAP[cmd]; if (!script) { console.error(`未知命令:${cmd}\n可用:${Object.keys(MAP).join(', ')}`); process.exit(2); } const r = spawnSync(process.execPath, [join(SCRIPTS, script), ...(cmd === 'smoke' ? [] : [cmd === 'install' || cmd === 'workspace' ? cmd : '', ...rest].filter((x) => x !== ''))], { stdio: 'inherit' }); process.exit(r.status ?? 1);