ccjk 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.ja.md +249 -297
  2. package/README.ko.md +241 -290
  3. package/README.md +216 -360
  4. package/README.zh-CN.md +234 -311
  5. package/dist/chunks/claude-code-config-manager.mjs +7 -7
  6. package/dist/chunks/claude-code-incremental-manager.mjs +1 -1
  7. package/dist/chunks/codex-config-switch.mjs +3 -3
  8. package/dist/chunks/codex-uninstaller.mjs +2 -2
  9. package/dist/chunks/features.mjs +10 -10
  10. package/dist/chunks/simple-config.mjs +388 -45
  11. package/dist/chunks/smart-guide.mjs +234 -0
  12. package/dist/cli.mjs +2325 -1317
  13. package/dist/i18n/locales/en/marketplace.json +84 -0
  14. package/dist/i18n/locales/en/menu.json +38 -1
  15. package/dist/i18n/locales/en/skills.json +140 -0
  16. package/dist/i18n/locales/en/smartGuide.json +49 -0
  17. package/dist/i18n/locales/en/subagent.json +69 -0
  18. package/dist/i18n/locales/en/superpowers.json +58 -0
  19. package/dist/i18n/locales/en/workflow.json +28 -9
  20. package/dist/i18n/locales/zh-CN/marketplace.json +84 -0
  21. package/dist/i18n/locales/zh-CN/menu.json +38 -1
  22. package/dist/i18n/locales/zh-CN/skills.json +140 -0
  23. package/dist/i18n/locales/zh-CN/smartGuide.json +49 -0
  24. package/dist/i18n/locales/zh-CN/subagent.json +69 -0
  25. package/dist/i18n/locales/zh-CN/superpowers.json +58 -0
  26. package/dist/i18n/locales/zh-CN/workflow.json +28 -9
  27. package/dist/index.d.mts +1 -0
  28. package/dist/index.d.ts +1 -0
  29. package/package.json +26 -27
  30. package/templates/claude-code/en/workflow/essential/commands/feat.md +196 -51
  31. package/templates/claude-code/zh-CN/workflow/essential/commands/feat.md +194 -51
  32. package/templates/common/skills/en/brainstorming.md +64 -0
  33. package/templates/common/skills/en/code-review.md +81 -0
  34. package/templates/common/skills/en/documentation-gen.md +808 -0
  35. package/templates/common/skills/en/executing-plans.md +75 -0
  36. package/templates/common/skills/en/git-commit.md +216 -0
  37. package/templates/common/skills/en/interview.md +223 -0
  38. package/templates/common/skills/en/migration-assistant.md +312 -0
  39. package/templates/common/skills/en/performance-profiling.md +576 -0
  40. package/templates/common/skills/en/pr-review.md +341 -0
  41. package/templates/common/skills/en/refactoring.md +384 -0
  42. package/templates/common/skills/en/security-audit.md +462 -0
  43. package/templates/common/skills/en/systematic-debugging.md +82 -0
  44. package/templates/common/skills/en/tdd-workflow.md +93 -0
  45. package/templates/common/skills/en/verification.md +81 -0
  46. package/templates/common/skills/en/workflow.md +370 -0
  47. package/templates/common/skills/en/writing-plans.md +78 -0
  48. package/templates/common/skills/zh-CN/documentation-gen.md +807 -0
  49. package/templates/common/skills/zh-CN/migration-assistant.md +318 -0
  50. package/templates/common/skills/zh-CN/performance-profiling.md +746 -0
  51. package/templates/common/skills/zh-CN/pr-review.md +341 -0
  52. package/templates/common/skills/zh-CN/refactoring.md +384 -0
  53. package/templates/common/skills/zh-CN/security-audit.md +462 -0
  54. package/templates/common/smart-guide/en/smart-guide.md +72 -0
  55. package/templates/common/smart-guide/zh-CN/smart-guide.md +72 -0
  56. package/templates/common/workflow/sixStep/en/workflow.md +137 -31
  57. package/templates/common/workflow/sixStep/zh-CN/workflow.md +152 -10
@@ -1,6 +1,6 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { join } from 'pathe';
3
- import { N as ZCF_CONFIG_FILE, Z as ZCF_CONFIG_DIR, cR as ensureDir, cS as readDefaultTomlConfig, cT as createDefaultTomlConfig, cU as exists, cC as readJsonConfig, cV as writeTomlConfig, t as SETTINGS_FILE, cW as clearModelEnv, cX as copyFile } from './simple-config.mjs';
3
+ import { N as ZCF_CONFIG_FILE, Z as ZCF_CONFIG_DIR, cX as ensureDir, cY as readDefaultTomlConfig, cZ as createDefaultTomlConfig, c_ as exists, cD as readJsonConfig, c$ as writeTomlConfig, t as SETTINGS_FILE, d0 as clearModelEnv, d1 as copyFile } from './simple-config.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:process';
6
6
  import 'ansis';
