ccjk 5.2.0 → 5.2.2

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 (53) hide show
  1. package/dist/chunks/api.mjs +6 -6
  2. package/dist/chunks/auto-updater.mjs +80 -133
  3. package/dist/chunks/ccm.mjs +7 -7
  4. package/dist/chunks/ccr.mjs +7 -4
  5. package/dist/chunks/ccu.mjs +6 -6
  6. package/dist/chunks/check-updates.mjs +3 -3
  7. package/dist/chunks/claude-code-incremental-manager.mjs +38 -38
  8. package/dist/chunks/cloud-v5.mjs +1651 -0
  9. package/dist/chunks/codex.mjs +70 -70
  10. package/dist/chunks/commands.mjs +25 -25
  11. package/dist/chunks/commit.mjs +16 -16
  12. package/dist/chunks/config-consolidator.mjs +9 -9
  13. package/dist/chunks/config-switch.mjs +39 -39
  14. package/dist/chunks/config.mjs +5 -5
  15. package/dist/chunks/config2.mjs +85 -85
  16. package/dist/chunks/context.mjs +2 -2
  17. package/dist/chunks/doctor.mjs +31 -31
  18. package/dist/chunks/features.mjs +84 -83
  19. package/dist/chunks/help.mjs +116 -116
  20. package/dist/chunks/index4.mjs +46 -46
  21. package/dist/chunks/init.mjs +214 -191
  22. package/dist/chunks/interview.mjs +102 -102
  23. package/dist/chunks/manager.mjs +238 -0
  24. package/dist/chunks/marketplace.mjs +59 -59
  25. package/dist/chunks/mcp.mjs +82 -82
  26. package/dist/chunks/menu.mjs +441 -379
  27. package/dist/chunks/notification.mjs +112 -112
  28. package/dist/chunks/onboarding.mjs +7 -7
  29. package/dist/chunks/package.mjs +1 -1
  30. package/dist/chunks/permission-manager.mjs +8 -8
  31. package/dist/chunks/plugin.mjs +100 -100
  32. package/dist/chunks/prompts.mjs +15 -15
  33. package/dist/chunks/providers.mjs +65 -65
  34. package/dist/chunks/session.mjs +83 -83
  35. package/dist/chunks/skills-sync.mjs +72 -72
  36. package/dist/chunks/skills.mjs +88 -88
  37. package/dist/chunks/team.mjs +6 -6
  38. package/dist/chunks/uninstall.mjs +35 -35
  39. package/dist/chunks/update.mjs +6 -6
  40. package/dist/chunks/upgrade-manager.mjs +4 -4
  41. package/dist/chunks/workflows2.mjs +13 -13
  42. package/dist/cli.mjs +21 -0
  43. package/dist/i18n/locales/en/menu.json +16 -1
  44. package/dist/i18n/locales/en/skills.json +29 -0
  45. package/dist/i18n/locales/zh-CN/menu.json +16 -1
  46. package/dist/i18n/locales/zh-CN/skills.json +29 -0
  47. package/dist/index.mjs +4 -4
  48. package/dist/shared/{ccjk.f40us0yY.mjs → ccjk.BiJujy5w.mjs} +4 -4
  49. package/dist/shared/{ccjk.CQzwtnZ1.mjs → ccjk.C_3BYaWc.mjs} +50 -50
  50. package/dist/shared/{ccjk.Zwx-YR_P.mjs → ccjk.DjD9Rzxq.mjs} +32 -32
  51. package/dist/shared/{ccjk.DtWIPt8E.mjs → ccjk.XgW1H2t3.mjs} +68 -68
  52. package/dist/shared/{ccjk.BlPCiSHj.mjs → ccjk.tI4PJA0c.mjs} +30 -30
  53. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import ansis from 'ansis';
1
+ import ansis__default from 'ansis';
2
2
  import inquirer from 'inquirer';
3
3
  import { i18n } from './index2.mjs';
4
4
  import { searchSkills, getSkill, getAllSkills, addSkill, setSkillEnabled, removeSkill, getBatchCategories, createBatchSkills } from './manager.mjs';
@@ -16,9 +16,9 @@ import 'node:fs/promises';
16
16
 
