@icebreakers/monorepo 3.1.18 → 3.2.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.
Files changed (193) hide show
  1. package/README.md +9 -0
  2. package/dist/cli.cjs +43 -27
  3. package/dist/cli.mjs +33 -15
  4. package/dist/index.cjs +25 -6
  5. package/dist/index.d.cts +56 -37
  6. package/dist/index.d.mts +56 -37
  7. package/dist/index.mjs +2 -2
  8. package/dist/{upgrade-DAoYVyhV.cjs → upgrade-CEd5cMQ-.cjs} +160 -192
  9. package/dist/{upgrade-BlCigUlp.mjs → upgrade-Zbej0CnL.mjs} +156 -175
  10. package/package.json +6 -11
  11. package/resources/skills/icebreakers-monorepo-cli/SKILL.md +43 -0
  12. package/resources/skills/icebreakers-monorepo-cli/references/commands.md +75 -0
  13. package/resources/skills/icebreakers-monorepo-cli/references/config.md +63 -0
  14. package/resources/skills/icebreakers-monorepo-cli/references/templates.md +21 -0
  15. package/assets/.changeset/config.json +0 -16
  16. package/assets/.dockerignore +0 -44
  17. package/assets/.editorconfig +0 -12
  18. package/assets/.gitattributes +0 -218
  19. package/assets/.github/FUNDING.yml +0 -4
  20. package/assets/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  21. package/assets/.github/ISSUE_TEMPLATE/config.yml +0 -17
  22. package/assets/.github/workflows/ci.yml +0 -62
  23. package/assets/.github/workflows/release.yml +0 -57
  24. package/assets/.husky/commit-msg +0 -4
  25. package/assets/.husky/pre-commit +0 -4
  26. package/assets/.vscode/extensions.json +0 -6
  27. package/assets/.vscode/settings.json +0 -172
  28. package/assets/CODE_OF_CONDUCT.md +0 -128
  29. package/assets/CONTRIBUTING.md +0 -3
  30. package/assets/Dockerfile +0 -27
  31. package/assets/SECURITY.md +0 -21
  32. package/assets/commitlint.config.ts +0 -3
  33. package/assets/eslint.config.js +0 -7
  34. package/assets/gitignore +0 -38
  35. package/assets/lint-staged.config.js +0 -11
  36. package/assets/monorepo.config.ts +0 -22
  37. package/assets/netlify.toml +0 -14
  38. package/assets/package.json +0 -88
  39. package/assets/pnpm-workspace.yaml +0 -10
  40. package/assets/renovate.json +0 -28
  41. package/assets/stylelint.config.js +0 -3
  42. package/assets/tsconfig.json +0 -51
  43. package/assets/turbo.json +0 -74
  44. package/assets/vitest.config.ts +0 -123
  45. package/templates/apps/cli/bin/index.js +0 -2
  46. package/templates/apps/cli/dev/index.ts +0 -2
  47. package/templates/apps/cli/gitignore +0 -2
  48. package/templates/apps/cli/package.json +0 -35
  49. package/templates/apps/cli/src/cli.ts +0 -4
  50. package/templates/apps/cli/src/index.ts +0 -15
  51. package/templates/apps/cli/tsconfig.json +0 -7
  52. package/templates/apps/cli/tsup.config.ts +0 -13
  53. package/templates/apps/client/eslint.config.js +0 -12
  54. package/templates/apps/client/gitignore +0 -28
  55. package/templates/apps/client/index.html +0 -13
  56. package/templates/apps/client/package.json +0 -52
  57. package/templates/apps/client/public/vite.svg +0 -1
  58. package/templates/apps/client/src/App.vue +0 -11
  59. package/templates/apps/client/src/main.ts +0 -16
  60. package/templates/apps/client/src/pages/index.vue +0 -357
  61. package/templates/apps/client/src/query-keys.ts +0 -4
  62. package/templates/apps/client/src/router/index.ts +0 -13
  63. package/templates/apps/client/src/stores/i18n.ts +0 -24
  64. package/templates/apps/client/src/stores/index.ts +0 -15
  65. package/templates/apps/client/src/style.css +0 -1
  66. package/templates/apps/client/src/trpc/index.ts +0 -10
  67. package/templates/apps/client/src/vite-env.d.ts +0 -2
  68. package/templates/apps/client/tsconfig.app.json +0 -28
  69. package/templates/apps/client/tsconfig.json +0 -8
  70. package/templates/apps/client/tsconfig.node.json +0 -25
  71. package/templates/apps/client/tsconfig.worker.json +0 -11
  72. package/templates/apps/client/vite.config.ts +0 -57
  73. package/templates/apps/client/worker/app.ts +0 -24
  74. package/templates/apps/client/worker/config.ts +0 -1
  75. package/templates/apps/client/worker/fetch-entry.ts +0 -5
  76. package/templates/apps/client/worker/node-entry.ts +0 -13
  77. package/templates/apps/client/worker/trpc-router.ts +0 -24
  78. package/templates/apps/client/wrangler.jsonc +0 -24
  79. package/templates/apps/server/gitignore +0 -2
  80. package/templates/apps/server/package.json +0 -60
  81. package/templates/apps/server/src/app.ts +0 -191
  82. package/templates/apps/server/src/config.ts +0 -1
  83. package/templates/apps/server/src/fetch-entry.ts +0 -5
  84. package/templates/apps/server/src/node-entry.ts +0 -13
  85. package/templates/apps/server/test/index.test.ts +0 -14
  86. package/templates/apps/server/tsconfig.json +0 -24
  87. package/templates/apps/server/tsup.config.ts +0 -13
  88. package/templates/apps/server/vitest.config.ts +0 -15
  89. package/templates/apps/server/wrangler.jsonc +0 -18
  90. package/templates/apps/website/.vitepress/config.ts +0 -93
  91. package/templates/apps/website/.vitepress/theme/index.ts +0 -4
  92. package/templates/apps/website/.vitepress/theme/tailwind.css +0 -1
  93. package/templates/apps/website/gitignore +0 -1
  94. package/templates/apps/website/index.md +0 -127
  95. package/templates/apps/website/monorepo/index.md +0 -46
  96. package/templates/apps/website/monorepo/manage.md +0 -126
  97. package/templates/apps/website/monorepo/publish.md +0 -142
  98. package/templates/apps/website/package.json +0 -39
  99. package/templates/apps/website/public/logo.jpg +0 -0
  100. package/templates/apps/website/thinking.md +0 -88
  101. package/templates/apps/website/tools/changeset.md +0 -87
  102. package/templates/apps/website/tools/husky.md +0 -108
  103. package/templates/apps/website/tools/lint-staged.md +0 -79
  104. package/templates/apps/website/tools/pnpm.md +0 -100
  105. package/templates/apps/website/tools/renovate.md +0 -91
  106. package/templates/apps/website/tools/turborepo.md +0 -149
  107. package/templates/apps/website/why/assets/npm-dt.svg +0 -15
  108. package/templates/apps/website/why/assets/npm-ts.svg +0 -19
  109. package/templates/apps/website/why/examples/0.npm-basic-package/index.js +0 -10
  110. package/templates/apps/website/why/examples/0.npm-basic-package/package.json +0 -11
  111. package/templates/apps/website/why/examples/1.npm-basic-package/index.cjs +0 -12
  112. package/templates/apps/website/why/examples/1.npm-basic-package/index.d.ts +0 -1
  113. package/templates/apps/website/why/examples/1.npm-basic-package/index.js +0 -8
  114. package/templates/apps/website/why/examples/1.npm-basic-package/package.json +0 -19
  115. package/templates/apps/website/why/examples/2.npm-basic-package/README.md +0 -1
  116. package/templates/apps/website/why/examples/2.npm-basic-package/package-lock.json +0 -30
  117. package/templates/apps/website/why/examples/2.npm-basic-package/package.json +0 -35
  118. package/templates/apps/website/why/examples/2.npm-basic-package/rename-ext.js +0 -24
  119. package/templates/apps/website/why/examples/2.npm-basic-package/src/index.ts +0 -8
  120. package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.cjs.json +0 -8
  121. package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.esm.json +0 -7
  122. package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.json +0 -18
  123. package/templates/apps/website/why/examples/3.npm-basic-package/README.md +0 -1
  124. package/templates/apps/website/why/examples/3.npm-basic-package/build.config.ts +0 -24
  125. package/templates/apps/website/why/examples/3.npm-basic-package/package-lock.json +0 -3661
  126. package/templates/apps/website/why/examples/3.npm-basic-package/package.json +0 -32
  127. package/templates/apps/website/why/examples/3.npm-basic-package/src/index.ts +0 -8
  128. package/templates/apps/website/why/examples/3.npm-basic-package/tsconfig.json +0 -16
  129. package/templates/apps/website/why/examples/3.npm-basic-package/tsup.config.ts +0 -16
  130. package/templates/apps/website/why/examples/usage-cjs/cjs.cjs +0 -4
  131. package/templates/apps/website/why/examples/usage-cjs/esm.mjs +0 -4
  132. package/templates/apps/website/why/examples/usage-cjs/index.js +0 -12
  133. package/templates/apps/website/why/examples/usage-cjs/package-lock.json +0 -42
  134. package/templates/apps/website/why/examples/usage-cjs/package.json +0 -20
  135. package/templates/apps/website/why/examples/usage-esm/cjs.cjs +0 -4
  136. package/templates/apps/website/why/examples/usage-esm/createRequire.js +0 -7
  137. package/templates/apps/website/why/examples/usage-esm/esm.mjs +0 -4
  138. package/templates/apps/website/why/examples/usage-esm/index.js +0 -8
  139. package/templates/apps/website/why/examples/usage-esm/package-lock.json +0 -42
  140. package/templates/apps/website/why/examples/usage-esm/package.json +0 -21
  141. package/templates/apps/website/why/how-to-reuse-js-code.md +0 -250
  142. package/templates/apps/website/why/index.md +0 -1
  143. package/templates/apps/website/why/js-cjs-mjs.md +0 -99
  144. package/templates/apps/website/why/js-keywords.md +0 -132
  145. package/templates/apps/website/why/modern/bundlers.md +0 -79
  146. package/templates/apps/website/why/modern/dts.md +0 -93
  147. package/templates/apps/website/why/modern/esm-vs-cjs.md +0 -84
  148. package/templates/apps/website/why/modern/index.md +0 -55
  149. package/templates/apps/website/why/modern/package-entry-points.md +0 -128
  150. package/templates/apps/website/why/modern/typescript.md +0 -155
  151. package/templates/apps/website/why/publish-basic-npm-package.md +0 -146
  152. package/templates/apps/website/why/what-is-npm-package.md +0 -162
  153. package/templates/packages/tsdown-template/package.json +0 -47
  154. package/templates/packages/tsdown-template/src/index.ts +0 -5
  155. package/templates/packages/tsdown-template/test/index.test.ts +0 -11
  156. package/templates/packages/tsdown-template/tsconfig.json +0 -15
  157. package/templates/packages/tsdown-template/tsdown.config.ts +0 -9
  158. package/templates/packages/tsdown-template/vitest.config.ts +0 -15
  159. package/templates/packages/tsup-template/build.config.ts +0 -24
  160. package/templates/packages/tsup-template/package.json +0 -48
  161. package/templates/packages/tsup-template/src/index.ts +0 -12
  162. package/templates/packages/tsup-template/test/index.test.ts +0 -18
  163. package/templates/packages/tsup-template/tsconfig.json +0 -15
  164. package/templates/packages/tsup-template/tsup.config.ts +0 -18
  165. package/templates/packages/tsup-template/vitest.config.ts +0 -15
  166. package/templates/packages/unbuild-template/build.config.ts +0 -24
  167. package/templates/packages/unbuild-template/package.json +0 -48
  168. package/templates/packages/unbuild-template/src/index.ts +0 -9
  169. package/templates/packages/unbuild-template/src/utils.ts +0 -3
  170. package/templates/packages/unbuild-template/test/index.test.ts +0 -18
  171. package/templates/packages/unbuild-template/tsconfig.json +0 -15
  172. package/templates/packages/unbuild-template/vitest.config.ts +0 -15
  173. package/templates/packages/vue-lib-template/eslint.config.js +0 -12
  174. package/templates/packages/vue-lib-template/gitignore +0 -1
  175. package/templates/packages/vue-lib-template/index.html +0 -13
  176. package/templates/packages/vue-lib-template/lib/HelloWorld.vue +0 -21
  177. package/templates/packages/vue-lib-template/lib/index.ts +0 -3
  178. package/templates/packages/vue-lib-template/package.json +0 -61
  179. package/templates/packages/vue-lib-template/src/App.vue +0 -9
  180. package/templates/packages/vue-lib-template/src/main.ts +0 -8
  181. package/templates/packages/vue-lib-template/src/pages/index.vue +0 -7
  182. package/templates/packages/vue-lib-template/src/router/index.ts +0 -11
  183. package/templates/packages/vue-lib-template/src/style.css +0 -1
  184. package/templates/packages/vue-lib-template/src/vite-env.d.ts +0 -2
  185. package/templates/packages/vue-lib-template/test/index.test.ts +0 -13
  186. package/templates/packages/vue-lib-template/tsconfig.app.json +0 -30
  187. package/templates/packages/vue-lib-template/tsconfig.json +0 -14
  188. package/templates/packages/vue-lib-template/tsconfig.node.json +0 -25
  189. package/templates/packages/vue-lib-template/tsconfig.test.json +0 -40
  190. package/templates/packages/vue-lib-template/vite.config.ts +0 -54
  191. package/templates/packages/vue-lib-template/vite.shared.config.ts +0 -13
  192. package/templates/packages/vue-lib-template/vitest.config.ts +0 -13
  193. /package/{assets/LICENSE → LICENSE} +0 -0
