ccjk 13.6.5 → 13.6.7

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 (49) hide show
  1. package/dist/chunks/api-config-selector.mjs +6 -4
  2. package/dist/chunks/auto-updater.mjs +100 -2
  3. package/dist/chunks/banner.mjs +0 -16
  4. package/dist/chunks/ccjk-mcp.mjs +2 -2
  5. package/dist/chunks/ccr.mjs +5 -3
  6. package/dist/chunks/check-updates.mjs +12 -1
  7. package/dist/chunks/claude-code-config-manager.mjs +3 -1
  8. package/dist/chunks/claude-code-incremental-manager.mjs +46 -20
  9. package/dist/chunks/claude-config.mjs +36 -3
  10. package/dist/chunks/claude-wrapper.mjs +1 -1
  11. package/dist/chunks/cli-hook.mjs +4 -5
  12. package/dist/chunks/codex-config-switch.mjs +3 -2
  13. package/dist/chunks/codex-provider-manager.mjs +1 -0
  14. package/dist/chunks/codex.mjs +3 -359
  15. package/dist/chunks/config-switch.mjs +23 -10
  16. package/dist/chunks/config.mjs +1 -1
  17. package/dist/chunks/config2.mjs +3 -3
  18. package/dist/chunks/constants.mjs +1 -1
  19. package/dist/chunks/doctor.mjs +1 -1
  20. package/dist/chunks/features.mjs +76 -11
  21. package/dist/chunks/index10.mjs +15 -15
  22. package/dist/chunks/init.mjs +14 -30
  23. package/dist/chunks/installer.mjs +3 -3
  24. package/dist/chunks/mcp-cli.mjs +17 -16
  25. package/dist/chunks/mcp.mjs +8 -7
  26. package/dist/chunks/memory-check.mjs +1 -1
  27. package/dist/chunks/package.mjs +1 -1
  28. package/dist/chunks/platform.mjs +1 -1
  29. package/dist/chunks/quick-setup.mjs +12 -10
  30. package/dist/chunks/research.mjs +225 -27
  31. package/dist/chunks/smart-defaults.mjs +2 -2
  32. package/dist/chunks/uninstall.mjs +1 -1
  33. package/dist/chunks/update.mjs +14 -13
  34. package/dist/chunks/version-checker.mjs +11 -1
  35. package/dist/cli.mjs +5 -1
  36. package/dist/i18n/locales/en/cli.json +0 -4
  37. package/dist/i18n/locales/en/menu.json +3 -3
  38. package/dist/i18n/locales/en/notification.json +2 -2
  39. package/dist/i18n/locales/zh-CN/cli.json +0 -4
  40. package/dist/i18n/locales/zh-CN/menu.json +3 -3
  41. package/dist/i18n/locales/zh-CN/notification.json +2 -2
  42. package/dist/shared/{ccjk.DvAP4XfP.mjs → ccjk.B4aXNclK.mjs} +2 -2
  43. package/dist/shared/ccjk.BI-hdI7P.mjs +30 -0
  44. package/dist/shared/{ccjk.C4m4ypdk.mjs → ccjk.DHaUdzX3.mjs} +4 -3
  45. package/dist/shared/ccjk.DKXs7Fbm.mjs +361 -0
  46. package/dist/shared/{ccjk.BP5hsTZQ.mjs → ccjk.Dz0ssUQx.mjs} +1 -1
  47. package/package.json +3 -1
  48. package/templates/common/workflow/essential/en/feat.md +68 -291
  49. package/templates/common/workflow/sixStep/en/workflow.md +56 -330
@@ -3,11 +3,15 @@ import { homedir } from 'node:os';
3
3
  import process__default from 'node:process';
4
4
  import a from './index5.mjs';
5
5
  import { i as inquirer } from './index6.mjs';
6
+ import { g as getMcpServices } from '../shared/ccjk.DKXs7Fbm.mjs';
6
7
  import { SUPPORTED_LANGS, LANG_LABELS } from './constants.mjs';
7
8
  import { ensureI18nInitialized, i18n, changeLanguage } from './index2.mjs';
8
9
  import { updateZcfConfig, readZcfConfig } from './ccjk-config.mjs';
10
+ import { r as readMcpConfig, f as fixWindowsMcpConfig, w as writeMcpConfig, b as backupMcpConfig, a as buildMcpServerConfig, m as mergeMcpServers } from './claude-config.mjs';
9
11
  import { g as getExistingModelConfig, a as getExistingCustomModelConfig, u as updateCustomModel, c as updateDefaultModel, d as getExistingApiConfig, p as promptApiConfigurationAction, e as configureApi } from './config.mjs';
