@my-life-buddies/cli-windowscompat 0.0.0-stage → 0.29.0-dev.0
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.
- package/README.md +19 -2
- package/dist/bin/buddy.js +542 -0
- package/dist/bin/buddy.js.map +7 -0
- package/dist/bin/command-runner.js +529 -0
- package/dist/bin/command-runner.js.map +7 -0
- package/dist/bin/core.js +9939 -0
- package/dist/bin/core.js.map +7 -0
- package/dist/bin/platform.js +543 -0
- package/dist/bin/platform.js.map +7 -0
- package/dist/bin/preview.js +2924 -0
- package/dist/bin/preview.js.map +7 -0
- package/dist/bin/resources/widget-document.js +41 -0
- package/package.json +54 -4
- package/resources/README.md +10 -0
- package/resources/agent-template/buddy-dev-control.mjs +49 -0
- package/resources/agent-template/package-lock.json +23 -0
- package/resources/agent-template/package.json +14 -0
- package/resources/brand/README.md +11 -0
- package/resources/brand/login-result.css +25 -0
- package/resources/brand/logo.png +0 -0
- package/resources/brand/tokens.css +100 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../cli-prod-release-20261022/apps/cli/src/bin/buddy.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/platform-support.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/self-update.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/update-lock.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/npm-update-install.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/install-location.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/auto-update.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/setup.ts", "../../../../../../cli-prod-release-20261022/apps/cli/src/termination.ts"],
|
|
4
|
+
"sourcesContent": ["#!/usr/bin/env node\nimport { CLI_COMMAND_NAME, CLI_PACKAGE_NAME } from \"@buddy/cli-core/platform\";\n\nimport { stderr, stdout } from \"node:process\";\nimport { createRequire } from \"node:module\";\nimport { dirname } from \"node:path\";\nimport { assertSupportedDeveloperPlatform } from \"../platform-support.js\";\nimport { runSelfUpdateCommand } from \"../self-update.js\";\nimport { runAutoUpdate } from \"../auto-update.js\";\nimport { runSetupCommand } from \"../setup.js\";\nimport { bindTerminationSignals } from \"../termination.js\";\nimport { assertBuildManifest, LANE_BUILD } from \"@buddy/cli-core/platform\";\n\nconst terminal = {\n write(message: string) { stdout.write(`${message}\\n`); },\n writeError(message: string) { stderr.write(`${message}\\n`); },\n};\nconst lifecycle = new AbortController();\nconst unbindTermination = bindTerminationSignals(lifecycle);\nconst onOutputError = (error: NodeJS.ErrnoException) => {\n if (error.code === \"EPIPE\" || error.code === \"EIO\") lifecycle.abort(new Error(\"SIGHUP\"));\n else throw error;\n};\nstdout.on(\"error\", onOutputError);\nstderr.on(\"error\", onOutputError);\ntry {\n assertSupportedDeveloperPlatform();\n const args = process.argv.slice(2);\n const require = createRequire(import.meta.url);\n const manifestPath = require.resolve(`${CLI_PACKAGE_NAME}/package.json`);\n const manifest = require(manifestPath);\n assertBuildManifest(manifest);\n if (LANE_BUILD && !args.includes(\"--json\")) {\n terminal.writeError(`[${LANE_BUILD.distribution === \"npm\" ? \"\u6CF3\u9053 npm \u6D4B\u8BD5\" : \"\u672C\u5730\u6CF3\u9053\u6D4B\u8BD5\"} ${LANE_BUILD.id}] ${LANE_BUILD.origin} \u00B7 ${LANE_BUILD.validationScope} \u00B7 ${LANE_BUILD.distribution === \"npm\" ? \"\u624B\u52A8\u66F4\u65B0\u72EC\u7ACB npm \u5305\" : \"\u7981\u6B62\u516C\u5171 npm \u53D1\u5E03/\u66F4\u65B0\"}`);\n }\n const options = { version: manifest.version, packageRoot: dirname(manifestPath), signal: lifecycle.signal };\n const maintenance = await runSetupCommand(args, terminal, options)\n ?? await runSelfUpdateCommand(args, terminal, options)\n ?? await runAutoUpdate(args, terminal, options);\n const result = maintenance ?? await (await import(\"../command-runner.js\")).runCommand(args, lifecycle.signal);\n process.exitCode = result.exitCode;\n} catch (cause) {\n terminal.writeError(`${CLI_COMMAND_NAME}: ${cause instanceof Error ? cause.message : String(cause)}`);\n process.exitCode = 1;\n} finally {\n unbindTermination();\n}\n", "export { assertSupportedDeveloperPlatform, UnsupportedDeveloperPlatformError } from \"@buddy/cli-core/platform\";\n", "import { CLI_COMMAND_NAME, CLI_PACKAGE_NAME } from \"@buddy/cli-core/platform\";\nimport { runNpm as executeNpm, LANE_BUILD, CLI_UPDATE_GUIDANCE } from \"@buddy/cli-core/platform\";\nimport { readFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { CliIO, CliRunResult } from \"@buddy/cli-core\";\nimport { npmPackageManifest } from \"@buddy/cli-core/platform\";\nimport { defaultUpdateCache, globalUpdateLock, withUpdateLock } from \"./update-lock.js\";\nimport { installCliWithNpm } from \"./npm-update-install.js\";\nimport { globalInstallation } from \"./install-location.js\";\n\nconst PACKAGE = CLI_PACKAGE_NAME;\nconst REGISTRY = \"https://registry.npmjs.org/\";\nconst MANUAL_UPDATE = process.platform === \"win32\" ? `npx.cmd --yes --registry=${REGISTRY} --package=${PACKAGE}@dev ${CLI_COMMAND_NAME} setup` : `npm install --global --prefix \"$HOME/.local/share/buddy-cli/sit\" ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;\nconst HELP = `\u7528\u6CD5:\n ${CLI_COMMAND_NAME} --version [--json]\n ${CLI_COMMAND_NAME} update --check [--json]\n ${CLI_COMMAND_NAME} update [--json]\n\n--version \u67E5\u770B\u5F53\u524D\u8FD0\u884C\u7684 CLI \u7248\u672C\uFF08\u65E0\u9700\u8054\u7F51\uFF09\n--check \u68C0\u67E5\u516C\u5171 npm \u7684 dev \u7248\u672C\uFF0C\u4E0D\u5B89\u88C5\n--json \u8F93\u51FA JSON\uFF0C\u4F9B Coding Agent \u6216\u811A\u672C\u8BFB\u53D6\n\n\u65E0\u9700\u767B\u5F55\u642D\u642D\u8D26\u53F7\uFF0C\u4E5F\u65E0\u9700\u8FDB\u5165\u642D\u5B50\u5DE5\u7A0B\u3002\n\u6B63\u5E38\u547D\u4EE4\uFF08\u542B guide\uFF09\u4F1A\u5148\u8054\u7F51\u81EA\u68C0\uFF0C\u81EA\u52A8\u66F4\u65B0\u540E\u7531\u65B0\u7248\u7EE7\u7EED\u6267\u884C\uFF1B\u7B49\u5F85\u5B8C\u6210\u5373\u53EF\u3002\n\u5B89\u88C5\u4E3B\u52A8\u5237\u65B0 npm \u7248\u672C\u7F13\u5B58\uFF0C\u627E\u4E0D\u5230\u7248\u672C\uFF08ETARGET\uFF09\u65F6\u6700\u591A\u91CD\u8BD5\u4E00\u6B21\uFF1B\u5931\u8D25\u8BF4\u660E\u5177\u4F53\u539F\u56E0\u3002\n--help\u3001\u5404\u547D\u4EE4 --help \u4E0E --version \u79BB\u7EBF\u53EF\u7528\uFF1B\u67E5\u8BE2\u6216\u66F4\u65B0\u5931\u8D25\u65F6\u505C\u6B62\u4E1A\u52A1\u64CD\u4F5C\u3002\nupdate \u66F4\u65B0\u5F53\u524D CLI \u6240\u5728\u7684 npm \u5B89\u88C5\u76EE\u5F55\uFF08\u542B --global --prefix \u81EA\u5B9A\u4E49\u76EE\u5F55\uFF09\uFF0C\u4E0D\u4FEE\u6539\u5176\u4ED6\u5B89\u88C5\u6216\u5DE5\u7A0B Runtime \u4F9D\u8D56\u3002\n\u540C\u4E00\u5305 latest/dev \u9700\u5206\u76EE\u5F55\u5B89\u88C5\u624D\u80FD\u5171\u5B58\uFF1BSIT \u547D\u4EE4\u4E3A ${CLI_COMMAND_NAME}\uFF0C\u6B63\u5F0F\u547D\u4EE4\u4E3A buddy-cli\u3002\n\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u6216\u5F53\u524D\u7248\u672C\u66F4\u9AD8\u65F6\u4E0D\u5B89\u88C5\u3001\u4E0D\u964D\u7EA7\u3002\n\u6E90\u7801\u3001npm link\u3001\u5C40\u90E8\u5B89\u88C5\u6216 npx \u7684\u6B63\u5E38\u547D\u4EE4\u4F7F\u7528\u7F13\u5B58\u7684\u65B0\u7248\u6267\u884C\uFF0C\u4E0D\u8986\u76D6\u6E90\u7801\u6216\u5DE5\u7A0B\u4F9D\u8D56\u3002\n\u4E0A\u8FF0\u5B89\u88C5\u65B9\u5F0F\u4E0D\u80FD\u7528 update \u5355\u72EC\u4FEE\u6539\u539F\u5B89\u88C5\uFF0C\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u66F4\u65B0\u3002\n\u65E7\u7248 CLI \u5C1A\u65E0 update \u547D\u4EE4\u65F6\uFF0C\u8FD0\u884C\uFF1A\\n ${MANUAL_UPDATE}`;\n\nexport interface NpmOptions { cwd: string; signal?: AbortSignal; timeout: number }\nexport interface UpdateOptions {\n version: string;\n packageRoot: string;\n signal?: AbortSignal;\n cacheDirectory?: string;\n fetch?: typeof globalThis.fetch;\n runNpm?: (args: string[], options: NpmOptions) => Promise<{ stdout: string; stderr: string }>;\n}\n\n// SemVer precedence ignores build metadata; numeric identifiers compare numerically.\nfunction parseVersion(version: unknown): string[] {\n const numeric = \"(?:0|[1-9][0-9]*)\";\n const identifier = `(?:${numeric}|[0-9]*[A-Za-z-][0-9A-Za-z-]*)`;\n const pattern = new RegExp(`^(${numeric})\\\\.(${numeric})\\\\.(${numeric})(?:-(${identifier}(?:\\\\.${identifier})*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$`, \"u\");\n const match = typeof version === \"string\" && version.length <= 256 ? pattern.exec(version) : null;\n if (!match || match[0] !== version) throw new Error(\"\u7248\u672C\u4FE1\u606F\u4E0D\u662F\u6709\u6548\u7684 SemVer \u7248\u672C\u53F7\u3002\");\n return [match[1]!, match[2]!, match[3]!, ...(match[4]?.split(\".\") ?? [])];\n}\n\nexport function compareVersions(left: string, right: string): number {\n const a = parseVersion(left);\n const b = parseVersion(right);\n for (let i = 0; i < 3; i++) {\n if (BigInt(a[i]!) !== BigInt(b[i]!)) return BigInt(a[i]!) > BigInt(b[i]!) ? 1 : -1;\n }\n if (a.length === 3 || b.length === 3) return a.length === b.length ? 0 : a.length === 3 ? 1 : -1;\n for (let i = 3; i < Math.max(a.length, b.length); i++) {\n const x = a[i];\n const y = b[i];\n if (x === y) continue;\n if (x === undefined || y === undefined) return x === undefined ? -1 : 1;\n const xn = /^[0-9]+$/u.test(x);\n const yn = /^[0-9]+$/u.test(y);\n if (xn && yn) return BigInt(x) > BigInt(y) ? 1 : -1;\n if (xn !== yn) return xn ? -1 : 1;\n return x > y ? 1 : -1;\n }\n return 0;\n}\n\nexport async function latestVersion(options: UpdateOptions): Promise<string> {\n const timeout = AbortSignal.timeout(10_000);\n const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;\n try {\n const metadata = await npmPackageManifest(PACKAGE, \"dev\", { fetch: options.fetch, signal });\n if (metadata?.name !== PACKAGE) throw new Error(\"npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D\");\n parseVersion(metadata.version);\n if (typeof metadata.version !== \"string\" || !/^\\d+\\.\\d+\\.\\d+-dev\\.\\d+$/.test(metadata.version)) throw new Error(\"npm dev \u672A\u6307\u5411 x.y.z-dev.N \u7248\u672C\uFF1BSIT CLI \u4E0D\u4F1A\u8DE8\u6E20\u9053\u66F4\u65B0\uFF0C\u8BF7\u8054\u7CFB\u53D1\u5E03\u8005\u4FEE\u6B63 dev \u6807\u7B7E\");\n return metadata.version as string;\n } catch (cause) {\n if (options.signal?.aborted) throw new Error(\"\u64CD\u4F5C\u5DF2\u53D6\u6D88\u3002\");\n if (timeout.aborted) throw new Error(\"\u68C0\u67E5\u66F4\u65B0\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002\");\n throw new Error(`\u65E0\u6CD5\u68C0\u67E5 npm \u66F4\u65B0\uFF1A${cause instanceof Error ? cause.message : String(cause)}\u3002\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002`);\n }\n}\n\nexport async function installUpdate(version: string, options: UpdateOptions): Promise<void> {\n if (!/^\\d+\\.\\d+\\.\\d+-dev\\.\\d+$/.test(version)) throw new Error(\"SIT CLI \u53EA\u80FD\u66F4\u65B0 x.y.z-dev.N \u7248\u672C\uFF0C\u4E0D\u4F1A\u8DE8\u6E20\u9053\u5B89\u88C5\u3002\");\n const runNpm = options.runNpm ?? ((args, settings) => executeNpm(args, { ...settings, maxBuffer: 4 * 1024 * 1024 }));\n const settings = { cwd: homedir(), signal: options.signal, timeout: 10_000 };\n const installation = await globalInstallation(options.packageRoot, PACKAGE);\n if (!installation) {\n throw new Error(\"\u5F53\u524D CLI \u662F\u6E90\u7801\u3001\u94FE\u63A5\u6216\u9879\u76EE\u5185\u5B89\u88C5\uFF0C\u4E0D\u80FD\u76F4\u63A5\u6539\u5199\u539F\u5B89\u88C5\u3002\u6B63\u5E38\u547D\u4EE4\u4F1A\u4ECE SIT \u72EC\u7ACB\u7F13\u5B58\u8FD0\u884C\u65B0\u7248\uFF1B\u5355\u72EC\u66F4\u65B0\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u3002\");\n }\n const { root: installedRoot, prefix } = installation;\n const manualUpdate = process.platform === \"win32\" ? MANUAL_UPDATE : `npm install --global --prefix '${prefix.replace(/'/gu, \"'\\\\''\")}' ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;\n await withUpdateLock(globalUpdateLock(options.cacheDirectory ?? defaultUpdateCache(), prefix), options.signal, async () => {\n const current = JSON.parse(await readFile(join(installedRoot, \"package.json\"), \"utf8\"));\n if (current.name !== PACKAGE || !/^\\d+\\.\\d+\\.\\d+-dev\\.\\d+$/.test(current.version)) {\n throw new Error((\"\u5F53\u524D\u5B89\u88C5\u76EE\u5F55\u5DF2\u88AB\u5176\u4ED6\u6E20\u9053\u66FF\u6362\uFF0C\u5DF2\u505C\u6B62\u66F4\u65B0\u3002\u8BF7\u5C06 latest \u548C dev \u5B89\u88C5\u5230\u4E0D\u540C\u76EE\u5F55\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C \" + CLI_COMMAND_NAME + \"\u3002\"));\n }\n if (current.name === PACKAGE && current.version === version) return;\n if (current.name === PACKAGE && compareVersions(current.version, version) > 0) throw new Error(\"\u53E6\u4E00\u4E2A\u8FDB\u7A0B\u5DF2\u5B89\u88C5\u66F4\u65B0\u7684 CLI\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C\u547D\u4EE4\u3002\");\n try {\n await installCliWithNpm([\n \"install\", \"--global\", `${PACKAGE}@${version}`, \"--prefix\", prefix,\n `--registry=${REGISTRY}`, `--@my-life-buddies:registry=${REGISTRY}`, \"--engine-strict\", \"--no-audit\", \"--no-fund\",\n ], { ...settings, timeout: 180_000 }, runNpm);\n } catch (cause) {\n if (options.signal?.aborted) throw new Error((\"\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C \" + CLI_COMMAND_NAME + \" --version \u68C0\u67E5\u5B89\u88C5\u72B6\u6001\u3002\"));\n throw new Error(`${cause instanceof Error ? cause.message : \"npm \u5B89\u88C5\u672A\u5B8C\u6210\u3002\"}\\n\u4E5F\u53EF\u624B\u52A8\u5B89\u88C5\uFF1A${manualUpdate}`);\n }\n const installed = JSON.parse(await readFile(join(installedRoot, \"package.json\"), \"utf8\"));\n if (installed.name !== PACKAGE || installed.version !== version) {\n throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C ${CLI_COMMAND_NAME} --version \u68C0\u67E5\uFF0C\u5FC5\u8981\u65F6\u91CD\u8BD5\uFF1A${manualUpdate}`);\n }\n });\n}\n\n/** Public CLI maintenance runs before any project or platform credential handling. */\nexport async function runSelfUpdateCommand(\n args: readonly string[],\n io: Pick<CliIO, \"write\" | \"writeError\">,\n options: UpdateOptions,\n): Promise<CliRunResult | undefined> {\n const versionOnly = args[0] === \"--version\" || args[0] === \"-v\";\n if (!versionOnly && args[0] !== \"update\") return undefined;\n const json = args.includes(\"--json\");\n const fail = (message: string, exitCode: number) => {\n if (json) io.write(JSON.stringify({ package: PACKAGE, currentVersion: options.version, error: message }));\n else io.writeError(`${CLI_COMMAND_NAME}: ${message}`);\n return { exitCode };\n };\n const flags = args.slice(1);\n const allowed = versionOnly ? [\"--json\", \"--help\", \"-h\"] : [\"--check\", \"--json\", \"--help\", \"-h\"];\n if (flags.some(flag => !allowed.includes(flag)) || new Set(flags).size !== flags.length) {\n return fail((\"\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C \" + CLI_COMMAND_NAME + \" update --help \u67E5\u770B\u7528\u6CD5\u3002\"), 2);\n }\n if (flags.includes(\"--help\") || flags.includes(\"-h\")) {\n const help = LANE_BUILD ? `${LANE_BUILD.command} update\uFF1A${CLI_UPDATE_GUIDANCE}` : HELP;\n if (json) io.write(JSON.stringify({ help }));\n else io.write(help);\n return { exitCode: 0 };\n }\n try {\n parseVersion(options.version);\n if (versionOnly) {\n io.write(json ? JSON.stringify({ package: PACKAGE, version: options.version, ...(LANE_BUILD ? { lane: LANE_BUILD } : {}) }) : options.version);\n return { exitCode: 0 };\n }\n if (LANE_BUILD) throw new Error(CLI_UPDATE_GUIDANCE);\n const pin = process.env.BUDDY_CLI_PIN_VERSION;\n if (pin !== undefined) throw new Error(\"\u5F53\u524D\u5DF2\u7528 BUDDY_CLI_PIN_VERSION \u9501\u5B9A CLI\uFF1B\u5982\u9700\u66F4\u65B0\uFF0C\u8BF7\u5148\u79FB\u9664 BUDDY_CLI_PIN_VERSION \u73AF\u5883\u53D8\u91CF\u3002\");\n const latest = await latestVersion(options);\n const comparison = compareVersions(latest, options.version);\n const check = flags.includes(\"--check\");\n const status = comparison > 0 ? \"update_available\" : comparison < 0 ? \"ahead\" : \"up_to_date\";\n if (!check && comparison > 0) {\n if (!json) io.write(`\u6B63\u5728\u66F4\u65B0 CLI\uFF1A${options.version} \u2192 ${latest}\u2026`);\n await installUpdate(latest, options);\n }\n const updated = !check && comparison > 0;\n if (json) {\n io.write(JSON.stringify({\n package: PACKAGE, currentVersion: options.version, latestVersion: latest,\n updateAvailable: comparison > 0 && !updated, status: updated ? \"updated\" : status,\n ...(updated ? { installedVersion: latest } : {}),\n }));\n } else if (updated) io.write(`CLI \u5DF2\u66F4\u65B0\uFF1A${options.version} \u2192 ${latest}\u3002`);\n else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C ${CLI_COMMAND_NAME} update \u66F4\u65B0\u3002`);\n else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm dev ${latest}\uFF0C\u65E0\u9700\u66F4\u65B0\u3002`);\n else io.write(`\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\uFF1A${options.version}\u3002`);\n return { exitCode: 0 };\n } catch (cause) {\n return fail(cause instanceof Error ? cause.message : String(cause), 1);\n }\n}\n", "import { mkdir, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { createHash } from \"node:crypto\";\nimport { setTimeout as delay } from \"node:timers/promises\";\n\nexport const defaultUpdateCache = () => join(homedir(), \".cache\", \"buddy-cli-sit\", \"updates\", `${process.platform}-${process.arch}`);\nexport const globalUpdateLock = (cache: string, prefix: string) => join(cache, \"locks\", createHash(\"sha256\").update(prefix).digest(\"hex\"));\n\n/** Never steal an installation lock on a timer: npm may still be writing files. */\nexport async function withUpdateLock<T>(path: string, signal: AbortSignal | undefined, action: () => Promise<T>): Promise<T> {\n await mkdir(dirname(path), { recursive: true, mode: 0o700 });\n const deadline = Date.now() + 200_000;\n for (;;) {\n signal?.throwIfAborted();\n try { await mkdir(path, { mode: 0o700 }); break; }\n catch (cause) {\n if ((cause as NodeJS.ErrnoException).code !== \"EEXIST\") throw cause;\n if (Date.now() >= deadline) throw new Error(`\u7B49\u5F85\u5176\u4ED6 CLI \u66F4\u65B0\u8D85\u65F6\u3002\u8BF7\u786E\u8BA4\u66F4\u65B0\u8FDB\u7A0B\u5DF2\u9000\u51FA\uFF0C\u518D\u6E05\u7406\u9501\u76EE\u5F55\u5E76\u91CD\u8BD5\uFF1A${path}`);\n await delay(100, undefined, { signal });\n }\n }\n try {\n await writeFile(join(path, \"owner.json\"), JSON.stringify({ pid: process.pid, startedAt: Date.now() }), { mode: 0o600 });\n signal?.throwIfAborted();\n return await action();\n } finally { await rm(path, { recursive: true, force: true }); }\n}\n", "import { stripVTControlCharacters } from \"node:util\";\nimport type { NpmOptions } from \"./self-update.js\";\n\ntype RunNpm = (args: string[], settings: NpmOptions) => Promise<{ stdout: string; stderr: string }>;\n\nfunction redact(text: string): string {\n return text.replace(/https?:\\/\\/[^\\s<>\"']+/giu, value => {\n try {\n const url = new URL(value);\n url.username = \"\"; url.password = \"\"; url.search = \"\"; url.hash = \"\";\n return url.toString();\n } catch { return \"[URL]\"; }\n }).replace(/\\bBearer\\s+\\S+/giu, \"Bearer [REDACTED]\")\n .replace(/\\b(?:_authToken|_auth|token|password|authorization)\\s*[:=]\\s*\\S+/giu, \"[REDACTED]\")\n .replace(/\\bnpm_[A-Za-z0-9]+/gu, \"[REDACTED]\");\n}\n\n/** execFile.code is often just 1. npm's error code and explanation live in stderr. */\nfunction npmFailure(cause: unknown): { code: string; reason: string } {\n const error = cause as { code?: unknown; stderr?: unknown; killed?: boolean } | null;\n const stderr = stripVTControlCharacters(typeof error?.stderr === \"string\" ? error.stderr.slice(-32_768) : \"\");\n const lines = stderr.split(/\\r?\\n/u).map(line => line.match(/^npm (?:error|ERR!)\\s+(.*)$/u)?.[1]).filter((line): line is string => !!line);\n const code = lines.map(line => line.match(/^code\\s+(E[A-Z0-9_]+)\\b/u)?.[1]).find(Boolean)\n ?? (typeof error?.code === \"string\" && /^E[A-Z0-9_]+$/u.test(error.code) ? error.code : error?.killed ? \"ETIMEDOUT\" : \"UNKNOWN\");\n const reason = lines.filter(line => !/^(?:code |A complete log |A complete log can|Log files |In most cases|If you |Note:)/u.test(line)\n && !/debug[^\\r\\n]*\\.log\\s*$/u.test(line))\n .slice(0, 3).map(redact).join(\" \").slice(0, 700);\n return { code, reason };\n}\n\n/** Revalidate metadata without clearing or changing the user's npm cache/config. */\nexport async function installCliWithNpm(args: string[], settings: NpmOptions, runNpm: RunNpm): Promise<void> {\n const deadline = Date.now() + settings.timeout;\n for (let attempt = 0; attempt < 2; attempt++) {\n settings.signal?.throwIfAborted();\n try {\n const timeout = deadline - Date.now();\n if (timeout <= 0) throw Object.assign(new Error(\"install timeout\"), { code: \"ETIMEDOUT\" });\n await runNpm([...args, \"--prefer-online\"], { ...settings, timeout });\n return;\n } catch (cause) {\n settings.signal?.throwIfAborted();\n const { code, reason } = npmFailure(cause);\n if (code === \"ETARGET\" && attempt === 0 && Date.now() < deadline) continue;\n const hint = code === \"ETARGET\" ? `npm \u5C1A\u672A\u63D0\u4F9B\u6240\u9700\u7248\u672C\uFF1B${attempt > 0 ? \"\u5DF2\u8054\u7F51\u5237\u65B0\u5E76\u91CD\u8BD5\u4E00\u6B21\" : \"\u8054\u7F51\u5237\u65B0\u540E\u4ECD\u627E\u4E0D\u5230\u8BE5\u7248\u672C\"}\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002`\n : code === \"EACCES\" || code === \"EPERM\" ? \"\u8BF7\u68C0\u67E5 npm \u5B89\u88C5\u76EE\u5F55\u548C\u7F13\u5B58\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650\u3002\"\n : code === \"EBADENGINE\" ? \"\u8BF7\u68C0\u67E5 Node.js \u7248\u672C\u662F\u5426\u6EE1\u8DB3\u5305\u7684\u8981\u6C42\u3002\"\n : [\"ENOTFOUND\", \"ECONNRESET\", \"ECONNREFUSED\", \"ETIMEDOUT\", \"EAI_AGAIN\"].includes(code) ? \"\u8BF7\u68C0\u67E5\u5230 npm \u7684\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002\"\n : \"\u8BF7\u6839\u636E\u4EE5\u4E0A\u539F\u56E0\u5904\u7406\u540E\u91CD\u8BD5\u3002\";\n throw new Error(`npm \u5B89\u88C5\u672A\u5B8C\u6210\uFF08${code}\uFF09\u3002${reason ? `${reason}\\n` : \"\"}${hint}`);\n }\n }\n}\n", "import { lstat, readFile, realpath } from \"node:fs/promises\";\nimport { dirname, join, resolve } from \"node:path\";\n\n/** Resolve the running installation, never the default prefix of another npm/Node. */\nexport async function globalInstallation(packageRoot: string, packageName: string, platform = process.platform): Promise<{ root: string; prefix: string } | undefined> {\n try {\n if ((await lstat(packageRoot)).isSymbolicLink()) return undefined;\n const root = await realpath(packageRoot);\n let prefix = root;\n const layout = platform === \"win32\" ? [\"node_modules\"] : [\"lib\", \"node_modules\"];\n for (const _part of [...layout, ...packageName.split(\"/\")]) prefix = dirname(prefix);\n if (root !== resolve(prefix, ...layout, packageName)) return undefined;\n // npm link resolves to source outside this layout and must never be overwritten.\n if ((await lstat(join(prefix, ...layout, packageName))).isSymbolicLink()) return undefined;\n if (platform === \"win32\") {\n // A local install also uses node_modules. Only npm's prefix-level shims prove global layout.\n const manifest = JSON.parse(await readFile(join(root, \"package.json\"), \"utf8\"));\n const bins = Object.entries(manifest.bin ?? {});\n if (!bins.length || manifest.name !== packageName) return undefined;\n for (const [name, entry] of bins) {\n if (!/^[a-zA-Z0-9_-]+$/u.test(name) || typeof entry !== \"string\" || entry.includes(\"..\")) return undefined;\n const shim = join(prefix, `${name}.cmd`);\n if (!(await lstat(shim)).isFile() || (await lstat(shim)).isSymbolicLink()) return undefined;\n const source = (await readFile(shim, \"utf8\")).replaceAll(\"\\\\\", \"/\").toLowerCase();\n if (!source.includes(`node_modules/${packageName}/${entry}`.toLowerCase())) return undefined;\n }\n }\n return { root, prefix };\n } catch { return undefined; }\n}\n", "import { runNpm as executeNpm, LANE_BUILD } from \"@buddy/cli-core/platform\";\nimport { spawn } from \"node:child_process\";\nimport { lstat, mkdir, mkdtemp, readFile, realpath, rename, rm, writeFile } from \"node:fs/promises\";\nimport { constants } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { CliIO, CliRunResult } from \"@buddy/cli-core\";\nimport { compareVersions, installUpdate, latestVersion, type UpdateOptions } from \"./self-update.js\";\nimport { defaultUpdateCache, withUpdateLock } from \"./update-lock.js\";\nimport { installCliWithNpm } from \"./npm-update-install.js\";\nimport { globalInstallation } from \"./install-location.js\";\n\nconst PACKAGE = \"@my-life-buddies/cli\";\nconst REGISTRY = \"https://registry.npmjs.org/\";\nexport const HANDOFF_ENV = \"BUDDY_CLI_SIT_UPDATE_HANDOFF\";\n\ninterface ChildOptions { cwd: string; env: NodeJS.ProcessEnv; signal?: AbortSignal }\nexport interface AutoUpdateOptions extends UpdateOptions {\n cwd?: string;\n env?: NodeJS.ProcessEnv;\n runCli?: (entry: string, args: readonly string[], options: ChildOptions) => Promise<CliRunResult>;\n}\n\nasync function installedVersion(root: string): Promise<string | undefined> {\n try {\n const pkg = JSON.parse(await readFile(join(root, \"package.json\"), \"utf8\"));\n return pkg.name === PACKAGE && typeof pkg.version === \"string\" ? pkg.version : undefined;\n } catch { return undefined; }\n}\n\nasync function checkedEntry(root: string, version: string): Promise<string> {\n if (await installedVersion(root) !== version) throw new Error(`CLI \u5B89\u88C5\u7ED3\u679C\u4E0E\u672C\u6B21\u8981\u6C42\u7684 ${version} \u4E0D\u4E00\u81F4\uFF0C\u8BF7\u91CD\u8BD5\u3002`);\n const entry = join(root, \"dist\", \"bin\", \"buddy.js\");\n if (!(await lstat(entry)).isFile()) throw new Error(\"\u65B0\u7248 CLI \u7F3A\u5C11\u6709\u6548\u7684\u6267\u884C\u5165\u53E3\u3002\");\n return entry;\n}\n\nasync function prepareLatest(version: string, options: AutoUpdateOptions): Promise<string> {\n const cache = options.cacheDirectory ?? defaultUpdateCache();\n const runNpm = options.runNpm ?? ((args, settings) => executeNpm(args, { ...settings, maxBuffer: 4 * 1024 * 1024 }));\n const installation = await globalInstallation(options.packageRoot, PACKAGE);\n if (installation) {\n await installUpdate(version, options);\n return checkedEntry(installation.root, version);\n }\n const destination = join(cache, \"releases\", version);\n return withUpdateLock(join(cache, \"locks\", `release-${version}`), options.signal, async () => {\n const root = join(destination, \"node_modules\", PACKAGE);\n try { return await checkedEntry(root, version); } catch { /* Repair incomplete cached installs. */ }\n await mkdir(join(cache, \"releases\"), { recursive: true, mode: 0o700 });\n const temporary = await mkdtemp(join(cache, \"releases\", \".install-\"));\n try {\n await writeFile(join(temporary, \"package.json\"), JSON.stringify({ private: true }));\n await installCliWithNpm([\"install\", \"--prefix\", temporary, \"--save-exact\", `${PACKAGE}@${version}`,\n `--registry=${REGISTRY}`, `--@my-life-buddies:registry=${REGISTRY}`, \"--engine-strict\", \"--no-audit\", \"--no-fund\"],\n { cwd: temporary, signal: options.signal, timeout: 180_000 }, runNpm);\n await checkedEntry(join(temporary, \"node_modules\", PACKAGE), version);\n options.signal?.throwIfAborted();\n await rm(destination, { recursive: true, force: true });\n await rename(temporary, destination);\n return checkedEntry(root, version);\n } finally { await rm(temporary, { recursive: true, force: true }); }\n });\n}\n\n/** Direct argv, inherited terminal and no shell; parent waits and forwards cancellation. */\nexport async function runUpdatedCli(entry: string, args: readonly string[], options: ChildOptions): Promise<CliRunResult> {\n options.signal?.throwIfAborted();\n return new Promise((resolve, reject) => {\n const child = spawn(process.execPath, [entry, ...args], { cwd: options.cwd, env: options.env, stdio: \"inherit\" });\n let cancellationExitCode: number | undefined;\n let killTimer: ReturnType<typeof setTimeout> | undefined;\n const abort = () => {\n const reason = options.signal?.reason?.message;\n const signal = reason === \"SIGINT\" ? \"SIGINT\" : reason === \"SIGHUP\" ? \"SIGHUP\" : \"SIGTERM\";\n cancellationExitCode ??= 128 + constants.signals[signal];\n child.kill(signal);\n killTimer ??= setTimeout(() => child.kill(\"SIGKILL\"), 15_000);\n killTimer.unref();\n };\n const cleanup = () => { options.signal?.removeEventListener(\"abort\", abort); clearTimeout(killTimer); };\n child.once(\"error\", error => { cleanup(); reject(error); });\n child.once(\"exit\", (code, signal) => {\n cleanup();\n resolve({ exitCode: cancellationExitCode ?? code ?? 128 + (signal ? constants.signals[signal] : 1) });\n });\n options.signal?.addEventListener(\"abort\", abort, { once: true });\n if (options.signal?.aborted) abort();\n });\n}\n\n/** Runs before any project, credentials, platform host or business side effects. */\nexport async function runAutoUpdate(args: readonly string[], io: Pick<CliIO, \"write\" | \"writeError\">, options: AutoUpdateOptions): Promise<CliRunResult | undefined> {\n // The executable's immutable build identity wins even if PIN_VERSION is absent or changed.\n if (LANE_BUILD) return undefined;\n if (args[0] === \"dev\" && args[1] === \"stop\") return undefined; // Emergency local cleanup must work offline.\n if (args[0] === \"help\" || args[0] === \"update\" || args[0] === \"--version\" || args[0] === \"-v\"\n || args.includes(\"--help\") || args.includes(\"-h\")) return undefined;\n try {\n const env = { ...(options.env ?? process.env) };\n const pin = env.BUDDY_CLI_PIN_VERSION;\n if (pin !== undefined) {\n if (!/^\\d+\\.\\d+\\.\\d+-dev\\.\\d+$/.test(pin) || pin !== options.version) {\n throw new Error(`CLI \u7248\u672C\u9501\u5B9A\u4E0D\u5339\u914D\uFF1A\u8981\u6C42 ${pin}\uFF0C\u5F53\u524D ${options.version}\u3002\u8BF7\u5B89\u88C5 @my-life-buddies/cli@${pin} \u6216\u79FB\u9664 BUDDY_CLI_PIN_VERSION \u73AF\u5883\u53D8\u91CF\u3002`);\n }\n return undefined;\n }\n const handoff = env[HANDOFF_ENV];\n // Consume the marker; commands started later by an Agent must check again.\n if (handoff !== undefined) {\n delete env[HANDOFF_ENV];\n if (!options.env) delete process.env[HANDOFF_ENV];\n const expected = JSON.parse(handoff);\n const entry = await realpath(join(options.packageRoot, \"dist\", \"bin\", \"buddy.js\"));\n if (expected.parent !== process.ppid || expected.version !== options.version || expected.entry !== entry\n || JSON.stringify(expected.args) !== JSON.stringify(args)) throw new Error(\"CLI \u81EA\u52A8\u66F4\u65B0\u63A5\u7EED\u6821\u9A8C\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u8FD0\u884C\u547D\u4EE4\u3002\");\n return undefined;\n }\n const latest = await latestVersion(options);\n if (compareVersions(latest, options.version) <= 0) return undefined;\n io.writeError(`CLI \u81EA\u52A8\u66F4\u65B0\uFF1A${options.version} \u2192 ${latest}\u3002\u5B8C\u6210\u540E\u7EE7\u7EED\u5F53\u524D\u547D\u4EE4\uFF0C\u8BF7\u52FF\u91CD\u590D\u6267\u884C\u3002`);\n const entry = await realpath(await prepareLatest(latest, options));\n options.signal?.throwIfAborted();\n env[HANDOFF_ENV] = JSON.stringify({ parent: process.pid, version: latest, entry, args });\n return await (options.runCli ?? runUpdatedCli)(entry, args, { cwd: options.cwd ?? process.cwd(), env, signal: options.signal });\n } catch (cause) {\n const error = options.signal?.aborted ? \"CLI \u81EA\u52A8\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u539F\u547D\u4EE4\u672A\u6267\u884C\u3002\"\n : `CLI \u81EA\u68C0\u6216\u66F4\u65B0\u5931\u8D25\uFF0C\u539F\u547D\u4EE4\u672A\u6267\u884C\uFF1A${cause instanceof Error ? cause.message : String(cause)}`;\n if (args.includes(\"--json\")) io.write(JSON.stringify({ code: \"CLI_UPDATE_FAILED\", error }));\n else io.writeError(error);\n return { exitCode: 1 };\n }\n}\n", "import { CLI_COMMAND_NAME } from \"@buddy/cli-core/platform\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ensurePrivateDirectory, runNpm, windowsOperation, LANE_BUILD, CLI_UPDATE_GUIDANCE } from \"@buddy/cli-core/platform\";\nimport type { CliIO, CliRunResult } from \"@buddy/cli-core\";\nimport type { UpdateOptions } from \"./self-update.js\";\nimport { installCliWithNpm } from \"./npm-update-install.js\";\nimport { defaultUpdateCache, globalUpdateLock, withUpdateLock } from \"./update-lock.js\";\n\nconst PACKAGE = \"@my-life-buddies/cli\";\nconst REGISTRY = \"https://registry.npmjs.org/\";\nexport interface SetupOptions extends UpdateOptions {\n platform?: NodeJS.Platform;\n env?: NodeJS.ProcessEnv;\n prepareDirectory?: (path: string) => Promise<void>;\n configureUserPath?: (path: string) => Promise<void>;\n}\n\n/** Install the exact bootstrap version in a per-channel user prefix. No elevation or shell quoting. */\nexport async function runSetupCommand(args: readonly string[], io: Pick<CliIO, \"write\" | \"writeError\">, options: SetupOptions): Promise<CliRunResult | undefined> {\n if (args[0] !== \"setup\") return undefined;\n const json = args.includes(\"--json\");\n const fail = (error: string, exitCode = 1) => {\n if (json) io.write(JSON.stringify({ error })); else io.writeError(error);\n return { exitCode };\n };\n if (args.slice(1).some(arg => ![\"--help\", \"-h\", \"--json\"].includes(arg)) || new Set(args).size !== args.length) return fail((\"\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C \" + CLI_COMMAND_NAME + \" setup --help \u67E5\u770B\u7528\u6CD5\u3002\"), 2);\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n const help = LANE_BUILD ? `${LANE_BUILD.command} setup\uFF1A${CLI_UPDATE_GUIDANCE}` : (\"\u7528\u6CD5\uFF1A\" + CLI_COMMAND_NAME + \" setup [--json]\\n\u5728 Windows \u5F53\u524D\u7528\u6237\u76EE\u5F55\u5B89\u88C5\u8FD0\u884C\u4E2D\u7684\u51C6\u786E SIT \u7248\u672C\uFF0C\u5E76\u5C06\u72EC\u7ACB\u5B89\u88C5\u76EE\u5F55\u52A0\u5165\u7528\u6237 PATH\u3002\u65E0\u9700\u7BA1\u7406\u5458\u6743\u9650\uFF1B\u5B89\u88C5\u540E\u91CD\u65B0\u6253\u5F00\u7EC8\u7AEF\u3002\u6B63\u5F0F\u7248\u548C SIT \u4F7F\u7528\u4E0D\u540C\u76EE\u5F55\u3002\");\n io.write(json ? JSON.stringify({ help }) : help); return { exitCode: 0 };\n }\n try {\n if (LANE_BUILD) throw new Error(CLI_UPDATE_GUIDANCE);\n if ((options.platform ?? process.platform) !== \"win32\") throw new Error(\"setup \u7528\u4E8E Windows \u5B89\u88C5\uFF1BmacOS \u8BF7\u6309 CLI \u4F7F\u7528\u6307\u5357\u5B89\u88C5\u3002\");\n if (!/^\\d+\\.\\d+\\.\\d+-dev\\.\\d+$/u.test(options.version)) throw new Error(\"SIT \u5B89\u88C5\u5668\u7248\u672C\u65E0\u6548\uFF0C\u5DF2\u505C\u6B62\u5B89\u88C5\u3002\");\n const local = (options.env ?? process.env).LOCALAPPDATA;\n if (!local || !/^[A-Za-z]:[\\\\/]/u.test(local) || local.startsWith(\"\\\\\\\\\") || /[;\\u0000-\\u001f]/u.test(local)) throw new Error(\"\u65E0\u6CD5\u5B9A\u4F4D\u5F53\u524D\u7528\u6237\u7684\u672C\u5730\u5E94\u7528\u76EE\u5F55\uFF0C\u8BF7\u68C0\u67E5 LOCALAPPDATA\u3002\");\n const prefix = join(local, \"buddy-cli\", \"sit\");\n await (options.prepareDirectory ?? ensurePrivateDirectory)(prefix);\n await withUpdateLock(globalUpdateLock(options.cacheDirectory ?? defaultUpdateCache(), prefix), options.signal, async () => {\n if (!json) io.write(`\u6B63\u5728\u5B89\u88C5\u642D\u642D SIT CLI ${options.version}\u2026`);\n await installCliWithNpm([\"install\", \"--global\", \"--prefix\", prefix, `${PACKAGE}@${options.version}`,\n `--registry=${REGISTRY}`, `--@my-life-buddies:registry=${REGISTRY}`, \"--engine-strict\", \"--no-audit\", \"--no-fund\"],\n { cwd: prefix, signal: options.signal, timeout: 180_000 }, options.runNpm ?? runNpm);\n const manifest = JSON.parse(await readFile(join(prefix, \"node_modules\", PACKAGE, \"package.json\"), \"utf8\"));\n if (manifest.name !== PACKAGE || manifest.version !== options.version || manifest.bin?.[\"buddy-cli-sit\"] !== \"dist/bin/buddy.js\") throw new Error(\"\u5B89\u88C5\u7ED3\u679C\u4E0E\u8981\u6C42\u7684\u7248\u672C\u6216\u6E20\u9053\u4E0D\u4E00\u81F4\uFF0C\u5C1A\u672A\u4FEE\u6539 PATH\u3002\");\n await readFile(join(prefix, \"buddy-cli-sit.cmd\"), \"utf8\");\n await (options.configureUserPath ?? (async path => { await windowsOperation({ operation: \"user-path\", path }); }))(prefix);\n });\n const message = (\"\u5B89\u88C5\u5B8C\u6210\u3002\u8BF7\u5173\u95ED\u5E76\u91CD\u65B0\u6253\u5F00\u7EC8\u7AEF\uFF0C\u7136\u540E\u8FD0\u884C \" + CLI_COMMAND_NAME + \".cmd --version\u3002\");\n io.write(json ? JSON.stringify({ version: options.version, prefix, command: \"buddy-cli-sit.cmd\", message }) : message);\n return { exitCode: 0 };\n } catch (cause) { return fail(cause instanceof Error ? cause.message : String(cause)); }\n}\n", "/** Keep the CLI alive long enough to stop detached Runtime children on terminal closure. */\nexport function bindTerminationSignals(controller: AbortController): () => void {\n const handlers = new Map<NodeJS.Signals, () => void>();\n for (const signal of [\"SIGINT\", \"SIGTERM\", \"SIGHUP\"] as const) {\n const handler = () => { if (!controller.signal.aborted) controller.abort(new Error(signal)); };\n handlers.set(signal, handler);\n process.on(signal, handler);\n }\n return () => { for (const [signal, handler] of handlers) process.off(signal, handler); };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["CLI_COMMAND_NAME", "CLI_PACKAGE_NAME", "dirname", "readFile", "homedir", "join", "stderr", "runNpm", "dirname", "join", "runNpm", "settings", "homedir", "readFile", "join", "executeNpm", "LANE_BUILD", "lstat", "mkdir", "readFile", "realpath", "rm", "writeFile", "join", "PACKAGE", "REGISTRY", "readFile", "join", "lstat", "runNpm", "executeNpm", "mkdir", "writeFile", "rm", "resolve", "LANE_BUILD", "entry", "realpath", "CLI_COMMAND_NAME", "readFile", "join", "LANE_BUILD", "CLI_UPDATE_GUIDANCE", "PACKAGE", "REGISTRY", "CLI_COMMAND_NAME", "LANE_BUILD", "CLI_UPDATE_GUIDANCE", "join", "readFile", "LANE_BUILD", "require", "CLI_PACKAGE_NAME", "dirname", "CLI_COMMAND_NAME"]
|
|
7
|
+
}
|