package/README.md CHANGED
@@ -15,10 +15,19 @@ npx monorepo -h
15
15
  npx monorepo ai create -o agentic-task.md -f
16
16
  # 或使用别名
17
17
  npx monorepo ai new --name checkout
18
+ # 同步技能到全局目录
19
+ npx monorepo skills sync
20
+ # 仅同步指定目标
21
+ npx monorepo skills sync --codex
22
+ npx monorepo skills sync --claude
18
23
  ```
19
24
 
20
25
  `monorepo ai create`(别名 `ai new`)默认会把模板写入 `agentic/prompts/<timestamp>/prompt.md`,每次都会建一个以时间命名的目录,并在命令行提示可修改该目录名称,方便追加截图等素材;也可以通过参数自定义路径。
21
26
 
27
+ `@icebreakers/monorepo` 在运行时会从 `@icebreakers/monorepo-templates` 读取模板、骨架与升级资产。
28
+
29
+ `monorepo skills sync` 会将包内 `resources/skills/icebreakers-monorepo-cli` 同步到 `~/.codex/skills/icebreakers-monorepo-cli` 或 `~/.claude/skills/icebreakers-monorepo-cli`;未指定目标时会交互选择。
30
+
22
31
  `monorepo ai create` 支持批量生成:
23
32
 
24
33
  ```bash