@@ -185,15 +185,15 @@ class ClaudeCodeConfigManager {
185
185
  * Apply profile settings to Claude Code runtime
186
186
  */
187
187
  static async applyProfileSettings(profile) {
188
- const { ensureI18nInitialized, i18n } = await import('./simple-config.mjs').then(function (n) { return n.d3; });
188
+ const { ensureI18nInitialized, i18n } = await import('./simple-config.mjs').then(function (n) { return n.d9; });
189
189
  ensureI18nInitialized();
190
190
  try {
191
191
  if (!profile) {
192
- const { switchToOfficialLogin } = await import('./simple-config.mjs').then(function (n) { return n.d7; });
192
+ const { switchToOfficialLogin } = await import('./simple-config.mjs').then(function (n) { return n.dd; });
193
193
  switchToOfficialLogin();
194
194
  return;
195
195
  }
196
- const { readJsonConfig: readJsonConfig2, writeJsonConfig } = await import('./simple-config.mjs').then(function (n) { return n.d5; });
196
+ const { readJsonConfig: readJsonConfig2, writeJsonConfig } = await import('./simple-config.mjs').then(function (n) { return n.db; });
197
197
  const settings = readJsonConfig2(SETTINGS_FILE) || {};
198
198
  if (!settings.env)
199
199
  settings.env = {};
@@ -206,7 +206,7 @@ class ClaudeCodeConfigManager {
206
206
  settings.env.ANTHROPIC_AUTH_TOKEN = profile.apiKey;
207
207
  delete settings.env.ANTHROPIC_API_KEY;
208
208
  } else if (profile.authType === "ccr_proxy") {
209
- const { readCcrConfig } = await import('./simple-config.mjs').then(function (n) { return n.d8; });
209
+ const { readCcrConfig } = await import('./simple-config.mjs').then(function (n) { return n.de; });
210
210
  const ccrConfig = readCcrConfig();
211
211
  if (!ccrConfig) {
212
212
  throw new Error(i18n.t("ccr:ccrNotConfigured") || "CCR proxy configuration not found");
@@ -241,7 +241,7 @@ class ClaudeCodeConfigManager {
241
241
  clearModelEnv(settings.env);
242
242
  }
243
243
  writeJsonConfig(SETTINGS_FILE, settings);
244
- const { setPrimaryApiKey, addCompletedOnboarding } = await import('./simple-config.mjs').then(function (n) { return n.d6; });
244
+ const { setPrimaryApiKey, addCompletedOnboarding } = await import('./simple-config.mjs').then(function (n) { return n.dc; });
245
245
  setPrimaryApiKey();
246
246
  addCompletedOnboarding();
247
247
  if (shouldRestartCcr) {
@@ -602,7 +602,7 @@ class ClaudeCodeConfigManager {
602
602
  */
603
603
  static async syncCcrProfile() {
604
604
  try {
605
- const { readCcrConfig } = await import('./simple-config.mjs').then(function (n) { return n.d8; });
605
+ const { readCcrConfig } = await import('./simple-config.mjs').then(function (n) { return n.de; });
606
606
  const ccrConfig = readCcrConfig();
607
607
  if (!ccrConfig) {
608
608
  await this.ensureCcrProfileExists(ccrConfig);
@@ -1,6 +1,6 @@
1
1
  import ansis from 'ansis';
2
2
  import inquirer from 'inquirer';
3
- import { co as ensureI18nInitialized, cj as i18n, cz as addNumbersToChoices, cQ as validateApiKey, ct as promptBoolean } from './simple-config.mjs';
3
+ import { co as ensureI18nInitialized, cj as i18n, cz as addNumbersToChoices, cW as validateApiKey, ct as promptBoolean } from './simple-config.mjs';
4
4
  import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:process';
@@ -1,6 +1,6 @@
1
1
  import ansis from 'ansis';
2
2
  import inquirer from 'inquirer';
3
- import { co as ensureI18nInitialized, aZ as detectConfigManagementMode, cj as i18n, cz as addNumbersToChoices, ct as promptBoolean, cC as readJsonConfig, z as CODEX_AUTH_FILE } from './simple-config.mjs';
3
+ import { co as ensureI18nInitialized, aZ as detectConfigManagementMode, cj as i18n, cz as addNumbersToChoices, ct as promptBoolean, cD as readJsonConfig, z as CODEX_AUTH_FILE } from './simple-config.mjs';
4
4
  import { deleteProviders, addProviderToExisting, editExistingProvider } from './codex-provider-manager.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:process';
@@ -168,7 +168,7 @@ async function handleAddProvider() {
168
168
  defaultValue: true
169
169
  });
170
170
  if (setAsDefault) {
171
- const { switchToProvider } = await import('./simple-config.mjs').then(function (n) { return n.da; });
171
+ const { switchToProvider } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
172
172
  const switched = await switchToProvider(provider.id);
173
173
  if (switched) {
174
174
  console.log(ansis.green(i18n.t("multi-config:profileSetAsDefault", { name: provider.name })));
@@ -363,7 +363,7 @@ ${i18n.t("codex:copyingProvider", { name: provider.name })}`));
363
363
  defaultValue: false
364
364
  });
365
365
  if (setAsDefault) {
366
- const { switchToProvider } = await import('./simple-config.mjs').then(function (n) { return n.da; });
366
+ const { switchToProvider } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
367
367
  const switched = await switchToProvider(copiedProvider.id);
368
368
  if (switched) {
369
369
  console.log(ansis.green(i18n.t("multi-config:profileSetAsDefault", { name: copiedProvider.name })));
@@ -1,6 +1,6 @@
1
1
  import { pathExists } from 'fs-extra';
2
2
  import { join } from 'pathe';
3
- import { x as CODEX_DIR, y as CODEX_CONFIG_FILE, cE as moveToTrash, cj as i18n, z as CODEX_AUTH_FILE, B as CODEX_AGENTS_FILE, D as CODEX_PROMPTS_DIR } from './simple-config.mjs';
3
+ import { x as CODEX_DIR, y as CODEX_CONFIG_FILE, cF as moveToTrash, cj as i18n, z as CODEX_AUTH_FILE, B as CODEX_AGENTS_FILE, D as CODEX_PROMPTS_DIR } from './simple-config.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:process';
6
6
  import 'ansis';
@@ -154,7 +154,7 @@ class CodexUninstaller {
154
154
  warnings: []
155
155
  };
156
156
  try {
157
- const { uninstallCodeTool } = await import('./simple-config.mjs').then(function (n) { return n.db; });
157
+ const { uninstallCodeTool } = await import('./simple-config.mjs').then(function (n) { return n.dh; });
158
158
  const success = await uninstallCodeTool("codex");
159
159
  if (success) {
160
160
  result.removed.push("@openai/codex");
@@ -1,6 +1,6 @@
1
1
  import ansis from 'ansis';
2
2
  import inquirer from 'inquirer';
3
- import { cj as i18n, co as ensureI18nInitialized, Y as SUPPORTED_LANGS, cz as addNumbersToChoices, _ as LANG_LABELS, cG as updateZcfConfig, cP as changeLanguage, cF as readZcfConfig, ct as promptBoolean, p as openSettingsJson, o as importRecommendedPermissions, n as importRecommendedEnv, bp as applyAiLanguageDirective, cY as configureOutputStyle, bn as getExistingModelConfig, bk as updateCustomModel, bl as updateDefaultModel, cZ as isWindows, ah as readMcpConfig, am as fixWindowsMcpConfig, ai as writeMcpConfig, c_ as selectMcpServices, aj as backupMcpConfig, c$ as getMcpServices, al as buildMcpServerConfig, ak as mergeMcpServers, cq as isCcrInstalled, cr as installCcr, d0 as setupCcrConfiguration, bo as getExistingApiConfig, br as promptApiConfigurationAction, d1 as modifyApiConfigPartially, cQ as validateApiKey, bi as configureApi, d2 as formatApiKeyDisplay, bq as switchToOfficialLogin } from './simple-config.mjs';
3
+ import { cj as i18n, co as ensureI18nInitialized, Y as SUPPORTED_LANGS, cz as addNumbersToChoices, _ as LANG_LABELS, cG as updateZcfConfig, cV as changeLanguage, cC as readZcfConfig, ct as promptBoolean, p as openSettingsJson, o as importRecommendedPermissions, n as importRecommendedEnv, bp as applyAiLanguageDirective, d2 as configureOutputStyle, bn as getExistingModelConfig, bk as updateCustomModel, bl as updateDefaultModel, d3 as isWindows, ah as readMcpConfig, am as fixWindowsMcpConfig, ai as writeMcpConfig, d4 as selectMcpServices, aj as backupMcpConfig, d5 as getMcpServices, al as buildMcpServerConfig, ak as mergeMcpServers, cq as isCcrInstalled, cr as installCcr, d6 as setupCcrConfiguration, bo as getExistingApiConfig, br as promptApiConfigurationAction, d7 as modifyApiConfigPartially, cW as validateApiKey, bi as configureApi, d8 as formatApiKeyDisplay, bq as switchToOfficialLogin } from './simple-config.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:process';
6
6
  import 'pathe';
@@ -353,7 +353,7 @@ ${ansis.blue(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existi
353
353
  return;
354
354
  }
355
355
  }
356
- const { selectAiOutputLanguage } = await import('./simple-config.mjs').then(function (n) { return n.d9; });
356
+ const { selectAiOutputLanguage } = await import('./simple-config.mjs').then(function (n) { return n.df; });
357
357
  const aiOutputLang = await selectAiOutputLanguage();
358
358
  applyAiLanguageDirective(aiOutputLang);
359
359
  updateZcfConfig({ aiOutputLang });
@@ -386,7 +386,7 @@ async function changeScriptLanguageFeature(currentLang) {
386
386
  }
387
387
  async function configureCodexDefaultModelFeature() {
388
388
  ensureI18nInitialized();
389
- const { readCodexConfig } = await import('./simple-config.mjs').then(function (n) { return n.da; });
389
+ const { readCodexConfig } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
390
390
  const existingConfig = readCodexConfig();
391
391
  const currentModel = existingConfig?.model;
392
392
  if (currentModel) {
@@ -487,7 +487,7 @@ ${ansis.blue(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existi
487
487
  return;
488
488
  }
489
489
  }
490
- const { selectAiOutputLanguage } = await import('./simple-config.mjs').then(function (n) { return n.d9; });
490
+ const { selectAiOutputLanguage } = await import('./simple-config.mjs').then(function (n) { return n.df; });
491
491
  const aiOutputLang = await selectAiOutputLanguage();
492
492
  await updateCodexLanguageDirective(aiOutputLang);
493
493
  updateZcfConfig({ aiOutputLang });
@@ -495,14 +495,14 @@ ${ansis.blue(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existi
495
495
  } else if (option === "systemPrompt") {
496
496
  const zcfConfig = readZcfConfig();
497
497
  const currentLang = zcfConfig?.aiOutputLang || "English";
498
- const { runCodexSystemPromptSelection } = await import('./simple-config.mjs').then(function (n) { return n.da; });
498
+ const { runCodexSystemPromptSelection } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
499
499
  await runCodexSystemPromptSelection();
500
500
  await ensureLanguageDirectiveInAgents(currentLang);
501
501
  console.log(ansis.green(`\u2714 ${i18n.t("configuration:systemPromptConfigured")}`));
502
502
  }
503
503
  }
504
504
  async function updateCodexModelProvider(modelProvider) {
505
- const { readCodexConfig, writeCodexConfig, backupCodexConfig, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.da; });
505
+ const { readCodexConfig, writeCodexConfig, backupCodexConfig, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
506
506
  const backupPath = backupCodexConfig();
507
507
  if (backupPath) {
508
508
  console.log(ansis.gray(getBackupMessage(backupPath)));
@@ -523,7 +523,7 @@ async function updateCodexModelProvider(modelProvider) {
523
523
  writeCodexConfig(updatedConfig);
524
524
  }
525
525
  async function ensureLanguageDirectiveInAgents(aiOutputLang) {
526
- const { readFile, writeFile, exists } = await import('./simple-config.mjs').then(function (n) { return n.d4; });
526
+ const { readFile, writeFile, exists } = await import('./simple-config.mjs').then(function (n) { return n.da; });
527
527
  const { homedir } = await import('node:os');
528
528
  const { join } = await import('pathe');
529
529
  const CODEX_AGENTS_FILE = join(homedir(), ".codex", "AGENTS.md");
@@ -541,7 +541,7 @@ async function ensureLanguageDirectiveInAgents(aiOutputLang) {
541
541
  const langLabel = languageLabels[aiOutputLang] || aiOutputLang;
542
542
  const hasLanguageDirective = /\*\*Most Important:\s*Always respond in [^*]+\*\*/i.test(content);
543
543
  if (!hasLanguageDirective) {
544
- const { backupCodexAgents, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.da; });
544
+ const { backupCodexAgents, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
545
545
  const backupPath = backupCodexAgents();
546
546
  if (backupPath) {
547
547
  console.log(ansis.gray(getBackupMessage(backupPath)));
@@ -558,8 +558,8 @@ async function ensureLanguageDirectiveInAgents(aiOutputLang) {
558
558
  }
559
559
  }
560
560
  async function updateCodexLanguageDirective(aiOutputLang) {
561
- const { readFile, writeFile, exists } = await import('./simple-config.mjs').then(function (n) { return n.d4; });
562
- const { backupCodexAgents, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.da; });
561
+ const { readFile, writeFile, exists } = await import('./simple-config.mjs').then(function (n) { return n.da; });
562
+ const { backupCodexAgents, getBackupMessage } = await import('./simple-config.mjs').then(function (n) { return n.dg; });
563
563
  const { homedir } = await import('node:os');
564
564
  const { join } = await import('pathe');
565
565
  const CODEX_AGENTS_FILE = join(homedir(), ".codex", "AGENTS.md");