10
- import { m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.BP5hsTZQ.mjs';
12
+ import { c as configureOutputStyle, m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.Dz0ssUQx.mjs';
13
+ import { s as selectMcpServices } from '../shared/ccjk.BI-hdI7P.mjs';
14
+ import { i as isWindows } from './platform.mjs';
11
15
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
12
16
  import { p as promptBoolean } from '../shared/ccjk.DZ2LLOa-.mjs';
13
17
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
@@ -25,6 +29,7 @@ import 'node:path';
25
29
  import 'node:crypto';
26
30
  import 'buffer';
27
31
  import 'string_decoder';
32
+ import 'node:child_process';
28
33
  import 'node:url';
29
34
  import '../shared/ccjk.BBtCGd_g.mjs';
30
35
  import './index3.mjs';
@@ -32,13 +37,10 @@ import './fs-operations.mjs';
32
37
  import 'node:fs/promises';
33
38
  import './json-config.mjs';
34
39
  import '../shared/ccjk.RyizuzOI.mjs';
35
- import './claude-config.mjs';
36
- import './platform.mjs';
40
+ import '../shared/ccjk.DScm_NnL.mjs';
37
41
  import './main.mjs';
38
42
  import 'module';
39
- import 'node:child_process';
40
43
  import 'node:stream';
41
- import '../shared/ccjk.DScm_NnL.mjs';
42
44
  import '../shared/ccjk.DeWpAShp.mjs';
43
45
 
44
46
  const DEFAULT_MODEL_CHOICES = [
@@ -105,7 +107,7 @@ async function handleCustomApiMode() {
105
107
  ensureI18nInitialized();
106
108
  const zcfConfig = readZcfConfig();
107
109
  const codeToolType = zcfConfig?.codeToolType || "claude-code";
108
- if (codeToolType === "claude-code") {
110
+ if (codeToolType === "claude-code" || codeToolType === "myclaude") {
109
111
  const { configureIncrementalManagement } = await import('./claude-code-incremental-manager.mjs');
110
112
  await configureIncrementalManagement();
111
113
  return;
@@ -191,6 +193,57 @@ async function handleCustomApiMode() {
191
193
  console.log(a.gray(` Key: ${formatApiKeyDisplay(configuredApi.key)}`));
192
194
  }
193
195
  }
196
+ async function configureMcpFeature() {
197
+ ensureI18nInitialized();
198
+ if (isWindows()) {
199
+ const fixWindows = await promptBoolean({
200
+ message: i18n.t("configuration:fixWindowsMcp") || "Fix Windows MCP configuration?",
201
+ defaultValue: true
202
+ });
203
+ if (fixWindows) {
204
+ const existingConfig = readMcpConfig() || { mcpServers: {} };
205
+ const fixedConfig = fixWindowsMcpConfig(existingConfig);
206
+ writeMcpConfig(fixedConfig);
207
+ console.log(a.green(`\u2714 ${i18n.t("configuration:windowsMcpConfigFixed")}`));
208
+ }
209
+ }
210
+ const selectedServices = await selectMcpServices();
211
+ if (!selectedServices) {
212
+ return;
213
+ }
214
+ if (selectedServices.length > 0) {
215
+ const mcpBackupPath = backupMcpConfig();
216
+ if (mcpBackupPath) {
217
+ console.log(a.gray(`\u2714 ${i18n.t("mcp:mcpBackupSuccess")}: ${mcpBackupPath}`));
218
+ }
219
+ const newServers = {};
220
+ for (const serviceId of selectedServices) {
221
+ const service = (await getMcpServices()).find((s) => s.id === serviceId);
222
+ if (!service)
223
+ continue;
224
+ let config = service.config;
225
+ if (service.requiresApiKey) {
226
+ const { apiKey } = await inquirer.prompt({
227
+ type: "input",
228
+ name: "apiKey",
229
+ message: service.apiKeyPrompt,
230
+ validate: async (value) => !!value || i18n.t("api:keyRequired")
231
+ });
232
+ if (apiKey) {
233
+ config = buildMcpServerConfig(service.config, apiKey, service.apiKeyPlaceholder, service.apiKeyEnvVar);
234
+ } else {
235
+ continue;
236
+ }
237
+ }
238
+ newServers[service.id] = config;
239
+ }
240
+ const existingConfig = readMcpConfig();
241
+ let mergedConfig = mergeMcpServers(existingConfig, newServers);
242
+ mergedConfig = fixWindowsMcpConfig(mergedConfig);
243
+ writeMcpConfig(mergedConfig);
244
+ console.log(a.green(`\u2714 ${i18n.t("mcp:mcpConfigSuccess")}`));
245
+ }
246
+ }
194
247
  async function configureDefaultModelFeature() {
195
248
  ensureI18nInitialized();
196
249
  const existingModel = getExistingModelConfig();
@@ -293,7 +346,7 @@ async function changeScriptLanguageFeature(currentLang) {
293
346
  }
294
347
  async function configureCodexDefaultModelFeature() {
295
348
  ensureI18nInitialized();
296
- const { readCodexConfig } = await import('./codex.mjs').then(function (n) { return n.v; });
349
+ const { readCodexConfig } = await import('./codex.mjs').then(function (n) { return n.q; });
297
350
  const existingConfig = readCodexConfig();
298
351
  const currentModel = existingConfig?.model;
299
352
  if (currentModel) {
@@ -393,14 +446,14 @@ ${a.green(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existing
393
446
  } else if (option === "systemPrompt") {
394
447
  const zcfConfig = readZcfConfig();
395
448
  const currentLang = zcfConfig?.aiOutputLang || "English";
396
- const { runCodexSystemPromptSelection } = await import('./codex.mjs').then(function (n) { return n.v; });
449
+ const { runCodexSystemPromptSelection } = await import('./codex.mjs').then(function (n) { return n.q; });
397
450
  await runCodexSystemPromptSelection();
398
451
  await ensureLanguageDirectiveInAgents(currentLang);
399
452
  console.log(a.green(`\u2714 ${i18n.t("configuration:systemPromptConfigured")}`));
400
453
  }
401
454
  }
402
455
  async function updateCodexModelProvider(modelProvider) {
403
- const { readCodexConfig, writeCodexConfig, backupCodexConfig, getBackupMessage } = await import('./codex.mjs').then(function (n) { return n.v; });
456
+ const { readCodexConfig, writeCodexConfig, backupCodexConfig, getBackupMessage } = await import('./codex.mjs').then(function (n) { return n.q; });
404
457
  const backupPath = backupCodexConfig();
405
458
  if (backupPath) {
406
459
  console.log(a.gray(getBackupMessage(backupPath)));
@@ -430,7 +483,7 @@ const codexLanguageLabels = {
430
483
  };
431
484
  async function setCodexLanguageDirective(aiOutputLang, mode) {
432
485
  const { readFile, writeFileAtomic, exists } = await import('./fs-operations.mjs');
433
- const { backupCodexAgents, getBackupMessage } = await import('./codex.mjs').then(function (n) { return n.v; });
486
+ const { backupCodexAgents, getBackupMessage } = await import('./codex.mjs').then(function (n) { return n.q; });
434
487
  const CODEX_AGENTS_FILE = join(homedir(), ".codex", "AGENTS.md");
435
488
  if (!exists(CODEX_AGENTS_FILE)) {
436
489
  console.log(a.yellow(i18n.t("codex:agentsFileNotFound")));
@@ -460,6 +513,8 @@ async function updateCodexLanguageDirective(aiOutputLang) {
460
513
  return setCodexLanguageDirective(aiOutputLang, "update");
461
514
  }
462
515
  async function configureMemoryFeature() {
516
+ ensureI18nInitialized();
517
+ const isZh = i18n.language === "zh-CN";
463
518
  const inquirer2 = (await import('./index6.mjs').then(function (n) { return n.c; })).default;
464
519
  const ansis2 = (await import('./index5.mjs')).default;
465
520
  const { execSync } = await import('node:child_process');
@@ -502,6 +557,8 @@ ${ansis2.bold(i18n.t("memory:currentStatus"))}`);
502
557
  { name: i18n.t("memory:editMemory"), value: "edit" },
503
558
  { name: i18n.t("memory:syncNow"), value: "sync" },
504
559
  { name: i18n.t("memory:configureRules"), value: "rules" },
560
+ { name: isZh ? "\u{1F310} \u914D\u7F6E AI \u8F93\u51FA\u8BED\u8A00" : "\u{1F310} Configure AI output language", value: "language" },
561
+ { name: isZh ? "\u{1F3A8} \u914D\u7F6E\u8F93\u51FA\u98CE\u683C" : "\u{1F3A8} Configure output style", value: "outputStyle" },
505
562
  { name: i18n.t("memory:back"), value: "back" }
506
563
  ]
507
564
  }
@@ -573,7 +630,15 @@ ${ansis2.bold(i18n.t("memory:memoryContent"))}`);
573
630
  console.log(i18n.t("memory:rulesDescription"));
574
631
  break;
575
632
  }
633
+ case "language": {
634
+ await changeScriptLanguageFeature(i18n.language);
635
+ break;
636
+ }
637
+ case "outputStyle": {
638
+ await configureOutputStyle();
639
+ break;
640
+ }
576
641
  }
577
642
  }
578
643
 
579
- export { CODEX_MODEL_CHOICES, DEFAULT_MODEL_CHOICES, changeScriptLanguageFeature, configureCodexAiMemoryFeature, configureCodexDefaultModelFeature, configureDefaultModelFeature, configureMemoryFeature, formatCodexModelLabel, handleCustomApiMode, promptCustomModels };
644
+ export { CODEX_MODEL_CHOICES, DEFAULT_MODEL_CHOICES, changeScriptLanguageFeature, configureCodexAiMemoryFeature, configureCodexDefaultModelFeature, configureDefaultModelFeature, configureMcpFeature, configureMemoryFeature, formatCodexModelLabel, handleCustomApiMode, promptCustomModels };
@@ -4,7 +4,7 @@ import { CLOUD_ENDPOINTS, CCJK_CONFIG_DIR, SUPPORTED_LANGS, LANG_LABELS, CODE_TO
4
4
  import { ensureI18nInitialized, i18n, resolveSupportedLanguage, changeLanguage } from './index2.mjs';
5
5
  import { displayBannerWithInfo } from './banner.mjs';
6
6
  import { readZcfConfig, updateZcfConfig } from './ccjk-config.mjs';
7
- import { c as runCodexUpdate, m as runCodexUninstall, n as configureCodexAiMemoryFeature, o as configureCodexDefaultModelFeature, p as configureCodexMcp, q as configureCodexApi, t as configureCodexPresetFeature, u as runCodexWorkflowImportWithLanguageSelection, k as runCodexFullInit } from './codex.mjs';
7
+ import { c as runCodexUpdate, i as runCodexUninstall, j as configureCodexAiMemoryFeature, k as configureCodexDefaultModelFeature, m as configureCodexMcp, n as configureCodexApi, o as configureCodexPresetFeature, p as runCodexWorkflowImportWithLanguageSelection, h as runCodexFullInit } from './codex.mjs';
8
8
  import { S as STARTUP_CODE_TOOL_CHOICES, a as resolveStartupCodeType } from '../shared/ccjk.yYQMbHH3.mjs';
9
9
  import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
10
10
  import { changeScriptLanguageFeature } from './features.mjs';
@@ -26,7 +26,7 @@ import { configSwitchCommand } from './config-switch.mjs';
26
26
  import process__default from 'node:process';
27
27
  import { readFile, writeFileAtomic, ensureDir, exists, readJsonFile } from './fs-operations.mjs';
28
28
  import { workspaceDiagnostics, doctor } from './doctor.mjs';
29
- import { a as mcpList, c as mcpUninstall, m as mcpInstall, d as mcpTrending, b as mcpSearch } from '../shared/ccjk.DvAP4XfP.mjs';
29
+ import { a as mcpList, c as mcpUninstall, m as mcpInstall, d as mcpTrending, b as mcpSearch } from '../shared/ccjk.B4aXNclK.mjs';
30
30
  import { notificationCommand } from './notification.mjs';
31
31
  import { g as getRuntimeVersion } from '../shared/ccjk.gDEDGD_t.mjs';
32
32
  import { uninstall } from './uninstall.mjs';
@@ -3162,7 +3162,7 @@ async function runOnboardingWizard(options = {}) {
3162
3162
  console.log("");
3163
3163
  }
3164
3164
 
3165
- const NON_CODEX_TOOLS = ["claude-code", "aider", "continue", "cline", "cursor"];
3165
+ const NON_CODEX_TOOLS = ["claude-code", "myclaude", "aider", "continue", "cline", "cursor"];
3166
3166
  const quickActionsItems = [
3167
3167
  {
3168
3168
  id: "init",
@@ -3238,6 +3238,17 @@ const quickActionsItems = [
3238
3238
  icon: "\u{1F4F1}",
3239
3239
  shortcut: "5",
3240
3240
  supportedTools: NON_CODEX_TOOLS
3241
+ },
3242
+ {
3243
+ id: "switch-code-tool",
3244
+ label: "menuOptions.switchCodeTool",
3245
+ description: "menuDescriptions.switchCodeTool",
3246
+ category: "quick",
3247
+ level: "basic",
3248
+ action: "command",
3249
+ icon: "\u{1F504}",
3250
+ shortcut: "s",
3251
+ supportedTools: NON_CODEX_TOOLS
3241
3252
  }
3242
3253
  ];
3243
3254
  const configItems = [
@@ -3468,17 +3479,6 @@ const systemItems = [
3468
3479
  shortcut: "z",
3469
3480
  supportedTools: NON_CODEX_TOOLS
3470
3481
  },
3471
- {
3472
- id: "switch-code-tool",
3473
- label: "menuOptions.switchCodeTool",
3474
- description: "menuDescriptions.switchCodeTool",
3475
- category: "system",
3476
- level: "expert",
3477
- action: "command",
3478
- icon: "\u{1F504}",
3479
- shortcut: "t",
3480
- supportedTools: NON_CODEX_TOOLS
3481
- },
3482
3482
  {
3483
3483
  id: "uninstall",
3484
3484
  label: "menuOptions.uninstall",
@@ -4126,7 +4126,7 @@ function attachHandlers(items, codeTool) {
4126
4126
  await configureCodexMcp();
4127
4127
  return;
4128
4128
  }
4129
- await (await import('./mcp.mjs')).mcpStatus({});
4129
+ await (await import('./features.mjs')).configureMcpFeature();
4130
4130
  }
4131
4131
  };
4132
4132
  case "model-config":
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
2
2
  import process__default from 'node:process';
3
3
  import a from './index5.mjs';
4
4
  import { i as inquirer } from './index6.mjs';
5
- import { g as getMcpServices, M as MCP_SERVICE_CONFIGS, k as runCodexFullInit } from './codex.mjs';
5
+ import { M as MCP_SERVICE_CONFIGS, g as getMcpServices } from '../shared/ccjk.DKXs7Fbm.mjs';
6
6
  import { SETTINGS_FILE, API_DEFAULT_URL, DEFAULT_CODE_TOOL_TYPE, CODE_TOOL_BANNERS, isClaudeFamilyCodeTool, CODE_TOOL_INFO } from './constants.mjs';
7
7
  import { ensureI18nInitialized, i18n } from './index2.mjs';
8
8
  import { displayBannerWithInfo, padToDisplayWidth } from './banner.mjs';
@@ -11,16 +11,18 @@ import { readCcrConfig, backupCcrConfig, createDefaultCcrConfig, writeCcrConfig,
11
11
  import { exec } from 'node:child_process';
12
12
  import { promisify } from 'node:util';
13
13
  import { updateCcr } from './auto-updater.mjs';
14
- import { w as wrapCommandWithSudo, k as isWindows, i as isTermux } from './platform.mjs';
15
- import { e as setMyclaudeProviderProfiles, a as addCompletedOnboarding, s as setPrimaryApiKey, f as clearMyclaudeProviderProfiles, c as backupMcpConfig, b as buildMcpServerConfig, r as readMcpConfig, g as replaceMcpServers, h as fixWindowsMcpConfig, w as writeMcpConfig, i as syncMcpPermissions } from './claude-config.mjs';
14
+ import { w as wrapCommandWithSudo, i as isWindows, b as isTermux } from './platform.mjs';
15
+ import { h as setMyclaudeProviderProfiles, e as addCompletedOnboarding, d as setPrimaryApiKey, i as clearMyclaudeProviderProfiles, b as backupMcpConfig, a as buildMcpServerConfig, r as readMcpConfig, j as replaceMcpServers, f as fixWindowsMcpConfig, w as writeMcpConfig, k as syncMcpPermissions } from './claude-config.mjs';
16
+ import { h as runCodexFullInit } from './codex.mjs';
16
17
  import { a as resolveStartupCodeType, r as resolveCodeType } from '../shared/ccjk.yYQMbHH3.mjs';
17
18
  import { exists } from './fs-operations.mjs';
18
19
  import { readJsonConfig, writeJsonConfig } from './json-config.mjs';
19
20
  import { p as promptApiConfigurationAction, i as ensureClaudeDir, d as getExistingApiConfig, s as switchToOfficialLogin, b as backupExistingConfig, f as copyConfigFiles, h as applyAiLanguageDirective, e as configureApi } from './config.mjs';
20
21
  import { n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration } from '../shared/ccjk.DDq2hqA5.mjs';
21
- import { m as modifyApiConfigPartially, c as configureApiCompletely, a as configureOutputStyle, f as formatApiKeyDisplay } from '../shared/ccjk.BP5hsTZQ.mjs';
22
+ import { m as modifyApiConfigPartially, a as configureApiCompletely, c as configureOutputStyle, f as formatApiKeyDisplay } from '../shared/ccjk.Dz0ssUQx.mjs';
22
23
  import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
23
24
  import { getInstallationStatus, installMyclaude, installClaudeCode } from './installer.mjs';
25
+ import { s as selectMcpServices } from '../shared/ccjk.BI-hdI7P.mjs';
24
26
  import { p as parseOrchestrationLevel, w as writeOrchestrationPolicy } from './smart-defaults.mjs';
25
27
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
26
28
  import { resolveAiOutputLanguage } from './prompts.mjs';
@@ -97,30 +99,6 @@ async function installCcr() {
97
99
  }
98
100
  }
99
101
 
100
- async function selectMcpServices() {
101
- ensureI18nInitialized();
102
- const mcpServices = await getMcpServices();
103
- const defaultSelectedIds = new Set(
104
- MCP_SERVICE_CONFIGS.filter((c) => c.defaultSelected).map((c) => c.id)
105
- );
106
- const choices = mcpServices.map((service) => ({
107
- name: `${service.name} - ${a.gray(service.description)}`,
108
- value: service.id,
109
- checked: defaultSelectedIds.has(service.id)
110
- }));
111
- const { services } = await inquirer.prompt({
112
- type: "checkbox",
113
- name: "services",
114
- message: `${i18n.t("mcp:selectMcpServices")}${i18n.t("common:multiSelectHint")}`,
115
- choices
116
- });
117
- if (services === void 0) {
118
- console.log(a.yellow(i18n.t("common:cancelled")));
119
- return void 0;
120
- }
121
- return services;
122
- }
123
-
124
102
  const COMETIX_PACKAGE_NAME = "@cometix/ccline";
125
103
  const COMETIX_COMMAND_NAME = "ccline";
126
104
  const COMETIX_COMMANDS = {
@@ -861,7 +839,7 @@ async function handleCodexConfigs(configs) {
861
839
  }
862
840
  const defaultConfig = configs.find((c) => c.default);
863
841
  if (defaultConfig) {
864
- const { switchCodexProvider } = await import('./codex.mjs').then(function (n) { return n.v; });
842
+ const { switchCodexProvider } = await import('./codex.mjs').then(function (n) { return n.q; });
865
843
  const displayName = defaultConfig.name || defaultConfig.provider || "custom";
866
844
  const providerId = displayName.toLowerCase().replace(/[^a-z0-9]/g, "-");
867
845
  if (addedProviderIds.includes(providerId)) {
@@ -930,6 +908,7 @@ async function buildClaudeCodeProfile(params) {
930
908
  return {
931
909
  name: params.name,
932
910
  authType,
911
+ provider: params.provider || "custom",
933
912
  apiKey: params.key,
934
913
  baseUrl,
935
914
  primaryModel,
@@ -974,7 +953,12 @@ async function convertToMyclaudeProviderProfile(config) {
974
953
  apiKey: claudeProfile.apiKey,
975
954
  baseUrl: claudeProfile.baseUrl,
976
955
  model: claudeProfile.primaryModel,
977
- fastModel: claudeProfile.defaultHaikuModel
956
+ fastModel: claudeProfile.defaultHaikuModel,
957
+ authType: claudeProfile.authType,
958
+ primaryModel: claudeProfile.primaryModel,
959
+ defaultHaikuModel: claudeProfile.defaultHaikuModel,
960
+ defaultSonnetModel: claudeProfile.defaultSonnetModel,
961
+ defaultOpusModel: claudeProfile.defaultOpusModel
978
962
  };
979
963
  }
980
964
  async function convertToCodexProvider(config) {
@@ -9,7 +9,7 @@ import { getCodeToolRuntimeCommand, CODE_TOOL_INFO, isClaudeFamilyCodeTool } fro
9
9
  import { ensureI18nInitialized, i18n } from './index2.mjs';
10
10
  import { updateClaudeCode } from './auto-updater.mjs';
11
11
  import { exists } from './fs-operations.mjs';
12
- import { f as findCommandPath, g as getPlatform, a as getHomebrewCommandPaths, i as isTermux, b as getTermuxPrefix, w as wrapCommandWithSudo, c as isWSL, d as getWSLInfo, e as commandExists, h as getRecommendedInstallMethods } from './platform.mjs';
12
+ import { f as findCommandPath, g as getPlatform, a as getHomebrewCommandPaths, b as isTermux, c as getTermuxPrefix, w as wrapCommandWithSudo, d as isWSL, e as getWSLInfo, h as commandExists, j as getRecommendedInstallMethods } from './platform.mjs';
13
13
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
14
14
  import '../shared/ccjk.BAGoDD49.mjs';
15
15
  import 'node:readline';
@@ -224,7 +224,7 @@ async function getInstallationStatus(codeType = "claude-code") {
224
224
  async function getInstallMethodFromConfig(codeType) {
225
225
  try {
226
226
  if (isClaudeFamilyCodeTool(codeType)) {
227
- const { readMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.j; });
227
+ const { readMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.l; });
228
228
  const config = readMcpConfig();
229
229
  return config?.installMethod || null;
230
230
  }
@@ -348,7 +348,7 @@ async function uninstallCodeTool(codeType) {
348
348
  async function setInstallMethod(method, codeType = "claude-code") {
349
349
  try {
350
350
  if (isClaudeFamilyCodeTool(codeType)) {
351
- const { readMcpConfig, writeMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.j; });
351
+ const { readMcpConfig, writeMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.l; });
352
352
  let config = readMcpConfig();
353
353
  if (!config) {
354
354
  config = { mcpServers: {} };
@@ -1,15 +1,28 @@
1
1
  import a from './index5.mjs';
2
- import { g as getMcpServices } from './codex.mjs';
2
+ import { g as getMcpServices } from '../shared/ccjk.DKXs7Fbm.mjs';
3
3
  import { i18n } from './index2.mjs';
4
4
  import { r as readMcpConfig } from './claude-config.mjs';
5
- import { i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.C4m4ypdk.mjs';
5
+ import { i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.DHaUdzX3.mjs';
6
6
  import '../shared/ccjk.BAGoDD49.mjs';
7
+ import 'node:child_process';
7
8
  import 'node:process';
8
9
  import 'node:fs';
9
10
  import 'node:url';
11
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
12
+ import './constants.mjs';
13
+ import 'node:os';
14
+ import './json-config.mjs';
10
15
  import '../shared/ccjk.RyizuzOI.mjs';
11
- import './index6.mjs';
16
+ import './fs-operations.mjs';
17
+ import 'node:crypto';
18
+ import 'node:fs/promises';
19
+ import './platform.mjs';
20
+ import './main.mjs';
21
+ import 'module';
22
+ import 'node:path';
23
+ import 'node:stream';
12
24
  import 'node:readline';
25
+ import './index6.mjs';
13
26
  import 'stream';
14
27
  import 'node:tty';
15
28
  import 'node:async_hooks';
@@ -18,29 +31,17 @@ import 'node:util';
18
31
  import 'tty';
19
32
  import 'fs';
20
33
  import 'child_process';
21
- import 'node:path';
22
- import 'node:os';
23
- import 'node:crypto';
24
34
  import 'buffer';
25
35
  import 'string_decoder';
36
+ import './codex.mjs';
26
37
  import './index8.mjs';
27
38
  import '../shared/ccjk.DeWpAShp.mjs';
28
39
  import '../shared/ccjk.CxpGa6MC.mjs';
29
40
  import '../shared/ccjk.BBtCGd_g.mjs';
30
- import './main.mjs';
31
- import 'module';
32
- import 'node:child_process';
33
- import 'node:stream';
34
- import './constants.mjs';
35
- import '../shared/ccjk.bQ7Dh1g4.mjs';
36
41
  import './ccjk-config.mjs';
37
42
  import './index3.mjs';
38
- import './fs-operations.mjs';
39
- import 'node:fs/promises';
40
- import './json-config.mjs';
41
43
  import './config.mjs';
42
44
  import '../shared/ccjk.DScm_NnL.mjs';
43
- import './platform.mjs';
44
45
  import '../shared/ccjk.BFQ7yr5S.mjs';
45
46
  import './prompts.mjs';
46
47
  import '../shared/ccjk.gDEDGD_t.mjs';
@@ -5,10 +5,11 @@ import { readZcfConfig } from './ccjk-config.mjs';
5
5
  import 'node:child_process';
6
6
  import 'node:process';
7
7
  import { M as MCP_SERVICE_TIERS, i as isCoreService, g as getServicesByTier, c as checkMcpPerformance, f as formatPerformanceWarning, a as calculateResourceUsage, b as getOptimizationSuggestions, d as getMcpTierConfig } from './mcp-performance.mjs';
8
- import { r as readMcpConfig, c as backupMcpConfig, w as writeMcpConfig } from './claude-config.mjs';
9
- export { m as mcpInstall, a as mcpList, b as mcpSearch, c as mcpUninstall } from '../shared/ccjk.DvAP4XfP.mjs';
10
- import { M as MCP_SERVICE_CONFIGS, r as readCodexConfig, e as backupCodexComplete, w as writeCodexConfig, j as applyCodexPlatformCommand } from './codex.mjs';
11
- import { k as isWindows, m as getSystemRoot } from './platform.mjs';
8
+ import { r as readMcpConfig, b as backupMcpConfig, w as writeMcpConfig } from './claude-config.mjs';
9
+ export { m as mcpInstall, a as mcpList, b as mcpSearch, c as mcpUninstall } from '../shared/ccjk.B4aXNclK.mjs';
10
+ import { M as MCP_SERVICE_CONFIGS } from '../shared/ccjk.DKXs7Fbm.mjs';
11
+ import { r as readCodexConfig, e as backupCodexComplete, w as writeCodexConfig, g as applyCodexPlatformCommand } from './codex.mjs';
12
+ import { i as isWindows, m as getSystemRoot } from './platform.mjs';
12
13
  import '../shared/ccjk.BAGoDD49.mjs';
13
14
  import 'node:os';
14
15
  import '../shared/ccjk.bQ7Dh1g4.mjs';
@@ -34,7 +35,7 @@ import 'child_process';
34
35
  import 'node:path';
35
36
  import 'buffer';
36
37
  import 'string_decoder';
37
- import '../shared/ccjk.C4m4ypdk.mjs';
38
+ import '../shared/ccjk.DHaUdzX3.mjs';
38
39
  import './index8.mjs';
39
40
  import '../shared/ccjk.DeWpAShp.mjs';
40
41
  import '../shared/ccjk.CxpGa6MC.mjs';
@@ -575,8 +576,8 @@ function getServiceTier(serviceId, tiers) {
575
576
  return caseInsensitiveMatch?.[1] || "ondemand";
576
577
  }
577
578
  async function mcpStatus(options = {}) {
578
- const { readMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.j; });
579
- const { readCodexConfig } = await import('./codex.mjs').then(function (n) { return n.v; });
579
+ const { readMcpConfig } = await import('./claude-config.mjs').then(function (n) { return n.l; });
580
+ const { readCodexConfig } = await import('./codex.mjs').then(function (n) { return n.q; });
580
581
  const { checkMcpPerformance, formatPerformanceWarning } = await import('./mcp-performance.mjs').then(function (n) { return n.e; });
581
582
  const { MCP_SERVICE_TIERS } = await import('./mcp-performance.mjs').then(function (n) { return n.m; });
582
583
  const lang = options.lang || i18n.language || "en";
@@ -2940,7 +2940,7 @@ const memoryCheck = {
2940
2940
  }
2941
2941
  const fixes = [];
2942
2942
  if (!hasMemoryDir || !hasMemoryContent) {
2943
- fixes.push("Enable Claude auto-memory in settings");
2943
+ fixes.push("Enable shared Claude-family memory in settings");
2944
2944
  result.command = "ccjk menu";
2945
2945
  }
2946
2946
  if (!hasCcjkRules) {
@@ -1,3 +1,3 @@
1
- const version = "13.6.5";
1
+ const version = "13.6.7";
2
2
 
3
3
  export { version };
@@ -392,4 +392,4 @@ const platform = {
392
392
  wrapCommandWithSudo: wrapCommandWithSudo
393
393
  };
394
394
 
395
- export { getHomebrewCommandPaths as a, getTermuxPrefix as b, isWSL as c, getWSLInfo as d, commandExists as e, findCommandPath as f, getPlatform as g, getRecommendedInstallMethods as h, isTermux as i, findRealCommandPath as j, isWindows as k, getMcpCommand as l, getSystemRoot as m, normalizeTomlPath as n, platform as p, shouldUseSudoForGlobalInstall as s, wrapCommandWithSudo as w };
395
+ export { getHomebrewCommandPaths as a, isTermux as b, getTermuxPrefix as c, isWSL as d, getWSLInfo as e, findCommandPath as f, getPlatform as g, commandExists as h, isWindows as i, getRecommendedInstallMethods as j, findRealCommandPath as k, getMcpCommand as l, getSystemRoot as m, normalizeTomlPath as n, platform as p, shouldUseSudoForGlobalInstall as s, wrapCommandWithSudo as w };
@@ -37,25 +37,27 @@ import '../shared/ccjk.DJuyfrlL.mjs';
37
37
  import 'node:url';
38
38
  import '../shared/ccjk.BBtCGd_g.mjs';
39
39
  import './index3.mjs';
40
- import './codex.mjs';
41
- import './index8.mjs';
42
- import '../shared/ccjk.DeWpAShp.mjs';
43
- import '../shared/ccjk.CxpGa6MC.mjs';
44
- import './config.mjs';
40
+ import '../shared/ccjk.DKXs7Fbm.mjs';
41
+ import './banner.mjs';
42
+ import './config2.mjs';
45
43
  import './claude-config.mjs';
44
+ import './config.mjs';
46
45
  import '../shared/ccjk.DScm_NnL.mjs';
47
- import '../shared/ccjk.BFQ7yr5S.mjs';
48
- import './prompts.mjs';
49
46
  import '../shared/ccjk.DZ2LLOa-.mjs';
50
- import './banner.mjs';
51
- import './config2.mjs';
47
+ import '../shared/ccjk.DeWpAShp.mjs';
52
48
  import './auto-updater.mjs';
49
+ import './index8.mjs';
53
50
  import './version-checker.mjs';
51
+ import '../shared/ccjk.CxpGa6MC.mjs';
52
+ import './codex.mjs';
53
+ import '../shared/ccjk.BFQ7yr5S.mjs';
54
+ import './prompts.mjs';
54
55
  import '../shared/ccjk.yYQMbHH3.mjs';
55
56
  import '../shared/ccjk.DDq2hqA5.mjs';
56
- import '../shared/ccjk.BP5hsTZQ.mjs';
57
+ import '../shared/ccjk.Dz0ssUQx.mjs';
57
58
  import '../shared/ccjk.DGllfVCZ.mjs';
58
59
  import './installer.mjs';
60
+ import '../shared/ccjk.BI-hdI7P.mjs';
59
61
  import '../shared/ccjk.BJENIVf7.mjs';
60
62
  import '../shared/ccjk.Bq8TqZG_.mjs';
61
63