package/dist/cli.cjs CHANGED
@@ -1,19 +1,15 @@
1
- const require_upgrade = require('./upgrade-DAoYVyhV.cjs');
1
+ const require_upgrade = require('./upgrade-CEd5cMQ-.cjs');
2
2
  let node_process = require("node:process");
3
3
  node_process = require_upgrade.__toESM(node_process);
4
- let _inquirer_input = require("@inquirer/input");
5
- _inquirer_input = require_upgrade.__toESM(_inquirer_input);
6
- let _inquirer_select = require("@inquirer/select");
7
- _inquirer_select = require_upgrade.__toESM(_inquirer_select);
8
- let commander = require("commander");
4
+ let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
9
5
 
10
6
  //#region src/cli/program.ts
11
7
  const cwd = node_process.default.cwd();
12
- commander.program.name(require_upgrade.name).version(require_upgrade.version);
8
+ _icebreakers_monorepo_templates.program.name(require_upgrade.name).version(require_upgrade.version);
13
9
  /**
14
10
  * 升级子命令:同步 assets 模板到当前仓库。
15
11
  */
16
- commander.program.command("upgrade").description("升级/同步 monorepo 相关包").alias("up").option("-i,--interactive").option("-c,--core", "仅同步核心配置,跳过 GitHub 相关资产").option("--outDir <dir>", "Output directory").option("-s,--skip-overwrite", "skip overwrite").action(async (opts) => {
12
+ _icebreakers_monorepo_templates.program.command("upgrade").description("升级/同步 monorepo 相关包").alias("up").option("-i,--interactive").option("-c,--core", "仅同步核心配置,跳过 GitHub 相关资产").option("--outDir <dir>", "Output directory").option("-s,--skip-overwrite", "skip overwrite").action(async (opts) => {
17
13
  await require_upgrade.upgradeMonorepo({
18
14
  ...opts,
19
15
  core: opts.core ?? false,
@@ -21,15 +17,15 @@ commander.program.command("upgrade").description("升级/同步 monorepo 相关
21
17
  });
22
18
  require_upgrade.logger.success("upgrade @icebreakers/monorepo ok!");
23
19
  });
24
- commander.program.command("init").description("初始化 package.json 和 README.md").action(async () => {
20
+ _icebreakers_monorepo_templates.program.command("init").description("初始化 package.json 和 README.md").action(async () => {
25
21
  await require_upgrade.init(cwd);
26
22
  require_upgrade.logger.success("init finished!");
27
23
  });
28
- commander.program.command("sync").description("向 npmmirror 同步所有子包").action(async () => {
24
+ _icebreakers_monorepo_templates.program.command("sync").description("向 npmmirror 同步所有子包").action(async () => {
29
25
  await require_upgrade.syncNpmMirror(cwd);
30
26
  require_upgrade.logger.success("sync npm mirror finished!");
31
27
  });
32
- commander.program.command("clean").description("清除选中的包").option("-y, --yes", "跳过交互直接清理(等价 autoConfirm)").option("--include-private", "包含 private 包").option("--pinned-version <version>", "覆盖写入的 @icebreakers/monorepo 版本").action(async (opts) => {
28
+ _icebreakers_monorepo_templates.program.command("clean").description("清除选中的包").option("-y, --yes", "跳过交互直接清理(等价 autoConfirm)").option("--include-private", "包含 private 包").option("--pinned-version <version>", "覆盖写入的 @icebreakers/monorepo 版本").action(async (opts) => {
33
29
  const overrides = {};
34
30
  if (opts.yes) overrides.autoConfirm = true;
35
31
  if (opts.includePrivate) overrides.includePrivate = true;
@@ -37,18 +33,36 @@ commander.program.command("clean").description("清除选中的包").option("-y,
37
33
  await require_upgrade.cleanProjects(cwd, overrides);
38
34
  require_upgrade.logger.success("clean projects finished!");
39
35
  });
40
- commander.program.command("mirror").description("设置 VscodeBinaryMirror").action(async () => {
36
+ _icebreakers_monorepo_templates.program.command("mirror").description("设置 VscodeBinaryMirror").action(async () => {
41
37
  await require_upgrade.setVscodeBinaryMirror(cwd);
42
38
  require_upgrade.logger.success("set vscode binary mirror finished!");
43
39
  });
44
- commander.program.command("ai").description("AI 助手工具集").command("create").alias("new").description("生成 Agentic 任务提示词模板").option("-o, --output <path>", "输出到指定文件").option("-f, --force", "允许覆盖已存在文件").option("--format <md|json>", "模板格式,默认 md").option("-d, --dir <path>", "默认输出目录(默认 agentic/prompts,下级自动创建时间文件夹),配合 --name / --tasks 使用").option("-n, --name <name>", "使用名称快速生成文件,自动添加后缀").option("-t, --tasks <file>", "从 JSON 数组批量生成模板").action(async (opts) => {
40
+ _icebreakers_monorepo_templates.program.command("skills").description("技能工具集").command("sync").description("同步 resources/skills/icebreakers-monorepo-cli 到全局目录").option("--codex", "同步到 ~/.codex/skills").option("--claude", "同步到 ~/.claude/skills").option("--all", "同步全部目标").action(async (opts) => {
41
+ const selected = /* @__PURE__ */ new Set();
42
+ if (opts.all) for (const target of require_upgrade.skillTargets) selected.add(target);
43
+ else {
44
+ if (opts.codex) selected.add("codex");
45
+ if (opts.claude) selected.add("claude");
46
+ }
47
+ const results = await require_upgrade.syncSkills(selected.size ? {
48
+ cwd,
49
+ targets: Array.from(selected)
50
+ } : { cwd });
51
+ if (!results.length) {
52
+ require_upgrade.logger.info("未选择任何目标,已跳过同步。");
53
+ return;
54
+ }
55
+ require_upgrade.logger.info(`[已同步的目标]:\n${results.map((item) => `- ${item.target}: ${item.dest}`).join("\n")}\n`);
56
+ require_upgrade.logger.success("skills sync finished!");
57
+ });
58
+ _icebreakers_monorepo_templates.program.command("ai").description("AI 助手工具集").command("create").alias("new").description("生成 Agentic 任务提示词模板").option("-o, --output <path>", "输出到指定文件").option("-f, --force", "允许覆盖已存在文件").option("--format <md|json>", "模板格式,默认 md").option("-d, --dir <path>", "默认输出目录(默认 agentic/prompts,下级自动创建时间文件夹),配合 --name / --tasks 使用").option("-n, --name <name>", "使用名称快速生成文件,自动添加后缀").option("-t, --tasks <file>", "从 JSON 数组批量生成模板").action(async (opts) => {
45
59
  const aiConfig = await require_upgrade.resolveCommandConfig("ai", cwd);
46
60
  const format = opts.format ?? aiConfig?.format ?? "md";
47
61
  const force = opts.force ?? aiConfig?.force ?? false;
48
62
  const output = opts.output ?? aiConfig?.output;
49
63
  const baseDir = opts.dir ?? aiConfig?.baseDir ?? require_upgrade.defaultAgenticBaseDir;
50
64
  const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
51
- const name$1 = opts.name;
65
+ const templateName = opts.name;
52
66
  if (Boolean(tasksFile && !opts.output && !opts.name)) {
53
67
  if (!tasksFile) throw new Error("tasks file path is required when using tasks mode");
54
68
  await require_upgrade.generateAgenticTemplates(await require_upgrade.loadAgenticTasks(tasksFile, cwd), {
@@ -60,42 +74,44 @@ commander.program.command("ai").description("AI 助手工具集").command("creat
60
74
  return;
61
75
  }
62
76
  let folderName;
63
- if (!output && !name$1) {
77
+ if (!output && !templateName) {
64
78
  const generated = require_upgrade.createTimestampFolderName();
65
- folderName = ((await (0, _inquirer_input.default)({
79
+ folderName = ((await (0, _icebreakers_monorepo_templates.input)({
66
80
  message: "提示词将写入哪个文件夹?(可回车确认或自定义)",
67
81
  default: generated
68
82
  }))?.trim?.() ?? generated) || generated;
69
83
  }
70
- await require_upgrade.generateAgenticTemplate({
84
+ const templateOptions = {
71
85
  cwd,
72
- output,
73
86
  force,
74
87
  format,
75
- baseDir,
76
- name: name$1,
77
- folderName
78
- });
88
+ baseDir
89
+ };
90
+ if (output !== void 0) templateOptions.output = output;
91
+ if (templateName !== void 0) templateOptions.name = templateName;
92
+ if (folderName !== void 0) templateOptions.folderName = folderName;
93
+ await require_upgrade.generateAgenticTemplate(templateOptions);
79
94
  });
80
- commander.program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (name$1) => {
95
+ _icebreakers_monorepo_templates.program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (inputName) => {
81
96
  const createConfig = await require_upgrade.resolveCommandConfig("create", cwd);
82
- if (!name$1) name$1 = await (0, _inquirer_input.default)({
97
+ let packageName = inputName;
98
+ if (!packageName) packageName = await (0, _icebreakers_monorepo_templates.input)({
83
99
  message: "请输入包名",
84
100
  default: createConfig?.name ?? "my-package"
85
101
  });
86
- const type = await (0, _inquirer_select.default)({
102
+ const type = await (0, _icebreakers_monorepo_templates.select)({
87
103
  message: "请选择模板类型",
88
104
  choices: require_upgrade.getCreateChoices(createConfig?.choices),
89
105
  default: createConfig?.type ?? createConfig?.defaultTemplate ?? require_upgrade.defaultTemplate
90
106
  });
91
107
  await require_upgrade.createNewProject({
92
- name: name$1,
108
+ name: packageName,
93
109
  cwd,
94
110
  type
95
111
  });
96
112
  require_upgrade.logger.success("create a package");
97
113
  });
98
- var program_default = commander.program;
114
+ var program_default = _icebreakers_monorepo_templates.program;
99
115
 
100
116
  //#endregion
101
117
  //#region src/cli.ts
package/dist/cli.mjs CHANGED
@@ -1,8 +1,6 @@
1
- import { A as createTimestampFolderName, E as cleanProjects, F as logger, M as generateAgenticTemplate, N as generateAgenticTemplates, P as loadAgenticTasks, T as version, c as getCreateChoices, i as init, j as defaultAgenticBaseDir, k as resolveCommandConfig, n as syncNpmMirror, o as createNewProject, r as setVscodeBinaryMirror, s as defaultTemplate, t as upgradeMonorepo, w as name } from "./upgrade-BlCigUlp.mjs";
1
+ import { C as syncSkills, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name, P as defaultAgenticBaseDir, R as logger, S as skillTargets, b as cleanProjects, c as getCreateChoices, i as init, k as version, n as syncNpmMirror, o as createNewProject, r as setVscodeBinaryMirror, s as defaultTemplate, t as upgradeMonorepo } from "./upgrade-Zbej0CnL.mjs";
2
2
  import process from "node:process";
3
- import input from "@inquirer/input";
4
- import select from "@inquirer/select";
5
- import { program } from "commander";
3
+ import { input, program, select } from "@icebreakers/monorepo-templates";
6
4
 
7
5
  //#region src/cli/program.ts
8
6
  const cwd = process.cwd();
@@ -38,6 +36,24 @@ program.command("mirror").description("设置 VscodeBinaryMirror").action(async
38
36
  await setVscodeBinaryMirror(cwd);
39
37
  logger.success("set vscode binary mirror finished!");
40
38
  });
39
+ program.command("skills").description("技能工具集").command("sync").description("同步 resources/skills/icebreakers-monorepo-cli 到全局目录").option("--codex", "同步到 ~/.codex/skills").option("--claude", "同步到 ~/.claude/skills").option("--all", "同步全部目标").action(async (opts) => {
40
+ const selected = /* @__PURE__ */ new Set();
41
+ if (opts.all) for (const target of skillTargets) selected.add(target);
42
+ else {
43
+ if (opts.codex) selected.add("codex");
44
+ if (opts.claude) selected.add("claude");
45
+ }
46
+ const results = await syncSkills(selected.size ? {
47
+ cwd,
48
+ targets: Array.from(selected)
49
+ } : { cwd });
50
+ if (!results.length) {
51
+ logger.info("未选择任何目标,已跳过同步。");
52
+ return;
53
+ }
54
+ logger.info(`[已同步的目标]:\n${results.map((item) => `- ${item.target}: ${item.dest}`).join("\n")}\n`);
55
+ logger.success("skills sync finished!");
56
+ });
41
57
  program.command("ai").description("AI 助手工具集").command("create").alias("new").description("生成 Agentic 任务提示词模板").option("-o, --output <path>", "输出到指定文件").option("-f, --force", "允许覆盖已存在文件").option("--format <md|json>", "模板格式,默认 md").option("-d, --dir <path>", "默认输出目录(默认 agentic/prompts,下级自动创建时间文件夹),配合 --name / --tasks 使用").option("-n, --name <name>", "使用名称快速生成文件,自动添加后缀").option("-t, --tasks <file>", "从 JSON 数组批量生成模板").action(async (opts) => {
42
58
  const aiConfig = await resolveCommandConfig("ai", cwd);
43
59
  const format = opts.format ?? aiConfig?.format ?? "md";
@@ -45,7 +61,7 @@ program.command("ai").description("AI 助手工具集").command("create").alias(
45
61
  const output = opts.output ?? aiConfig?.output;
46
62
  const baseDir = opts.dir ?? aiConfig?.baseDir ?? defaultAgenticBaseDir;
47
63
  const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
48
- const name$1 = opts.name;
64
+ const templateName = opts.name;
49
65
  if (Boolean(tasksFile && !opts.output && !opts.name)) {
50
66
  if (!tasksFile) throw new Error("tasks file path is required when using tasks mode");
51
67
  await generateAgenticTemplates(await loadAgenticTasks(tasksFile, cwd), {
@@ -57,26 +73,28 @@ program.command("ai").description("AI 助手工具集").command("create").alias(
57
73
  return;
58
74
  }
59
75
  let folderName;
60
- if (!output && !name$1) {
76
+ if (!output && !templateName) {
61
77
  const generated = createTimestampFolderName();
62
78
  folderName = ((await input({
63
79
  message: "提示词将写入哪个文件夹?(可回车确认或自定义)",
64
80
  default: generated
65
81
  }))?.trim?.() ?? generated) || generated;
66
82
  }
67
- await generateAgenticTemplate({
83
+ const templateOptions = {
68
84
  cwd,
69
- output,
70
85
  force,
71
86
  format,
72
- baseDir,
73
- name: name$1,
74
- folderName
75
- });
87
+ baseDir
88
+ };
89
+ if (output !== void 0) templateOptions.output = output;
90
+ if (templateName !== void 0) templateOptions.name = templateName;
91
+ if (folderName !== void 0) templateOptions.folderName = folderName;
92
+ await generateAgenticTemplate(templateOptions);
76
93
  });
77
- program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (name$1) => {
94
+ program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (inputName) => {
78
95
  const createConfig = await resolveCommandConfig("create", cwd);
79
- if (!name$1) name$1 = await input({
96
+ let packageName = inputName;
97
+ if (!packageName) packageName = await input({
80
98
  message: "请输入包名",
81
99
  default: createConfig?.name ?? "my-package"
82
100
  });
@@ -86,7 +104,7 @@ program.command("new").description("创建一个新的子包").alias("create").a
86
104
  default: createConfig?.type ?? createConfig?.defaultTemplate ?? defaultTemplate
87
105
  });
88
106
  await createNewProject({
89
- name: name$1,
107
+ name: packageName,
90
108
  cwd,
91
109
  type
92
110
  });
package/dist/index.cjs CHANGED
@@ -1,7 +1,8 @@
1
- const require_upgrade = require('./upgrade-DAoYVyhV.cjs');
1
+ const require_upgrade = require('./upgrade-CEd5cMQ-.cjs');
2
+ let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
2
3
 
3
4
  exports.GitClient = require_upgrade.GitClient;
4
- exports.assetsDir = require_upgrade.assetsDir;
5
+ exports.assetsDir = _icebreakers_monorepo_templates.assetsDir;
5
6
  exports.cleanProjects = require_upgrade.cleanProjects;
6
7
  exports.createContext = require_upgrade.createContext;
7
8
  exports.createNewProject = require_upgrade.createNewProject;
@@ -13,12 +14,18 @@ exports.generateAgenticTemplate = require_upgrade.generateAgenticTemplate;
13
14
  exports.generateAgenticTemplates = require_upgrade.generateAgenticTemplates;
14
15
  exports.getCreateChoices = require_upgrade.getCreateChoices;
15
16
  exports.getFileHash = require_upgrade.getFileHash;
17
+ exports.getSkillTargetPaths = require_upgrade.getSkillTargetPaths;
16
18
  exports.getTemplateMap = require_upgrade.getTemplateMap;
17
19
  exports.getWorkspaceData = require_upgrade.getWorkspaceData;
18
20
  exports.getWorkspacePackages = require_upgrade.getWorkspacePackages;
19
21
  exports.init = require_upgrade.init;
20
22
  exports.isFileChanged = require_upgrade.isFileChanged;
21
- exports.isGitignoreFile = require_upgrade.isGitignoreFile;
23
+ Object.defineProperty(exports, 'isGitignoreFile', {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _icebreakers_monorepo_templates.isGitignoreFile;
27
+ }
28
+ });
22
29
  exports.isIgnorableFsError = require_upgrade.isIgnorableFsError;
23
30
  exports.isMatch = require_upgrade.isMatch;
24
31
  exports.loadAgenticTasks = require_upgrade.loadAgenticTasks;
@@ -34,11 +41,23 @@ exports.packageDir = require_upgrade.packageDir;
34
41
  exports.resolveCommandConfig = require_upgrade.resolveCommandConfig;
35
42
  exports.rootDir = require_upgrade.rootDir;
36
43
  exports.setVscodeBinaryMirror = require_upgrade.setVscodeBinaryMirror;
44
+ exports.skillTargets = require_upgrade.skillTargets;
37
45
  exports.syncNpmMirror = require_upgrade.syncNpmMirror;
46
+ exports.syncSkills = require_upgrade.syncSkills;
38
47
  exports.templateMap = require_upgrade.templateMap;
39
- exports.templatesDir = require_upgrade.templatesDir;
40
- exports.toPublishGitignorePath = require_upgrade.toPublishGitignorePath;
41
- exports.toWorkspaceGitignorePath = require_upgrade.toWorkspaceGitignorePath;
48
+ exports.templatesDir = _icebreakers_monorepo_templates.templatesDir;
49
+ Object.defineProperty(exports, 'toPublishGitignorePath', {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _icebreakers_monorepo_templates.toPublishGitignorePath;
53
+ }
54
+ });
55
+ Object.defineProperty(exports, 'toWorkspaceGitignorePath', {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _icebreakers_monorepo_templates.toWorkspaceGitignorePath;
59
+ }
60
+ });
42
61
  exports.updateIssueTemplateConfig = require_upgrade.updateIssueTemplateConfig;
43
62
  exports.upgradeMonorepo = require_upgrade.upgradeMonorepo;
44
63
  Object.defineProperty(exports, 'version', {
package/dist/index.d.cts CHANGED
@@ -4,6 +4,7 @@ import { ConfigValues, SimpleGit, SimpleGitOptions } from "simple-git";
4
4
  import * as git_url_parse0 from "git-url-parse";
5
5
  import gitUrlParse from "git-url-parse";
6
6
  import * as _pnpm_types0 from "@pnpm/types";
7
+ import { assetsDir, isGitignoreFile, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath } from "@icebreakers/monorepo-templates";
7
8
  import * as consola0 from "consola";
8
9
  import crypto from "node:crypto";
9
10
 
@@ -75,19 +76,47 @@ declare function generateAgenticTemplates(tasks: AgenticTemplateTask[], defaults
75
76
  //#endregion
76
77
  //#region src/commands/create.d.ts
77
78
  /**
78
- * 内置模板映射表,value 指向仓库中对应模板所在路径。
79
+ * 内置模板映射表,source 指向 templates 根目录下的来源目录,target 为生成路径。
79
80
  */
80
81
  declare const templateMap: {
81
- readonly tsup: "packages/tsup-template";
82
- readonly tsdown: "packages/tsdown-template";
83
- readonly unbuild: "packages/unbuild-template";
84
- readonly 'vue-lib': "packages/vue-lib-template";
85
- readonly 'hono-server': "apps/server";
86
- readonly 'vue-hono': "apps/client";
87
- readonly vitepress: "apps/website";
88
- readonly cli: "apps/cli";
82
+ readonly tsup: {
83
+ readonly source: "tsup";
84
+ readonly target: "packages/tsup";
85
+ };
86
+ readonly tsdown: {
87
+ readonly source: "tsdown";
88
+ readonly target: "packages/tsdown";
89
+ };
90
+ readonly unbuild: {
91
+ readonly source: "unbuild";
92
+ readonly target: "packages/unbuild";
93
+ };
94
+ readonly 'vue-lib': {
95
+ readonly source: "vue-lib";
96
+ readonly target: "packages/vue-lib";
97
+ };
98
+ readonly 'hono-server': {
99
+ readonly source: "server";
100
+ readonly target: "apps/server";
101
+ };
102
+ readonly 'vue-hono': {
103
+ readonly source: "client";
104
+ readonly target: "apps/client";
105
+ };
106
+ readonly vitepress: {
107
+ readonly source: "vitepress";
108
+ readonly target: "apps/website";
109
+ };
110
+ readonly cli: {
111
+ readonly source: "cli";
112
+ readonly target: "apps/cli";
113
+ };
89
114
  };
90
115
  type CreateNewProjectType = keyof typeof templateMap;
116
+ interface TemplateDefinition {
117
+ source: string;
118
+ target: string;
119
+ }
91
120
  interface CreateNewProjectOptions {
92
121
  name?: string;
93
122
  cwd?: string;
@@ -125,7 +154,7 @@ declare function getCreateChoices(choices?: CreateChoiceOption[]): CreateChoiceO
125
154
  /**
126
155
  * 合并内置与自定义模板映射,允许扩展新的模板类型。
127
156
  */
128
- declare function getTemplateMap(extra?: Record<string, string>): Record<string, string>;
157
+ declare function getTemplateMap(extra?: Record<string, string | TemplateDefinition>): Record<string, TemplateDefinition>;
129
158
  /**
130
159
  * 根据提供的参数或配置生成新工程目录,并可自动改写 package.json。
131
160
  */
@@ -191,10 +220,10 @@ interface CreateCommandConfig extends Partial<Omit<CreateNewProjectOptions, 'cwd
191
220
  */
192
221
  templatesDir?: string;
193
222
  /**
194
- * 扩展模板映射表,key 为类型,value 为模板相对路径。
223
+ * 扩展模板映射表,key 为类型,value 为模板来源/目标路径。
195
224
  * @default 内置 `templateMap`
196
225
  */
197
- templateMap?: Record<string, string>;
226
+ templateMap?: Record<string, string | TemplateDefinition>;
198
227
  /**
199
228
  * 自定义交互提示的选项列表。
200
229
  * @default 内置 `baseChoices`
@@ -360,6 +389,19 @@ interface MonorepoConfig {
360
389
  };
361
390
  }
362
391
  //#endregion
392
+ //#region src/commands/skills.d.ts
393
+ declare const skillTargets: readonly ["codex", "claude"];
394
+ type SkillTarget = typeof skillTargets[number];
395
+ interface SyncSkillsOptions {
396
+ cwd?: string;
397
+ targets?: SkillTarget[];
398
+ }
399
+ declare function getSkillTargetPaths(homeDir?: string): Record<SkillTarget, string>;
400
+ declare function syncSkills(options?: SyncSkillsOptions): Promise<{
401
+ target: SkillTarget;
402
+ dest: string;
403
+ }[]>;
404
+ //#endregion
363
405
  //#region src/core/git.d.ts
364
406
  /**
365
407
  * 对 simple-git 的轻量封装,集中处理配置缓存与常用查询。
@@ -465,17 +507,9 @@ declare let version: string;
465
507
  //#endregion
466
508
  //#region src/constants.d.ts
467
509
  /**
468
- * @icebreakers/monorepo 包的根目录,所有模板与资产目录都以此为基准。
510
+ * @icebreakers/monorepo 包的根目录。
469
511
  */
470
512
  declare const packageDir: string;
471
- /**
472
- * CLI 提供的模板目录,`monorepo new` 会从这里复制目标工程骨架。
473
- */
474
- declare const templatesDir: string;
475
- /**
476
- * 升级命令需要写入的静态文件集合,位于 assets 目录中。
477
- */
478
- declare const assetsDir: string;
479
513
  /**
480
514
  * monorepo 根目录,方便需要跳出当前包的逻辑(例如定位工作区文件)。
481
515
  */
@@ -544,21 +578,6 @@ declare function isIgnorableFsError(error: unknown): error is NodeJS.ErrnoExcept
544
578
  */
545
579
  declare function updateIssueTemplateConfig(source: string, repoName?: string): string;
546
580
  //#endregion
547
- //#region src/utils/gitignore.d.ts
548
- /**
549
- * Map a workspace path (containing `.gitignore`) to its packaged variant.
550
- */
551
- declare function toPublishGitignorePath(input: string): string;
552
- /**
553
- * Map a packaged path (containing `gitignore`) back to the workspace form.
554
- */
555
- declare function toWorkspaceGitignorePath(input: string): string;
556
- /**
557
- * Convenient helper to check whether a filename (with or without dot prefix)
558
- * should be treated as a gitignore file.
559
- */
560
- declare function isGitignoreFile(name: string): boolean;
561
- //#endregion
562
581
  //#region src/utils/hash.d.ts
563
582
  /**
564
583
  * 生成给定二进制内容的 md5 摘要,用于快速比较文件内容。
@@ -579,4 +598,4 @@ declare function escapeStringRegexp(str: string): string;
579
598
  */
580
599
  declare function isMatch(str: string, arr: RegExp[]): boolean;
581
600
  //#endregion
582
- export { AgenticTemplateFormat, AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, CreateNewProjectOptions, GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SyncCommandConfig, type UpgradeCommandConfig, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, syncNpmMirror, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
601
+ export { AgenticTemplateFormat, AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, CreateNewProjectOptions, GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, SkillTarget, type SyncCommandConfig, SyncSkillsOptions, type UpgradeCommandConfig, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getSkillTargetPaths, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, skillTargets, syncNpmMirror, syncSkills, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
package/dist/index.d.mts CHANGED
@@ -3,6 +3,7 @@ import gitUrlParse from "git-url-parse";
3
3
  import * as simple_git0 from "simple-git";
4
4
  import { ConfigValues, SimpleGit, SimpleGitOptions } from "simple-git";
5
5
  import * as consola0 from "consola";
6
+ import { assetsDir, isGitignoreFile, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath } from "@icebreakers/monorepo-templates";
6
7
  import crypto from "node:crypto";
7
8
  import * as _pnpm_types0 from "@pnpm/types";
8
9
  import { PackageJson } from "pkg-types";
@@ -75,19 +76,47 @@ declare function generateAgenticTemplates(tasks: AgenticTemplateTask[], defaults
75
76
  //#endregion
76
77
  //#region src/commands/create.d.ts
77
78
  /**
78
- * 内置模板映射表,value 指向仓库中对应模板所在路径。
79
+ * 内置模板映射表,source 指向 templates 根目录下的来源目录,target 为生成路径。
79
80
  */
80
81
  declare const templateMap: {
81
- readonly tsup: "packages/tsup-template";
82
- readonly tsdown: "packages/tsdown-template";
83
- readonly unbuild: "packages/unbuild-template";
84
- readonly 'vue-lib': "packages/vue-lib-template";
85
- readonly 'hono-server': "apps/server";
86
- readonly 'vue-hono': "apps/client";
87
- readonly vitepress: "apps/website";
88
- readonly cli: "apps/cli";
82
+ readonly tsup: {
83
+ readonly source: "tsup";
84
+ readonly target: "packages/tsup";
85
+ };
86
+ readonly tsdown: {
87
+ readonly source: "tsdown";
88
+ readonly target: "packages/tsdown";
89
+ };
90
+ readonly unbuild: {
91
+ readonly source: "unbuild";
92
+ readonly target: "packages/unbuild";
93
+ };
94
+ readonly 'vue-lib': {
95
+ readonly source: "vue-lib";
96
+ readonly target: "packages/vue-lib";
97
+ };
98
+ readonly 'hono-server': {
99
+ readonly source: "server";
100
+ readonly target: "apps/server";
101
+ };
102
+ readonly 'vue-hono': {
103
+ readonly source: "client";
104
+ readonly target: "apps/client";
105
+ };
106
+ readonly vitepress: {
107
+ readonly source: "vitepress";
108
+ readonly target: "apps/website";
109
+ };
110
+ readonly cli: {
111
+ readonly source: "cli";
112
+ readonly target: "apps/cli";
113
+ };
89
114
  };
90
115
  type CreateNewProjectType = keyof typeof templateMap;
116
+ interface TemplateDefinition {
117
+ source: string;
118
+ target: string;
119
+ }
91
120
  interface CreateNewProjectOptions {
92
121
  name?: string;
93
122
  cwd?: string;
@@ -125,7 +154,7 @@ declare function getCreateChoices(choices?: CreateChoiceOption[]): CreateChoiceO
125
154
  /**
126
155
  * 合并内置与自定义模板映射,允许扩展新的模板类型。
127
156
  */
128
- declare function getTemplateMap(extra?: Record<string, string>): Record<string, string>;
157
+ declare function getTemplateMap(extra?: Record<string, string | TemplateDefinition>): Record<string, TemplateDefinition>;
129
158
  /**
130
159
  * 根据提供的参数或配置生成新工程目录,并可自动改写 package.json。
131
160
  */
@@ -191,10 +220,10 @@ interface CreateCommandConfig extends Partial<Omit<CreateNewProjectOptions, 'cwd
191
220
  */
192
221
  templatesDir?: string;
193
222
  /**
194
- * 扩展模板映射表,key 为类型,value 为模板相对路径。
223
+ * 扩展模板映射表,key 为类型,value 为模板来源/目标路径。
195
224
  * @default 内置 `templateMap`
196
225
  */
197
- templateMap?: Record<string, string>;
226
+ templateMap?: Record<string, string | TemplateDefinition>;
198
227
  /**
199
228
  * 自定义交互提示的选项列表。
200
229
  * @default 内置 `baseChoices`
@@ -360,6 +389,19 @@ interface MonorepoConfig {
360
389
  };
361
390
  }
362
391
  //#endregion
392
+ //#region src/commands/skills.d.ts
393
+ declare const skillTargets: readonly ["codex", "claude"];
394
+ type SkillTarget = typeof skillTargets[number];
395
+ interface SyncSkillsOptions {
396
+ cwd?: string;
397
+ targets?: SkillTarget[];
398
+ }
399
+ declare function getSkillTargetPaths(homeDir?: string): Record<SkillTarget, string>;
400
+ declare function syncSkills(options?: SyncSkillsOptions): Promise<{
401
+ target: SkillTarget;
402
+ dest: string;
403
+ }[]>;
404
+ //#endregion
363
405
  //#region src/core/git.d.ts
364
406
  /**
365
407
  * 对 simple-git 的轻量封装,集中处理配置缓存与常用查询。
@@ -465,17 +507,9 @@ declare let version: string;
465
507
  //#endregion
466
508
  //#region src/constants.d.ts
467
509
  /**
468
- * @icebreakers/monorepo 包的根目录,所有模板与资产目录都以此为基准。
510
+ * @icebreakers/monorepo 包的根目录。
469
511
  */
470
512
  declare const packageDir: string;
471
- /**
472
- * CLI 提供的模板目录,`monorepo new` 会从这里复制目标工程骨架。
473
- */
474
- declare const templatesDir: string;
475
- /**
476
- * 升级命令需要写入的静态文件集合,位于 assets 目录中。
477
- */
478
- declare const assetsDir: string;
479
513
  /**
480
514
  * monorepo 根目录,方便需要跳出当前包的逻辑(例如定位工作区文件)。
481
515
  */
@@ -544,21 +578,6 @@ declare function isIgnorableFsError(error: unknown): error is NodeJS.ErrnoExcept
544
578
  */
545
579
  declare function updateIssueTemplateConfig(source: string, repoName?: string): string;
546
580
  //#endregion
547
- //#region src/utils/gitignore.d.ts
548
- /**
549
- * Map a workspace path (containing `.gitignore`) to its packaged variant.
550
- */
551
- declare function toPublishGitignorePath(input: string): string;
552
- /**
553
- * Map a packaged path (containing `gitignore`) back to the workspace form.
554
- */
555
- declare function toWorkspaceGitignorePath(input: string): string;
556
- /**
557
- * Convenient helper to check whether a filename (with or without dot prefix)
558
- * should be treated as a gitignore file.
559
- */
560
- declare function isGitignoreFile(name: string): boolean;
561
- //#endregion
562
581
  //#region src/utils/hash.d.ts
563
582
  /**
564
583
  * 生成给定二进制内容的 md5 摘要,用于快速比较文件内容。
@@ -579,4 +598,4 @@ declare function escapeStringRegexp(str: string): string;
579
598
  */
580
599
  declare function isMatch(str: string, arr: RegExp[]): boolean;
581
600
  //#endregion
582
- export { type AgenticTemplateFormat, type AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, type CreateNewProjectOptions, type GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SyncCommandConfig, type UpgradeCommandConfig, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, syncNpmMirror, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
601
+ export { type AgenticTemplateFormat, type AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, type CreateNewProjectOptions, type GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SkillTarget, type SyncCommandConfig, type SyncSkillsOptions, type UpgradeCommandConfig, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getSkillTargetPaths, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, skillTargets, syncNpmMirror, syncSkills, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { A as createTimestampFolderName, C as templatesDir, D as defineMonorepoConfig, E as cleanProjects, F as logger, I as getWorkspaceData, L as getWorkspacePackages, M as generateAgenticTemplate, N as generateAgenticTemplates, O as loadMonorepoConfig, P as loadAgenticTasks, R as GitClient, S as rootDir, T as version, _ as toWorkspaceGitignorePath, a as createContext, b as assetsDir, c as getCreateChoices, d as escapeStringRegexp, f as isMatch, g as toPublishGitignorePath, h as isGitignoreFile, i as init, j as defaultAgenticBaseDir, k as resolveCommandConfig, l as getTemplateMap, m as isFileChanged, n as syncNpmMirror, o as createNewProject, p as getFileHash, r as setVscodeBinaryMirror, t as upgradeMonorepo, u as templateMap, v as updateIssueTemplateConfig, w as name, x as packageDir, y as isIgnorableFsError } from "./upgrade-BlCigUlp.mjs";
1
+ import { A as defineMonorepoConfig, B as getWorkspacePackages, C as syncSkills, D as templatesDir, E as rootDir, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name, P as defaultAgenticBaseDir, R as logger, S as skillTargets, T as packageDir, V as GitClient, _ as toWorkspaceGitignorePath, a as createContext, b as cleanProjects, c as getCreateChoices, d as escapeStringRegexp, f as isMatch, g as toPublishGitignorePath, h as isGitignoreFile, i as init, j as loadMonorepoConfig, k as version, l as getTemplateMap, m as isFileChanged, n as syncNpmMirror, o as createNewProject, p as getFileHash, r as setVscodeBinaryMirror, t as upgradeMonorepo, u as templateMap, v as updateIssueTemplateConfig, w as assetsDir, x as getSkillTargetPaths, y as isIgnorableFsError, z as getWorkspaceData } from "./upgrade-Zbej0CnL.mjs";
2
2
 
3
- export { GitClient, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, syncNpmMirror, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
3
+ export { GitClient, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getSkillTargetPaths, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, skillTargets, syncNpmMirror, syncSkills, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };