@vinsonw2/asset-compound 0.1.0 → 0.1.1

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 CHANGED
@@ -158,6 +158,25 @@ tarball 包含:
158
158
  - `prompts/`
159
159
  - `protocol/`
160
160
  - `skill/asset-compounding/`:可选 Cursor 适配器
161
+ - `artifacts/`:从 npm 官方 registry 获取的 `0.1.0` tarball、SHA-256 清单和中文说明
162
+
163
+ ## 0.1.0 离线 tarball
164
+
165
+ `artifacts/asset-compound-0.1.0.tgz` 是 npm 官方 registry 已发布
166
+ `@vinsonw2/asset-compound@0.1.0` 的原始 tarball,不是从当前工作树重新打包的。
167
+ 固定 SHA-256 记录在 `artifacts/SHA256SUMS`。
168
+
169
+ 在其他平台完成文件同步或下载后,先核对 SHA-256,再在 tarball 所在目录安装:
170
+
171
+ ```bash
172
+ npm install ./asset-compound-0.1.0.tgz
173
+ npx asset-compound --version
174
+ npx asset-compound --help
175
+ ```
176
+
177
+ 完整来源、校验和离线使用方式见 `artifacts/README.zh-CN.md`。生成当前外层包时应将
178
+ `npm pack` 输出到仓库外的临时目录,不得把 `0.1.1` tarball 放入 `artifacts/`,
179
+ 以免递归打包。
161
180
 
162
181
  ESM 库入口:
163
182
 
@@ -0,0 +1,47 @@
1
+ # `asset-compound` 0.1.0 离线安装包
2
+
3
+ `asset-compound-0.1.0.tgz` 来自 npm 官方 registry 已公开发布的
4
+ `@vinsonw2/asset-compound@0.1.0`。本仓库通过以下命令下载原始 tarball,
5
+ 没有从工作树重新打包旧版本:
6
+
7
+ ```bash
8
+ npm pack @vinsonw2/asset-compound@0.1.0 \
9
+ --registry=https://registry.npmjs.org/
10
+ ```
11
+
12
+ ## 校验
13
+
14
+ 同目录的 `SHA256SUMS` 记录了固定 SHA-256。Linux 或 macOS 可在本目录运行:
15
+
16
+ ```bash
17
+ sha256sum -c SHA256SUMS
18
+ ```
19
+
20
+ 在 PowerShell 中可运行:
21
+
22
+ ```powershell
23
+ (Get-FileHash .\asset-compound-0.1.0.tgz -Algorithm SHA256).Hash.ToLower()
24
+ ```
25
+
26
+ 结果必须与 `SHA256SUMS` 中的值完全一致。
27
+
28
+ ## 同步到其他平台后安装
29
+
30
+ 将 `asset-compound-0.1.0.tgz` 下载或同步到目标平台,校验 SHA-256 后,在
31
+ tarball 所在目录执行:
32
+
33
+ ```bash
34
+ npm install ./asset-compound-0.1.0.tgz
35
+ npx asset-compound --version
36
+ npx asset-compound --help
37
+ ```
38
+
39
+ 也可以直接执行本地包中的 CLI:
40
+
41
+ ```bash
42
+ npx --yes --package ./asset-compound-0.1.0.tgz asset-compound --help
43
+ ```
44
+
45
+ 该文件固定保存已发布的 `0.1.0`,外层 npm 包版本升级不会改变其内容。生成外层
46
+ tarball 时必须把输出写到仓库外的临时目录,禁止把外层包复制进 `artifacts/`,
47
+ 以免递归打包。
@@ -0,0 +1 @@
1
+ 7b234a4aa40712b77c4754714f0fecc3015af30497efcb509003e31d5ab01992 asset-compound-0.1.0.tgz
package/dist/cli.js CHANGED
@@ -29,7 +29,7 @@ async function main() {
29
29
  "Global Options:": "\u5168\u5C40\u9009\u9879\uFF1A",
30
30
  "Commands:": "\u547D\u4EE4\uFF1A"
31
31
  };
32
- const program = new Command().name("asset-compound").description("\u5728 docs/\u53EF\u8BFB\u5316 \u4E0B\u751F\u6210\u53EF\u589E\u91CF\u3001\u53EF\u8FFD\u6EAF\u7684\u8D44\u4EA7").usage("[\u9009\u9879] <\u547D\u4EE4>").version("0.1.0", "-V, --version", "\u663E\u793A\u7248\u672C").helpOption("-h, --help", "\u663E\u793A\u5E2E\u52A9").addHelpCommand("help [command]", "\u663E\u793A\u6307\u5B9A\u547D\u4EE4\u7684\u5E2E\u52A9").showHelpAfterError("\uFF08\u4F7F\u7528 --help \u67E5\u770B\u5E2E\u52A9\uFF09").configureHelp({
32
+ const program = new Command().name("asset-compound").description("\u5728 docs/\u53EF\u8BFB\u5316 \u4E0B\u751F\u6210\u53EF\u589E\u91CF\u3001\u53EF\u8FFD\u6EAF\u7684\u8D44\u4EA7").usage("[\u9009\u9879] <\u547D\u4EE4>").version("0.1.1", "-V, --version", "\u663E\u793A\u7248\u672C").helpOption("-h, --help", "\u663E\u793A\u5E2E\u52A9").addHelpCommand("help [command]", "\u663E\u793A\u6307\u5B9A\u547D\u4EE4\u7684\u5E2E\u52A9").showHelpAfterError("\uFF08\u4F7F\u7528 --help \u67E5\u770B\u5E2E\u52A9\uFF09").configureHelp({
33
33
  styleTitle: (title) => titleMap[title] ?? title,
34
34
  subcommandTerm: (command) => command.name() === "help" ? "help [\u547D\u4EE4]" : `${command.name()} [\u9009\u9879]`
35
35
  }).configureOutput({
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport {\n inspectPipeline,\n loadAssetsFile,\n loadConfig,\n plan,\n runPipeline,\n scan,\n verifyGitScope,\n verifySecondRun,\n} from \"./pipeline.js\";\nimport { initGenericWorkspace, installEditorSkill } from \"./setup.js\";\n\ninterface CommonOptions {\n repo: string;\n config: string;\n assets?: string;\n}\n\nfunction print(value: unknown): void {\n process.stdout.write(`${JSON.stringify(value, null, 2)}\\n`);\n}\n\nfunction withCommonOptions(command: Command): Command {\n return command\n .requiredOption(\"--repo <path>\", \"目标 Git 仓库\")\n .requiredOption(\"--config <path>\", \"YAML 运行配置\");\n}\n\nasync function main(): Promise<void> {\n const titleMap: Record<string, string> = {\n \"Usage:\": \"用法:\",\n \"Arguments:\": \"参数:\",\n \"Options:\": \"选项:\",\n \"Global Options:\": \"全局选项:\",\n \"Commands:\": \"命令:\",\n };\n const program = new Command()\n .name(\"asset-compound\")\n .description(\"在 docs/可读化 下生成可增量、可追溯的资产\")\n .usage(\"[选项] <命令>\")\n .version(\"0.1.0\", \"-V, --version\", \"显示版本\")\n .helpOption(\"-h, --help\", \"显示帮助\")\n .addHelpCommand(\"help [command]\", \"显示指定命令的帮助\")\n .showHelpAfterError(\"(使用 --help 查看帮助)\")\n .configureHelp({\n styleTitle: (title) => titleMap[title] ?? title,\n subcommandTerm: (command) =>\n command.name() === \"help\" ? \"help [命令]\" : `${command.name()} [选项]`,\n })\n .configureOutput({\n outputError: (text, write) =>\n write(\n text\n .replace(/^error:/gm, \"错误:\")\n .replace(/required option '([^']+)' not specified/g, \"缺少必填选项 '$1'\")\n .replace(/unknown command '([^']+)'/g, \"未知命令 '$1'\")\n .replace(/unknown option '([^']+)'/g, \"未知选项 '$1'\"),\n ),\n });\n\n program\n .command(\"init\")\n .description(\"初始化编辑器无关的配置、中文提示协议和 schema\")\n .option(\"--output <path>\", \"输出目录;默认 ~/.asset-compound\")\n .option(\"--base-branch <name>\", \"目标仓库基线分支\", \"main\")\n .option(\"--mode <mode>\", \"初始化模式;当前支持 generic\", \"generic\")\n .option(\"--force\", \"覆盖已存在的初始化文件\")\n .action(\n async (options: {\n output?: string;\n baseBranch: string;\n mode: string;\n force?: boolean;\n }) => {\n if (options.mode !== \"generic\") {\n throw new Error(`init 当前仅支持 generic 模式;收到 mode=${options.mode}`);\n }\n print(\n await initGenericWorkspace({\n baseBranch: options.baseBranch,\n force: options.force ?? false,\n ...(options.output ? { output: options.output } : {}),\n }),\n );\n },\n );\n\n program\n .command(\"install-skill\")\n .description(\"安装可选编辑器适配器;当前支持 Cursor\")\n .requiredOption(\"--editor <name>\", \"编辑器名称;当前为 cursor\")\n .option(\"--target <path>\", \"自定义 Skill 安装目录\")\n .option(\"--force\", \"覆盖已存在的 Skill\")\n .action(\n async (options: {\n editor: string;\n target?: string;\n force?: boolean;\n }) =>\n print(\n await installEditorSkill({\n editor: options.editor,\n force: options.force ?? false,\n ...(options.target ? { target: options.target } : {}),\n }),\n ),\n );\n\n withCommonOptions(\n program.command(\"plan\").description(\"校验输入并输出执行计划\"),\n ).action(async (options: CommonOptions) => print(await plan(options.repo, options.config)));\n\n withCommonOptions(\n program.command(\"scan\").description(\"发现配置来源并计算内容指纹\"),\n ).action(async (options: CommonOptions) => {\n const config = await loadConfig(options.config);\n print(await scan(options.repo, config));\n });\n\n withCommonOptions(\n program.command(\"prepare\").description(\"输出通过 schema 的资产,不写入目标仓库\"),\n ).action(async (options: CommonOptions) => {\n const prepared = await inspectPipeline(options.repo, options.config);\n print(prepared.assets);\n });\n\n program\n .command(\"validate\")\n .description(\"校验补充后的四维资产 JSON\")\n .requiredOption(\"--input <path>\", \"由 prepare 生成并补充的 JSON 数组\")\n .action(async (options: { input: string }) =>\n print({ valid: true, count: (await loadAssetsFile(options.input)).length }),\n );\n\n withCommonOptions(\n program\n .command(\"render\")\n .description(\"执行完整管线并渲染文档\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n program\n .command(\"verify\")\n .description(\"验证工作树改动仅位于 docs/可读化\")\n .requiredOption(\"--repo <path>\", \"目标 Git 仓库\")\n .option(\"--config <path>\", \"同时证明无变化二次运行\")\n .action(async (options: Pick<CommonOptions, \"repo\"> & { config?: string }) => {\n if (options.config) {\n print(await verifySecondRun(options.repo, options.config));\n return;\n }\n print({ valid: true, changedFiles: await verifyGitScope(options.repo) });\n });\n\n withCommonOptions(\n program\n .command(\"finalize\")\n .description(\"执行、验证并输出最终结果\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n withCommonOptions(\n program\n .command(\"run\")\n .description(\"finalize 的别名\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n await program.parseAsync(process.argv);\n}\n\nmain().catch((error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`asset-compound:${message}\\n`);\n process.exitCode = 1;\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport {\n inspectPipeline,\n loadAssetsFile,\n loadConfig,\n plan,\n runPipeline,\n scan,\n verifyGitScope,\n verifySecondRun,\n} from \"./pipeline.js\";\nimport { initGenericWorkspace, installEditorSkill } from \"./setup.js\";\n\ninterface CommonOptions {\n repo: string;\n config: string;\n assets?: string;\n}\n\nfunction print(value: unknown): void {\n process.stdout.write(`${JSON.stringify(value, null, 2)}\\n`);\n}\n\nfunction withCommonOptions(command: Command): Command {\n return command\n .requiredOption(\"--repo <path>\", \"目标 Git 仓库\")\n .requiredOption(\"--config <path>\", \"YAML 运行配置\");\n}\n\nasync function main(): Promise<void> {\n const titleMap: Record<string, string> = {\n \"Usage:\": \"用法:\",\n \"Arguments:\": \"参数:\",\n \"Options:\": \"选项:\",\n \"Global Options:\": \"全局选项:\",\n \"Commands:\": \"命令:\",\n };\n const program = new Command()\n .name(\"asset-compound\")\n .description(\"在 docs/可读化 下生成可增量、可追溯的资产\")\n .usage(\"[选项] <命令>\")\n .version(\"0.1.1\", \"-V, --version\", \"显示版本\")\n .helpOption(\"-h, --help\", \"显示帮助\")\n .addHelpCommand(\"help [command]\", \"显示指定命令的帮助\")\n .showHelpAfterError(\"(使用 --help 查看帮助)\")\n .configureHelp({\n styleTitle: (title) => titleMap[title] ?? title,\n subcommandTerm: (command) =>\n command.name() === \"help\" ? \"help [命令]\" : `${command.name()} [选项]`,\n })\n .configureOutput({\n outputError: (text, write) =>\n write(\n text\n .replace(/^error:/gm, \"错误:\")\n .replace(/required option '([^']+)' not specified/g, \"缺少必填选项 '$1'\")\n .replace(/unknown command '([^']+)'/g, \"未知命令 '$1'\")\n .replace(/unknown option '([^']+)'/g, \"未知选项 '$1'\"),\n ),\n });\n\n program\n .command(\"init\")\n .description(\"初始化编辑器无关的配置、中文提示协议和 schema\")\n .option(\"--output <path>\", \"输出目录;默认 ~/.asset-compound\")\n .option(\"--base-branch <name>\", \"目标仓库基线分支\", \"main\")\n .option(\"--mode <mode>\", \"初始化模式;当前支持 generic\", \"generic\")\n .option(\"--force\", \"覆盖已存在的初始化文件\")\n .action(\n async (options: {\n output?: string;\n baseBranch: string;\n mode: string;\n force?: boolean;\n }) => {\n if (options.mode !== \"generic\") {\n throw new Error(`init 当前仅支持 generic 模式;收到 mode=${options.mode}`);\n }\n print(\n await initGenericWorkspace({\n baseBranch: options.baseBranch,\n force: options.force ?? false,\n ...(options.output ? { output: options.output } : {}),\n }),\n );\n },\n );\n\n program\n .command(\"install-skill\")\n .description(\"安装可选编辑器适配器;当前支持 Cursor\")\n .requiredOption(\"--editor <name>\", \"编辑器名称;当前为 cursor\")\n .option(\"--target <path>\", \"自定义 Skill 安装目录\")\n .option(\"--force\", \"覆盖已存在的 Skill\")\n .action(\n async (options: {\n editor: string;\n target?: string;\n force?: boolean;\n }) =>\n print(\n await installEditorSkill({\n editor: options.editor,\n force: options.force ?? false,\n ...(options.target ? { target: options.target } : {}),\n }),\n ),\n );\n\n withCommonOptions(\n program.command(\"plan\").description(\"校验输入并输出执行计划\"),\n ).action(async (options: CommonOptions) => print(await plan(options.repo, options.config)));\n\n withCommonOptions(\n program.command(\"scan\").description(\"发现配置来源并计算内容指纹\"),\n ).action(async (options: CommonOptions) => {\n const config = await loadConfig(options.config);\n print(await scan(options.repo, config));\n });\n\n withCommonOptions(\n program.command(\"prepare\").description(\"输出通过 schema 的资产,不写入目标仓库\"),\n ).action(async (options: CommonOptions) => {\n const prepared = await inspectPipeline(options.repo, options.config);\n print(prepared.assets);\n });\n\n program\n .command(\"validate\")\n .description(\"校验补充后的四维资产 JSON\")\n .requiredOption(\"--input <path>\", \"由 prepare 生成并补充的 JSON 数组\")\n .action(async (options: { input: string }) =>\n print({ valid: true, count: (await loadAssetsFile(options.input)).length }),\n );\n\n withCommonOptions(\n program\n .command(\"render\")\n .description(\"执行完整管线并渲染文档\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n program\n .command(\"verify\")\n .description(\"验证工作树改动仅位于 docs/可读化\")\n .requiredOption(\"--repo <path>\", \"目标 Git 仓库\")\n .option(\"--config <path>\", \"同时证明无变化二次运行\")\n .action(async (options: Pick<CommonOptions, \"repo\"> & { config?: string }) => {\n if (options.config) {\n print(await verifySecondRun(options.repo, options.config));\n return;\n }\n print({ valid: true, changedFiles: await verifyGitScope(options.repo) });\n });\n\n withCommonOptions(\n program\n .command(\"finalize\")\n .description(\"执行、验证并输出最终结果\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n withCommonOptions(\n program\n .command(\"run\")\n .description(\"finalize 的别名\")\n .option(\"--assets <path>\", \"已校验的补充资产 JSON\"),\n ).action(async (options: CommonOptions) =>\n print(await runPipeline(options.repo, options.config, options.assets)),\n );\n\n await program.parseAsync(process.argv);\n}\n\nmain().catch((error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`asset-compound:${message}\\n`);\n process.exitCode = 1;\n});\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vinsonw2/asset-compound",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Editor-neutral CLI and protocol for incremental, traceable documentation assets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,7 +17,8 @@
17
17
  "templates",
18
18
  "prompts",
19
19
  "protocol",
20
- "skill"
20
+ "skill",
21
+ "artifacts"
21
22
  ],
22
23
  "exports": {
23
24
  ".": {