mioku 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const require_exec = require('../exec-O8rCedzr.cjs');
2
+ const require_exec = require('../exec-CeafLFmG.cjs');
3
3
  const node_fs = require_exec.__toESM(require("node:fs"));
4
4
  const node_path = require_exec.__toESM(require("node:path"));
5
5
  const mri = require_exec.__toESM(require("mri"));
@@ -560,7 +560,8 @@ async function scaffoldCommand(version$1) {
560
560
  type: "module",
561
561
  dependencies: {
562
562
  mioku: "latest",
563
- ...Object.fromEntries(allAdapterNames.map((p) => [p, "latest"]))
563
+ ...Object.fromEntries(allAdapterNames.map((p) => [p, "latest"])),
564
+ ...Object.fromEntries(SYSTEM_PLUGINS.map((p) => [p, "latest"]))
564
565
  },
565
566
  mioku: {
566
567
  prefix: ".",
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["query: string","hits: NpmPackageHit[]","prefix: string","packageName: string","version","meta: NpmPackageMeta | null","pluginNames: readonly string[]","message: string","items: Array<{ label: string; value: string }>","initial: string[]","options: { required?: boolean }","name: string","cwd: string","pkgName: string","cmd: string","args: string[]","options: { cwd?: string }","args","dir: string","err: any","packages: string[]","cwd?: string","p: string","fileTree: Record<string, string | Record<string, unknown>>","base: string","version: string","options?: OmitTypeWithRequired<{ initial?: boolean }>","options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>","cmdArgs: string[]","helpInfo: string","pkgName: string","packages: string[]","cwd: string","prefix: string","name?: string","cmdArgs: string[]","name: string","fileTree: Record<string, string | Record<string, unknown>>","message: string","prefix: string","initial: string[]","options: { exclude?: string[] }","version: string","version","args","version"],"sources":["../../src/cli/shared.ts","../../src/cli/install.ts","../../src/cli/update.ts","../../src/cli/scaffold.ts","../../src/cli/index.ts"],"sourcesContent":["import fs, { readFileSync } from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport consola from \"consola\";\nimport dedent from \"dedent\";\nimport {\n clearCommandCache,\n commandExists,\n resolveCommand,\n runCommandInherit,\n} from \"../internal/exec\";\n\nexport const PLUGIN_PREFIX = \"mioku-plugin-\";\nexport const SERVICE_PREFIX = \"mioku-service-\";\nexport const ADAPTER_PREFIX = \"mioku-adapter-\";\n\nexport const NPM_REGISTRY = \"https://registry.npmjs.org\";\nexport const OFFICIAL_REGISTRY_URL =\n \"https://raw.githubusercontent.com/mioku-lab/mioku/main/official-registry.json\";\n\nexport interface NpmPackageHit {\n name: string;\n description: string;\n version: string;\n keywords: string[];\n}\n\nasync function searchNpm(query: string, size = 250): Promise<NpmPackageHit[]> {\n try {\n const url = `${NPM_REGISTRY}/-/v1/search?text=${encodeURIComponent(query)}&size=${size}`;\n const res = await fetch(url, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return [];\n const data = (await res.json()) as {\n objects?: Array<{\n package?: {\n name?: string;\n description?: string;\n version?: string;\n keywords?: string[];\n };\n }>;\n };\n const hits: NpmPackageHit[] = [];\n for (const obj of data.objects ?? []) {\n const pkg = obj.package ?? {};\n const name = String(pkg.name ?? \"\").trim();\n if (!name) continue;\n hits.push({\n name,\n description: String(pkg.description ?? \"\").trim(),\n version: String(pkg.version ?? \"\").trim(),\n keywords: Array.isArray(pkg.keywords) ? pkg.keywords.map(String) : [],\n });\n }\n return hits;\n } catch {\n return [];\n }\n}\n\nexport async function searchMiokuPackages(\n prefix: string,\n): Promise<NpmPackageHit[]> {\n const [broad, targeted] = await Promise.all([\n searchNpm(\"mioku\"),\n searchNpm(prefix.replace(/-$/, \"\")),\n ]);\n const seen = new Set<string>();\n const hits: NpmPackageHit[] = [];\n for (const hit of [...broad, ...targeted]) {\n if (!hit.name.startsWith(prefix)) continue;\n if (!hit.keywords.includes(\"mioku\")) continue;\n if (seen.has(hit.name)) continue;\n seen.add(hit.name);\n hits.push(hit);\n }\n return hits.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport interface OfficialRegistryEntry {\n npm?: string;\n builtin?: boolean;\n}\n\nexport interface OfficialRegistry {\n plugins?: Record<string, OfficialRegistryEntry>;\n services?: Record<string, OfficialRegistryEntry>;\n adapters?: Record<string, OfficialRegistryEntry>;\n}\n\nexport async function fetchOfficialRegistry(): Promise<OfficialRegistry | null> {\n try {\n const res = await fetch(OFFICIAL_REGISTRY_URL, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return null;\n return (await res.json()) as OfficialRegistry;\n } catch {\n return null;\n }\n}\n\nexport interface NpmPackageMeta {\n version: string;\n description: string;\n keywords: string[];\n mioku?: unknown;\n}\n\nexport async function fetchNpmPackageMeta(\n packageName: string,\n): Promise<NpmPackageMeta | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latest = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const version = latest ? (data?.versions?.[latest] ?? {}) : {};\n return {\n version: latest,\n description: String(version?.description || \"\").trim(),\n keywords: Array.isArray(version?.keywords)\n ? version.keywords.map(String)\n : [],\n mioku: version?.mioku,\n };\n } catch {\n return null;\n }\n}\n\nexport function declaredServicesOf(meta: NpmPackageMeta | null): string[] {\n const mioku = meta?.mioku;\n if (Array.isArray(mioku)) {\n return mioku.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n if (mioku && typeof mioku === \"object\") {\n const services = (mioku as { services?: unknown }).services;\n if (Array.isArray(services)) {\n return services.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n }\n return [];\n}\n\nexport async function resolveRequiredServices(\n pluginNames: readonly string[],\n): Promise<string[]> {\n const registry = await fetchOfficialRegistry();\n const serviceMap = new Map<string, string>();\n if (registry) {\n for (const [short, entry] of Object.entries(registry.services ?? {})) {\n if (entry?.npm) serviceMap.set(short, entry.npm);\n }\n }\n\n const required = new Set<string>();\n for (const pluginName of pluginNames) {\n const meta = await fetchNpmPackageMeta(pluginName);\n for (const short of declaredServicesOf(meta)) {\n const npm = serviceMap.get(short) ?? `${SERVICE_PREFIX}${short}`;\n if (serviceMap.has(short)) {\n required.add(npm);\n continue;\n }\n const check = await fetchNpmPackageMeta(npm);\n if (check && check.keywords.includes(\"mioku\")) {\n required.add(npm);\n } else {\n consola.warn(\n `${pluginName} 声明了服务 \"${short}\",但未找到对应的 mioku 服务包,已跳过`,\n );\n }\n }\n }\n return Array.from(required);\n}\n\nexport async function multiSelect(\n message: string,\n items: Array<{ label: string; value: string }>,\n initial: string[] = [],\n options: { required?: boolean } = {},\n): Promise<string[]> {\n if (items.length === 0) return [];\n const result = await consola.prompt(message, {\n type: \"multiselect\",\n options: items,\n initial,\n cancel: \"reject\",\n required: options.required ?? false,\n });\n return (result as Array<string | { value: string }>).map((item) =>\n typeof item === \"string\" ? item : item.value,\n );\n}\n\nexport function runAdapterCli(name: string, cwd: string): void {\n const isWin = process.platform === \"win32\";\n const exts = isWin ? [\"\", \".cmd\", \".ps1\", \".bat\"] : [\"\"];\n for (const ext of exts) {\n const binPath = path.join(\n cwd,\n \"node_modules\",\n \".bin\",\n `mioku-adapter-${name}${ext}`,\n );\n if (fs.existsSync(binPath)) {\n const realPath = (() => {\n try {\n return fs.realpathSync(binPath);\n } catch {\n return binPath;\n }\n })();\n run(realPath, [], { cwd });\n return;\n }\n }\n run(\"bunx\", [`mioku-adapter-${name}`], { cwd });\n}\n\nexport function shortNameOfPackage(pkgName: string): string {\n for (const prefix of [PLUGIN_PREFIX, SERVICE_PREFIX, ADAPTER_PREFIX]) {\n if (pkgName.startsWith(prefix)) return pkgName.slice(prefix.length);\n }\n return pkgName;\n}\n\nexport function run(\n cmd: string,\n args: string[] = [],\n options: { cwd?: string } = {},\n): void {\n runCommandInherit(cmd, args, options);\n}\n\nexport async function rmrf(dir: string, retries = 5): Promise<void> {\n for (let i = 0; i < retries; i++) {\n try {\n fs.rmSync(dir, { recursive: true, force: true });\n return;\n } catch (err: any) {\n if (i === retries - 1) throw err;\n const code = err?.code;\n if (\n code === \"EPERM\" ||\n code === \"EBUSY\" ||\n code === \"ENOTEMPTY\" ||\n code === \"ENOENT\"\n ) {\n await new Promise((resolve) => setTimeout(resolve, 300 * (i + 1)));\n } else {\n throw err;\n }\n }\n }\n}\n\nexport function hasCommand(cmd: string): boolean {\n return commandExists(cmd);\n}\n\nfunction findNpmPath(): string | null {\n const resolved = resolveCommand(\"npm\");\n if (resolved) return resolved;\n if (process.platform !== \"win32\") return null;\n\n const fallbacks = [\n path.join(process.env.ProgramFiles || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env[\"ProgramFiles(x86)\"] || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"npm.cmd\"),\n ];\n\n return fallbacks.find((candidate) => resolveCommand(candidate)) ?? null;\n}\n\nfunction installBunViaOfficialScript(): void {\n console.log(\"安装 bun...\");\n if (process.platform === \"win32\") {\n const ps =\n process.env.SystemRoot &&\n path.join(\n process.env.SystemRoot,\n \"System32\",\n \"WindowsPowerShell\",\n \"v1.0\",\n \"powershell.exe\",\n );\n const psExe = ps && resolveCommand(ps) ? ps : \"powershell\";\n run(psExe, [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-Command\",\n \"irm bun.sh/install.ps1 | iex\",\n ]);\n } else {\n run(\"bash\", [\"-c\", \"curl -fsSL https://bun.sh/install | bash\"]);\n }\n clearCommandCache();\n}\n\nexport function ensurePackageManager(): void {\n if (hasCommand(\"bun\")) return;\n try {\n installBunViaOfficialScript();\n } catch (err) {\n const npmPath = findNpmPath();\n if (!npmPath) {\n consola.error(\"未找到 npm,请确保 Node.js 已安装并包含 npm\");\n consola.error(\n '自动安装 bun 失败,请手动执行:\\n macOS / Linux: curl -fsSL https://bun.sh/install | bash\\n Windows: powershell -c \"irm bun.sh/install.ps1 | iex\"',\n );\n throw err;\n }\n consola.warn(\"官方安装脚本失败,回退到 npm 全局安装 bun ...\");\n run(npmPath, [\"install\", \"-g\", \"bun\"]);\n clearCommandCache();\n }\n if (!hasCommand(\"bun\")) {\n const home = os.homedir();\n const candidates =\n process.platform === \"win32\"\n ? [\n path.join(home, \".bun\", \"bin\", \"bun.exe\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"bun.cmd\"),\n path.join(\n process.env.APPDATA || \"\",\n \"npm\",\n \"node_modules\",\n \".bin\",\n \"bun.cmd\",\n ),\n ]\n : [\n path.join(home, \".bun\", \"bin\", \"bun\"),\n \"/usr/local/bin/bun\",\n \"/opt/homebrew/bin/bun\",\n ];\n for (const c of candidates) {\n try {\n if (fs.existsSync(c)) {\n consola.warn(\n `检测到 bun 已安装在 ${c}。请把该目录加入 PATH 后重新运行本命令。`,\n );\n break;\n }\n } catch {\n // 忽略\n }\n }\n consola.error(\n \"bun 安装后仍无法在 PATH 中找到,请重启终端或将 bun 的安装目录加入 PATH 后重试\",\n );\n process.exit(1);\n }\n}\n\nexport function getAddCommand(packages: string[]): [string, string[]] {\n return [\"bun\", [\"add\", ...packages]];\n}\n\nexport function normalizePackageName(input: string): string {\n if (input.startsWith(PLUGIN_PREFIX) || input.startsWith(SERVICE_PREFIX)) {\n return input;\n }\n if (input.startsWith(\"mioku-\")) return input;\n return `${PLUGIN_PREFIX}${input}`;\n}\n\nexport function detectType(name: string): \"plugin\" | \"service\" | \"unknown\" {\n if (name.startsWith(PLUGIN_PREFIX)) return \"plugin\";\n if (name.startsWith(SERVICE_PREFIX)) return \"service\";\n return \"unknown\";\n}\n\nexport function execAdd(packages: string[], cwd?: string): void {\n const [cmd, args] = getAddCommand(packages);\n console.log(`执行: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd });\n}\n\nexport function appendToMiokuPlugins(cwd: string, pkgName: string): boolean {\n if (!pkgName.startsWith(PLUGIN_PREFIX)) return false;\n const shortName = pkgName.slice(PLUGIN_PREFIX.length);\n\n const packageJsonPath = path.join(cwd, \"package.json\");\n if (!fs.existsSync(packageJsonPath)) return false;\n\n const pkg = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n const mioku = pkg.mioku ?? {};\n const plugins = Array.isArray(mioku.plugins) ? [...mioku.plugins] : [];\n if (plugins.includes(shortName)) return false;\n\n plugins.push(shortName);\n pkg.mioku = { ...mioku, plugins };\n fs.writeFileSync(packageJsonPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n return true;\n}\n\nexport async function getInstalledPackages(cwd: string): Promise<string[]> {\n try {\n const pkg = JSON.parse(\n readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\n );\n const deps = { ...pkg.dependencies, ...pkg.devDependencies };\n return Object.keys(deps).filter((k) => k.startsWith(\"mioku-\"));\n } catch {\n return [];\n }\n}\n\nexport function withRoot(p: string): string {\n return path.resolve(process.cwd(), p);\n}\n\nexport async function fetchNpmKeywords(\n packageName: string,\n): Promise<string[] | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latestVersion = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const keywords = latestVersion\n ? data?.versions?.[latestVersion]?.keywords\n : data?.keywords;\n return Array.isArray(keywords) ? keywords.map(String) : [];\n } catch {\n return null;\n }\n}\n\nexport function gracefullyExit(): void {\n console.log(\"Bye!\");\n process.exit(0);\n}\n\nexport function makeFileTree(\n fileTree: Record<string, string | Record<string, unknown>>,\n base: string,\n): void {\n for (const [name, content] of Object.entries(fileTree)) {\n if (typeof content === \"object\" && content !== null) {\n const subPath = path.join(base, name);\n if (!fs.existsSync(subPath)) fs.mkdirSync(subPath, { recursive: true });\n for (const [subName, subContent] of Object.entries(content)) {\n if (typeof subContent === \"object\") {\n makeFileTree(\n subContent as Record<string, string | Record<string, unknown>>,\n path.join(subPath, subName),\n );\n } else {\n fs.writeFileSync(path.join(subPath, subName), subContent as string);\n }\n }\n } else {\n const filePath = path.join(base, name);\n const dirname = path.dirname(filePath);\n if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });\n fs.writeFileSync(filePath, content as string);\n }\n }\n}\n\nexport function buildHelpInfo(version: string): string {\n return dedent(`\n mioku 命令行工具 v${version}\n\n 用法: mioku <命令> [选项]\n\n 命令:\n install plugin <名称> 安装插件,自动补全 mioku-plugin- 前缀\n install service <名称> 安装服务,自动补全 mioku-service- 前缀\n update [包名|self|all] 更新插件或服务\n update - 检查可用更新\n update all - 更新所有 mioku- 包\n update self - 更新 mioku 框架\n update xxx - 更新指定包\n\n 选项:\n -h, --help 显示帮助信息\n -v, --version 显示版本号\n --name <name> 指定项目/文件夹名称,默认 mioku-bot\n --protocol <protocol> 指定 NapCat 协议,默认 ws\n --host <host> 指定 NapCat 主机,默认 localhost\n --port <port> 指定 NapCat 端口,默认 3001\n --token <token> 指定 NapCat 连接 Token,默认空\n --prefix <prefix> 指定命令前缀,默认 #\n --owners <owners> 指定主人 QQ,英文逗号分隔,必填\n --admins <admins> 指定管理员 QQ,英文逗号分隔,可空\n --use-npm-mirror 使用 npm 镜像源加速依赖安装,默认否\n `);\n}\n\ntype OmitTypeWithRequired<T> = Omit<T, \"type\" | \"required\"> & {\n required?: boolean;\n};\n\nexport async function confirm(\n message: string,\n options?: OmitTypeWithRequired<{ initial?: boolean }>,\n): Promise<boolean> {\n return consola.prompt(message, {\n type: \"confirm\",\n cancel: \"reject\",\n ...options,\n });\n}\n\nexport async function input(\n message: string,\n options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>,\n): Promise<string> {\n const result = await consola.prompt(message, {\n type: \"text\",\n cancel: \"reject\",\n ...options,\n });\n if (options?.required && !result) return input(message, options);\n return result;\n}\n","import consola from \"consola\";\nimport {\n ensurePackageManager,\n appendToMiokuPlugins,\n execAdd,\n fetchNpmKeywords,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n confirm,\n} from \"./shared\";\n\nexport async function installCommand(\n cmdArgs: string[],\n helpInfo: string,\n): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [type, name] = cmdArgs;\n\n if (!type || !name) {\n consola.error(\n \"请指定类型和名称: mioku install plugin <名称> 或 mioku install service <名称>\",\n );\n console.log(helpInfo);\n return 1;\n }\n\n if (type !== \"plugin\" && type !== \"service\") {\n consola.error(`无效的类型 \"${type}\",请使用 plugin 或 service`);\n console.log(helpInfo);\n return 1;\n }\n\n const prefix = type === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n const normalized = `${prefix}${name}`;\n\n if (type === \"plugin\") {\n const proceed = await warnIfPrivatePlugin(normalized);\n if (!proceed) {\n consola.info(\"已取消安装\");\n return 1;\n }\n }\n\n try {\n execAdd([normalized], cwd);\n consola.success(`已安装 ${normalized}`);\n\n if (type === \"plugin\") {\n const shortName = normalized.slice(PLUGIN_PREFIX.length);\n if (appendToMiokuPlugins(cwd, normalized)) {\n consola.success(`已在 mioku.plugins 中启用 ${shortName}`);\n } else {\n consola.info(`${shortName} 已在 mioku.plugins 中,跳过`);\n }\n }\n return 0;\n } catch {\n consola.error(`安装失败: ${normalized}`);\n return 1;\n }\n}\n\nasync function warnIfPrivatePlugin(pkgName: string): Promise<boolean> {\n const keywords = await fetchNpmKeywords(pkgName);\n if (keywords === null) return true;\n if (keywords.includes(\"mioku\")) return true;\n\n consola.warn(`${pkgName} 看起来是私有插件\"`);\n consola.warn(\"该插件未上架插件市场,可能存在风险\");\n return confirm(\"仍要继续安装吗?\", { initial: false });\n}\n","import consola from \"consola\";\nimport {\n run,\n ensurePackageManager,\n getInstalledPackages,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n} from \"./shared\";\n\nasync function updatePackages(packages: string[], cwd: string): Promise<void> {\n if (packages.length === 0) {\n consola.info(\"未找到 mioku- 相关依赖\");\n return;\n }\n console.log(`执行: bun update ${packages.join(\" \")} --latest`);\n run(\"bun\", [\"update\", ...packages, \"--latest\"], { cwd });\n}\n\nasync function updateByPrefix(\n prefix: string,\n cwd: string,\n name?: string,\n): Promise<void> {\n if (name) {\n const normalized = name.startsWith(prefix) ? name : `${prefix}${name}`;\n console.log(`执行: bun update ${normalized} --latest`);\n run(\"bun\", [\"update\", normalized, \"--latest\"], { cwd });\n return;\n }\n const packages = (await getInstalledPackages(cwd)).filter((p) =>\n p.startsWith(prefix),\n );\n if (packages.length === 0) {\n consola.info(`未找到 ${prefix}* 相关依赖`);\n return;\n }\n await updatePackages(packages, cwd);\n}\n\nexport async function updateCommand(cmdArgs: string[]): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [target, name] = cmdArgs;\n\n if (!target || target === \"check\") {\n run(\"bun\", [\"update\", \"-i\"], { cwd });\n return 0;\n }\n\n if (target === \"all\") {\n await updatePackages(await getInstalledPackages(cwd), cwd);\n return 0;\n }\n\n if (target === \"self\") {\n console.log(\"执行: bun update mioku --latest\");\n run(\"bun\", [\"update\", \"mioku\", \"--latest\"], { cwd });\n return 0;\n }\n\n if (target === \"plugin\" || target === \"service\") {\n const prefix = target === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n await updateByPrefix(prefix, cwd, name);\n return 0;\n }\n\n console.log(`执行: bun update ${target} --latest`);\n run(\"bun\", [\"update\", target, \"--latest\"], { cwd });\n return 0;\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport dedent from \"dedent\";\nimport consola from \"consola\";\nimport {\n ADAPTER_PREFIX,\n PLUGIN_PREFIX,\n ensurePackageManager,\n getAddCommand,\n multiSelect,\n run,\n runAdapterCli,\n searchMiokuPackages,\n fetchOfficialRegistry,\n shortNameOfPackage,\n resolveRequiredServices,\n rmrf,\n withRoot,\n gracefullyExit,\n makeFileTree,\n input,\n confirm,\n} from \"./shared\";\n\n/** stdin 会话对应的主人标识,默认追加到 mioku.owners */\nexport const STDIN_OWNER = \"stdin\";\n\n/** 系统自带适配器:必装且不可取消,默认启用 */\nexport const SYSTEM_ADAPTERS = [\"mioku-adapter-stdin\"];\n\n/** 系统自带插件:必装且不可取消 */\nexport const SYSTEM_PLUGINS = [\"mioku-plugin-help\", \"mioku-plugin-chat\"];\n\n/** 系统服务:框架运行所必需,无条件安装 */\nexport const SYSTEM_SERVICES = [\n \"mioku-service-ai\",\n \"mioku-service-config\",\n \"mioku-service-screenshot\",\n \"mioku-service-help\",\n];\n\nasync function createNewProject(\n name: string,\n fileTree: Record<string, string | Record<string, unknown>>,\n): Promise<string> {\n const projectPath = withRoot(`./${name}`);\n\n if (fs.existsSync(projectPath)) {\n const overwrite = await confirm(`项目 ${name} 已存在,是否覆盖?`);\n if (!overwrite) gracefullyExit();\n\n if (projectPath === process.cwd()) {\n if (fs.readdirSync(projectPath).length !== 0) {\n const confirmOver = await confirm(\n \"项目路径与当前路径相同,将删除当前目录下所有内容再创建,是否继续?\",\n );\n if (!confirmOver) gracefullyExit();\n }\n }\n await rmrf(projectPath);\n }\n\n fs.mkdirSync(projectPath, { recursive: true });\n makeFileTree(fileTree, projectPath);\n console.log(`项目 ${name} 创建成功!`);\n\n console.log(\"正在安装基础依赖 (bun i) ...\");\n run(\"bun\", [\"i\"], { cwd: projectPath });\n return projectPath;\n}\n\nasync function selectPackages(\n message: string,\n prefix: string,\n initial: string[] = [],\n options: { exclude?: string[] } = {},\n): Promise<string[]> {\n console.log(`\\n正在从 npm 拉取 ${prefix}* 包...`);\n const [hits, registry] = await Promise.all([\n searchMiokuPackages(prefix),\n fetchOfficialRegistry(),\n ]);\n if (hits.length === 0) {\n consola.warn(`未在 npm 上找到任何 ${prefix}* 包`);\n return [];\n }\n const official = new Set<string>();\n for (const group of [registry?.plugins, registry?.services, registry?.adapters]) {\n for (const entry of Object.values(group ?? {})) {\n if (entry?.npm) official.add(entry.npm);\n }\n }\n const excludeSet = new Set(options.exclude ?? []);\n const items = hits\n .filter((hit) => !excludeSet.has(hit.name))\n .map((hit) => {\n const shortName = shortNameOfPackage(hit.name);\n const desc = hit.description || \"暂无介绍\";\n const badge = official.has(hit.name) ? \"官方\" : \"社区\";\n return { label: `${shortName} (${badge} · ${desc})`, value: hit.name };\n });\n return multiSelect(message, items, initial, { required: false });\n}\n\nexport async function scaffoldCommand(version: string): Promise<number> {\n const name = await input(\"请输入项目名称\", {\n default: \"mioku-bot\",\n placeholder: \"mioku-bot\",\n required: true,\n });\n const owners = await input(\"请输入主人 QQ (最高权限,英文逗号分隔,必填)\", {\n placeholder: \"请输入\",\n default: \"\",\n required: true,\n });\n\n ensurePackageManager();\n\n // stdin 会话默认拥有主人权限:自动追加到 owners\n const ownersList = [\n ...String(owners)\n .split(\",\")\n .map((o) => o.trim())\n .filter(Boolean),\n STDIN_OWNER,\n ];\n\n const adapterNames = await selectPackages(\n \"选择要安装的适配器(上下键选择,空格勾选,回车确认)\",\n ADAPTER_PREFIX,\n [],\n { exclude: SYSTEM_ADAPTERS },\n );\n const allAdapterNames = [...SYSTEM_ADAPTERS, ...adapterNames];\n if (adapterNames.length === 0) {\n consola.info(\"未选择其他适配器,仅启用标准输入\");\n }\n\n const pkgJsonObj = {\n name,\n private: true,\n type: \"module\" as const,\n dependencies: {\n mioku: \"latest\",\n ...Object.fromEntries(allAdapterNames.map((p) => [p, \"latest\"])),\n },\n mioku: {\n prefix: \".\",\n owners: ownersList,\n admins: [] as string[],\n plugins: [\"demo\"],\n log_level: \"info\",\n online_push: false,\n error_push: false,\n adapters: {\n stdin: {},\n },\n },\n scripts: {\n start: \"bun run app.ts\",\n dev: \"bun run --watch app.ts\",\n },\n };\n const pkgJson = `${JSON.stringify(pkgJsonObj, null, 2)}\\n`;\n\n const pluginCode = dedent(`\n import { definePlugin } from 'mioku'\n\n export default definePlugin({\n name: 'demo',\n version: '${version}',\n async setup(ctx) {\n ctx.logger.info('Demo 插件已加载')\n\n ctx.handle('message', async (e) => {\n if (e.raw_message === 'hello') {\n e.reply('world', true)\n }\n })\n\n return () => {\n ctx.logger.info('Demo 插件已卸载')\n }\n },\n })\n `);\n\n const fileTree: Record<string, string | Record<string, unknown>> = {\n \"app.ts\":\n \"import { start } from 'mioku'\\n\\nstart({ cwd: import.meta.dirname }).then()\\n\",\n \"package.json\": pkgJson,\n plugins: { demo: { \"index.ts\": pluginCode } },\n config: {},\n data: {},\n };\n\n const projectPath = await createNewProject(name, fileTree);\n\n // 仅为用户额外选择的适配器运行配置向导(系统适配器 stdin 免配置)\n for (const adapterPkg of adapterNames) {\n const adapterName = shortNameOfPackage(adapterPkg);\n consola.info(`正在运行 ${adapterPkg} 配置向导...`);\n runAdapterCli(adapterName, projectPath);\n }\n consola.info(\n `已自动安装并启用系统适配器: ${SYSTEM_ADAPTERS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n // 系统插件必装且不可取消:从选择列表中剔除,自动启用\n const pluginNames = await selectPackages(\n \"选择要安装的插件(上下键选择,空格勾选,回车确认)\",\n PLUGIN_PREFIX,\n [],\n { exclude: SYSTEM_PLUGINS },\n );\n consola.info(\n `系统插件将自动安装: ${SYSTEM_PLUGINS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n const enabledPlugins = [\n \"demo\",\n ...SYSTEM_PLUGINS.map(shortNameOfPackage),\n ...pluginNames.map(shortNameOfPackage),\n ];\n const pkgPath = path.join(projectPath, \"package.json\");\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n pkg.mioku = { ...pkg.mioku, plugins: enabledPlugins };\n fs.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n\n const serviceNames = new Set<string>(SYSTEM_SERVICES);\n for (const service of await resolveRequiredServices(pluginNames)) {\n serviceNames.add(service);\n }\n consola.info(\n `将自动安装服务: ${Array.from(serviceNames).map(shortNameOfPackage).join(\", \")}`,\n );\n\n const installWebui = await confirm(\"是否安装 WebUI 管理面板?(建议安装)\", {\n initial: true,\n });\n\n const addPackages = [...pluginNames, ...Array.from(serviceNames)];\n if (installWebui) addPackages.push(\"mioku-service-webui\");\n\n if (addPackages.length > 0) {\n const [cmd, args] = getAddCommand(addPackages);\n console.log(`正在安装插件与服务: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd: projectPath });\n }\n\n console.log(\"\\n若需启动机器人,请运行:\");\n console.log(\" cd\", name);\n console.log(\" bun run start\");\n return 0;\n}\n","#!/usr/bin/env node\n\nimport mri from \"mri\";\nimport { version } from \"../../package.json\";\nimport { buildHelpInfo } from \"./shared\";\nimport { installCommand } from \"./install\";\nimport { updateCommand } from \"./update\";\nimport { scaffoldCommand } from \"./scaffold\";\n\ninterface CliOptions {\n help?: boolean;\n version?: boolean;\n}\n\nconst args = process.argv.slice(2);\n\n(async () => {\n const cli = mri<CliOptions>(args, { alias: { v: \"version\", h: \"help\" } });\n const helpInfo = buildHelpInfo(version);\n const [cmd, ...cmdArgs] = args;\n\n switch (cmd) {\n case \"install\":\n process.exitCode = await installCommand(cmdArgs, helpInfo);\n return;\n case \"update\":\n process.exitCode = await updateCommand(cmdArgs);\n return;\n default:\n if (cli.version) {\n console.log(`v${version}`);\n return;\n }\n if (cli.help) {\n console.log(helpInfo);\n return;\n }\n process.exitCode = await scaffoldCommand(version);\n return;\n }\n})();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["query: string","hits: NpmPackageHit[]","prefix: string","packageName: string","version","meta: NpmPackageMeta | null","pluginNames: readonly string[]","message: string","items: Array<{ label: string; value: string }>","initial: string[]","options: { required?: boolean }","name: string","cwd: string","pkgName: string","cmd: string","args: string[]","options: { cwd?: string }","args","dir: string","err: any","packages: string[]","cwd?: string","p: string","fileTree: Record<string, string | Record<string, unknown>>","base: string","version: string","options?: OmitTypeWithRequired<{ initial?: boolean }>","options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>","cmdArgs: string[]","helpInfo: string","pkgName: string","packages: string[]","cwd: string","prefix: string","name?: string","cmdArgs: string[]","name: string","fileTree: Record<string, string | Record<string, unknown>>","message: string","prefix: string","initial: string[]","options: { exclude?: string[] }","version: string","version","args","version"],"sources":["../../src/cli/shared.ts","../../src/cli/install.ts","../../src/cli/update.ts","../../src/cli/scaffold.ts","../../src/cli/index.ts"],"sourcesContent":["import fs, { readFileSync } from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport consola from \"consola\";\nimport dedent from \"dedent\";\nimport {\n clearCommandCache,\n commandExists,\n resolveCommand,\n runCommandInherit,\n} from \"../internal/exec\";\n\nexport const PLUGIN_PREFIX = \"mioku-plugin-\";\nexport const SERVICE_PREFIX = \"mioku-service-\";\nexport const ADAPTER_PREFIX = \"mioku-adapter-\";\n\nexport const NPM_REGISTRY = \"https://registry.npmjs.org\";\nexport const OFFICIAL_REGISTRY_URL =\n \"https://raw.githubusercontent.com/mioku-lab/mioku/main/official-registry.json\";\n\nexport interface NpmPackageHit {\n name: string;\n description: string;\n version: string;\n keywords: string[];\n}\n\nasync function searchNpm(query: string, size = 250): Promise<NpmPackageHit[]> {\n try {\n const url = `${NPM_REGISTRY}/-/v1/search?text=${encodeURIComponent(query)}&size=${size}`;\n const res = await fetch(url, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return [];\n const data = (await res.json()) as {\n objects?: Array<{\n package?: {\n name?: string;\n description?: string;\n version?: string;\n keywords?: string[];\n };\n }>;\n };\n const hits: NpmPackageHit[] = [];\n for (const obj of data.objects ?? []) {\n const pkg = obj.package ?? {};\n const name = String(pkg.name ?? \"\").trim();\n if (!name) continue;\n hits.push({\n name,\n description: String(pkg.description ?? \"\").trim(),\n version: String(pkg.version ?? \"\").trim(),\n keywords: Array.isArray(pkg.keywords) ? pkg.keywords.map(String) : [],\n });\n }\n return hits;\n } catch {\n return [];\n }\n}\n\nexport async function searchMiokuPackages(\n prefix: string,\n): Promise<NpmPackageHit[]> {\n const [broad, targeted] = await Promise.all([\n searchNpm(\"mioku\"),\n searchNpm(prefix.replace(/-$/, \"\")),\n ]);\n const seen = new Set<string>();\n const hits: NpmPackageHit[] = [];\n for (const hit of [...broad, ...targeted]) {\n if (!hit.name.startsWith(prefix)) continue;\n if (!hit.keywords.includes(\"mioku\")) continue;\n if (seen.has(hit.name)) continue;\n seen.add(hit.name);\n hits.push(hit);\n }\n return hits.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport interface OfficialRegistryEntry {\n npm?: string;\n builtin?: boolean;\n}\n\nexport interface OfficialRegistry {\n plugins?: Record<string, OfficialRegistryEntry>;\n services?: Record<string, OfficialRegistryEntry>;\n adapters?: Record<string, OfficialRegistryEntry>;\n}\n\nexport async function fetchOfficialRegistry(): Promise<OfficialRegistry | null> {\n try {\n const res = await fetch(OFFICIAL_REGISTRY_URL, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return null;\n return (await res.json()) as OfficialRegistry;\n } catch {\n return null;\n }\n}\n\nexport interface NpmPackageMeta {\n version: string;\n description: string;\n keywords: string[];\n mioku?: unknown;\n}\n\nexport async function fetchNpmPackageMeta(\n packageName: string,\n): Promise<NpmPackageMeta | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latest = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const version = latest ? (data?.versions?.[latest] ?? {}) : {};\n return {\n version: latest,\n description: String(version?.description || \"\").trim(),\n keywords: Array.isArray(version?.keywords)\n ? version.keywords.map(String)\n : [],\n mioku: version?.mioku,\n };\n } catch {\n return null;\n }\n}\n\nexport function declaredServicesOf(meta: NpmPackageMeta | null): string[] {\n const mioku = meta?.mioku;\n if (Array.isArray(mioku)) {\n return mioku.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n if (mioku && typeof mioku === \"object\") {\n const services = (mioku as { services?: unknown }).services;\n if (Array.isArray(services)) {\n return services.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n }\n return [];\n}\n\nexport async function resolveRequiredServices(\n pluginNames: readonly string[],\n): Promise<string[]> {\n const registry = await fetchOfficialRegistry();\n const serviceMap = new Map<string, string>();\n if (registry) {\n for (const [short, entry] of Object.entries(registry.services ?? {})) {\n if (entry?.npm) serviceMap.set(short, entry.npm);\n }\n }\n\n const required = new Set<string>();\n for (const pluginName of pluginNames) {\n const meta = await fetchNpmPackageMeta(pluginName);\n for (const short of declaredServicesOf(meta)) {\n const npm = serviceMap.get(short) ?? `${SERVICE_PREFIX}${short}`;\n if (serviceMap.has(short)) {\n required.add(npm);\n continue;\n }\n const check = await fetchNpmPackageMeta(npm);\n if (check && check.keywords.includes(\"mioku\")) {\n required.add(npm);\n } else {\n consola.warn(\n `${pluginName} 声明了服务 \"${short}\",但未找到对应的 mioku 服务包,已跳过`,\n );\n }\n }\n }\n return Array.from(required);\n}\n\nexport async function multiSelect(\n message: string,\n items: Array<{ label: string; value: string }>,\n initial: string[] = [],\n options: { required?: boolean } = {},\n): Promise<string[]> {\n if (items.length === 0) return [];\n const result = await consola.prompt(message, {\n type: \"multiselect\",\n options: items,\n initial,\n cancel: \"reject\",\n required: options.required ?? false,\n });\n return (result as Array<string | { value: string }>).map((item) =>\n typeof item === \"string\" ? item : item.value,\n );\n}\n\nexport function runAdapterCli(name: string, cwd: string): void {\n const isWin = process.platform === \"win32\";\n const exts = isWin ? [\"\", \".cmd\", \".ps1\", \".bat\"] : [\"\"];\n for (const ext of exts) {\n const binPath = path.join(\n cwd,\n \"node_modules\",\n \".bin\",\n `mioku-adapter-${name}${ext}`,\n );\n if (fs.existsSync(binPath)) {\n const realPath = (() => {\n try {\n return fs.realpathSync(binPath);\n } catch {\n return binPath;\n }\n })();\n run(realPath, [], { cwd });\n return;\n }\n }\n run(\"bunx\", [`mioku-adapter-${name}`], { cwd });\n}\n\nexport function shortNameOfPackage(pkgName: string): string {\n for (const prefix of [PLUGIN_PREFIX, SERVICE_PREFIX, ADAPTER_PREFIX]) {\n if (pkgName.startsWith(prefix)) return pkgName.slice(prefix.length);\n }\n return pkgName;\n}\n\nexport function run(\n cmd: string,\n args: string[] = [],\n options: { cwd?: string } = {},\n): void {\n runCommandInherit(cmd, args, options);\n}\n\nexport async function rmrf(dir: string, retries = 5): Promise<void> {\n for (let i = 0; i < retries; i++) {\n try {\n fs.rmSync(dir, { recursive: true, force: true });\n return;\n } catch (err: any) {\n if (i === retries - 1) throw err;\n const code = err?.code;\n if (\n code === \"EPERM\" ||\n code === \"EBUSY\" ||\n code === \"ENOTEMPTY\" ||\n code === \"ENOENT\"\n ) {\n await new Promise((resolve) => setTimeout(resolve, 300 * (i + 1)));\n } else {\n throw err;\n }\n }\n }\n}\n\nexport function hasCommand(cmd: string): boolean {\n return commandExists(cmd);\n}\n\nfunction findNpmPath(): string | null {\n const resolved = resolveCommand(\"npm\");\n if (resolved) return resolved;\n if (process.platform !== \"win32\") return null;\n\n const fallbacks = [\n path.join(process.env.ProgramFiles || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env[\"ProgramFiles(x86)\"] || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"npm.cmd\"),\n ];\n\n return fallbacks.find((candidate) => resolveCommand(candidate)) ?? null;\n}\n\nfunction installBunViaOfficialScript(): void {\n console.log(\"安装 bun...\");\n if (process.platform === \"win32\") {\n const ps =\n process.env.SystemRoot &&\n path.join(\n process.env.SystemRoot,\n \"System32\",\n \"WindowsPowerShell\",\n \"v1.0\",\n \"powershell.exe\",\n );\n const psExe = ps && resolveCommand(ps) ? ps : \"powershell\";\n run(psExe, [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-Command\",\n \"irm bun.sh/install.ps1 | iex\",\n ]);\n } else {\n run(\"bash\", [\"-c\", \"curl -fsSL https://bun.sh/install | bash\"]);\n }\n clearCommandCache();\n}\n\nexport function ensurePackageManager(): void {\n if (hasCommand(\"bun\")) return;\n try {\n installBunViaOfficialScript();\n } catch (err) {\n const npmPath = findNpmPath();\n if (!npmPath) {\n consola.error(\"未找到 npm,请确保 Node.js 已安装并包含 npm\");\n consola.error(\n '自动安装 bun 失败,请手动执行:\\n macOS / Linux: curl -fsSL https://bun.sh/install | bash\\n Windows: powershell -c \"irm bun.sh/install.ps1 | iex\"',\n );\n throw err;\n }\n consola.warn(\"官方安装脚本失败,回退到 npm 全局安装 bun ...\");\n run(npmPath, [\"install\", \"-g\", \"bun\"]);\n clearCommandCache();\n }\n if (!hasCommand(\"bun\")) {\n const home = os.homedir();\n const candidates =\n process.platform === \"win32\"\n ? [\n path.join(home, \".bun\", \"bin\", \"bun.exe\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"bun.cmd\"),\n path.join(\n process.env.APPDATA || \"\",\n \"npm\",\n \"node_modules\",\n \".bin\",\n \"bun.cmd\",\n ),\n ]\n : [\n path.join(home, \".bun\", \"bin\", \"bun\"),\n \"/usr/local/bin/bun\",\n \"/opt/homebrew/bin/bun\",\n ];\n for (const c of candidates) {\n try {\n if (fs.existsSync(c)) {\n consola.warn(\n `检测到 bun 已安装在 ${c}。请把该目录加入 PATH 后重新运行本命令。`,\n );\n break;\n }\n } catch {\n // 忽略\n }\n }\n consola.error(\n \"bun 安装后仍无法在 PATH 中找到,请重启终端或将 bun 的安装目录加入 PATH 后重试\",\n );\n process.exit(1);\n }\n}\n\nexport function getAddCommand(packages: string[]): [string, string[]] {\n return [\"bun\", [\"add\", ...packages]];\n}\n\nexport function normalizePackageName(input: string): string {\n if (input.startsWith(PLUGIN_PREFIX) || input.startsWith(SERVICE_PREFIX)) {\n return input;\n }\n if (input.startsWith(\"mioku-\")) return input;\n return `${PLUGIN_PREFIX}${input}`;\n}\n\nexport function detectType(name: string): \"plugin\" | \"service\" | \"unknown\" {\n if (name.startsWith(PLUGIN_PREFIX)) return \"plugin\";\n if (name.startsWith(SERVICE_PREFIX)) return \"service\";\n return \"unknown\";\n}\n\nexport function execAdd(packages: string[], cwd?: string): void {\n const [cmd, args] = getAddCommand(packages);\n console.log(`执行: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd });\n}\n\nexport function appendToMiokuPlugins(cwd: string, pkgName: string): boolean {\n if (!pkgName.startsWith(PLUGIN_PREFIX)) return false;\n const shortName = pkgName.slice(PLUGIN_PREFIX.length);\n\n const packageJsonPath = path.join(cwd, \"package.json\");\n if (!fs.existsSync(packageJsonPath)) return false;\n\n const pkg = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n const mioku = pkg.mioku ?? {};\n const plugins = Array.isArray(mioku.plugins) ? [...mioku.plugins] : [];\n if (plugins.includes(shortName)) return false;\n\n plugins.push(shortName);\n pkg.mioku = { ...mioku, plugins };\n fs.writeFileSync(packageJsonPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n return true;\n}\n\nexport async function getInstalledPackages(cwd: string): Promise<string[]> {\n try {\n const pkg = JSON.parse(\n readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\n );\n const deps = { ...pkg.dependencies, ...pkg.devDependencies };\n return Object.keys(deps).filter((k) => k.startsWith(\"mioku-\"));\n } catch {\n return [];\n }\n}\n\nexport function withRoot(p: string): string {\n return path.resolve(process.cwd(), p);\n}\n\nexport async function fetchNpmKeywords(\n packageName: string,\n): Promise<string[] | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latestVersion = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const keywords = latestVersion\n ? data?.versions?.[latestVersion]?.keywords\n : data?.keywords;\n return Array.isArray(keywords) ? keywords.map(String) : [];\n } catch {\n return null;\n }\n}\n\nexport function gracefullyExit(): void {\n console.log(\"Bye!\");\n process.exit(0);\n}\n\nexport function makeFileTree(\n fileTree: Record<string, string | Record<string, unknown>>,\n base: string,\n): void {\n for (const [name, content] of Object.entries(fileTree)) {\n if (typeof content === \"object\" && content !== null) {\n const subPath = path.join(base, name);\n if (!fs.existsSync(subPath)) fs.mkdirSync(subPath, { recursive: true });\n for (const [subName, subContent] of Object.entries(content)) {\n if (typeof subContent === \"object\") {\n makeFileTree(\n subContent as Record<string, string | Record<string, unknown>>,\n path.join(subPath, subName),\n );\n } else {\n fs.writeFileSync(path.join(subPath, subName), subContent as string);\n }\n }\n } else {\n const filePath = path.join(base, name);\n const dirname = path.dirname(filePath);\n if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });\n fs.writeFileSync(filePath, content as string);\n }\n }\n}\n\nexport function buildHelpInfo(version: string): string {\n return dedent(`\n mioku 命令行工具 v${version}\n\n 用法: mioku <命令> [选项]\n\n 命令:\n install plugin <名称> 安装插件,自动补全 mioku-plugin- 前缀\n install service <名称> 安装服务,自动补全 mioku-service- 前缀\n update [包名|self|all] 更新插件或服务\n update - 检查可用更新\n update all - 更新所有 mioku- 包\n update self - 更新 mioku 框架\n update xxx - 更新指定包\n\n 选项:\n -h, --help 显示帮助信息\n -v, --version 显示版本号\n --name <name> 指定项目/文件夹名称,默认 mioku-bot\n --protocol <protocol> 指定 NapCat 协议,默认 ws\n --host <host> 指定 NapCat 主机,默认 localhost\n --port <port> 指定 NapCat 端口,默认 3001\n --token <token> 指定 NapCat 连接 Token,默认空\n --prefix <prefix> 指定命令前缀,默认 #\n --owners <owners> 指定主人 QQ,英文逗号分隔,必填\n --admins <admins> 指定管理员 QQ,英文逗号分隔,可空\n --use-npm-mirror 使用 npm 镜像源加速依赖安装,默认否\n `);\n}\n\ntype OmitTypeWithRequired<T> = Omit<T, \"type\" | \"required\"> & {\n required?: boolean;\n};\n\nexport async function confirm(\n message: string,\n options?: OmitTypeWithRequired<{ initial?: boolean }>,\n): Promise<boolean> {\n return consola.prompt(message, {\n type: \"confirm\",\n cancel: \"reject\",\n ...options,\n });\n}\n\nexport async function input(\n message: string,\n options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>,\n): Promise<string> {\n const result = await consola.prompt(message, {\n type: \"text\",\n cancel: \"reject\",\n ...options,\n });\n if (options?.required && !result) return input(message, options);\n return result;\n}\n","import consola from \"consola\";\nimport {\n ensurePackageManager,\n appendToMiokuPlugins,\n execAdd,\n fetchNpmKeywords,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n confirm,\n} from \"./shared\";\n\nexport async function installCommand(\n cmdArgs: string[],\n helpInfo: string,\n): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [type, name] = cmdArgs;\n\n if (!type || !name) {\n consola.error(\n \"请指定类型和名称: mioku install plugin <名称> 或 mioku install service <名称>\",\n );\n console.log(helpInfo);\n return 1;\n }\n\n if (type !== \"plugin\" && type !== \"service\") {\n consola.error(`无效的类型 \"${type}\",请使用 plugin 或 service`);\n console.log(helpInfo);\n return 1;\n }\n\n const prefix = type === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n const normalized = `${prefix}${name}`;\n\n if (type === \"plugin\") {\n const proceed = await warnIfPrivatePlugin(normalized);\n if (!proceed) {\n consola.info(\"已取消安装\");\n return 1;\n }\n }\n\n try {\n execAdd([normalized], cwd);\n consola.success(`已安装 ${normalized}`);\n\n if (type === \"plugin\") {\n const shortName = normalized.slice(PLUGIN_PREFIX.length);\n if (appendToMiokuPlugins(cwd, normalized)) {\n consola.success(`已在 mioku.plugins 中启用 ${shortName}`);\n } else {\n consola.info(`${shortName} 已在 mioku.plugins 中,跳过`);\n }\n }\n return 0;\n } catch {\n consola.error(`安装失败: ${normalized}`);\n return 1;\n }\n}\n\nasync function warnIfPrivatePlugin(pkgName: string): Promise<boolean> {\n const keywords = await fetchNpmKeywords(pkgName);\n if (keywords === null) return true;\n if (keywords.includes(\"mioku\")) return true;\n\n consola.warn(`${pkgName} 看起来是私有插件\"`);\n consola.warn(\"该插件未上架插件市场,可能存在风险\");\n return confirm(\"仍要继续安装吗?\", { initial: false });\n}\n","import consola from \"consola\";\nimport {\n run,\n ensurePackageManager,\n getInstalledPackages,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n} from \"./shared\";\n\nasync function updatePackages(packages: string[], cwd: string): Promise<void> {\n if (packages.length === 0) {\n consola.info(\"未找到 mioku- 相关依赖\");\n return;\n }\n console.log(`执行: bun update ${packages.join(\" \")} --latest`);\n run(\"bun\", [\"update\", ...packages, \"--latest\"], { cwd });\n}\n\nasync function updateByPrefix(\n prefix: string,\n cwd: string,\n name?: string,\n): Promise<void> {\n if (name) {\n const normalized = name.startsWith(prefix) ? name : `${prefix}${name}`;\n console.log(`执行: bun update ${normalized} --latest`);\n run(\"bun\", [\"update\", normalized, \"--latest\"], { cwd });\n return;\n }\n const packages = (await getInstalledPackages(cwd)).filter((p) =>\n p.startsWith(prefix),\n );\n if (packages.length === 0) {\n consola.info(`未找到 ${prefix}* 相关依赖`);\n return;\n }\n await updatePackages(packages, cwd);\n}\n\nexport async function updateCommand(cmdArgs: string[]): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [target, name] = cmdArgs;\n\n if (!target || target === \"check\") {\n run(\"bun\", [\"update\", \"-i\"], { cwd });\n return 0;\n }\n\n if (target === \"all\") {\n await updatePackages(await getInstalledPackages(cwd), cwd);\n return 0;\n }\n\n if (target === \"self\") {\n console.log(\"执行: bun update mioku --latest\");\n run(\"bun\", [\"update\", \"mioku\", \"--latest\"], { cwd });\n return 0;\n }\n\n if (target === \"plugin\" || target === \"service\") {\n const prefix = target === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n await updateByPrefix(prefix, cwd, name);\n return 0;\n }\n\n console.log(`执行: bun update ${target} --latest`);\n run(\"bun\", [\"update\", target, \"--latest\"], { cwd });\n return 0;\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport dedent from \"dedent\";\nimport consola from \"consola\";\nimport {\n ADAPTER_PREFIX,\n PLUGIN_PREFIX,\n ensurePackageManager,\n getAddCommand,\n multiSelect,\n run,\n runAdapterCli,\n searchMiokuPackages,\n fetchOfficialRegistry,\n shortNameOfPackage,\n resolveRequiredServices,\n rmrf,\n withRoot,\n gracefullyExit,\n makeFileTree,\n input,\n confirm,\n} from \"./shared\";\n\n/** stdin 会话对应的主人标识,默认追加到 mioku.owners */\nexport const STDIN_OWNER = \"stdin\";\n\n/** 系统自带适配器:必装且不可取消,默认启用 */\nexport const SYSTEM_ADAPTERS = [\"mioku-adapter-stdin\"];\n\n/** 系统自带插件:必装且不可取消 */\nexport const SYSTEM_PLUGINS = [\"mioku-plugin-help\", \"mioku-plugin-chat\"];\n\n/** 系统服务:框架运行所必需,无条件安装 */\nexport const SYSTEM_SERVICES = [\n \"mioku-service-ai\",\n \"mioku-service-config\",\n \"mioku-service-screenshot\",\n \"mioku-service-help\",\n];\n\nasync function createNewProject(\n name: string,\n fileTree: Record<string, string | Record<string, unknown>>,\n): Promise<string> {\n const projectPath = withRoot(`./${name}`);\n\n if (fs.existsSync(projectPath)) {\n const overwrite = await confirm(`项目 ${name} 已存在,是否覆盖?`);\n if (!overwrite) gracefullyExit();\n\n if (projectPath === process.cwd()) {\n if (fs.readdirSync(projectPath).length !== 0) {\n const confirmOver = await confirm(\n \"项目路径与当前路径相同,将删除当前目录下所有内容再创建,是否继续?\",\n );\n if (!confirmOver) gracefullyExit();\n }\n }\n await rmrf(projectPath);\n }\n\n fs.mkdirSync(projectPath, { recursive: true });\n makeFileTree(fileTree, projectPath);\n console.log(`项目 ${name} 创建成功!`);\n\n console.log(\"正在安装基础依赖 (bun i) ...\");\n run(\"bun\", [\"i\"], { cwd: projectPath });\n return projectPath;\n}\n\nasync function selectPackages(\n message: string,\n prefix: string,\n initial: string[] = [],\n options: { exclude?: string[] } = {},\n): Promise<string[]> {\n console.log(`\\n正在从 npm 拉取 ${prefix}* 包...`);\n const [hits, registry] = await Promise.all([\n searchMiokuPackages(prefix),\n fetchOfficialRegistry(),\n ]);\n if (hits.length === 0) {\n consola.warn(`未在 npm 上找到任何 ${prefix}* 包`);\n return [];\n }\n const official = new Set<string>();\n for (const group of [registry?.plugins, registry?.services, registry?.adapters]) {\n for (const entry of Object.values(group ?? {})) {\n if (entry?.npm) official.add(entry.npm);\n }\n }\n const excludeSet = new Set(options.exclude ?? []);\n const items = hits\n .filter((hit) => !excludeSet.has(hit.name))\n .map((hit) => {\n const shortName = shortNameOfPackage(hit.name);\n const desc = hit.description || \"暂无介绍\";\n const badge = official.has(hit.name) ? \"官方\" : \"社区\";\n return { label: `${shortName} (${badge} · ${desc})`, value: hit.name };\n });\n return multiSelect(message, items, initial, { required: false });\n}\n\nexport async function scaffoldCommand(version: string): Promise<number> {\n const name = await input(\"请输入项目名称\", {\n default: \"mioku-bot\",\n placeholder: \"mioku-bot\",\n required: true,\n });\n const owners = await input(\"请输入主人 QQ (最高权限,英文逗号分隔,必填)\", {\n placeholder: \"请输入\",\n default: \"\",\n required: true,\n });\n\n ensurePackageManager();\n\n // stdin 会话默认拥有主人权限:自动追加到 owners\n const ownersList = [\n ...String(owners)\n .split(\",\")\n .map((o) => o.trim())\n .filter(Boolean),\n STDIN_OWNER,\n ];\n\n const adapterNames = await selectPackages(\n \"选择要安装的适配器(上下键选择,空格勾选,回车确认)\",\n ADAPTER_PREFIX,\n [],\n { exclude: SYSTEM_ADAPTERS },\n );\n const allAdapterNames = [...SYSTEM_ADAPTERS, ...adapterNames];\n if (adapterNames.length === 0) {\n consola.info(\"未选择其他适配器,仅启用标准输入\");\n }\n\n const pkgJsonObj = {\n name,\n private: true,\n type: \"module\" as const,\n dependencies: {\n mioku: \"latest\",\n ...Object.fromEntries(allAdapterNames.map((p) => [p, \"latest\"])),\n ...Object.fromEntries(SYSTEM_PLUGINS.map((p) => [p, \"latest\"])),\n },\n mioku: {\n prefix: \".\",\n owners: ownersList,\n admins: [] as string[],\n plugins: [\"demo\"],\n log_level: \"info\",\n online_push: false,\n error_push: false,\n adapters: {\n stdin: {},\n },\n },\n scripts: {\n start: \"bun run app.ts\",\n dev: \"bun run --watch app.ts\",\n },\n };\n const pkgJson = `${JSON.stringify(pkgJsonObj, null, 2)}\\n`;\n\n const pluginCode = dedent(`\n import { definePlugin } from 'mioku'\n\n export default definePlugin({\n name: 'demo',\n version: '${version}',\n async setup(ctx) {\n ctx.logger.info('Demo 插件已加载')\n\n ctx.handle('message', async (e) => {\n if (e.raw_message === 'hello') {\n e.reply('world', true)\n }\n })\n\n return () => {\n ctx.logger.info('Demo 插件已卸载')\n }\n },\n })\n `);\n\n const fileTree: Record<string, string | Record<string, unknown>> = {\n \"app.ts\":\n \"import { start } from 'mioku'\\n\\nstart({ cwd: import.meta.dirname }).then()\\n\",\n \"package.json\": pkgJson,\n plugins: { demo: { \"index.ts\": pluginCode } },\n config: {},\n data: {},\n };\n\n const projectPath = await createNewProject(name, fileTree);\n\n // 仅为用户额外选择的适配器运行配置向导(系统适配器 stdin 免配置)\n for (const adapterPkg of adapterNames) {\n const adapterName = shortNameOfPackage(adapterPkg);\n consola.info(`正在运行 ${adapterPkg} 配置向导...`);\n runAdapterCli(adapterName, projectPath);\n }\n consola.info(\n `已自动安装并启用系统适配器: ${SYSTEM_ADAPTERS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n // 系统插件必装且不可取消:从选择列表中剔除,自动启用\n const pluginNames = await selectPackages(\n \"选择要安装的插件(上下键选择,空格勾选,回车确认)\",\n PLUGIN_PREFIX,\n [],\n { exclude: SYSTEM_PLUGINS },\n );\n consola.info(\n `系统插件将自动安装: ${SYSTEM_PLUGINS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n const enabledPlugins = [\n \"demo\",\n ...SYSTEM_PLUGINS.map(shortNameOfPackage),\n ...pluginNames.map(shortNameOfPackage),\n ];\n const pkgPath = path.join(projectPath, \"package.json\");\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n pkg.mioku = { ...pkg.mioku, plugins: enabledPlugins };\n fs.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n\n const serviceNames = new Set<string>(SYSTEM_SERVICES);\n for (const service of await resolveRequiredServices(pluginNames)) {\n serviceNames.add(service);\n }\n consola.info(\n `将自动安装服务: ${Array.from(serviceNames).map(shortNameOfPackage).join(\", \")}`,\n );\n\n const installWebui = await confirm(\"是否安装 WebUI 管理面板?(建议安装)\", {\n initial: true,\n });\n\n const addPackages = [...pluginNames, ...Array.from(serviceNames)];\n if (installWebui) addPackages.push(\"mioku-service-webui\");\n\n if (addPackages.length > 0) {\n const [cmd, args] = getAddCommand(addPackages);\n console.log(`正在安装插件与服务: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd: projectPath });\n }\n\n console.log(\"\\n若需启动机器人,请运行:\");\n console.log(\" cd\", name);\n console.log(\" bun run start\");\n return 0;\n}\n","#!/usr/bin/env node\n\nimport mri from \"mri\";\nimport { version } from \"../../package.json\";\nimport { buildHelpInfo } from \"./shared\";\nimport { installCommand } from \"./install\";\nimport { updateCommand } from \"./update\";\nimport { scaffoldCommand } from \"./scaffold\";\n\ninterface CliOptions {\n help?: boolean;\n version?: boolean;\n}\n\nconst args = process.argv.slice(2);\n\n(async () => {\n const cli = mri<CliOptions>(args, { alias: { v: \"version\", h: \"help\" } });\n const helpInfo = buildHelpInfo(version);\n const [cmd, ...cmdArgs] = args;\n\n switch (cmd) {\n case \"install\":\n process.exitCode = await installCommand(cmdArgs, helpInfo);\n return;\n case \"update\":\n process.exitCode = await updateCommand(cmdArgs);\n return;\n default:\n if (cli.version) {\n console.log(`v${version}`);\n return;\n }\n if (cli.help) {\n console.log(helpInfo);\n return;\n }\n process.exitCode = await scaffoldCommand(version);\n return;\n }\n})();\n"],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { clearCommandCache, commandExists, resolveCommand, runCommandInherit, version } from "../exec-p6Vp158F.js";
2
+ import { clearCommandCache, commandExists, resolveCommand, runCommandInherit, version } from "../exec-BxcCq8G9.js";
3
3
  import fs, { readFileSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import mri from "mri";
@@ -560,7 +560,8 @@ async function scaffoldCommand(version$1) {
560
560
  type: "module",
561
561
  dependencies: {
562
562
  mioku: "latest",
563
- ...Object.fromEntries(allAdapterNames.map((p) => [p, "latest"]))
563
+ ...Object.fromEntries(allAdapterNames.map((p) => [p, "latest"])),
564
+ ...Object.fromEntries(SYSTEM_PLUGINS.map((p) => [p, "latest"]))
564
565
  },
565
566
  mioku: {
566
567
  prefix: ".",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["query: string","hits: NpmPackageHit[]","prefix: string","packageName: string","version","meta: NpmPackageMeta | null","pluginNames: readonly string[]","message: string","items: Array<{ label: string; value: string }>","initial: string[]","options: { required?: boolean }","name: string","cwd: string","pkgName: string","cmd: string","args: string[]","options: { cwd?: string }","args","dir: string","err: any","packages: string[]","cwd?: string","p: string","fileTree: Record<string, string | Record<string, unknown>>","base: string","version: string","options?: OmitTypeWithRequired<{ initial?: boolean }>","options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>","cmdArgs: string[]","helpInfo: string","pkgName: string","packages: string[]","cwd: string","prefix: string","name?: string","cmdArgs: string[]","name: string","fileTree: Record<string, string | Record<string, unknown>>","message: string","prefix: string","initial: string[]","options: { exclude?: string[] }","version: string","version","args"],"sources":["../../src/cli/shared.ts","../../src/cli/install.ts","../../src/cli/update.ts","../../src/cli/scaffold.ts","../../src/cli/index.ts"],"sourcesContent":["import fs, { readFileSync } from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport consola from \"consola\";\nimport dedent from \"dedent\";\nimport {\n clearCommandCache,\n commandExists,\n resolveCommand,\n runCommandInherit,\n} from \"../internal/exec\";\n\nexport const PLUGIN_PREFIX = \"mioku-plugin-\";\nexport const SERVICE_PREFIX = \"mioku-service-\";\nexport const ADAPTER_PREFIX = \"mioku-adapter-\";\n\nexport const NPM_REGISTRY = \"https://registry.npmjs.org\";\nexport const OFFICIAL_REGISTRY_URL =\n \"https://raw.githubusercontent.com/mioku-lab/mioku/main/official-registry.json\";\n\nexport interface NpmPackageHit {\n name: string;\n description: string;\n version: string;\n keywords: string[];\n}\n\nasync function searchNpm(query: string, size = 250): Promise<NpmPackageHit[]> {\n try {\n const url = `${NPM_REGISTRY}/-/v1/search?text=${encodeURIComponent(query)}&size=${size}`;\n const res = await fetch(url, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return [];\n const data = (await res.json()) as {\n objects?: Array<{\n package?: {\n name?: string;\n description?: string;\n version?: string;\n keywords?: string[];\n };\n }>;\n };\n const hits: NpmPackageHit[] = [];\n for (const obj of data.objects ?? []) {\n const pkg = obj.package ?? {};\n const name = String(pkg.name ?? \"\").trim();\n if (!name) continue;\n hits.push({\n name,\n description: String(pkg.description ?? \"\").trim(),\n version: String(pkg.version ?? \"\").trim(),\n keywords: Array.isArray(pkg.keywords) ? pkg.keywords.map(String) : [],\n });\n }\n return hits;\n } catch {\n return [];\n }\n}\n\nexport async function searchMiokuPackages(\n prefix: string,\n): Promise<NpmPackageHit[]> {\n const [broad, targeted] = await Promise.all([\n searchNpm(\"mioku\"),\n searchNpm(prefix.replace(/-$/, \"\")),\n ]);\n const seen = new Set<string>();\n const hits: NpmPackageHit[] = [];\n for (const hit of [...broad, ...targeted]) {\n if (!hit.name.startsWith(prefix)) continue;\n if (!hit.keywords.includes(\"mioku\")) continue;\n if (seen.has(hit.name)) continue;\n seen.add(hit.name);\n hits.push(hit);\n }\n return hits.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport interface OfficialRegistryEntry {\n npm?: string;\n builtin?: boolean;\n}\n\nexport interface OfficialRegistry {\n plugins?: Record<string, OfficialRegistryEntry>;\n services?: Record<string, OfficialRegistryEntry>;\n adapters?: Record<string, OfficialRegistryEntry>;\n}\n\nexport async function fetchOfficialRegistry(): Promise<OfficialRegistry | null> {\n try {\n const res = await fetch(OFFICIAL_REGISTRY_URL, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return null;\n return (await res.json()) as OfficialRegistry;\n } catch {\n return null;\n }\n}\n\nexport interface NpmPackageMeta {\n version: string;\n description: string;\n keywords: string[];\n mioku?: unknown;\n}\n\nexport async function fetchNpmPackageMeta(\n packageName: string,\n): Promise<NpmPackageMeta | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latest = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const version = latest ? (data?.versions?.[latest] ?? {}) : {};\n return {\n version: latest,\n description: String(version?.description || \"\").trim(),\n keywords: Array.isArray(version?.keywords)\n ? version.keywords.map(String)\n : [],\n mioku: version?.mioku,\n };\n } catch {\n return null;\n }\n}\n\nexport function declaredServicesOf(meta: NpmPackageMeta | null): string[] {\n const mioku = meta?.mioku;\n if (Array.isArray(mioku)) {\n return mioku.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n if (mioku && typeof mioku === \"object\") {\n const services = (mioku as { services?: unknown }).services;\n if (Array.isArray(services)) {\n return services.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n }\n return [];\n}\n\nexport async function resolveRequiredServices(\n pluginNames: readonly string[],\n): Promise<string[]> {\n const registry = await fetchOfficialRegistry();\n const serviceMap = new Map<string, string>();\n if (registry) {\n for (const [short, entry] of Object.entries(registry.services ?? {})) {\n if (entry?.npm) serviceMap.set(short, entry.npm);\n }\n }\n\n const required = new Set<string>();\n for (const pluginName of pluginNames) {\n const meta = await fetchNpmPackageMeta(pluginName);\n for (const short of declaredServicesOf(meta)) {\n const npm = serviceMap.get(short) ?? `${SERVICE_PREFIX}${short}`;\n if (serviceMap.has(short)) {\n required.add(npm);\n continue;\n }\n const check = await fetchNpmPackageMeta(npm);\n if (check && check.keywords.includes(\"mioku\")) {\n required.add(npm);\n } else {\n consola.warn(\n `${pluginName} 声明了服务 \"${short}\",但未找到对应的 mioku 服务包,已跳过`,\n );\n }\n }\n }\n return Array.from(required);\n}\n\nexport async function multiSelect(\n message: string,\n items: Array<{ label: string; value: string }>,\n initial: string[] = [],\n options: { required?: boolean } = {},\n): Promise<string[]> {\n if (items.length === 0) return [];\n const result = await consola.prompt(message, {\n type: \"multiselect\",\n options: items,\n initial,\n cancel: \"reject\",\n required: options.required ?? false,\n });\n return (result as Array<string | { value: string }>).map((item) =>\n typeof item === \"string\" ? item : item.value,\n );\n}\n\nexport function runAdapterCli(name: string, cwd: string): void {\n const isWin = process.platform === \"win32\";\n const exts = isWin ? [\"\", \".cmd\", \".ps1\", \".bat\"] : [\"\"];\n for (const ext of exts) {\n const binPath = path.join(\n cwd,\n \"node_modules\",\n \".bin\",\n `mioku-adapter-${name}${ext}`,\n );\n if (fs.existsSync(binPath)) {\n const realPath = (() => {\n try {\n return fs.realpathSync(binPath);\n } catch {\n return binPath;\n }\n })();\n run(realPath, [], { cwd });\n return;\n }\n }\n run(\"bunx\", [`mioku-adapter-${name}`], { cwd });\n}\n\nexport function shortNameOfPackage(pkgName: string): string {\n for (const prefix of [PLUGIN_PREFIX, SERVICE_PREFIX, ADAPTER_PREFIX]) {\n if (pkgName.startsWith(prefix)) return pkgName.slice(prefix.length);\n }\n return pkgName;\n}\n\nexport function run(\n cmd: string,\n args: string[] = [],\n options: { cwd?: string } = {},\n): void {\n runCommandInherit(cmd, args, options);\n}\n\nexport async function rmrf(dir: string, retries = 5): Promise<void> {\n for (let i = 0; i < retries; i++) {\n try {\n fs.rmSync(dir, { recursive: true, force: true });\n return;\n } catch (err: any) {\n if (i === retries - 1) throw err;\n const code = err?.code;\n if (\n code === \"EPERM\" ||\n code === \"EBUSY\" ||\n code === \"ENOTEMPTY\" ||\n code === \"ENOENT\"\n ) {\n await new Promise((resolve) => setTimeout(resolve, 300 * (i + 1)));\n } else {\n throw err;\n }\n }\n }\n}\n\nexport function hasCommand(cmd: string): boolean {\n return commandExists(cmd);\n}\n\nfunction findNpmPath(): string | null {\n const resolved = resolveCommand(\"npm\");\n if (resolved) return resolved;\n if (process.platform !== \"win32\") return null;\n\n const fallbacks = [\n path.join(process.env.ProgramFiles || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env[\"ProgramFiles(x86)\"] || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"npm.cmd\"),\n ];\n\n return fallbacks.find((candidate) => resolveCommand(candidate)) ?? null;\n}\n\nfunction installBunViaOfficialScript(): void {\n console.log(\"安装 bun...\");\n if (process.platform === \"win32\") {\n const ps =\n process.env.SystemRoot &&\n path.join(\n process.env.SystemRoot,\n \"System32\",\n \"WindowsPowerShell\",\n \"v1.0\",\n \"powershell.exe\",\n );\n const psExe = ps && resolveCommand(ps) ? ps : \"powershell\";\n run(psExe, [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-Command\",\n \"irm bun.sh/install.ps1 | iex\",\n ]);\n } else {\n run(\"bash\", [\"-c\", \"curl -fsSL https://bun.sh/install | bash\"]);\n }\n clearCommandCache();\n}\n\nexport function ensurePackageManager(): void {\n if (hasCommand(\"bun\")) return;\n try {\n installBunViaOfficialScript();\n } catch (err) {\n const npmPath = findNpmPath();\n if (!npmPath) {\n consola.error(\"未找到 npm,请确保 Node.js 已安装并包含 npm\");\n consola.error(\n '自动安装 bun 失败,请手动执行:\\n macOS / Linux: curl -fsSL https://bun.sh/install | bash\\n Windows: powershell -c \"irm bun.sh/install.ps1 | iex\"',\n );\n throw err;\n }\n consola.warn(\"官方安装脚本失败,回退到 npm 全局安装 bun ...\");\n run(npmPath, [\"install\", \"-g\", \"bun\"]);\n clearCommandCache();\n }\n if (!hasCommand(\"bun\")) {\n const home = os.homedir();\n const candidates =\n process.platform === \"win32\"\n ? [\n path.join(home, \".bun\", \"bin\", \"bun.exe\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"bun.cmd\"),\n path.join(\n process.env.APPDATA || \"\",\n \"npm\",\n \"node_modules\",\n \".bin\",\n \"bun.cmd\",\n ),\n ]\n : [\n path.join(home, \".bun\", \"bin\", \"bun\"),\n \"/usr/local/bin/bun\",\n \"/opt/homebrew/bin/bun\",\n ];\n for (const c of candidates) {\n try {\n if (fs.existsSync(c)) {\n consola.warn(\n `检测到 bun 已安装在 ${c}。请把该目录加入 PATH 后重新运行本命令。`,\n );\n break;\n }\n } catch {\n // 忽略\n }\n }\n consola.error(\n \"bun 安装后仍无法在 PATH 中找到,请重启终端或将 bun 的安装目录加入 PATH 后重试\",\n );\n process.exit(1);\n }\n}\n\nexport function getAddCommand(packages: string[]): [string, string[]] {\n return [\"bun\", [\"add\", ...packages]];\n}\n\nexport function normalizePackageName(input: string): string {\n if (input.startsWith(PLUGIN_PREFIX) || input.startsWith(SERVICE_PREFIX)) {\n return input;\n }\n if (input.startsWith(\"mioku-\")) return input;\n return `${PLUGIN_PREFIX}${input}`;\n}\n\nexport function detectType(name: string): \"plugin\" | \"service\" | \"unknown\" {\n if (name.startsWith(PLUGIN_PREFIX)) return \"plugin\";\n if (name.startsWith(SERVICE_PREFIX)) return \"service\";\n return \"unknown\";\n}\n\nexport function execAdd(packages: string[], cwd?: string): void {\n const [cmd, args] = getAddCommand(packages);\n console.log(`执行: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd });\n}\n\nexport function appendToMiokuPlugins(cwd: string, pkgName: string): boolean {\n if (!pkgName.startsWith(PLUGIN_PREFIX)) return false;\n const shortName = pkgName.slice(PLUGIN_PREFIX.length);\n\n const packageJsonPath = path.join(cwd, \"package.json\");\n if (!fs.existsSync(packageJsonPath)) return false;\n\n const pkg = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n const mioku = pkg.mioku ?? {};\n const plugins = Array.isArray(mioku.plugins) ? [...mioku.plugins] : [];\n if (plugins.includes(shortName)) return false;\n\n plugins.push(shortName);\n pkg.mioku = { ...mioku, plugins };\n fs.writeFileSync(packageJsonPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n return true;\n}\n\nexport async function getInstalledPackages(cwd: string): Promise<string[]> {\n try {\n const pkg = JSON.parse(\n readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\n );\n const deps = { ...pkg.dependencies, ...pkg.devDependencies };\n return Object.keys(deps).filter((k) => k.startsWith(\"mioku-\"));\n } catch {\n return [];\n }\n}\n\nexport function withRoot(p: string): string {\n return path.resolve(process.cwd(), p);\n}\n\nexport async function fetchNpmKeywords(\n packageName: string,\n): Promise<string[] | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latestVersion = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const keywords = latestVersion\n ? data?.versions?.[latestVersion]?.keywords\n : data?.keywords;\n return Array.isArray(keywords) ? keywords.map(String) : [];\n } catch {\n return null;\n }\n}\n\nexport function gracefullyExit(): void {\n console.log(\"Bye!\");\n process.exit(0);\n}\n\nexport function makeFileTree(\n fileTree: Record<string, string | Record<string, unknown>>,\n base: string,\n): void {\n for (const [name, content] of Object.entries(fileTree)) {\n if (typeof content === \"object\" && content !== null) {\n const subPath = path.join(base, name);\n if (!fs.existsSync(subPath)) fs.mkdirSync(subPath, { recursive: true });\n for (const [subName, subContent] of Object.entries(content)) {\n if (typeof subContent === \"object\") {\n makeFileTree(\n subContent as Record<string, string | Record<string, unknown>>,\n path.join(subPath, subName),\n );\n } else {\n fs.writeFileSync(path.join(subPath, subName), subContent as string);\n }\n }\n } else {\n const filePath = path.join(base, name);\n const dirname = path.dirname(filePath);\n if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });\n fs.writeFileSync(filePath, content as string);\n }\n }\n}\n\nexport function buildHelpInfo(version: string): string {\n return dedent(`\n mioku 命令行工具 v${version}\n\n 用法: mioku <命令> [选项]\n\n 命令:\n install plugin <名称> 安装插件,自动补全 mioku-plugin- 前缀\n install service <名称> 安装服务,自动补全 mioku-service- 前缀\n update [包名|self|all] 更新插件或服务\n update - 检查可用更新\n update all - 更新所有 mioku- 包\n update self - 更新 mioku 框架\n update xxx - 更新指定包\n\n 选项:\n -h, --help 显示帮助信息\n -v, --version 显示版本号\n --name <name> 指定项目/文件夹名称,默认 mioku-bot\n --protocol <protocol> 指定 NapCat 协议,默认 ws\n --host <host> 指定 NapCat 主机,默认 localhost\n --port <port> 指定 NapCat 端口,默认 3001\n --token <token> 指定 NapCat 连接 Token,默认空\n --prefix <prefix> 指定命令前缀,默认 #\n --owners <owners> 指定主人 QQ,英文逗号分隔,必填\n --admins <admins> 指定管理员 QQ,英文逗号分隔,可空\n --use-npm-mirror 使用 npm 镜像源加速依赖安装,默认否\n `);\n}\n\ntype OmitTypeWithRequired<T> = Omit<T, \"type\" | \"required\"> & {\n required?: boolean;\n};\n\nexport async function confirm(\n message: string,\n options?: OmitTypeWithRequired<{ initial?: boolean }>,\n): Promise<boolean> {\n return consola.prompt(message, {\n type: \"confirm\",\n cancel: \"reject\",\n ...options,\n });\n}\n\nexport async function input(\n message: string,\n options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>,\n): Promise<string> {\n const result = await consola.prompt(message, {\n type: \"text\",\n cancel: \"reject\",\n ...options,\n });\n if (options?.required && !result) return input(message, options);\n return result;\n}\n","import consola from \"consola\";\nimport {\n ensurePackageManager,\n appendToMiokuPlugins,\n execAdd,\n fetchNpmKeywords,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n confirm,\n} from \"./shared\";\n\nexport async function installCommand(\n cmdArgs: string[],\n helpInfo: string,\n): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [type, name] = cmdArgs;\n\n if (!type || !name) {\n consola.error(\n \"请指定类型和名称: mioku install plugin <名称> 或 mioku install service <名称>\",\n );\n console.log(helpInfo);\n return 1;\n }\n\n if (type !== \"plugin\" && type !== \"service\") {\n consola.error(`无效的类型 \"${type}\",请使用 plugin 或 service`);\n console.log(helpInfo);\n return 1;\n }\n\n const prefix = type === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n const normalized = `${prefix}${name}`;\n\n if (type === \"plugin\") {\n const proceed = await warnIfPrivatePlugin(normalized);\n if (!proceed) {\n consola.info(\"已取消安装\");\n return 1;\n }\n }\n\n try {\n execAdd([normalized], cwd);\n consola.success(`已安装 ${normalized}`);\n\n if (type === \"plugin\") {\n const shortName = normalized.slice(PLUGIN_PREFIX.length);\n if (appendToMiokuPlugins(cwd, normalized)) {\n consola.success(`已在 mioku.plugins 中启用 ${shortName}`);\n } else {\n consola.info(`${shortName} 已在 mioku.plugins 中,跳过`);\n }\n }\n return 0;\n } catch {\n consola.error(`安装失败: ${normalized}`);\n return 1;\n }\n}\n\nasync function warnIfPrivatePlugin(pkgName: string): Promise<boolean> {\n const keywords = await fetchNpmKeywords(pkgName);\n if (keywords === null) return true;\n if (keywords.includes(\"mioku\")) return true;\n\n consola.warn(`${pkgName} 看起来是私有插件\"`);\n consola.warn(\"该插件未上架插件市场,可能存在风险\");\n return confirm(\"仍要继续安装吗?\", { initial: false });\n}\n","import consola from \"consola\";\nimport {\n run,\n ensurePackageManager,\n getInstalledPackages,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n} from \"./shared\";\n\nasync function updatePackages(packages: string[], cwd: string): Promise<void> {\n if (packages.length === 0) {\n consola.info(\"未找到 mioku- 相关依赖\");\n return;\n }\n console.log(`执行: bun update ${packages.join(\" \")} --latest`);\n run(\"bun\", [\"update\", ...packages, \"--latest\"], { cwd });\n}\n\nasync function updateByPrefix(\n prefix: string,\n cwd: string,\n name?: string,\n): Promise<void> {\n if (name) {\n const normalized = name.startsWith(prefix) ? name : `${prefix}${name}`;\n console.log(`执行: bun update ${normalized} --latest`);\n run(\"bun\", [\"update\", normalized, \"--latest\"], { cwd });\n return;\n }\n const packages = (await getInstalledPackages(cwd)).filter((p) =>\n p.startsWith(prefix),\n );\n if (packages.length === 0) {\n consola.info(`未找到 ${prefix}* 相关依赖`);\n return;\n }\n await updatePackages(packages, cwd);\n}\n\nexport async function updateCommand(cmdArgs: string[]): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [target, name] = cmdArgs;\n\n if (!target || target === \"check\") {\n run(\"bun\", [\"update\", \"-i\"], { cwd });\n return 0;\n }\n\n if (target === \"all\") {\n await updatePackages(await getInstalledPackages(cwd), cwd);\n return 0;\n }\n\n if (target === \"self\") {\n console.log(\"执行: bun update mioku --latest\");\n run(\"bun\", [\"update\", \"mioku\", \"--latest\"], { cwd });\n return 0;\n }\n\n if (target === \"plugin\" || target === \"service\") {\n const prefix = target === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n await updateByPrefix(prefix, cwd, name);\n return 0;\n }\n\n console.log(`执行: bun update ${target} --latest`);\n run(\"bun\", [\"update\", target, \"--latest\"], { cwd });\n return 0;\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport dedent from \"dedent\";\nimport consola from \"consola\";\nimport {\n ADAPTER_PREFIX,\n PLUGIN_PREFIX,\n ensurePackageManager,\n getAddCommand,\n multiSelect,\n run,\n runAdapterCli,\n searchMiokuPackages,\n fetchOfficialRegistry,\n shortNameOfPackage,\n resolveRequiredServices,\n rmrf,\n withRoot,\n gracefullyExit,\n makeFileTree,\n input,\n confirm,\n} from \"./shared\";\n\n/** stdin 会话对应的主人标识,默认追加到 mioku.owners */\nexport const STDIN_OWNER = \"stdin\";\n\n/** 系统自带适配器:必装且不可取消,默认启用 */\nexport const SYSTEM_ADAPTERS = [\"mioku-adapter-stdin\"];\n\n/** 系统自带插件:必装且不可取消 */\nexport const SYSTEM_PLUGINS = [\"mioku-plugin-help\", \"mioku-plugin-chat\"];\n\n/** 系统服务:框架运行所必需,无条件安装 */\nexport const SYSTEM_SERVICES = [\n \"mioku-service-ai\",\n \"mioku-service-config\",\n \"mioku-service-screenshot\",\n \"mioku-service-help\",\n];\n\nasync function createNewProject(\n name: string,\n fileTree: Record<string, string | Record<string, unknown>>,\n): Promise<string> {\n const projectPath = withRoot(`./${name}`);\n\n if (fs.existsSync(projectPath)) {\n const overwrite = await confirm(`项目 ${name} 已存在,是否覆盖?`);\n if (!overwrite) gracefullyExit();\n\n if (projectPath === process.cwd()) {\n if (fs.readdirSync(projectPath).length !== 0) {\n const confirmOver = await confirm(\n \"项目路径与当前路径相同,将删除当前目录下所有内容再创建,是否继续?\",\n );\n if (!confirmOver) gracefullyExit();\n }\n }\n await rmrf(projectPath);\n }\n\n fs.mkdirSync(projectPath, { recursive: true });\n makeFileTree(fileTree, projectPath);\n console.log(`项目 ${name} 创建成功!`);\n\n console.log(\"正在安装基础依赖 (bun i) ...\");\n run(\"bun\", [\"i\"], { cwd: projectPath });\n return projectPath;\n}\n\nasync function selectPackages(\n message: string,\n prefix: string,\n initial: string[] = [],\n options: { exclude?: string[] } = {},\n): Promise<string[]> {\n console.log(`\\n正在从 npm 拉取 ${prefix}* 包...`);\n const [hits, registry] = await Promise.all([\n searchMiokuPackages(prefix),\n fetchOfficialRegistry(),\n ]);\n if (hits.length === 0) {\n consola.warn(`未在 npm 上找到任何 ${prefix}* 包`);\n return [];\n }\n const official = new Set<string>();\n for (const group of [registry?.plugins, registry?.services, registry?.adapters]) {\n for (const entry of Object.values(group ?? {})) {\n if (entry?.npm) official.add(entry.npm);\n }\n }\n const excludeSet = new Set(options.exclude ?? []);\n const items = hits\n .filter((hit) => !excludeSet.has(hit.name))\n .map((hit) => {\n const shortName = shortNameOfPackage(hit.name);\n const desc = hit.description || \"暂无介绍\";\n const badge = official.has(hit.name) ? \"官方\" : \"社区\";\n return { label: `${shortName} (${badge} · ${desc})`, value: hit.name };\n });\n return multiSelect(message, items, initial, { required: false });\n}\n\nexport async function scaffoldCommand(version: string): Promise<number> {\n const name = await input(\"请输入项目名称\", {\n default: \"mioku-bot\",\n placeholder: \"mioku-bot\",\n required: true,\n });\n const owners = await input(\"请输入主人 QQ (最高权限,英文逗号分隔,必填)\", {\n placeholder: \"请输入\",\n default: \"\",\n required: true,\n });\n\n ensurePackageManager();\n\n // stdin 会话默认拥有主人权限:自动追加到 owners\n const ownersList = [\n ...String(owners)\n .split(\",\")\n .map((o) => o.trim())\n .filter(Boolean),\n STDIN_OWNER,\n ];\n\n const adapterNames = await selectPackages(\n \"选择要安装的适配器(上下键选择,空格勾选,回车确认)\",\n ADAPTER_PREFIX,\n [],\n { exclude: SYSTEM_ADAPTERS },\n );\n const allAdapterNames = [...SYSTEM_ADAPTERS, ...adapterNames];\n if (adapterNames.length === 0) {\n consola.info(\"未选择其他适配器,仅启用标准输入\");\n }\n\n const pkgJsonObj = {\n name,\n private: true,\n type: \"module\" as const,\n dependencies: {\n mioku: \"latest\",\n ...Object.fromEntries(allAdapterNames.map((p) => [p, \"latest\"])),\n },\n mioku: {\n prefix: \".\",\n owners: ownersList,\n admins: [] as string[],\n plugins: [\"demo\"],\n log_level: \"info\",\n online_push: false,\n error_push: false,\n adapters: {\n stdin: {},\n },\n },\n scripts: {\n start: \"bun run app.ts\",\n dev: \"bun run --watch app.ts\",\n },\n };\n const pkgJson = `${JSON.stringify(pkgJsonObj, null, 2)}\\n`;\n\n const pluginCode = dedent(`\n import { definePlugin } from 'mioku'\n\n export default definePlugin({\n name: 'demo',\n version: '${version}',\n async setup(ctx) {\n ctx.logger.info('Demo 插件已加载')\n\n ctx.handle('message', async (e) => {\n if (e.raw_message === 'hello') {\n e.reply('world', true)\n }\n })\n\n return () => {\n ctx.logger.info('Demo 插件已卸载')\n }\n },\n })\n `);\n\n const fileTree: Record<string, string | Record<string, unknown>> = {\n \"app.ts\":\n \"import { start } from 'mioku'\\n\\nstart({ cwd: import.meta.dirname }).then()\\n\",\n \"package.json\": pkgJson,\n plugins: { demo: { \"index.ts\": pluginCode } },\n config: {},\n data: {},\n };\n\n const projectPath = await createNewProject(name, fileTree);\n\n // 仅为用户额外选择的适配器运行配置向导(系统适配器 stdin 免配置)\n for (const adapterPkg of adapterNames) {\n const adapterName = shortNameOfPackage(adapterPkg);\n consola.info(`正在运行 ${adapterPkg} 配置向导...`);\n runAdapterCli(adapterName, projectPath);\n }\n consola.info(\n `已自动安装并启用系统适配器: ${SYSTEM_ADAPTERS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n // 系统插件必装且不可取消:从选择列表中剔除,自动启用\n const pluginNames = await selectPackages(\n \"选择要安装的插件(上下键选择,空格勾选,回车确认)\",\n PLUGIN_PREFIX,\n [],\n { exclude: SYSTEM_PLUGINS },\n );\n consola.info(\n `系统插件将自动安装: ${SYSTEM_PLUGINS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n const enabledPlugins = [\n \"demo\",\n ...SYSTEM_PLUGINS.map(shortNameOfPackage),\n ...pluginNames.map(shortNameOfPackage),\n ];\n const pkgPath = path.join(projectPath, \"package.json\");\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n pkg.mioku = { ...pkg.mioku, plugins: enabledPlugins };\n fs.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n\n const serviceNames = new Set<string>(SYSTEM_SERVICES);\n for (const service of await resolveRequiredServices(pluginNames)) {\n serviceNames.add(service);\n }\n consola.info(\n `将自动安装服务: ${Array.from(serviceNames).map(shortNameOfPackage).join(\", \")}`,\n );\n\n const installWebui = await confirm(\"是否安装 WebUI 管理面板?(建议安装)\", {\n initial: true,\n });\n\n const addPackages = [...pluginNames, ...Array.from(serviceNames)];\n if (installWebui) addPackages.push(\"mioku-service-webui\");\n\n if (addPackages.length > 0) {\n const [cmd, args] = getAddCommand(addPackages);\n console.log(`正在安装插件与服务: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd: projectPath });\n }\n\n console.log(\"\\n若需启动机器人,请运行:\");\n console.log(\" cd\", name);\n console.log(\" bun run start\");\n return 0;\n}\n","#!/usr/bin/env node\n\nimport mri from \"mri\";\nimport { version } from \"../../package.json\";\nimport { buildHelpInfo } from \"./shared\";\nimport { installCommand } from \"./install\";\nimport { updateCommand } from \"./update\";\nimport { scaffoldCommand } from \"./scaffold\";\n\ninterface CliOptions {\n help?: boolean;\n version?: boolean;\n}\n\nconst args = process.argv.slice(2);\n\n(async () => {\n const cli = mri<CliOptions>(args, { alias: { v: \"version\", h: \"help\" } });\n const helpInfo = buildHelpInfo(version);\n const [cmd, ...cmdArgs] = args;\n\n switch (cmd) {\n case \"install\":\n process.exitCode = await installCommand(cmdArgs, helpInfo);\n return;\n case \"update\":\n process.exitCode = await updateCommand(cmdArgs);\n return;\n default:\n if (cli.version) {\n console.log(`v${version}`);\n return;\n }\n if (cli.help) {\n console.log(helpInfo);\n return;\n }\n process.exitCode = await scaffoldCommand(version);\n return;\n }\n})();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["query: string","hits: NpmPackageHit[]","prefix: string","packageName: string","version","meta: NpmPackageMeta | null","pluginNames: readonly string[]","message: string","items: Array<{ label: string; value: string }>","initial: string[]","options: { required?: boolean }","name: string","cwd: string","pkgName: string","cmd: string","args: string[]","options: { cwd?: string }","args","dir: string","err: any","packages: string[]","cwd?: string","p: string","fileTree: Record<string, string | Record<string, unknown>>","base: string","version: string","options?: OmitTypeWithRequired<{ initial?: boolean }>","options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>","cmdArgs: string[]","helpInfo: string","pkgName: string","packages: string[]","cwd: string","prefix: string","name?: string","cmdArgs: string[]","name: string","fileTree: Record<string, string | Record<string, unknown>>","message: string","prefix: string","initial: string[]","options: { exclude?: string[] }","version: string","version","args"],"sources":["../../src/cli/shared.ts","../../src/cli/install.ts","../../src/cli/update.ts","../../src/cli/scaffold.ts","../../src/cli/index.ts"],"sourcesContent":["import fs, { readFileSync } from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport consola from \"consola\";\nimport dedent from \"dedent\";\nimport {\n clearCommandCache,\n commandExists,\n resolveCommand,\n runCommandInherit,\n} from \"../internal/exec\";\n\nexport const PLUGIN_PREFIX = \"mioku-plugin-\";\nexport const SERVICE_PREFIX = \"mioku-service-\";\nexport const ADAPTER_PREFIX = \"mioku-adapter-\";\n\nexport const NPM_REGISTRY = \"https://registry.npmjs.org\";\nexport const OFFICIAL_REGISTRY_URL =\n \"https://raw.githubusercontent.com/mioku-lab/mioku/main/official-registry.json\";\n\nexport interface NpmPackageHit {\n name: string;\n description: string;\n version: string;\n keywords: string[];\n}\n\nasync function searchNpm(query: string, size = 250): Promise<NpmPackageHit[]> {\n try {\n const url = `${NPM_REGISTRY}/-/v1/search?text=${encodeURIComponent(query)}&size=${size}`;\n const res = await fetch(url, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return [];\n const data = (await res.json()) as {\n objects?: Array<{\n package?: {\n name?: string;\n description?: string;\n version?: string;\n keywords?: string[];\n };\n }>;\n };\n const hits: NpmPackageHit[] = [];\n for (const obj of data.objects ?? []) {\n const pkg = obj.package ?? {};\n const name = String(pkg.name ?? \"\").trim();\n if (!name) continue;\n hits.push({\n name,\n description: String(pkg.description ?? \"\").trim(),\n version: String(pkg.version ?? \"\").trim(),\n keywords: Array.isArray(pkg.keywords) ? pkg.keywords.map(String) : [],\n });\n }\n return hits;\n } catch {\n return [];\n }\n}\n\nexport async function searchMiokuPackages(\n prefix: string,\n): Promise<NpmPackageHit[]> {\n const [broad, targeted] = await Promise.all([\n searchNpm(\"mioku\"),\n searchNpm(prefix.replace(/-$/, \"\")),\n ]);\n const seen = new Set<string>();\n const hits: NpmPackageHit[] = [];\n for (const hit of [...broad, ...targeted]) {\n if (!hit.name.startsWith(prefix)) continue;\n if (!hit.keywords.includes(\"mioku\")) continue;\n if (seen.has(hit.name)) continue;\n seen.add(hit.name);\n hits.push(hit);\n }\n return hits.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport interface OfficialRegistryEntry {\n npm?: string;\n builtin?: boolean;\n}\n\nexport interface OfficialRegistry {\n plugins?: Record<string, OfficialRegistryEntry>;\n services?: Record<string, OfficialRegistryEntry>;\n adapters?: Record<string, OfficialRegistryEntry>;\n}\n\nexport async function fetchOfficialRegistry(): Promise<OfficialRegistry | null> {\n try {\n const res = await fetch(OFFICIAL_REGISTRY_URL, {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n });\n if (!res.ok) return null;\n return (await res.json()) as OfficialRegistry;\n } catch {\n return null;\n }\n}\n\nexport interface NpmPackageMeta {\n version: string;\n description: string;\n keywords: string[];\n mioku?: unknown;\n}\n\nexport async function fetchNpmPackageMeta(\n packageName: string,\n): Promise<NpmPackageMeta | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latest = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const version = latest ? (data?.versions?.[latest] ?? {}) : {};\n return {\n version: latest,\n description: String(version?.description || \"\").trim(),\n keywords: Array.isArray(version?.keywords)\n ? version.keywords.map(String)\n : [],\n mioku: version?.mioku,\n };\n } catch {\n return null;\n }\n}\n\nexport function declaredServicesOf(meta: NpmPackageMeta | null): string[] {\n const mioku = meta?.mioku;\n if (Array.isArray(mioku)) {\n return mioku.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n if (mioku && typeof mioku === \"object\") {\n const services = (mioku as { services?: unknown }).services;\n if (Array.isArray(services)) {\n return services.filter(\n (s): s is string => typeof s === \"string\" && s.length > 0,\n );\n }\n }\n return [];\n}\n\nexport async function resolveRequiredServices(\n pluginNames: readonly string[],\n): Promise<string[]> {\n const registry = await fetchOfficialRegistry();\n const serviceMap = new Map<string, string>();\n if (registry) {\n for (const [short, entry] of Object.entries(registry.services ?? {})) {\n if (entry?.npm) serviceMap.set(short, entry.npm);\n }\n }\n\n const required = new Set<string>();\n for (const pluginName of pluginNames) {\n const meta = await fetchNpmPackageMeta(pluginName);\n for (const short of declaredServicesOf(meta)) {\n const npm = serviceMap.get(short) ?? `${SERVICE_PREFIX}${short}`;\n if (serviceMap.has(short)) {\n required.add(npm);\n continue;\n }\n const check = await fetchNpmPackageMeta(npm);\n if (check && check.keywords.includes(\"mioku\")) {\n required.add(npm);\n } else {\n consola.warn(\n `${pluginName} 声明了服务 \"${short}\",但未找到对应的 mioku 服务包,已跳过`,\n );\n }\n }\n }\n return Array.from(required);\n}\n\nexport async function multiSelect(\n message: string,\n items: Array<{ label: string; value: string }>,\n initial: string[] = [],\n options: { required?: boolean } = {},\n): Promise<string[]> {\n if (items.length === 0) return [];\n const result = await consola.prompt(message, {\n type: \"multiselect\",\n options: items,\n initial,\n cancel: \"reject\",\n required: options.required ?? false,\n });\n return (result as Array<string | { value: string }>).map((item) =>\n typeof item === \"string\" ? item : item.value,\n );\n}\n\nexport function runAdapterCli(name: string, cwd: string): void {\n const isWin = process.platform === \"win32\";\n const exts = isWin ? [\"\", \".cmd\", \".ps1\", \".bat\"] : [\"\"];\n for (const ext of exts) {\n const binPath = path.join(\n cwd,\n \"node_modules\",\n \".bin\",\n `mioku-adapter-${name}${ext}`,\n );\n if (fs.existsSync(binPath)) {\n const realPath = (() => {\n try {\n return fs.realpathSync(binPath);\n } catch {\n return binPath;\n }\n })();\n run(realPath, [], { cwd });\n return;\n }\n }\n run(\"bunx\", [`mioku-adapter-${name}`], { cwd });\n}\n\nexport function shortNameOfPackage(pkgName: string): string {\n for (const prefix of [PLUGIN_PREFIX, SERVICE_PREFIX, ADAPTER_PREFIX]) {\n if (pkgName.startsWith(prefix)) return pkgName.slice(prefix.length);\n }\n return pkgName;\n}\n\nexport function run(\n cmd: string,\n args: string[] = [],\n options: { cwd?: string } = {},\n): void {\n runCommandInherit(cmd, args, options);\n}\n\nexport async function rmrf(dir: string, retries = 5): Promise<void> {\n for (let i = 0; i < retries; i++) {\n try {\n fs.rmSync(dir, { recursive: true, force: true });\n return;\n } catch (err: any) {\n if (i === retries - 1) throw err;\n const code = err?.code;\n if (\n code === \"EPERM\" ||\n code === \"EBUSY\" ||\n code === \"ENOTEMPTY\" ||\n code === \"ENOENT\"\n ) {\n await new Promise((resolve) => setTimeout(resolve, 300 * (i + 1)));\n } else {\n throw err;\n }\n }\n }\n}\n\nexport function hasCommand(cmd: string): boolean {\n return commandExists(cmd);\n}\n\nfunction findNpmPath(): string | null {\n const resolved = resolveCommand(\"npm\");\n if (resolved) return resolved;\n if (process.platform !== \"win32\") return null;\n\n const fallbacks = [\n path.join(process.env.ProgramFiles || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env[\"ProgramFiles(x86)\"] || \"\", \"nodejs\", \"npm.cmd\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"npm.cmd\"),\n ];\n\n return fallbacks.find((candidate) => resolveCommand(candidate)) ?? null;\n}\n\nfunction installBunViaOfficialScript(): void {\n console.log(\"安装 bun...\");\n if (process.platform === \"win32\") {\n const ps =\n process.env.SystemRoot &&\n path.join(\n process.env.SystemRoot,\n \"System32\",\n \"WindowsPowerShell\",\n \"v1.0\",\n \"powershell.exe\",\n );\n const psExe = ps && resolveCommand(ps) ? ps : \"powershell\";\n run(psExe, [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-Command\",\n \"irm bun.sh/install.ps1 | iex\",\n ]);\n } else {\n run(\"bash\", [\"-c\", \"curl -fsSL https://bun.sh/install | bash\"]);\n }\n clearCommandCache();\n}\n\nexport function ensurePackageManager(): void {\n if (hasCommand(\"bun\")) return;\n try {\n installBunViaOfficialScript();\n } catch (err) {\n const npmPath = findNpmPath();\n if (!npmPath) {\n consola.error(\"未找到 npm,请确保 Node.js 已安装并包含 npm\");\n consola.error(\n '自动安装 bun 失败,请手动执行:\\n macOS / Linux: curl -fsSL https://bun.sh/install | bash\\n Windows: powershell -c \"irm bun.sh/install.ps1 | iex\"',\n );\n throw err;\n }\n consola.warn(\"官方安装脚本失败,回退到 npm 全局安装 bun ...\");\n run(npmPath, [\"install\", \"-g\", \"bun\"]);\n clearCommandCache();\n }\n if (!hasCommand(\"bun\")) {\n const home = os.homedir();\n const candidates =\n process.platform === \"win32\"\n ? [\n path.join(home, \".bun\", \"bin\", \"bun.exe\"),\n path.join(process.env.APPDATA || \"\", \"npm\", \"bun.cmd\"),\n path.join(\n process.env.APPDATA || \"\",\n \"npm\",\n \"node_modules\",\n \".bin\",\n \"bun.cmd\",\n ),\n ]\n : [\n path.join(home, \".bun\", \"bin\", \"bun\"),\n \"/usr/local/bin/bun\",\n \"/opt/homebrew/bin/bun\",\n ];\n for (const c of candidates) {\n try {\n if (fs.existsSync(c)) {\n consola.warn(\n `检测到 bun 已安装在 ${c}。请把该目录加入 PATH 后重新运行本命令。`,\n );\n break;\n }\n } catch {\n // 忽略\n }\n }\n consola.error(\n \"bun 安装后仍无法在 PATH 中找到,请重启终端或将 bun 的安装目录加入 PATH 后重试\",\n );\n process.exit(1);\n }\n}\n\nexport function getAddCommand(packages: string[]): [string, string[]] {\n return [\"bun\", [\"add\", ...packages]];\n}\n\nexport function normalizePackageName(input: string): string {\n if (input.startsWith(PLUGIN_PREFIX) || input.startsWith(SERVICE_PREFIX)) {\n return input;\n }\n if (input.startsWith(\"mioku-\")) return input;\n return `${PLUGIN_PREFIX}${input}`;\n}\n\nexport function detectType(name: string): \"plugin\" | \"service\" | \"unknown\" {\n if (name.startsWith(PLUGIN_PREFIX)) return \"plugin\";\n if (name.startsWith(SERVICE_PREFIX)) return \"service\";\n return \"unknown\";\n}\n\nexport function execAdd(packages: string[], cwd?: string): void {\n const [cmd, args] = getAddCommand(packages);\n console.log(`执行: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd });\n}\n\nexport function appendToMiokuPlugins(cwd: string, pkgName: string): boolean {\n if (!pkgName.startsWith(PLUGIN_PREFIX)) return false;\n const shortName = pkgName.slice(PLUGIN_PREFIX.length);\n\n const packageJsonPath = path.join(cwd, \"package.json\");\n if (!fs.existsSync(packageJsonPath)) return false;\n\n const pkg = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n const mioku = pkg.mioku ?? {};\n const plugins = Array.isArray(mioku.plugins) ? [...mioku.plugins] : [];\n if (plugins.includes(shortName)) return false;\n\n plugins.push(shortName);\n pkg.mioku = { ...mioku, plugins };\n fs.writeFileSync(packageJsonPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n return true;\n}\n\nexport async function getInstalledPackages(cwd: string): Promise<string[]> {\n try {\n const pkg = JSON.parse(\n readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\n );\n const deps = { ...pkg.dependencies, ...pkg.devDependencies };\n return Object.keys(deps).filter((k) => k.startsWith(\"mioku-\"));\n } catch {\n return [];\n }\n}\n\nexport function withRoot(p: string): string {\n return path.resolve(process.cwd(), p);\n}\n\nexport async function fetchNpmKeywords(\n packageName: string,\n): Promise<string[] | null> {\n try {\n const res = await fetch(\n `${NPM_REGISTRY}/${encodeURIComponent(packageName)}`,\n {\n headers: { Accept: \"application/json\", \"User-Agent\": \"mioku-cli\" },\n },\n );\n if (!res.ok) return null;\n const data = (await res.json()) as any;\n const latestVersion = String(data?.[\"dist-tags\"]?.latest || \"\").trim();\n const keywords = latestVersion\n ? data?.versions?.[latestVersion]?.keywords\n : data?.keywords;\n return Array.isArray(keywords) ? keywords.map(String) : [];\n } catch {\n return null;\n }\n}\n\nexport function gracefullyExit(): void {\n console.log(\"Bye!\");\n process.exit(0);\n}\n\nexport function makeFileTree(\n fileTree: Record<string, string | Record<string, unknown>>,\n base: string,\n): void {\n for (const [name, content] of Object.entries(fileTree)) {\n if (typeof content === \"object\" && content !== null) {\n const subPath = path.join(base, name);\n if (!fs.existsSync(subPath)) fs.mkdirSync(subPath, { recursive: true });\n for (const [subName, subContent] of Object.entries(content)) {\n if (typeof subContent === \"object\") {\n makeFileTree(\n subContent as Record<string, string | Record<string, unknown>>,\n path.join(subPath, subName),\n );\n } else {\n fs.writeFileSync(path.join(subPath, subName), subContent as string);\n }\n }\n } else {\n const filePath = path.join(base, name);\n const dirname = path.dirname(filePath);\n if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });\n fs.writeFileSync(filePath, content as string);\n }\n }\n}\n\nexport function buildHelpInfo(version: string): string {\n return dedent(`\n mioku 命令行工具 v${version}\n\n 用法: mioku <命令> [选项]\n\n 命令:\n install plugin <名称> 安装插件,自动补全 mioku-plugin- 前缀\n install service <名称> 安装服务,自动补全 mioku-service- 前缀\n update [包名|self|all] 更新插件或服务\n update - 检查可用更新\n update all - 更新所有 mioku- 包\n update self - 更新 mioku 框架\n update xxx - 更新指定包\n\n 选项:\n -h, --help 显示帮助信息\n -v, --version 显示版本号\n --name <name> 指定项目/文件夹名称,默认 mioku-bot\n --protocol <protocol> 指定 NapCat 协议,默认 ws\n --host <host> 指定 NapCat 主机,默认 localhost\n --port <port> 指定 NapCat 端口,默认 3001\n --token <token> 指定 NapCat 连接 Token,默认空\n --prefix <prefix> 指定命令前缀,默认 #\n --owners <owners> 指定主人 QQ,英文逗号分隔,必填\n --admins <admins> 指定管理员 QQ,英文逗号分隔,可空\n --use-npm-mirror 使用 npm 镜像源加速依赖安装,默认否\n `);\n}\n\ntype OmitTypeWithRequired<T> = Omit<T, \"type\" | \"required\"> & {\n required?: boolean;\n};\n\nexport async function confirm(\n message: string,\n options?: OmitTypeWithRequired<{ initial?: boolean }>,\n): Promise<boolean> {\n return consola.prompt(message, {\n type: \"confirm\",\n cancel: \"reject\",\n ...options,\n });\n}\n\nexport async function input(\n message: string,\n options?: OmitTypeWithRequired<{ default?: string; placeholder?: string }>,\n): Promise<string> {\n const result = await consola.prompt(message, {\n type: \"text\",\n cancel: \"reject\",\n ...options,\n });\n if (options?.required && !result) return input(message, options);\n return result;\n}\n","import consola from \"consola\";\nimport {\n ensurePackageManager,\n appendToMiokuPlugins,\n execAdd,\n fetchNpmKeywords,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n confirm,\n} from \"./shared\";\n\nexport async function installCommand(\n cmdArgs: string[],\n helpInfo: string,\n): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [type, name] = cmdArgs;\n\n if (!type || !name) {\n consola.error(\n \"请指定类型和名称: mioku install plugin <名称> 或 mioku install service <名称>\",\n );\n console.log(helpInfo);\n return 1;\n }\n\n if (type !== \"plugin\" && type !== \"service\") {\n consola.error(`无效的类型 \"${type}\",请使用 plugin 或 service`);\n console.log(helpInfo);\n return 1;\n }\n\n const prefix = type === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n const normalized = `${prefix}${name}`;\n\n if (type === \"plugin\") {\n const proceed = await warnIfPrivatePlugin(normalized);\n if (!proceed) {\n consola.info(\"已取消安装\");\n return 1;\n }\n }\n\n try {\n execAdd([normalized], cwd);\n consola.success(`已安装 ${normalized}`);\n\n if (type === \"plugin\") {\n const shortName = normalized.slice(PLUGIN_PREFIX.length);\n if (appendToMiokuPlugins(cwd, normalized)) {\n consola.success(`已在 mioku.plugins 中启用 ${shortName}`);\n } else {\n consola.info(`${shortName} 已在 mioku.plugins 中,跳过`);\n }\n }\n return 0;\n } catch {\n consola.error(`安装失败: ${normalized}`);\n return 1;\n }\n}\n\nasync function warnIfPrivatePlugin(pkgName: string): Promise<boolean> {\n const keywords = await fetchNpmKeywords(pkgName);\n if (keywords === null) return true;\n if (keywords.includes(\"mioku\")) return true;\n\n consola.warn(`${pkgName} 看起来是私有插件\"`);\n consola.warn(\"该插件未上架插件市场,可能存在风险\");\n return confirm(\"仍要继续安装吗?\", { initial: false });\n}\n","import consola from \"consola\";\nimport {\n run,\n ensurePackageManager,\n getInstalledPackages,\n PLUGIN_PREFIX,\n SERVICE_PREFIX,\n} from \"./shared\";\n\nasync function updatePackages(packages: string[], cwd: string): Promise<void> {\n if (packages.length === 0) {\n consola.info(\"未找到 mioku- 相关依赖\");\n return;\n }\n console.log(`执行: bun update ${packages.join(\" \")} --latest`);\n run(\"bun\", [\"update\", ...packages, \"--latest\"], { cwd });\n}\n\nasync function updateByPrefix(\n prefix: string,\n cwd: string,\n name?: string,\n): Promise<void> {\n if (name) {\n const normalized = name.startsWith(prefix) ? name : `${prefix}${name}`;\n console.log(`执行: bun update ${normalized} --latest`);\n run(\"bun\", [\"update\", normalized, \"--latest\"], { cwd });\n return;\n }\n const packages = (await getInstalledPackages(cwd)).filter((p) =>\n p.startsWith(prefix),\n );\n if (packages.length === 0) {\n consola.info(`未找到 ${prefix}* 相关依赖`);\n return;\n }\n await updatePackages(packages, cwd);\n}\n\nexport async function updateCommand(cmdArgs: string[]): Promise<number> {\n ensurePackageManager();\n const cwd = process.cwd();\n const [target, name] = cmdArgs;\n\n if (!target || target === \"check\") {\n run(\"bun\", [\"update\", \"-i\"], { cwd });\n return 0;\n }\n\n if (target === \"all\") {\n await updatePackages(await getInstalledPackages(cwd), cwd);\n return 0;\n }\n\n if (target === \"self\") {\n console.log(\"执行: bun update mioku --latest\");\n run(\"bun\", [\"update\", \"mioku\", \"--latest\"], { cwd });\n return 0;\n }\n\n if (target === \"plugin\" || target === \"service\") {\n const prefix = target === \"plugin\" ? PLUGIN_PREFIX : SERVICE_PREFIX;\n await updateByPrefix(prefix, cwd, name);\n return 0;\n }\n\n console.log(`执行: bun update ${target} --latest`);\n run(\"bun\", [\"update\", target, \"--latest\"], { cwd });\n return 0;\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport dedent from \"dedent\";\nimport consola from \"consola\";\nimport {\n ADAPTER_PREFIX,\n PLUGIN_PREFIX,\n ensurePackageManager,\n getAddCommand,\n multiSelect,\n run,\n runAdapterCli,\n searchMiokuPackages,\n fetchOfficialRegistry,\n shortNameOfPackage,\n resolveRequiredServices,\n rmrf,\n withRoot,\n gracefullyExit,\n makeFileTree,\n input,\n confirm,\n} from \"./shared\";\n\n/** stdin 会话对应的主人标识,默认追加到 mioku.owners */\nexport const STDIN_OWNER = \"stdin\";\n\n/** 系统自带适配器:必装且不可取消,默认启用 */\nexport const SYSTEM_ADAPTERS = [\"mioku-adapter-stdin\"];\n\n/** 系统自带插件:必装且不可取消 */\nexport const SYSTEM_PLUGINS = [\"mioku-plugin-help\", \"mioku-plugin-chat\"];\n\n/** 系统服务:框架运行所必需,无条件安装 */\nexport const SYSTEM_SERVICES = [\n \"mioku-service-ai\",\n \"mioku-service-config\",\n \"mioku-service-screenshot\",\n \"mioku-service-help\",\n];\n\nasync function createNewProject(\n name: string,\n fileTree: Record<string, string | Record<string, unknown>>,\n): Promise<string> {\n const projectPath = withRoot(`./${name}`);\n\n if (fs.existsSync(projectPath)) {\n const overwrite = await confirm(`项目 ${name} 已存在,是否覆盖?`);\n if (!overwrite) gracefullyExit();\n\n if (projectPath === process.cwd()) {\n if (fs.readdirSync(projectPath).length !== 0) {\n const confirmOver = await confirm(\n \"项目路径与当前路径相同,将删除当前目录下所有内容再创建,是否继续?\",\n );\n if (!confirmOver) gracefullyExit();\n }\n }\n await rmrf(projectPath);\n }\n\n fs.mkdirSync(projectPath, { recursive: true });\n makeFileTree(fileTree, projectPath);\n console.log(`项目 ${name} 创建成功!`);\n\n console.log(\"正在安装基础依赖 (bun i) ...\");\n run(\"bun\", [\"i\"], { cwd: projectPath });\n return projectPath;\n}\n\nasync function selectPackages(\n message: string,\n prefix: string,\n initial: string[] = [],\n options: { exclude?: string[] } = {},\n): Promise<string[]> {\n console.log(`\\n正在从 npm 拉取 ${prefix}* 包...`);\n const [hits, registry] = await Promise.all([\n searchMiokuPackages(prefix),\n fetchOfficialRegistry(),\n ]);\n if (hits.length === 0) {\n consola.warn(`未在 npm 上找到任何 ${prefix}* 包`);\n return [];\n }\n const official = new Set<string>();\n for (const group of [registry?.plugins, registry?.services, registry?.adapters]) {\n for (const entry of Object.values(group ?? {})) {\n if (entry?.npm) official.add(entry.npm);\n }\n }\n const excludeSet = new Set(options.exclude ?? []);\n const items = hits\n .filter((hit) => !excludeSet.has(hit.name))\n .map((hit) => {\n const shortName = shortNameOfPackage(hit.name);\n const desc = hit.description || \"暂无介绍\";\n const badge = official.has(hit.name) ? \"官方\" : \"社区\";\n return { label: `${shortName} (${badge} · ${desc})`, value: hit.name };\n });\n return multiSelect(message, items, initial, { required: false });\n}\n\nexport async function scaffoldCommand(version: string): Promise<number> {\n const name = await input(\"请输入项目名称\", {\n default: \"mioku-bot\",\n placeholder: \"mioku-bot\",\n required: true,\n });\n const owners = await input(\"请输入主人 QQ (最高权限,英文逗号分隔,必填)\", {\n placeholder: \"请输入\",\n default: \"\",\n required: true,\n });\n\n ensurePackageManager();\n\n // stdin 会话默认拥有主人权限:自动追加到 owners\n const ownersList = [\n ...String(owners)\n .split(\",\")\n .map((o) => o.trim())\n .filter(Boolean),\n STDIN_OWNER,\n ];\n\n const adapterNames = await selectPackages(\n \"选择要安装的适配器(上下键选择,空格勾选,回车确认)\",\n ADAPTER_PREFIX,\n [],\n { exclude: SYSTEM_ADAPTERS },\n );\n const allAdapterNames = [...SYSTEM_ADAPTERS, ...adapterNames];\n if (adapterNames.length === 0) {\n consola.info(\"未选择其他适配器,仅启用标准输入\");\n }\n\n const pkgJsonObj = {\n name,\n private: true,\n type: \"module\" as const,\n dependencies: {\n mioku: \"latest\",\n ...Object.fromEntries(allAdapterNames.map((p) => [p, \"latest\"])),\n ...Object.fromEntries(SYSTEM_PLUGINS.map((p) => [p, \"latest\"])),\n },\n mioku: {\n prefix: \".\",\n owners: ownersList,\n admins: [] as string[],\n plugins: [\"demo\"],\n log_level: \"info\",\n online_push: false,\n error_push: false,\n adapters: {\n stdin: {},\n },\n },\n scripts: {\n start: \"bun run app.ts\",\n dev: \"bun run --watch app.ts\",\n },\n };\n const pkgJson = `${JSON.stringify(pkgJsonObj, null, 2)}\\n`;\n\n const pluginCode = dedent(`\n import { definePlugin } from 'mioku'\n\n export default definePlugin({\n name: 'demo',\n version: '${version}',\n async setup(ctx) {\n ctx.logger.info('Demo 插件已加载')\n\n ctx.handle('message', async (e) => {\n if (e.raw_message === 'hello') {\n e.reply('world', true)\n }\n })\n\n return () => {\n ctx.logger.info('Demo 插件已卸载')\n }\n },\n })\n `);\n\n const fileTree: Record<string, string | Record<string, unknown>> = {\n \"app.ts\":\n \"import { start } from 'mioku'\\n\\nstart({ cwd: import.meta.dirname }).then()\\n\",\n \"package.json\": pkgJson,\n plugins: { demo: { \"index.ts\": pluginCode } },\n config: {},\n data: {},\n };\n\n const projectPath = await createNewProject(name, fileTree);\n\n // 仅为用户额外选择的适配器运行配置向导(系统适配器 stdin 免配置)\n for (const adapterPkg of adapterNames) {\n const adapterName = shortNameOfPackage(adapterPkg);\n consola.info(`正在运行 ${adapterPkg} 配置向导...`);\n runAdapterCli(adapterName, projectPath);\n }\n consola.info(\n `已自动安装并启用系统适配器: ${SYSTEM_ADAPTERS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n // 系统插件必装且不可取消:从选择列表中剔除,自动启用\n const pluginNames = await selectPackages(\n \"选择要安装的插件(上下键选择,空格勾选,回车确认)\",\n PLUGIN_PREFIX,\n [],\n { exclude: SYSTEM_PLUGINS },\n );\n consola.info(\n `系统插件将自动安装: ${SYSTEM_PLUGINS.map(shortNameOfPackage).join(\", \")}`,\n );\n\n const enabledPlugins = [\n \"demo\",\n ...SYSTEM_PLUGINS.map(shortNameOfPackage),\n ...pluginNames.map(shortNameOfPackage),\n ];\n const pkgPath = path.join(projectPath, \"package.json\");\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n pkg.mioku = { ...pkg.mioku, plugins: enabledPlugins };\n fs.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n\n const serviceNames = new Set<string>(SYSTEM_SERVICES);\n for (const service of await resolveRequiredServices(pluginNames)) {\n serviceNames.add(service);\n }\n consola.info(\n `将自动安装服务: ${Array.from(serviceNames).map(shortNameOfPackage).join(\", \")}`,\n );\n\n const installWebui = await confirm(\"是否安装 WebUI 管理面板?(建议安装)\", {\n initial: true,\n });\n\n const addPackages = [...pluginNames, ...Array.from(serviceNames)];\n if (installWebui) addPackages.push(\"mioku-service-webui\");\n\n if (addPackages.length > 0) {\n const [cmd, args] = getAddCommand(addPackages);\n console.log(`正在安装插件与服务: ${cmd} ${args.join(\" \")}`);\n run(cmd, args, { cwd: projectPath });\n }\n\n console.log(\"\\n若需启动机器人,请运行:\");\n console.log(\" cd\", name);\n console.log(\" bun run start\");\n return 0;\n}\n","#!/usr/bin/env node\n\nimport mri from \"mri\";\nimport { version } from \"../../package.json\";\nimport { buildHelpInfo } from \"./shared\";\nimport { installCommand } from \"./install\";\nimport { updateCommand } from \"./update\";\nimport { scaffoldCommand } from \"./scaffold\";\n\ninterface CliOptions {\n help?: boolean;\n version?: boolean;\n}\n\nconst args = process.argv.slice(2);\n\n(async () => {\n const cli = mri<CliOptions>(args, { alias: { v: \"version\", h: \"help\" } });\n const helpInfo = buildHelpInfo(version);\n const [cmd, ...cmdArgs] = args;\n\n switch (cmd) {\n case \"install\":\n process.exitCode = await installCommand(cmdArgs, helpInfo);\n return;\n case \"update\":\n process.exitCode = await updateCommand(cmdArgs);\n return;\n default:\n if (cli.version) {\n console.log(`v${version}`);\n return;\n }\n if (cli.help) {\n console.log(helpInfo);\n return;\n }\n process.exitCode = await scaffoldCommand(version);\n return;\n }\n})();\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import * as os$1 from "node:os";
4
4
  import { spawn, spawnSync } from "node:child_process";
5
5
 
6
6
  //#region package.json
7
- var version = "1.0.6";
7
+ var version = "1.0.7";
8
8
 
9
9
  //#endregion
10
10
  //#region src/internal/exec.ts
@@ -180,4 +180,4 @@ function commandExists(command) {
180
180
 
181
181
  //#endregion
182
182
  export { buildSpawnPlan, clearCommandCache, commandExists, resolveCommand, runCommand, runCommandInherit, version };
183
- //# sourceMappingURL=exec-p6Vp158F.js.map
183
+ //# sourceMappingURL=exec-BxcCq8G9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec-p6Vp158F.js","names":["path","candidate: string","command: string","resolved: string | null","resolved: string","args: string[]","options: { cwd?: string; env?: NodeJS.ProcessEnv }","options: { cwd?: string }"],"sources":["../package.json","../src/internal/exec.ts"],"sourcesContent":["{\n \"name\": \"mioku\",\n \"type\": \"module\",\n \"version\": \"1.0.6\",\n \"packageManager\": \"bun@1.2.0\",\n \"description\": \"Mioku - A plugin-based QQ bot framework\",\n \"keywords\": [\n \"onebot\",\n \"framework\",\n \"bot\",\n \"mioku\"\n ],\n \"bin\": {\n \"mioku\": \"./dist/cli/index.js\"\n },\n \"engines\": {\n \"node\": \">= 22.18.0\"\n },\n \"homepage\": \"https://github.com/mioku-lab/mioku#readme\",\n \"files\": [\n \"dist\"\n ],\n \"bugs\": {\n \"url\": \"https://github.com/mioku-lab/mioku/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mioku-lab/mioku.git\",\n \"directory\": \"packages/mioku\"\n },\n \"scripts\": {\n \"dev\": \"tsdown -w\",\n \"build\": \"tsdown\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.cjs\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"author\": \"Jerryplusy <jerryplusy@outlook.com>\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"napcat-sdk\": \"^0.16.0\",\n \"consola\": \"^3.4.2\",\n \"dayjs\": \"^1.11.19\",\n \"dedent\": \"^1.7.1\",\n \"filesize\": \"^11.0.13\",\n \"inquirer\": \"^10.0.0\",\n \"jiti\": \"^2.6.1\",\n \"lowdb\": \"^7.0.1\",\n \"mri\": \"^1.2.0\",\n \"node-cron\": \"^4.2.1\",\n \"pretty-ms\": \"^9.3.0\",\n \"string2argv\": \"^1.0.2\",\n \"lodash\": \"^4.17.21\"\n },\n \"devDependencies\": {\n \"@types/lodash\": \"^4.17.0\",\n \"@types/node\": \"^22.0.0\",\n \"tsdown\": \"^0.11.0\",\n \"typescript\": \"^5.8.0\"\n }\n}\n","import { spawn, spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nconst isWindows = process.platform === \"win32\";\n\nconst resolveCache = new Map<string, string | null>();\n\nfunction windowsExtensions(): string[] {\n const raw = process.env.PATHEXT || \".COM;.EXE;.BAT;.CMD\";\n return raw\n .split(\";\")\n .map((ext) => ext.trim())\n .filter(Boolean);\n}\n\n// PATH is a snapshot taken at process start, so a package manager installed\n// mid-run won't be on it. We enumerate every plausible install prefix for\n// bun / npm / scoop / chocolatey so the CLI can find bun in one shot.\nfunction searchDirs(): string[] {\n const raw = process.env.PATH || process.env.Path || \"\";\n const dirs = raw\n .split(path.delimiter)\n .map((d) => d.trim())\n .filter(Boolean);\n const home = os.homedir();\n const appData = process.env.APPDATA || path.join(home, \"AppData\", \"Roaming\");\n const localAppData =\n process.env.LOCALAPPDATA || path.join(home, \"AppData\", \"Local\");\n const programFiles = process.env.ProgramFiles || \"C:\\\\Program Files\";\n const programFilesX86 =\n process.env[\"ProgramFiles(x86)\"] || \"C:\\\\Program Files (x86)\";\n\n const extra = isWindows\n ? [\n // 官方安装器\n path.join(home, \".bun\", \"bin\"),\n // npm 全局(带 .cmd shim)\n path.join(appData, \"npm\"),\n path.join(appData, \"npm\", \"node_modules\", \".bin\"),\n // 备用 bun 位置\n path.join(localAppData, \"bun\", \"bin\"),\n path.join(programFiles, \"bun\", \"bin\"),\n path.join(programFilesX86, \"bun\", \"bin\"),\n // scoop\n path.join(home, \"scoop\", \"shims\"),\n // chocolatey\n \"C:\\\\ProgramData\\\\chocolatey\\\\bin\",\n // node 自带(很多用户 npm i -g 装到 node 目录)\n path.join(programFiles, \"nodejs\"),\n path.join(programFilesX86, \"nodejs\"),\n ]\n : [\n path.join(home, \".bun\", \"bin\"),\n \"/usr/local/bin\",\n \"/opt/homebrew/bin\",\n path.join(home, \".npm-global\", \"bin\"),\n ];\n\n return [...dirs, ...extra.filter((dir) => dir && !dir.endsWith(path.sep))];\n}\n\nfunction isExecutableFile(candidate: string): boolean {\n try {\n return fs.statSync(candidate).isFile();\n } catch {\n return false;\n }\n}\n\nfunction searchCommandViaShell(command: string): string | null {\n if (command.includes(\"/\") || command.includes(path.sep)) return null;\n const shellCmd = isWindows ? \"where\" : \"which\";\n try {\n const result = spawnSync(shellCmd, [command], {\n encoding: \"utf-8\",\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 5000,\n });\n if (result.status === 0 && result.stdout) {\n const first = result.stdout\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .find(Boolean);\n if (first && isExecutableFile(first)) return first;\n }\n } catch {}\n return null;\n}\n\n/** 在 PATH 及常见安装目录中解析命令的完整路径,结果带缓存 */\nexport function resolveCommand(command: string): string | null {\n if (resolveCache.has(command)) return resolveCache.get(command) ?? null;\n\n let resolved: string | null = null;\n\n if (command.includes(\"/\") || command.includes(path.sep)) {\n resolved = isExecutableFile(command) ? path.resolve(command) : null;\n } else {\n const exts = isWindows ? windowsExtensions() : [\"\"];\n const hasKnownExt =\n isWindows &&\n exts.some((ext) => command.toLowerCase().endsWith(ext.toLowerCase()));\n\n outer: for (const dir of searchDirs()) {\n if (hasKnownExt) {\n const direct = path.join(dir, command);\n if (isExecutableFile(direct)) {\n resolved = direct;\n break;\n }\n continue;\n }\n for (const ext of exts) {\n const candidate = path.join(dir, command + ext);\n if (isExecutableFile(candidate)) {\n resolved = candidate;\n break outer;\n }\n }\n }\n\n if (!resolved) resolved = searchCommandViaShell(command);\n }\n\n resolveCache.set(command, resolved);\n return resolved;\n}\n\nexport function clearCommandCache(): void {\n resolveCache.clear();\n}\n\nfunction needsCmdShell(resolved: string): boolean {\n if (!isWindows) return false;\n const ext = path.extname(resolved).toLowerCase();\n return ext === \".cmd\" || ext === \".bat\";\n}\n\nexport interface SpawnPlan {\n file: string;\n args: string[];\n windowsVerbatimArguments?: boolean;\n shell?: boolean | string;\n}\n\n// Windows can't CreateProcess a .cmd/.bat shim directly (npm installs bun as\n// bun.cmd), so those get routed through cmd.exe via shell: true. Previously\n// we hand-rolled a cmd.exe invocation with windowsVerbatimArguments: true,\n// but that combination misbehaves with spawnSync + stdio:\"inherit\" on\n// Node.js >= 20 (manifests as the spawned process printing \"undefined\" or\n// a spurious EINVAL), so we let Node's shell wrapper do the quoting.\n/** 生成跨平台的 spawn 参数,Windows 下 .cmd/.bat 会改经 cmd.exe 执行 */\nexport function buildSpawnPlan(command: string, args: string[]): SpawnPlan {\n const resolved = resolveCommand(command);\n\n if (!resolved) {\n return { file: command, args };\n }\n\n if (!needsCmdShell(resolved)) {\n return { file: resolved, args };\n }\n\n return {\n file: resolved,\n args,\n shell: true,\n };\n}\n\nexport interface RunCommandResult {\n stdout: string;\n stderr: string;\n code: number;\n}\n\n/** 执行命令并收集 stdout/stderr 与退出码,失败不抛异常 */\nexport function runCommand(\n command: string,\n args: string[],\n options: { cwd?: string; env?: NodeJS.ProcessEnv } = {},\n): Promise<RunCommandResult> {\n const plan = buildSpawnPlan(command, args);\n\n return new Promise((resolve) => {\n const child = spawn(plan.file, plan.args, {\n cwd: options.cwd,\n env: options.env,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: plan.shell,\n });\n\n let stdout = \"\";\n let stderr = \"\";\n\n child.stdout?.on(\"data\", (chunk) => {\n stdout += String(chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr += String(chunk);\n });\n\n child.on(\"close\", (code) => {\n resolve({ stdout, stderr, code: code ?? 1 });\n });\n child.on(\"error\", (error) => {\n resolve({\n stdout,\n stderr: `${stderr}\\n${error.message}`.trim(),\n code: 1,\n });\n });\n });\n}\n\n/** 同步执行命令并继承当前终端的输入输出,非零退出码时抛错 */\nexport function runCommandInherit(\n command: string,\n args: string[],\n options: { cwd?: string } = {},\n): void {\n const plan = buildSpawnPlan(command, args);\n const result = spawnSync(plan.file, plan.args, {\n cwd: options.cwd,\n stdio: \"inherit\",\n shell: plan.shell,\n });\n\n if (result.error) throw result.error;\n if (result.status !== 0) {\n throw new Error(`${command} 退出码 ${result.status}`);\n }\n}\n\n/** 判断命令是否可用 */\nexport function commandExists(command: string): boolean {\n return resolveCommand(command) !== null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"exec-BxcCq8G9.js","names":["path","candidate: string","command: string","resolved: string | null","resolved: string","args: string[]","options: { cwd?: string; env?: NodeJS.ProcessEnv }","options: { cwd?: string }"],"sources":["../package.json","../src/internal/exec.ts"],"sourcesContent":["{\n \"name\": \"mioku\",\n \"type\": \"module\",\n \"version\": \"1.0.7\",\n \"packageManager\": \"bun@1.2.0\",\n \"description\": \"Mioku - A plugin-based QQ bot framework\",\n \"keywords\": [\n \"onebot\",\n \"framework\",\n \"bot\",\n \"mioku\"\n ],\n \"bin\": {\n \"mioku\": \"./dist/cli/index.js\"\n },\n \"engines\": {\n \"node\": \">= 22.18.0\"\n },\n \"homepage\": \"https://github.com/mioku-lab/mioku#readme\",\n \"files\": [\n \"dist\"\n ],\n \"bugs\": {\n \"url\": \"https://github.com/mioku-lab/mioku/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mioku-lab/mioku.git\",\n \"directory\": \"packages/mioku\"\n },\n \"scripts\": {\n \"dev\": \"tsdown -w\",\n \"build\": \"tsdown\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.cjs\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"author\": \"Jerryplusy <jerryplusy@outlook.com>\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"napcat-sdk\": \"^0.16.0\",\n \"consola\": \"^3.4.2\",\n \"dayjs\": \"^1.11.19\",\n \"dedent\": \"^1.7.1\",\n \"filesize\": \"^11.0.13\",\n \"inquirer\": \"^10.0.0\",\n \"jiti\": \"^2.6.1\",\n \"lowdb\": \"^7.0.1\",\n \"mri\": \"^1.2.0\",\n \"node-cron\": \"^4.2.1\",\n \"pretty-ms\": \"^9.3.0\",\n \"string2argv\": \"^1.0.2\",\n \"lodash\": \"^4.17.21\"\n },\n \"devDependencies\": {\n \"@types/lodash\": \"^4.17.0\",\n \"@types/node\": \"^22.0.0\",\n \"tsdown\": \"^0.11.0\",\n \"typescript\": \"^5.8.0\"\n }\n}\n","import { spawn, spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nconst isWindows = process.platform === \"win32\";\n\nconst resolveCache = new Map<string, string | null>();\n\nfunction windowsExtensions(): string[] {\n const raw = process.env.PATHEXT || \".COM;.EXE;.BAT;.CMD\";\n return raw\n .split(\";\")\n .map((ext) => ext.trim())\n .filter(Boolean);\n}\n\n// PATH is a snapshot taken at process start, so a package manager installed\n// mid-run won't be on it. We enumerate every plausible install prefix for\n// bun / npm / scoop / chocolatey so the CLI can find bun in one shot.\nfunction searchDirs(): string[] {\n const raw = process.env.PATH || process.env.Path || \"\";\n const dirs = raw\n .split(path.delimiter)\n .map((d) => d.trim())\n .filter(Boolean);\n const home = os.homedir();\n const appData = process.env.APPDATA || path.join(home, \"AppData\", \"Roaming\");\n const localAppData =\n process.env.LOCALAPPDATA || path.join(home, \"AppData\", \"Local\");\n const programFiles = process.env.ProgramFiles || \"C:\\\\Program Files\";\n const programFilesX86 =\n process.env[\"ProgramFiles(x86)\"] || \"C:\\\\Program Files (x86)\";\n\n const extra = isWindows\n ? [\n // 官方安装器\n path.join(home, \".bun\", \"bin\"),\n // npm 全局(带 .cmd shim)\n path.join(appData, \"npm\"),\n path.join(appData, \"npm\", \"node_modules\", \".bin\"),\n // 备用 bun 位置\n path.join(localAppData, \"bun\", \"bin\"),\n path.join(programFiles, \"bun\", \"bin\"),\n path.join(programFilesX86, \"bun\", \"bin\"),\n // scoop\n path.join(home, \"scoop\", \"shims\"),\n // chocolatey\n \"C:\\\\ProgramData\\\\chocolatey\\\\bin\",\n // node 自带(很多用户 npm i -g 装到 node 目录)\n path.join(programFiles, \"nodejs\"),\n path.join(programFilesX86, \"nodejs\"),\n ]\n : [\n path.join(home, \".bun\", \"bin\"),\n \"/usr/local/bin\",\n \"/opt/homebrew/bin\",\n path.join(home, \".npm-global\", \"bin\"),\n ];\n\n return [...dirs, ...extra.filter((dir) => dir && !dir.endsWith(path.sep))];\n}\n\nfunction isExecutableFile(candidate: string): boolean {\n try {\n return fs.statSync(candidate).isFile();\n } catch {\n return false;\n }\n}\n\nfunction searchCommandViaShell(command: string): string | null {\n if (command.includes(\"/\") || command.includes(path.sep)) return null;\n const shellCmd = isWindows ? \"where\" : \"which\";\n try {\n const result = spawnSync(shellCmd, [command], {\n encoding: \"utf-8\",\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 5000,\n });\n if (result.status === 0 && result.stdout) {\n const first = result.stdout\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .find(Boolean);\n if (first && isExecutableFile(first)) return first;\n }\n } catch {}\n return null;\n}\n\n/** 在 PATH 及常见安装目录中解析命令的完整路径,结果带缓存 */\nexport function resolveCommand(command: string): string | null {\n if (resolveCache.has(command)) return resolveCache.get(command) ?? null;\n\n let resolved: string | null = null;\n\n if (command.includes(\"/\") || command.includes(path.sep)) {\n resolved = isExecutableFile(command) ? path.resolve(command) : null;\n } else {\n const exts = isWindows ? windowsExtensions() : [\"\"];\n const hasKnownExt =\n isWindows &&\n exts.some((ext) => command.toLowerCase().endsWith(ext.toLowerCase()));\n\n outer: for (const dir of searchDirs()) {\n if (hasKnownExt) {\n const direct = path.join(dir, command);\n if (isExecutableFile(direct)) {\n resolved = direct;\n break;\n }\n continue;\n }\n for (const ext of exts) {\n const candidate = path.join(dir, command + ext);\n if (isExecutableFile(candidate)) {\n resolved = candidate;\n break outer;\n }\n }\n }\n\n if (!resolved) resolved = searchCommandViaShell(command);\n }\n\n resolveCache.set(command, resolved);\n return resolved;\n}\n\nexport function clearCommandCache(): void {\n resolveCache.clear();\n}\n\nfunction needsCmdShell(resolved: string): boolean {\n if (!isWindows) return false;\n const ext = path.extname(resolved).toLowerCase();\n return ext === \".cmd\" || ext === \".bat\";\n}\n\nexport interface SpawnPlan {\n file: string;\n args: string[];\n windowsVerbatimArguments?: boolean;\n shell?: boolean | string;\n}\n\n// Windows can't CreateProcess a .cmd/.bat shim directly (npm installs bun as\n// bun.cmd), so those get routed through cmd.exe via shell: true. Previously\n// we hand-rolled a cmd.exe invocation with windowsVerbatimArguments: true,\n// but that combination misbehaves with spawnSync + stdio:\"inherit\" on\n// Node.js >= 20 (manifests as the spawned process printing \"undefined\" or\n// a spurious EINVAL), so we let Node's shell wrapper do the quoting.\n/** 生成跨平台的 spawn 参数,Windows 下 .cmd/.bat 会改经 cmd.exe 执行 */\nexport function buildSpawnPlan(command: string, args: string[]): SpawnPlan {\n const resolved = resolveCommand(command);\n\n if (!resolved) {\n return { file: command, args };\n }\n\n if (!needsCmdShell(resolved)) {\n return { file: resolved, args };\n }\n\n return {\n file: resolved,\n args,\n shell: true,\n };\n}\n\nexport interface RunCommandResult {\n stdout: string;\n stderr: string;\n code: number;\n}\n\n/** 执行命令并收集 stdout/stderr 与退出码,失败不抛异常 */\nexport function runCommand(\n command: string,\n args: string[],\n options: { cwd?: string; env?: NodeJS.ProcessEnv } = {},\n): Promise<RunCommandResult> {\n const plan = buildSpawnPlan(command, args);\n\n return new Promise((resolve) => {\n const child = spawn(plan.file, plan.args, {\n cwd: options.cwd,\n env: options.env,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: plan.shell,\n });\n\n let stdout = \"\";\n let stderr = \"\";\n\n child.stdout?.on(\"data\", (chunk) => {\n stdout += String(chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr += String(chunk);\n });\n\n child.on(\"close\", (code) => {\n resolve({ stdout, stderr, code: code ?? 1 });\n });\n child.on(\"error\", (error) => {\n resolve({\n stdout,\n stderr: `${stderr}\\n${error.message}`.trim(),\n code: 1,\n });\n });\n });\n}\n\n/** 同步执行命令并继承当前终端的输入输出,非零退出码时抛错 */\nexport function runCommandInherit(\n command: string,\n args: string[],\n options: { cwd?: string } = {},\n): void {\n const plan = buildSpawnPlan(command, args);\n const result = spawnSync(plan.file, plan.args, {\n cwd: options.cwd,\n stdio: \"inherit\",\n shell: plan.shell,\n });\n\n if (result.error) throw result.error;\n if (result.status !== 0) {\n throw new Error(`${command} 退出码 ${result.status}`);\n }\n}\n\n/** 判断命令是否可用 */\nexport function commandExists(command: string): boolean {\n return resolveCommand(command) !== null;\n}\n"],"mappings":";;;;;;cAGa;;;;ACEb,MAAM,YAAY,QAAQ,aAAa;AAEvC,MAAM,eAAe,IAAI;AAEzB,SAAS,oBAA8B;CACrC,MAAM,MAAM,QAAQ,IAAI,WAAW;AACnC,QAAO,IACJ,MAAM,IAAI,CACV,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CACxB,OAAO,QAAQ;AACnB;AAKD,SAAS,aAAuB;CAC9B,MAAM,MAAM,QAAQ,IAAI,QAAQ,QAAQ,IAAI,QAAQ;CACpD,MAAM,OAAO,IACV,MAAMA,OAAK,UAAU,CACrB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CACpB,OAAO,QAAQ;CAClB,MAAM,OAAO,KAAG,SAAS;CACzB,MAAM,UAAU,QAAQ,IAAI,WAAW,OAAK,KAAK,MAAM,WAAW,UAAU;CAC5E,MAAM,eACJ,QAAQ,IAAI,gBAAgB,OAAK,KAAK,MAAM,WAAW,QAAQ;CACjE,MAAM,eAAe,QAAQ,IAAI,gBAAgB;CACjD,MAAM,kBACJ,QAAQ,IAAI,wBAAwB;CAEtC,MAAM,QAAQ,YACV;EAEE,OAAK,KAAK,MAAM,QAAQ,MAAM;EAE9B,OAAK,KAAK,SAAS,MAAM;EACzB,OAAK,KAAK,SAAS,OAAO,gBAAgB,OAAO;EAEjD,OAAK,KAAK,cAAc,OAAO,MAAM;EACrC,OAAK,KAAK,cAAc,OAAO,MAAM;EACrC,OAAK,KAAK,iBAAiB,OAAO,MAAM;EAExC,OAAK,KAAK,MAAM,SAAS,QAAQ;EAEjC;EAEA,OAAK,KAAK,cAAc,SAAS;EACjC,OAAK,KAAK,iBAAiB,SAAS;CACrC,IACD;EACE,OAAK,KAAK,MAAM,QAAQ,MAAM;EAC9B;EACA;EACA,OAAK,KAAK,MAAM,eAAe,MAAM;CACtC;AAEL,QAAO,CAAC,GAAG,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,QAAQ,IAAI,SAASA,OAAK,IAAI,CAAC,AAAC;AAC3E;AAED,SAAS,iBAAiBC,WAA4B;AACpD,KAAI;AACF,SAAO,KAAG,SAAS,UAAU,CAAC,QAAQ;CACvC,QAAO;AACN,SAAO;CACR;AACF;AAED,SAAS,sBAAsBC,SAAgC;AAC7D,KAAI,QAAQ,SAAS,IAAI,IAAI,QAAQ,SAASF,OAAK,IAAI,CAAE,QAAO;CAChE,MAAM,WAAW,YAAY,UAAU;AACvC,KAAI;EACF,MAAM,SAAS,UAAU,UAAU,CAAC,OAAQ,GAAE;GAC5C,UAAU;GACV,aAAa;GACb,OAAO;IAAC;IAAU;IAAQ;GAAO;GACjC,SAAS;EACV,EAAC;AACF,MAAI,OAAO,WAAW,KAAK,OAAO,QAAQ;GACxC,MAAM,QAAQ,OAAO,OAClB,MAAM,QAAQ,CACd,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CACpB,KAAK,QAAQ;AAChB,OAAI,SAAS,iBAAiB,MAAM,CAAE,QAAO;EAC9C;CACF,QAAO,CAAE;AACV,QAAO;AACR;;AAGD,SAAgB,eAAeE,SAAgC;AAC7D,KAAI,aAAa,IAAI,QAAQ,CAAE,QAAO,aAAa,IAAI,QAAQ,IAAI;CAEnE,IAAIC,WAA0B;AAE9B,KAAI,QAAQ,SAAS,IAAI,IAAI,QAAQ,SAASH,OAAK,IAAI,CACrD,YAAW,iBAAiB,QAAQ,GAAG,OAAK,QAAQ,QAAQ,GAAG;MAC1D;EACL,MAAM,OAAO,YAAY,mBAAmB,GAAG,CAAC,EAAG;EACnD,MAAM,cACJ,aACA,KAAK,KAAK,CAAC,QAAQ,QAAQ,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC;AAEvE,QAAO,MAAK,MAAM,OAAO,YAAY,EAAE;AACrC,OAAI,aAAa;IACf,MAAM,SAAS,OAAK,KAAK,KAAK,QAAQ;AACtC,QAAI,iBAAiB,OAAO,EAAE;AAC5B,gBAAW;AACX;IACD;AACD;GACD;AACD,QAAK,MAAM,OAAO,MAAM;IACtB,MAAM,YAAY,OAAK,KAAK,KAAK,UAAU,IAAI;AAC/C,QAAI,iBAAiB,UAAU,EAAE;AAC/B,gBAAW;AACX,WAAM;IACP;GACF;EACF;AAED,OAAK,SAAU,YAAW,sBAAsB,QAAQ;CACzD;AAED,cAAa,IAAI,SAAS,SAAS;AACnC,QAAO;AACR;AAED,SAAgB,oBAA0B;AACxC,cAAa,OAAO;AACrB;AAED,SAAS,cAAcI,UAA2B;AAChD,MAAK,UAAW,QAAO;CACvB,MAAM,MAAM,OAAK,QAAQ,SAAS,CAAC,aAAa;AAChD,QAAO,QAAQ,UAAU,QAAQ;AAClC;;AAgBD,SAAgB,eAAeF,SAAiBG,MAA2B;CACzE,MAAM,WAAW,eAAe,QAAQ;AAExC,MAAK,SACH,QAAO;EAAE,MAAM;EAAS;CAAM;AAGhC,MAAK,cAAc,SAAS,CAC1B,QAAO;EAAE,MAAM;EAAU;CAAM;AAGjC,QAAO;EACL,MAAM;EACN;EACA,OAAO;CACR;AACF;;AASD,SAAgB,WACdH,SACAG,MACAC,UAAqD,CAAE,GAC5B;CAC3B,MAAM,OAAO,eAAe,SAAS,KAAK;AAE1C,QAAO,IAAI,QAAQ,CAAC,YAAY;EAC9B,MAAM,QAAQ,MAAM,KAAK,MAAM,KAAK,MAAM;GACxC,KAAK,QAAQ;GACb,KAAK,QAAQ;GACb,OAAO;IAAC;IAAU;IAAQ;GAAO;GACjC,OAAO,KAAK;EACb,EAAC;EAEF,IAAI,SAAS;EACb,IAAI,SAAS;AAEb,QAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU;AAClC,aAAU,OAAO,MAAM;EACxB,EAAC;AACF,QAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU;AAClC,aAAU,OAAO,MAAM;EACxB,EAAC;AAEF,QAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,WAAQ;IAAE;IAAQ;IAAQ,MAAM,QAAQ;GAAG,EAAC;EAC7C,EAAC;AACF,QAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,WAAQ;IACN;IACA,QAAQ,CAAC,EAAE,OAAO,IAAI,MAAM,QAAQ,EAAE,MAAM;IAC5C,MAAM;GACP,EAAC;EACH,EAAC;CACH;AACF;;AAGD,SAAgB,kBACdJ,SACAG,MACAE,UAA4B,CAAE,GACxB;CACN,MAAM,OAAO,eAAe,SAAS,KAAK;CAC1C,MAAM,SAAS,UAAU,KAAK,MAAM,KAAK,MAAM;EAC7C,KAAK,QAAQ;EACb,OAAO;EACP,OAAO,KAAK;CACb,EAAC;AAEF,KAAI,OAAO,MAAO,OAAM,OAAO;AAC/B,KAAI,OAAO,WAAW,EACpB,OAAM,IAAI,OAAO,EAAE,QAAQ,OAAO,OAAO,OAAO;AAEnD;;AAGD,SAAgB,cAAcL,SAA0B;AACtD,QAAO,eAAe,QAAQ,KAAK;AACpC"}
@@ -27,7 +27,7 @@ const node_os = __toESM(require("node:os"));
27
27
  const node_child_process = __toESM(require("node:child_process"));
28
28
 
29
29
  //#region package.json
30
- var version = "1.0.6";
30
+ var version = "1.0.7";
31
31
 
32
32
  //#endregion
33
33
  //#region src/internal/exec.ts
@@ -250,4 +250,4 @@ Object.defineProperty(exports, 'version', {
250
250
  return version;
251
251
  }
252
252
  });
253
- //# sourceMappingURL=exec-O8rCedzr.cjs.map
253
+ //# sourceMappingURL=exec-CeafLFmG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec-O8rCedzr.cjs","names":["path","candidate: string","command: string","resolved: string | null","resolved: string","args: string[]","options: { cwd?: string; env?: NodeJS.ProcessEnv }","options: { cwd?: string }"],"sources":["../package.json","../src/internal/exec.ts"],"sourcesContent":["{\n \"name\": \"mioku\",\n \"type\": \"module\",\n \"version\": \"1.0.6\",\n \"packageManager\": \"bun@1.2.0\",\n \"description\": \"Mioku - A plugin-based QQ bot framework\",\n \"keywords\": [\n \"onebot\",\n \"framework\",\n \"bot\",\n \"mioku\"\n ],\n \"bin\": {\n \"mioku\": \"./dist/cli/index.js\"\n },\n \"engines\": {\n \"node\": \">= 22.18.0\"\n },\n \"homepage\": \"https://github.com/mioku-lab/mioku#readme\",\n \"files\": [\n \"dist\"\n ],\n \"bugs\": {\n \"url\": \"https://github.com/mioku-lab/mioku/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mioku-lab/mioku.git\",\n \"directory\": \"packages/mioku\"\n },\n \"scripts\": {\n \"dev\": \"tsdown -w\",\n \"build\": \"tsdown\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.cjs\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"author\": \"Jerryplusy <jerryplusy@outlook.com>\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"napcat-sdk\": \"^0.16.0\",\n \"consola\": \"^3.4.2\",\n \"dayjs\": \"^1.11.19\",\n \"dedent\": \"^1.7.1\",\n \"filesize\": \"^11.0.13\",\n \"inquirer\": \"^10.0.0\",\n \"jiti\": \"^2.6.1\",\n \"lowdb\": \"^7.0.1\",\n \"mri\": \"^1.2.0\",\n \"node-cron\": \"^4.2.1\",\n \"pretty-ms\": \"^9.3.0\",\n \"string2argv\": \"^1.0.2\",\n \"lodash\": \"^4.17.21\"\n },\n \"devDependencies\": {\n \"@types/lodash\": \"^4.17.0\",\n \"@types/node\": \"^22.0.0\",\n \"tsdown\": \"^0.11.0\",\n \"typescript\": \"^5.8.0\"\n }\n}\n","import { spawn, spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nconst isWindows = process.platform === \"win32\";\n\nconst resolveCache = new Map<string, string | null>();\n\nfunction windowsExtensions(): string[] {\n const raw = process.env.PATHEXT || \".COM;.EXE;.BAT;.CMD\";\n return raw\n .split(\";\")\n .map((ext) => ext.trim())\n .filter(Boolean);\n}\n\n// PATH is a snapshot taken at process start, so a package manager installed\n// mid-run won't be on it. We enumerate every plausible install prefix for\n// bun / npm / scoop / chocolatey so the CLI can find bun in one shot.\nfunction searchDirs(): string[] {\n const raw = process.env.PATH || process.env.Path || \"\";\n const dirs = raw\n .split(path.delimiter)\n .map((d) => d.trim())\n .filter(Boolean);\n const home = os.homedir();\n const appData = process.env.APPDATA || path.join(home, \"AppData\", \"Roaming\");\n const localAppData =\n process.env.LOCALAPPDATA || path.join(home, \"AppData\", \"Local\");\n const programFiles = process.env.ProgramFiles || \"C:\\\\Program Files\";\n const programFilesX86 =\n process.env[\"ProgramFiles(x86)\"] || \"C:\\\\Program Files (x86)\";\n\n const extra = isWindows\n ? [\n // 官方安装器\n path.join(home, \".bun\", \"bin\"),\n // npm 全局(带 .cmd shim)\n path.join(appData, \"npm\"),\n path.join(appData, \"npm\", \"node_modules\", \".bin\"),\n // 备用 bun 位置\n path.join(localAppData, \"bun\", \"bin\"),\n path.join(programFiles, \"bun\", \"bin\"),\n path.join(programFilesX86, \"bun\", \"bin\"),\n // scoop\n path.join(home, \"scoop\", \"shims\"),\n // chocolatey\n \"C:\\\\ProgramData\\\\chocolatey\\\\bin\",\n // node 自带(很多用户 npm i -g 装到 node 目录)\n path.join(programFiles, \"nodejs\"),\n path.join(programFilesX86, \"nodejs\"),\n ]\n : [\n path.join(home, \".bun\", \"bin\"),\n \"/usr/local/bin\",\n \"/opt/homebrew/bin\",\n path.join(home, \".npm-global\", \"bin\"),\n ];\n\n return [...dirs, ...extra.filter((dir) => dir && !dir.endsWith(path.sep))];\n}\n\nfunction isExecutableFile(candidate: string): boolean {\n try {\n return fs.statSync(candidate).isFile();\n } catch {\n return false;\n }\n}\n\nfunction searchCommandViaShell(command: string): string | null {\n if (command.includes(\"/\") || command.includes(path.sep)) return null;\n const shellCmd = isWindows ? \"where\" : \"which\";\n try {\n const result = spawnSync(shellCmd, [command], {\n encoding: \"utf-8\",\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 5000,\n });\n if (result.status === 0 && result.stdout) {\n const first = result.stdout\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .find(Boolean);\n if (first && isExecutableFile(first)) return first;\n }\n } catch {}\n return null;\n}\n\n/** 在 PATH 及常见安装目录中解析命令的完整路径,结果带缓存 */\nexport function resolveCommand(command: string): string | null {\n if (resolveCache.has(command)) return resolveCache.get(command) ?? null;\n\n let resolved: string | null = null;\n\n if (command.includes(\"/\") || command.includes(path.sep)) {\n resolved = isExecutableFile(command) ? path.resolve(command) : null;\n } else {\n const exts = isWindows ? windowsExtensions() : [\"\"];\n const hasKnownExt =\n isWindows &&\n exts.some((ext) => command.toLowerCase().endsWith(ext.toLowerCase()));\n\n outer: for (const dir of searchDirs()) {\n if (hasKnownExt) {\n const direct = path.join(dir, command);\n if (isExecutableFile(direct)) {\n resolved = direct;\n break;\n }\n continue;\n }\n for (const ext of exts) {\n const candidate = path.join(dir, command + ext);\n if (isExecutableFile(candidate)) {\n resolved = candidate;\n break outer;\n }\n }\n }\n\n if (!resolved) resolved = searchCommandViaShell(command);\n }\n\n resolveCache.set(command, resolved);\n return resolved;\n}\n\nexport function clearCommandCache(): void {\n resolveCache.clear();\n}\n\nfunction needsCmdShell(resolved: string): boolean {\n if (!isWindows) return false;\n const ext = path.extname(resolved).toLowerCase();\n return ext === \".cmd\" || ext === \".bat\";\n}\n\nexport interface SpawnPlan {\n file: string;\n args: string[];\n windowsVerbatimArguments?: boolean;\n shell?: boolean | string;\n}\n\n// Windows can't CreateProcess a .cmd/.bat shim directly (npm installs bun as\n// bun.cmd), so those get routed through cmd.exe via shell: true. Previously\n// we hand-rolled a cmd.exe invocation with windowsVerbatimArguments: true,\n// but that combination misbehaves with spawnSync + stdio:\"inherit\" on\n// Node.js >= 20 (manifests as the spawned process printing \"undefined\" or\n// a spurious EINVAL), so we let Node's shell wrapper do the quoting.\n/** 生成跨平台的 spawn 参数,Windows 下 .cmd/.bat 会改经 cmd.exe 执行 */\nexport function buildSpawnPlan(command: string, args: string[]): SpawnPlan {\n const resolved = resolveCommand(command);\n\n if (!resolved) {\n return { file: command, args };\n }\n\n if (!needsCmdShell(resolved)) {\n return { file: resolved, args };\n }\n\n return {\n file: resolved,\n args,\n shell: true,\n };\n}\n\nexport interface RunCommandResult {\n stdout: string;\n stderr: string;\n code: number;\n}\n\n/** 执行命令并收集 stdout/stderr 与退出码,失败不抛异常 */\nexport function runCommand(\n command: string,\n args: string[],\n options: { cwd?: string; env?: NodeJS.ProcessEnv } = {},\n): Promise<RunCommandResult> {\n const plan = buildSpawnPlan(command, args);\n\n return new Promise((resolve) => {\n const child = spawn(plan.file, plan.args, {\n cwd: options.cwd,\n env: options.env,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: plan.shell,\n });\n\n let stdout = \"\";\n let stderr = \"\";\n\n child.stdout?.on(\"data\", (chunk) => {\n stdout += String(chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr += String(chunk);\n });\n\n child.on(\"close\", (code) => {\n resolve({ stdout, stderr, code: code ?? 1 });\n });\n child.on(\"error\", (error) => {\n resolve({\n stdout,\n stderr: `${stderr}\\n${error.message}`.trim(),\n code: 1,\n });\n });\n });\n}\n\n/** 同步执行命令并继承当前终端的输入输出,非零退出码时抛错 */\nexport function runCommandInherit(\n command: string,\n args: string[],\n options: { cwd?: string } = {},\n): void {\n const plan = buildSpawnPlan(command, args);\n const result = spawnSync(plan.file, plan.args, {\n cwd: options.cwd,\n stdio: \"inherit\",\n shell: plan.shell,\n });\n\n if (result.error) throw result.error;\n if (result.status !== 0) {\n throw new Error(`${command} 退出码 ${result.status}`);\n }\n}\n\n/** 判断命令是否可用 */\nexport function commandExists(command: string): boolean {\n return resolveCommand(command) !== null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"exec-CeafLFmG.cjs","names":["path","candidate: string","command: string","resolved: string | null","resolved: string","args: string[]","options: { cwd?: string; env?: NodeJS.ProcessEnv }","options: { cwd?: string }"],"sources":["../package.json","../src/internal/exec.ts"],"sourcesContent":["{\n \"name\": \"mioku\",\n \"type\": \"module\",\n \"version\": \"1.0.7\",\n \"packageManager\": \"bun@1.2.0\",\n \"description\": \"Mioku - A plugin-based QQ bot framework\",\n \"keywords\": [\n \"onebot\",\n \"framework\",\n \"bot\",\n \"mioku\"\n ],\n \"bin\": {\n \"mioku\": \"./dist/cli/index.js\"\n },\n \"engines\": {\n \"node\": \">= 22.18.0\"\n },\n \"homepage\": \"https://github.com/mioku-lab/mioku#readme\",\n \"files\": [\n \"dist\"\n ],\n \"bugs\": {\n \"url\": \"https://github.com/mioku-lab/mioku/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mioku-lab/mioku.git\",\n \"directory\": \"packages/mioku\"\n },\n \"scripts\": {\n \"dev\": \"tsdown -w\",\n \"build\": \"tsdown\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.cjs\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"author\": \"Jerryplusy <jerryplusy@outlook.com>\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"napcat-sdk\": \"^0.16.0\",\n \"consola\": \"^3.4.2\",\n \"dayjs\": \"^1.11.19\",\n \"dedent\": \"^1.7.1\",\n \"filesize\": \"^11.0.13\",\n \"inquirer\": \"^10.0.0\",\n \"jiti\": \"^2.6.1\",\n \"lowdb\": \"^7.0.1\",\n \"mri\": \"^1.2.0\",\n \"node-cron\": \"^4.2.1\",\n \"pretty-ms\": \"^9.3.0\",\n \"string2argv\": \"^1.0.2\",\n \"lodash\": \"^4.17.21\"\n },\n \"devDependencies\": {\n \"@types/lodash\": \"^4.17.0\",\n \"@types/node\": \"^22.0.0\",\n \"tsdown\": \"^0.11.0\",\n \"typescript\": \"^5.8.0\"\n }\n}\n","import { spawn, spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nconst isWindows = process.platform === \"win32\";\n\nconst resolveCache = new Map<string, string | null>();\n\nfunction windowsExtensions(): string[] {\n const raw = process.env.PATHEXT || \".COM;.EXE;.BAT;.CMD\";\n return raw\n .split(\";\")\n .map((ext) => ext.trim())\n .filter(Boolean);\n}\n\n// PATH is a snapshot taken at process start, so a package manager installed\n// mid-run won't be on it. We enumerate every plausible install prefix for\n// bun / npm / scoop / chocolatey so the CLI can find bun in one shot.\nfunction searchDirs(): string[] {\n const raw = process.env.PATH || process.env.Path || \"\";\n const dirs = raw\n .split(path.delimiter)\n .map((d) => d.trim())\n .filter(Boolean);\n const home = os.homedir();\n const appData = process.env.APPDATA || path.join(home, \"AppData\", \"Roaming\");\n const localAppData =\n process.env.LOCALAPPDATA || path.join(home, \"AppData\", \"Local\");\n const programFiles = process.env.ProgramFiles || \"C:\\\\Program Files\";\n const programFilesX86 =\n process.env[\"ProgramFiles(x86)\"] || \"C:\\\\Program Files (x86)\";\n\n const extra = isWindows\n ? [\n // 官方安装器\n path.join(home, \".bun\", \"bin\"),\n // npm 全局(带 .cmd shim)\n path.join(appData, \"npm\"),\n path.join(appData, \"npm\", \"node_modules\", \".bin\"),\n // 备用 bun 位置\n path.join(localAppData, \"bun\", \"bin\"),\n path.join(programFiles, \"bun\", \"bin\"),\n path.join(programFilesX86, \"bun\", \"bin\"),\n // scoop\n path.join(home, \"scoop\", \"shims\"),\n // chocolatey\n \"C:\\\\ProgramData\\\\chocolatey\\\\bin\",\n // node 自带(很多用户 npm i -g 装到 node 目录)\n path.join(programFiles, \"nodejs\"),\n path.join(programFilesX86, \"nodejs\"),\n ]\n : [\n path.join(home, \".bun\", \"bin\"),\n \"/usr/local/bin\",\n \"/opt/homebrew/bin\",\n path.join(home, \".npm-global\", \"bin\"),\n ];\n\n return [...dirs, ...extra.filter((dir) => dir && !dir.endsWith(path.sep))];\n}\n\nfunction isExecutableFile(candidate: string): boolean {\n try {\n return fs.statSync(candidate).isFile();\n } catch {\n return false;\n }\n}\n\nfunction searchCommandViaShell(command: string): string | null {\n if (command.includes(\"/\") || command.includes(path.sep)) return null;\n const shellCmd = isWindows ? \"where\" : \"which\";\n try {\n const result = spawnSync(shellCmd, [command], {\n encoding: \"utf-8\",\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 5000,\n });\n if (result.status === 0 && result.stdout) {\n const first = result.stdout\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .find(Boolean);\n if (first && isExecutableFile(first)) return first;\n }\n } catch {}\n return null;\n}\n\n/** 在 PATH 及常见安装目录中解析命令的完整路径,结果带缓存 */\nexport function resolveCommand(command: string): string | null {\n if (resolveCache.has(command)) return resolveCache.get(command) ?? null;\n\n let resolved: string | null = null;\n\n if (command.includes(\"/\") || command.includes(path.sep)) {\n resolved = isExecutableFile(command) ? path.resolve(command) : null;\n } else {\n const exts = isWindows ? windowsExtensions() : [\"\"];\n const hasKnownExt =\n isWindows &&\n exts.some((ext) => command.toLowerCase().endsWith(ext.toLowerCase()));\n\n outer: for (const dir of searchDirs()) {\n if (hasKnownExt) {\n const direct = path.join(dir, command);\n if (isExecutableFile(direct)) {\n resolved = direct;\n break;\n }\n continue;\n }\n for (const ext of exts) {\n const candidate = path.join(dir, command + ext);\n if (isExecutableFile(candidate)) {\n resolved = candidate;\n break outer;\n }\n }\n }\n\n if (!resolved) resolved = searchCommandViaShell(command);\n }\n\n resolveCache.set(command, resolved);\n return resolved;\n}\n\nexport function clearCommandCache(): void {\n resolveCache.clear();\n}\n\nfunction needsCmdShell(resolved: string): boolean {\n if (!isWindows) return false;\n const ext = path.extname(resolved).toLowerCase();\n return ext === \".cmd\" || ext === \".bat\";\n}\n\nexport interface SpawnPlan {\n file: string;\n args: string[];\n windowsVerbatimArguments?: boolean;\n shell?: boolean | string;\n}\n\n// Windows can't CreateProcess a .cmd/.bat shim directly (npm installs bun as\n// bun.cmd), so those get routed through cmd.exe via shell: true. Previously\n// we hand-rolled a cmd.exe invocation with windowsVerbatimArguments: true,\n// but that combination misbehaves with spawnSync + stdio:\"inherit\" on\n// Node.js >= 20 (manifests as the spawned process printing \"undefined\" or\n// a spurious EINVAL), so we let Node's shell wrapper do the quoting.\n/** 生成跨平台的 spawn 参数,Windows 下 .cmd/.bat 会改经 cmd.exe 执行 */\nexport function buildSpawnPlan(command: string, args: string[]): SpawnPlan {\n const resolved = resolveCommand(command);\n\n if (!resolved) {\n return { file: command, args };\n }\n\n if (!needsCmdShell(resolved)) {\n return { file: resolved, args };\n }\n\n return {\n file: resolved,\n args,\n shell: true,\n };\n}\n\nexport interface RunCommandResult {\n stdout: string;\n stderr: string;\n code: number;\n}\n\n/** 执行命令并收集 stdout/stderr 与退出码,失败不抛异常 */\nexport function runCommand(\n command: string,\n args: string[],\n options: { cwd?: string; env?: NodeJS.ProcessEnv } = {},\n): Promise<RunCommandResult> {\n const plan = buildSpawnPlan(command, args);\n\n return new Promise((resolve) => {\n const child = spawn(plan.file, plan.args, {\n cwd: options.cwd,\n env: options.env,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: plan.shell,\n });\n\n let stdout = \"\";\n let stderr = \"\";\n\n child.stdout?.on(\"data\", (chunk) => {\n stdout += String(chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr += String(chunk);\n });\n\n child.on(\"close\", (code) => {\n resolve({ stdout, stderr, code: code ?? 1 });\n });\n child.on(\"error\", (error) => {\n resolve({\n stdout,\n stderr: `${stderr}\\n${error.message}`.trim(),\n code: 1,\n });\n });\n });\n}\n\n/** 同步执行命令并继承当前终端的输入输出,非零退出码时抛错 */\nexport function runCommandInherit(\n command: string,\n args: string[],\n options: { cwd?: string } = {},\n): void {\n const plan = buildSpawnPlan(command, args);\n const result = spawnSync(plan.file, plan.args, {\n cwd: options.cwd,\n stdio: \"inherit\",\n shell: plan.shell,\n });\n\n if (result.error) throw result.error;\n if (result.status !== 0) {\n throw new Error(`${command} 退出码 ${result.status}`);\n }\n}\n\n/** 判断命令是否可用 */\nexport function commandExists(command: string): boolean {\n return resolveCommand(command) !== null;\n}\n"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_exec = require('./exec-O8rCedzr.cjs');
1
+ const require_exec = require('./exec-CeafLFmG.cjs');
2
2
  const node_fs = require_exec.__toESM(require("node:fs"));
3
3
  const node_path = require_exec.__toESM(require("node:path"));
4
4
  const node_url = require_exec.__toESM(require("node:url"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/logger/types.ts","../src/logger/index.ts","../src/adapter/capability.ts","../src/adapter/registry.ts","../src/adapter/message.ts","../src/capabilities/member.ts","../src/capabilities/group.ts","../src/capabilities/friend.ts","../src/adapter/event.ts","../src/capabilities/message.ts","../src/capabilities/conversation.ts","../src/capabilities/profile.ts","../src/capabilities/system.ts","../src/adapter/bot.ts","../src/driver/types.ts","../src/driver/default.ts","../src/adapter/types.ts","../src/services/registry.ts","../src/types.ts","../src/services/manager.ts","../src/services/config.ts","../src/services/define.ts","../src/services/builtin.ts","../src/actions.ts","../src/utils.ts","../src/config.ts","../src/runtime/bus.ts","../src/runtime/bots.ts","../src/runtime/mioku-context.ts","../src/plugin/plugin.ts","../src/runtime/context.ts","../src/runtime/lifecycle.ts","../src/runtime/runtime.ts","../src/runtime/types.ts","../src/loader/package.ts","../src/loader/adapter.ts","../src/loader/plugin.ts","../src/start.ts","../src/builtin/core/adapters.ts","../src/builtin/core/status.ts","../src/builtin/core/index.ts","../src/builtin/index.ts","../src/compat/connected-bots.ts","../src/runtime/plugin-artifacts.ts","../src/runtime/plugin-metadata.ts","../src/internal/data-paths.ts","../src/runtime/plugin-state.ts","../src/internal/exec.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/logger/types.ts","../src/logger/index.ts","../src/adapter/capability.ts","../src/adapter/registry.ts","../src/adapter/message.ts","../src/capabilities/member.ts","../src/capabilities/group.ts","../src/capabilities/friend.ts","../src/adapter/event.ts","../src/capabilities/message.ts","../src/capabilities/conversation.ts","../src/capabilities/profile.ts","../src/capabilities/system.ts","../src/adapter/bot.ts","../src/driver/types.ts","../src/driver/default.ts","../src/adapter/types.ts","../src/services/registry.ts","../src/types.ts","../src/services/manager.ts","../src/services/config.ts","../src/services/define.ts","../src/services/builtin.ts","../src/actions.ts","../src/utils.ts","../src/config.ts","../src/runtime/bus.ts","../src/runtime/bots.ts","../src/runtime/mioku-context.ts","../src/plugin/plugin.ts","../src/runtime/context.ts","../src/runtime/lifecycle.ts","../src/runtime/runtime.ts","../src/runtime/types.ts","../src/loader/package.ts","../src/loader/adapter.ts","../src/loader/plugin.ts","../src/start.ts","../src/builtin/core/adapters.ts","../src/builtin/core/status.ts","../src/builtin/core/index.ts","../src/builtin/index.ts","../src/compat/connected-bots.ts","../src/runtime/plugin-artifacts.ts","../src/runtime/plugin-metadata.ts","../src/internal/data-paths.ts","../src/runtime/plugin-state.ts","../src/internal/exec.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { buildSpawnPlan, commandExists, resolveCommand, runCommand, runCommandInherit, version } from "./exec-p6Vp158F.js";
1
+ import { buildSpawnPlan, commandExists, resolveCommand, runCommand, runCommandInherit, version } from "./exec-BxcCq8G9.js";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs$5 from "node:fs";
4
4
  import * as fs$4 from "node:fs";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mioku",
3
3
  "type": "module",
4
- "version": "1.0.6",
4
+ "version": "1.0.7",
5
5
  "packageManager": "bun@1.2.0",
6
6
  "description": "Mioku - A plugin-based QQ bot framework",
7
7
  "keywords": [