17
17
  async function listSkills(options = {}) {
18
18
  console.log("");
19
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
20
- console.log(ansis.bold.cyan(` ${i18n.t("skills:title.list")}`));
21
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
19
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
20
+ console.log(ansis__default.bold.cyan(` ${i18n.t("skills:title.list")}`));
21
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
22
22
  console.log("");
23
23
  try {
24
24
  const skills = searchSkills({
@@ -26,10 +26,10 @@ async function listSkills(options = {}) {
26
26
  enabled: options.showDisabled ? void 0 : true
27
27
  });
28
28
  if (skills.length === 0) {
29
- console.log(ansis.yellow(` ${i18n.t("skills:message.noSkills")}`));
29
+ console.log(ansis__default.yellow(` ${i18n.t("skills:message.noSkills")}`));
30
30
  console.log("");
31
- console.log(ansis.dim(` ${i18n.t("skills:hint.createSkill")}`));
32
- console.log(ansis.dim(` ccjk skills create <name>`));
31
+ console.log(ansis__default.dim(` ${i18n.t("skills:hint.createSkill")}`));
32
+ console.log(ansis__default.dim(` ccjk skills create <name>`));
33
33
  console.log("");
34
34
  return;
35
35
  }
@@ -40,36 +40,36 @@ async function listSkills(options = {}) {
40
40
  byCategory.set(skill.category, categorySkills);
41
41
  }
42
42
  for (const [category, categorySkills] of byCategory) {
43
- console.log(ansis.bold.green(` ${getCategoryIcon(category)} ${i18n.t(`skills:category.${category}`)}`));
43
+ console.log(ansis__default.bold.green(` ${getCategoryIcon(category)} ${i18n.t(`skills:category.${category}`)}`));
44
44
  console.log("");
45
45
  for (const skill of categorySkills) {
46
- const statusIcon = skill.enabled ? ansis.green("\u2713") : ansis.dim("\u25CB");
46
+ const statusIcon = skill.enabled ? ansis__default.green("\u2713") : ansis__default.dim("\u25CB");
47
47
  const name = skill.name[options.lang || "en"];
48
48
  const description = skill.description[options.lang || "en"];
49
- const triggers = skill.triggers.map((t) => ansis.green(t)).join(", ");
50
- console.log(` ${statusIcon} ${ansis.bold(name)} ${ansis.dim(`(${skill.id})`)}`);
51
- console.log(` ${ansis.dim(description)}`);
52
- console.log(` ${ansis.dim(i18n.t("skills:label.triggers"))}: ${triggers}`);
49
+ const triggers = skill.triggers.map((t) => ansis__default.green(t)).join(", ");
50
+ console.log(` ${statusIcon} ${ansis__default.bold(name)} ${ansis__default.dim(`(${skill.id})`)}`);
51
+ console.log(` ${ansis__default.dim(description)}`);
52
+ console.log(` ${ansis__default.dim(i18n.t("skills:label.triggers"))}: ${triggers}`);
53
53
  if (skill.tags && skill.tags.length > 0) {
54
- const tags = skill.tags.map((tag) => ansis.bgGray.white(` ${tag} `)).join(" ");
54
+ const tags = skill.tags.map((tag) => ansis__default.bgGray.white(` ${tag} `)).join(" ");
55
55
  console.log(` ${tags}`);
56
56
  }
57
57
  console.log("");
58
58
  }
59
59
  }
60
- console.log(ansis.dim(` ${i18n.t("skills:message.totalSkills", { count: skills.length })}`));
60
+ console.log(ansis__default.dim(` ${i18n.t("skills:message.totalSkills", { count: skills.length })}`));
61
61
  console.log("");
62
62
  } catch (error) {
63
- console.error(ansis.red(`
63
+ console.error(ansis__default.red(`
64
64
  ${i18n.t("skills:error.listFailed")}: ${error}`));
65
65
  throw error;
66
66
  }
67
67
  }
68
68
  async function runSkill(skillName, options = {}) {
69
69
  console.log("");
70
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
71
- console.log(ansis.bold.cyan(` ${i18n.t("skills:title.run")}`));
72
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
70
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
71
+ console.log(ansis__default.bold.cyan(` ${i18n.t("skills:title.run")}`));
72
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
73
73
  console.log("");
74
74
  try {
75
75
  let skill = getSkill(skillName);
@@ -78,99 +78,99 @@ async function runSkill(skillName, options = {}) {
78
78
  skill = allSkills.find((s) => s.triggers.includes(skillName) || s.triggers.includes(`/${skillName}`));
79
79
  }
80
80
  if (!skill) {
81
- console.error(ansis.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
81
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
82
82
  console.log("");
83
- console.log(ansis.dim(` ${i18n.t("skills:hint.listSkills")}`));
84
- console.log(ansis.dim(` ccjk skills list`));
83
+ console.log(ansis__default.dim(` ${i18n.t("skills:hint.listSkills")}`));
84
+ console.log(ansis__default.dim(` ccjk skills list`));
85
85
  console.log("");
86
86
  return;
87
87
  }
88
88
  if (!skill.enabled) {
89
- console.warn(ansis.yellow(` ${i18n.t("skills:warning.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
89
+ console.warn(ansis__default.yellow(` ${i18n.t("skills:warning.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
90
90
  console.log("");
91
- console.log(ansis.dim(` ${i18n.t("skills:hint.enableSkill")}`));
92
- console.log(ansis.dim(` ccjk skills enable ${skill.id}`));
91
+ console.log(ansis__default.dim(` ${i18n.t("skills:hint.enableSkill")}`));
92
+ console.log(ansis__default.dim(` ccjk skills enable ${skill.id}`));
93
93
  console.log("");
94
94
  return;
95
95
  }
96
- console.log(ansis.bold(` ${skill.name[options.lang || "en"]}`));
97
- console.log(ansis.dim(` ${skill.description[options.lang || "en"]}`));
96
+ console.log(ansis__default.bold(` ${skill.name[options.lang || "en"]}`));
97
+ console.log(ansis__default.dim(` ${skill.description[options.lang || "en"]}`));
98
98
  console.log("");
99
- console.log(ansis.bold.green(` ${i18n.t("skills:label.template")}:`));
99
+ console.log(ansis__default.bold.green(` ${i18n.t("skills:label.template")}:`));
100
100
  console.log("");
101
- console.log(ansis.dim(" \u2500".repeat(30)));
101
+ console.log(ansis__default.dim(" \u2500".repeat(30)));
102
102
  console.log(skill.template.split("\n").map((line) => ` ${line}`).join("\n"));
103
- console.log(ansis.dim(" \u2500".repeat(30)));
103
+ console.log(ansis__default.dim(" \u2500".repeat(30)));
104
104
  console.log("");
105
- console.log(ansis.green(` \u2713 ${i18n.t("skills:message.skillExecuted")}`));
105
+ console.log(ansis__default.green(` \u2713 ${i18n.t("skills:message.skillExecuted")}`));
106
106
  console.log("");
107
- console.log(ansis.dim(` ${i18n.t("skills:hint.copyTemplate")}`));
107
+ console.log(ansis__default.dim(` ${i18n.t("skills:hint.copyTemplate")}`));
108
108
  console.log("");
109
109
  } catch (error) {
110
- console.error(ansis.red(`
110
+ console.error(ansis__default.red(`
111
111
  ${i18n.t("skills:error.runFailed")}: ${error}`));
112
112
  throw error;
113
113
  }
114
114
  }
115
115
  async function showSkillInfo(skillName, options = {}) {
116
116
  console.log("");
117
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
118
- console.log(ansis.bold.cyan(` ${i18n.t("skills:title.info")}`));
119
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
117
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
118
+ console.log(ansis__default.bold.cyan(` ${i18n.t("skills:title.info")}`));
119
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
120
120
  console.log("");
121
121
  try {
122
122
  const skill = getSkill(skillName);
123
123
  if (!skill) {
124
- console.error(ansis.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
124
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
125
125
  console.log("");
126
126
  return;
127
127
  }
128
128
  const name = skill.name[options.lang || "en"];
129
129
  const description = skill.description[options.lang || "en"];
130
- const statusBadge = skill.enabled ? ansis.bgGreen.white(" ENABLED ") : ansis.bgRed.white(" DISABLED ");
131
- console.log(`${ansis.bold.green(` ${name}`)} ${statusBadge}`);
132
- console.log(ansis.dim(` ${description}`));
130
+ const statusBadge = skill.enabled ? ansis__default.bgGreen.white(" ENABLED ") : ansis__default.bgRed.white(" DISABLED ");
131
+ console.log(`${ansis__default.bold.green(` ${name}`)} ${statusBadge}`);
132
+ console.log(ansis__default.dim(` ${description}`));
133
133
  console.log("");
134
- console.log(ansis.bold(` ${i18n.t("skills:label.details")}:`));
135
- console.log(ansis.dim(` ${i18n.t("skills:label.id")}: ${skill.id}`));
136
- console.log(ansis.dim(` ${i18n.t("skills:label.version")}: ${skill.version}`));
137
- console.log(ansis.dim(` ${i18n.t("skills:label.category")}: ${i18n.t(`skills:category.${skill.category}`)}`));
134
+ console.log(ansis__default.bold(` ${i18n.t("skills:label.details")}:`));
135
+ console.log(ansis__default.dim(` ${i18n.t("skills:label.id")}: ${skill.id}`));
136
+ console.log(ansis__default.dim(` ${i18n.t("skills:label.version")}: ${skill.version}`));
137
+ console.log(ansis__default.dim(` ${i18n.t("skills:label.category")}: ${i18n.t(`skills:category.${skill.category}`)}`));
138
138
  if (skill.author) {
139
- console.log(ansis.dim(` ${i18n.t("skills:label.author")}: ${skill.author}`));
139
+ console.log(ansis__default.dim(` ${i18n.t("skills:label.author")}: ${skill.author}`));
140
140
  }
141
141
  console.log("");
142
- console.log(ansis.bold(` ${i18n.t("skills:label.triggers")}:`));
142
+ console.log(ansis__default.bold(` ${i18n.t("skills:label.triggers")}:`));
143
143
  for (const trigger of skill.triggers) {
144
- console.log(ansis.green(` ${trigger}`));
144
+ console.log(ansis__default.green(` ${trigger}`));
145
145
  }
146
146
  if (skill.tags && skill.tags.length > 0) {
147
147
  console.log("");
148
- console.log(ansis.bold(` ${i18n.t("skills:label.tags")}:`));
149
- const tags = skill.tags.map((tag) => ansis.bgGray.white(` ${tag} `)).join(" ");
148
+ console.log(ansis__default.bold(` ${i18n.t("skills:label.tags")}:`));
149
+ const tags = skill.tags.map((tag) => ansis__default.bgGray.white(` ${tag} `)).join(" ");
150
150
  console.log(` ${tags}`);
151
151
  }
152
152
  if (skill.agents && skill.agents.length > 0) {
153
153
  console.log("");
154
- console.log(ansis.bold(` ${i18n.t("skills:label.agents")}:`));
154
+ console.log(ansis__default.bold(` ${i18n.t("skills:label.agents")}:`));
155
155
  for (const agent of skill.agents) {
156
- console.log(ansis.dim(` - ${agent}`));
156
+ console.log(ansis__default.dim(` - ${agent}`));
157
157
  }
158
158
  }
159
159
  console.log("");
160
- console.log(ansis.bold(` ${i18n.t("skills:label.template")}:`));
161
- console.log(ansis.dim(` ${skill.template.length} ${i18n.t("skills:label.characters")}`));
160
+ console.log(ansis__default.bold(` ${i18n.t("skills:label.template")}:`));
161
+ console.log(ansis__default.dim(` ${skill.template.length} ${i18n.t("skills:label.characters")}`));
162
162
  console.log("");
163
163
  } catch (error) {
164
- console.error(ansis.red(`
164
+ console.error(ansis__default.red(`
165
165
  ${i18n.t("skills:error.infoFailed")}: ${error}`));
166
166
  throw error;
167
167
  }
168
168
  }
169
169
  async function createSkill(skillName, options = {}) {
170
170
  console.log("");
171
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
172
- console.log(ansis.bold.cyan(` ${i18n.t("skills:title.create")}`));
173
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
171
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
172
+ console.log(ansis__default.bold.cyan(` ${i18n.t("skills:title.create")}`));
173
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
174
174
  console.log("");
175
175
  try {
176
176
  if (options.batch) {
@@ -179,7 +179,7 @@ async function createSkill(skillName, options = {}) {
179
179
  }
180
180
  const existing = getSkill(skillName);
181
181
  if (existing) {
182
- console.error(ansis.red(` ${i18n.t("skills:error.skillExists", { name: skillName })}`));
182
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillExists", { name: skillName })}`));
183
183
  console.log("");
184
184
  return;
185
185
  }
@@ -256,19 +256,19 @@ async function createSkill(skillName, options = {}) {
256
256
  };
257
257
  const result = addSkill(skill);
258
258
  if (result.success) {
259
- console.log(ansis.green(`
259
+ console.log(ansis__default.green(`
260
260
  \u2713 ${i18n.t("skills:message.skillCreated", { name: skill.name[options.lang || "en"] })}`));
261
- console.log(ansis.dim(` ${i18n.t("skills:label.path")}: ${result.path}`));
261
+ console.log(ansis__default.dim(` ${i18n.t("skills:label.path")}: ${result.path}`));
262
262
  console.log("");
263
- console.log(ansis.dim(` ${i18n.t("skills:hint.runSkill")}`));
264
- console.log(ansis.dim(` ccjk skills run ${skillName}`));
263
+ console.log(ansis__default.dim(` ${i18n.t("skills:hint.runSkill")}`));
264
+ console.log(ansis__default.dim(` ccjk skills run ${skillName}`));
265
265
  console.log("");
266
266
  } else {
267
- console.error(ansis.red(`
267
+ console.error(ansis__default.red(`
268
268
  ${i18n.t("skills:error.createFailed")}: ${result.error}`));
269
269
  }
270
270
  } catch (error) {
271
- console.error(ansis.red(`
271
+ console.error(ansis__default.red(`
272
272
  ${i18n.t("skills:error.createFailed")}: ${error}`));
273
273
  throw error;
274
274
  }
@@ -277,21 +277,21 @@ async function enableSkill(skillName, options = {}) {
277
277
  try {
278
278
  const skill = getSkill(skillName);
279
279
  if (!skill) {
280
- console.error(ansis.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
280
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
281
281
  return;
282
282
  }
283
283
  if (skill.enabled) {
284
- console.log(ansis.yellow(` ${i18n.t("skills:message.alreadyEnabled", { name: skill.name[options.lang || "en"] })}`));
284
+ console.log(ansis__default.yellow(` ${i18n.t("skills:message.alreadyEnabled", { name: skill.name[options.lang || "en"] })}`));
285
285
  return;
286
286
  }
287
287
  const success = setSkillEnabled(skillName, true);
288
288
  if (success) {
289
- console.log(ansis.green(` \u2713 ${i18n.t("skills:message.skillEnabled", { name: skill.name[options.lang || "en"] })}`));
289
+ console.log(ansis__default.green(` \u2713 ${i18n.t("skills:message.skillEnabled", { name: skill.name[options.lang || "en"] })}`));
290
290
  } else {
291
- console.error(ansis.red(` ${i18n.t("skills:error.enableFailed")}`));
291
+ console.error(ansis__default.red(` ${i18n.t("skills:error.enableFailed")}`));
292
292
  }
293
293
  } catch (error) {
294
- console.error(ansis.red(`
294
+ console.error(ansis__default.red(`
295
295
  ${i18n.t("skills:error.enableFailed")}: ${error}`));
296
296
  throw error;
297
297
  }
@@ -300,21 +300,21 @@ async function disableSkill(skillName, options = {}) {
300
300
  try {
301
301
  const skill = getSkill(skillName);
302
302
  if (!skill) {
303
- console.error(ansis.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
303
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
304
304
  return;
305
305
  }
306
306
  if (!skill.enabled) {
307
- console.log(ansis.yellow(` ${i18n.t("skills:message.alreadyDisabled", { name: skill.name[options.lang || "en"] })}`));
307
+ console.log(ansis__default.yellow(` ${i18n.t("skills:message.alreadyDisabled", { name: skill.name[options.lang || "en"] })}`));
308
308
  return;
309
309
  }
310
310
  const success = setSkillEnabled(skillName, false);
311
311
  if (success) {
312
- console.log(ansis.green(` \u2713 ${i18n.t("skills:message.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
312
+ console.log(ansis__default.green(` \u2713 ${i18n.t("skills:message.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
313
313
  } else {
314
- console.error(ansis.red(` ${i18n.t("skills:error.disableFailed")}`));
314
+ console.error(ansis__default.red(` ${i18n.t("skills:error.disableFailed")}`));
315
315
  }
316
316
  } catch (error) {
317
- console.error(ansis.red(`
317
+ console.error(ansis__default.red(`
318
318
  ${i18n.t("skills:error.disableFailed")}: ${error}`));
319
319
  throw error;
320
320
  }
@@ -323,7 +323,7 @@ async function deleteSkill(skillName, options = {}) {
323
323
  try {
324
324
  const skill = getSkill(skillName);
325
325
  if (!skill) {
326
- console.error(ansis.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
326
+ console.error(ansis__default.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
327
327
  return;
328
328
  }
329
329
  const { confirm } = await inquirer.prompt({
@@ -333,17 +333,17 @@ async function deleteSkill(skillName, options = {}) {
333
333
  default: false
334
334
  });
335
335
  if (!confirm) {
336
- console.log(ansis.yellow(` ${i18n.t("skills:message.deleteCancelled")}`));
336
+ console.log(ansis__default.yellow(` ${i18n.t("skills:message.deleteCancelled")}`));
337
337
  return;
338
338
  }
339
339
  const success = removeSkill(skillName);
340
340
  if (success) {
341
- console.log(ansis.green(` \u2713 ${i18n.t("skills:message.skillDeleted", { name: skill.name[options.lang || "en"] })}`));
341
+ console.log(ansis__default.green(` \u2713 ${i18n.t("skills:message.skillDeleted", { name: skill.name[options.lang || "en"] })}`));
342
342
  } else {
343
- console.error(ansis.red(` ${i18n.t("skills:error.deleteFailed")}`));
343
+ console.error(ansis__default.red(` ${i18n.t("skills:error.deleteFailed")}`));
344
344
  }
345
345
  } catch (error) {
346
- console.error(ansis.red(`
346
+ console.error(ansis__default.red(`
347
347
  ${i18n.t("skills:error.deleteFailed")}: ${error}`));
348
348
  throw error;
349
349
  }
@@ -351,9 +351,9 @@ async function deleteSkill(skillName, options = {}) {
351
351
  async function skillsMenu(options = {}) {
352
352
  while (true) {
353
353
  console.log("");
354
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
355
- console.log(ansis.bold.cyan(` ${i18n.t("skills:menu.title")}`));
356
- console.log(ansis.bold.cyan("\u2501".repeat(60)));
354
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
355
+ console.log(ansis__default.bold.cyan(` ${i18n.t("skills:menu.title")}`));
356
+ console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
357
357
  console.log("");
358
358
  const { action } = await inquirer.prompt({
359
359
  type: "list",
@@ -439,7 +439,7 @@ async function skillsMenu(options = {}) {
439
439
  }
440
440
  }
441
441
  } catch (error) {
442
- console.error(ansis.red(`
442
+ console.error(ansis__default.red(`
443
443
  ${i18n.t("common.error")}: ${error}`));
444
444
  }
445
445
  await inquirer.prompt({
@@ -514,7 +514,7 @@ This is a custom skill template. Please describe the purpose and functionality o
514
514
  `;
515
515
  }
516
516
  async function createBatchSkillsInteractive(_options) {
517
- console.log(ansis.bold(` ${i18n.t("skills:batch.title")}`));
517
+ console.log(ansis__default.bold(` ${i18n.t("skills:batch.title")}`));
518
518
  console.log("");
519
519
  const categories = getBatchCategories();
520
520
  const answers = await inquirer.prompt([
@@ -530,11 +530,11 @@ async function createBatchSkillsInteractive(_options) {
530
530
  }
531
531
  ]);
532
532
  if (answers.categories.length === 0) {
533
- console.log(ansis.yellow(` ${i18n.t("skills:batch.noneSelected")}`));
533
+ console.log(ansis__default.yellow(` ${i18n.t("skills:batch.noneSelected")}`));
534
534
  return;
535
535
  }
536
536
  console.log("");
537
- console.log(ansis.dim(` ${i18n.t("skills:batch.creating")}...`));
537
+ console.log(ansis__default.dim(` ${i18n.t("skills:batch.creating")}...`));
538
538
  console.log("");
539
539
  const results = createBatchSkills({
540
540
  lang: answers.categories.includes("typescript") ? "typescript" : answers.categories.includes("python") ? "python" : void 0,
@@ -543,9 +543,9 @@ async function createBatchSkillsInteractive(_options) {
543
543
  });
544
544
  const succeeded = results.filter((r) => r.success).length;
545
545
  const failed = results.filter((r) => !r.success).length;
546
- console.log(ansis.green(` \u2713 ${i18n.t("skills:batch.created", { count: succeeded })}`));
546
+ console.log(ansis__default.green(` \u2713 ${i18n.t("skills:batch.created", { count: succeeded })}`));
547
547
  if (failed > 0) {
548
- console.log(ansis.red(` \u2717 ${i18n.t("skills:batch.failed", { count: failed })}`));
548
+ console.log(ansis__default.red(` \u2717 ${i18n.t("skills:batch.failed", { count: failed })}`));
549
549
  }
550
550
  console.log("");
551
551
  }
@@ -1,5 +1,5 @@
1
1
  import { existsSync, mkdirSync, readFileSync } from 'node:fs';
2
- import ansis from 'ansis';
2
+ import ansis__default from 'ansis';
3
3
  import inquirer from 'inquirer';
4
4
  import { join } from 'pathe';
5
5
  import { i18n } from './index2.mjs';
@@ -29,23 +29,23 @@ async function teamInit() {
29
29
  sharedSettings: {}
30
30
  };
31
31
  writeFileAtomic(CONFIG_FILE, JSON.stringify(config, null, 2));
32
- console.log(ansis.green(`\u2714 ${i18n.t("team:teamInitialized")}: ${name}`));
32
+ console.log(ansis__default.green(`\u2714 ${i18n.t("team:teamInitialized")}: ${name}`));
33
33
  }
34
34
  async function teamShare() {
35
35
  if (!existsSync(CONFIG_FILE)) {
36
- console.log(ansis.yellow(i18n.t("team:noTeamConfig")));
36
+ console.log(ansis__default.yellow(i18n.t("team:noTeamConfig")));
37
37
  return;
38
38
  }
39
39
  const config = JSON.parse(readFileSync(CONFIG_FILE, "utf-8"));
40
- console.log(ansis.green(i18n.t("team:shareConfig")));
40
+ console.log(ansis__default.green(i18n.t("team:shareConfig")));
41
41
  console.log(JSON.stringify(config, null, 2));
42
42
  }
43
43
  async function teamSync() {
44
44
  if (!existsSync(CONFIG_FILE)) {
45
- console.log(ansis.yellow(i18n.t("team:noTeamConfig")));
45
+ console.log(ansis__default.yellow(i18n.t("team:noTeamConfig")));
46
46
  return;
47
47
  }
48
- console.log(ansis.green(`\u2714 ${i18n.t("team:syncComplete")}`));
48
+ console.log(ansis__default.green(`\u2714 ${i18n.t("team:syncComplete")}`));
49
49
  }
50
50
 
51
51
  export { teamInit, teamShare, teamSync };
@@ -1,10 +1,10 @@
1
- import ansis from 'ansis';
1
+ import ansis__default from 'ansis';
2
2
  import inquirer from 'inquirer';
3
3
  import { ZCF_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, isCodeToolType } from './constants.mjs';
4
4
  import { i18n, ensureI18nInitialized } from './index2.mjs';
5
5
  import { readZcfConfig } from './ccjk-config.mjs';
6
6
  import { r as resolveCodeType } from '../shared/ccjk.CUdzQluX.mjs';
7
- import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.f40us0yY.mjs';
7
+ import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.BiJujy5w.mjs';
8
8
  import { p as promptBoolean, a as addNumbersToChoices } from '../shared/ccjk.DhBeLRzf.mjs';
9
9
  import { homedir } from 'node:os';
10
10
  import { pathExists } from 'fs-extra';
@@ -538,7 +538,7 @@ async function uninstall(options = {}) {
538
538
  codeType = await resolveCodeType(options.codeType);
539
539
  } catch (error) {
540
540
  const errorMessage = error instanceof Error ? error.message : String(error);
541
- console.error(ansis.red(`${i18n.t("errors:generalError")} ${errorMessage}`));
541
+ console.error(ansis__default.red(`${i18n.t("errors:generalError")} ${errorMessage}`));
542
542
  const config = readZcfConfig();
543
543
  codeType = config?.codeToolType && isCodeToolType(config.codeToolType) ? config.codeToolType : DEFAULT_CODE_TOOL_TYPE;
544
544
  }
@@ -575,7 +575,7 @@ async function uninstall(options = {}) {
575
575
  }
576
576
  }
577
577
  async function showInteractiveUninstall(uninstaller) {
578
- console.log(ansis.green.bold(i18n.t("uninstall:title")));
578
+ console.log(ansis__default.green.bold(i18n.t("uninstall:title")));
579
579
  console.log("");
580
580
  const { mainChoice } = await inquirer.prompt({
581
581
  type: "list",
@@ -583,19 +583,19 @@ async function showInteractiveUninstall(uninstaller) {
583
583
  message: i18n.t("uninstall:selectMainOption"),
584
584
  choices: addNumbersToChoices([
585
585
  {
586
- name: `${i18n.t("uninstall:completeUninstall")} - ${ansis.gray(i18n.t("uninstall:completeUninstallDesc"))}`,
586
+ name: `${i18n.t("uninstall:completeUninstall")} - ${ansis__default.gray(i18n.t("uninstall:completeUninstallDesc"))}`,
587
587
  value: "complete",
588
588
  short: i18n.t("uninstall:completeUninstall")
589
589
  },
590
590
  {
591
- name: `${i18n.t("uninstall:customUninstall")} - ${ansis.gray(i18n.t("uninstall:customUninstallDesc"))}`,
591
+ name: `${i18n.t("uninstall:customUninstall")} - ${ansis__default.gray(i18n.t("uninstall:customUninstallDesc"))}`,
592
592
  value: "custom",
593
593
  short: i18n.t("uninstall:customUninstall")
594
594
  }
595
595
  ])
596
596
  });
597
597
  if (!mainChoice) {
598
- console.log(ansis.yellow(i18n.t("common:cancelled")));
598
+ console.log(ansis__default.yellow(i18n.t("common:cancelled")));
599
599
  return;
600
600
  }
601
601
  if (mainChoice === "complete") {
@@ -606,7 +606,7 @@ async function showInteractiveUninstall(uninstaller) {
606
606
  }
607
607
  async function showCustomUninstallMenu(uninstaller) {
608
608
  console.log("");
609
- console.log(ansis.green(i18n.t("uninstall:selectCustomItems")));
609
+ console.log(ansis__default.green(i18n.t("uninstall:selectCustomItems")));
610
610
  const { customItems } = await inquirer.prompt({
611
611
  type: "checkbox",
612
612
  name: "customItems",
@@ -665,32 +665,32 @@ async function showCustomUninstallMenu(uninstaller) {
665
665
  }
666
666
  });
667
667
  if (!customItems || customItems.length === 0) {
668
- console.log(ansis.yellow(i18n.t("common:cancelled")));
668
+ console.log(ansis__default.yellow(i18n.t("common:cancelled")));
669
669
  return;
670
670
  }
671
671
  await executeCustomUninstall(uninstaller, customItems);
672
672
  }
673
673
  async function executeCompleteUninstall(uninstaller) {
674
674
  console.log("");
675
- console.log(ansis.red.bold(i18n.t("uninstall:executingComplete")));
676
- console.log(ansis.yellow(i18n.t("uninstall:completeWarning")));
675
+ console.log(ansis__default.red.bold(i18n.t("uninstall:executingComplete")));
676
+ console.log(ansis__default.yellow(i18n.t("uninstall:completeWarning")));
677
677
  const confirm = await promptBoolean({
678
678
  message: i18n.t("uninstall:confirmComplete"),
679
679
  defaultValue: false
680
680
  });
681
681
  if (!confirm) {
682
- console.log(ansis.yellow(i18n.t("common:cancelled")));
682
+ console.log(ansis__default.yellow(i18n.t("common:cancelled")));
683
683
  return;
684
684
  }
685
685
  console.log("");
686
- console.log(ansis.green(i18n.t("uninstall:processingComplete")));
686
+ console.log(ansis__default.green(i18n.t("uninstall:processingComplete")));
687
687
  const result = await uninstaller.completeUninstall();
688
688
  displayUninstallResult("complete", [result]);
689
689
  }
690
690
  async function executeCustomUninstall(uninstaller, items) {
691
691
  console.log("");
692
- console.log(ansis.green(i18n.t("uninstall:executingCustom")));
693
- console.log(ansis.gray(i18n.t("uninstall:selectedItems")));
692
+ console.log(ansis__default.green(i18n.t("uninstall:executingCustom")));
693
+ console.log(ansis__default.gray(i18n.t("uninstall:selectedItems")));
694
694
  items.forEach((item) => {
695
695
  console.log(` \u2022 ${i18n.t(`uninstall:${item}`)}`);
696
696
  });
@@ -699,17 +699,17 @@ async function executeCustomUninstall(uninstaller, items) {
699
699
  defaultValue: false
700
700
  });
701
701
  if (!confirm) {
702
- console.log(ansis.yellow(i18n.t("common:cancelled")));
702
+ console.log(ansis__default.yellow(i18n.t("common:cancelled")));
703
703
  return;
704
704
  }
705
705
  console.log("");
706
- console.log(ansis.green(i18n.t("uninstall:processingCustom")));
706
+ console.log(ansis__default.green(i18n.t("uninstall:processingCustom")));
707
707
  const results = await uninstaller.customUninstall(items);
708
708
  displayUninstallResult("custom", results);
709
709
  }
710
710
  function displayUninstallResult(mode, results) {
711
711
  console.log("");
712
- console.log(ansis.green("\u2500".repeat(50)));
712
+ console.log(ansis__default.green("\u2500".repeat(50)));
713
713
  let totalSuccess = 0;
714
714
  let totalErrors = 0;
715
715
  let totalWarnings = 0;
@@ -718,64 +718,64 @@ function displayUninstallResult(mode, results) {
718
718
  totalSuccess++;
719
719
  }
720
720
  if (result.removed && result.removed.length > 0) {
721
- console.log(ansis.green(`\u{1F5D1}\uFE0F ${i18n.t("uninstall:movedToTrash")}:`));
721
+ console.log(ansis__default.green(`\u{1F5D1}\uFE0F ${i18n.t("uninstall:movedToTrash")}:`));
722
722
  result.removed.forEach((item) => {
723
- console.log(ansis.gray(` \u2022 ${item}`));
723
+ console.log(ansis__default.gray(` \u2022 ${item}`));
724
724
  });
725
725
  }
726
726
  if (result.removedConfigs && result.removedConfigs.length > 0) {
727
- console.log(ansis.green(`\u2714 ${i18n.t("uninstall:removedConfigs")}:`));
727
+ console.log(ansis__default.green(`\u2714 ${i18n.t("uninstall:removedConfigs")}:`));
728
728
  result.removedConfigs.forEach((item) => {
729
- console.log(ansis.gray(` \u2022 ${item}`));
729
+ console.log(ansis__default.gray(` \u2022 ${item}`));
730
730
  });
731
731
  }
732
732
  if (result.errors && result.errors.length > 0) {
733
733
  totalErrors += result.errors.length;
734
- console.log(ansis.red(`\u2716 ${i18n.t("uninstall:errors")}:`));
734
+ console.log(ansis__default.red(`\u2716 ${i18n.t("uninstall:errors")}:`));
735
735
  result.errors.forEach((error) => {
736
- console.log(ansis.red(` \u2022 ${error}`));
736
+ console.log(ansis__default.red(` \u2022 ${error}`));
737
737
  });
738
738
  }
739
739
  if (result.warnings && result.warnings.length > 0) {
740
740
  totalWarnings += result.warnings.length;
741
- console.log(ansis.yellow(`\u26A0 ${i18n.t("uninstall:warnings")}:`));
741
+ console.log(ansis__default.yellow(`\u26A0 ${i18n.t("uninstall:warnings")}:`));
742
742
  result.warnings.forEach((warning) => {
743
- console.log(ansis.yellow(` \u2022 ${warning}`));
743
+ console.log(ansis__default.yellow(` \u2022 ${warning}`));
744
744
  });
745
745
  }
746
746
  });
747
747
  const totalRemovedFiles = results.reduce((count, result) => count + (result.removed?.length || 0), 0);
748
748
  const totalRemovedConfigs = results.reduce((count, result) => count + (result.removedConfigs?.length || 0), 0);
749
749
  console.log("");
750
- console.log(ansis.green("\u2500".repeat(50)));
750
+ console.log(ansis__default.green("\u2500".repeat(50)));
751
751
  if (mode === "complete") {
752
752
  if (totalErrors === 0) {
753
- console.log(ansis.green.bold(`\u2714 ${i18n.t("uninstall:completeSuccess")}`));
753
+ console.log(ansis__default.green.bold(`\u2714 ${i18n.t("uninstall:completeSuccess")}`));
754
754
  } else {
755
- console.log(ansis.yellow.bold(`\u26A0 ${i18n.t("uninstall:completePartialSuccess")}`));
755
+ console.log(ansis__default.yellow.bold(`\u26A0 ${i18n.t("uninstall:completePartialSuccess")}`));
756
756
  }
757
757
  } else {
758
758
  if (totalRemovedFiles > 0 && totalRemovedConfigs > 0) {
759
- console.log(ansis.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessBoth", {
759
+ console.log(ansis__default.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessBoth", {
760
760
  fileCount: totalRemovedFiles,
761
761
  configCount: totalRemovedConfigs
762
762
  })}`));
763
763
  } else if (totalRemovedFiles > 0) {
764
- console.log(ansis.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessFiles", {
764
+ console.log(ansis__default.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessFiles", {
765
765
  count: totalRemovedFiles
766
766
  })}`));
767
767
  } else if (totalRemovedConfigs > 0) {
768
- console.log(ansis.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessConfigs", {
768
+ console.log(ansis__default.green.bold(`\u2714 ${i18n.t("uninstall:customSuccessConfigs", {
769
769
  count: totalRemovedConfigs
770
770
  })}`));
771
771
  } else {
772
- console.log(ansis.green.bold(`\u2714 ${i18n.t("uninstall:customSuccess", { count: totalSuccess })}`));
772
+ console.log(ansis__default.green.bold(`\u2714 ${i18n.t("uninstall:customSuccess", { count: totalSuccess })}`));
773
773
  }
774
774
  if (totalErrors > 0) {
775
- console.log(ansis.red(`\u2716 ${i18n.t("uninstall:errorsCount", { count: totalErrors })}`));
775
+ console.log(ansis__default.red(`\u2716 ${i18n.t("uninstall:errorsCount", { count: totalErrors })}`));
776
776
  }
777
777
  if (totalWarnings > 0) {
778
- console.log(ansis.yellow(`\u26A0 ${i18n.t("uninstall:warningsCount", { count: totalWarnings })}`));
778
+ console.log(ansis__default.yellow(`\u26A0 ${i18n.t("uninstall:warningsCount", { count: totalWarnings })}`));
779
779
  }
780
780
  }
781
781
  console.log("");