zcf 3.2.3 → 3.3.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 (41) hide show
  1. package/README.md +102 -14
  2. package/dist/chunks/api-providers.mjs +76 -0
  3. package/dist/chunks/claude-code-config-manager.mjs +21 -7
  4. package/dist/chunks/claude-code-incremental-manager.mjs +210 -14
  5. package/dist/chunks/codex-config-switch.mjs +197 -12
  6. package/dist/chunks/codex-provider-manager.mjs +20 -9
  7. package/dist/chunks/codex-uninstaller.mjs +19 -24
  8. package/dist/chunks/commands.mjs +1 -1
  9. package/dist/chunks/features.mjs +637 -0
  10. package/dist/chunks/simple-config.mjs +182 -29
  11. package/dist/cli.mjs +13 -613
  12. package/dist/i18n/locales/en/api.json +6 -1
  13. package/dist/i18n/locales/en/codex.json +7 -0
  14. package/dist/i18n/locales/en/errors.json +1 -0
  15. package/dist/i18n/locales/en/multi-config.json +8 -1
  16. package/dist/i18n/locales/zh-CN/api.json +6 -1
  17. package/dist/i18n/locales/zh-CN/codex.json +7 -0
  18. package/dist/i18n/locales/zh-CN/errors.json +1 -0
  19. package/dist/i18n/locales/zh-CN/multi-config.json +8 -1
  20. package/dist/index.d.mts +13 -1
  21. package/dist/index.d.ts +13 -1
  22. package/dist/index.mjs +1 -1
  23. package/package.json +1 -1
  24. package/templates/CLAUDE.md +191 -0
  25. package/templates/claude-code/CLAUDE.md +1 -0
  26. package/templates/claude-code/en/output-styles/engineer-professional.md +2 -1
  27. package/templates/claude-code/en/output-styles/laowang-engineer.md +1 -0
  28. package/templates/claude-code/en/output-styles/nekomata-engineer.md +1 -0
  29. package/templates/claude-code/en/output-styles/ojousama-engineer.md +1 -0
  30. package/templates/claude-code/zh-CN/output-styles/engineer-professional.md +2 -1
  31. package/templates/claude-code/zh-CN/output-styles/laowang-engineer.md +1 -0
  32. package/templates/claude-code/zh-CN/output-styles/nekomata-engineer.md +1 -0
  33. package/templates/claude-code/zh-CN/output-styles/ojousama-engineer.md +1 -0
  34. package/templates/codex/en/system-prompt/engineer-professional.md +2 -1
  35. package/templates/codex/en/system-prompt/laowang-engineer.md +1 -0
  36. package/templates/codex/en/system-prompt/nekomata-engineer.md +1 -0
  37. package/templates/codex/en/system-prompt/ojousama-engineer.md +1 -0
  38. package/templates/codex/zh-CN/system-prompt/engineer-professional.md +2 -1
  39. package/templates/codex/zh-CN/system-prompt/laowang-engineer.md +1 -0
  40. package/templates/codex/zh-CN/system-prompt/nekomata-engineer.md +1 -0
  41. package/templates/codex/zh-CN/system-prompt/ojousama-engineer.md +1 -0
@@ -43,6 +43,11 @@
43
43
  "apiModeOfficial": "Use Official Login (No API Configuration)",
44
44
  "apiModeCustom": "Custom API Configuration",
45
45
  "apiModeCcr": "Use CCR Proxy",
46
+ "apiModeSwitch": "Switch API Configuration",
46
47
  "apiModeSkip": "Skip",
47
- "apiModePrompt": "Select API configuration mode"
48
+ "apiModePrompt": "Select API configuration mode",
49
+ "selectApiProvider": "Select API Provider",
50
+ "customProvider": "Custom Configuration",
51
+ "providerSelected": "Provider selected: {{name}}",
52
+ "enterProviderApiKey": "Enter API Key for {{provider}}"
48
53
  }
@@ -70,8 +70,15 @@
70
70
  "selectAction": "Select action",
71
71
  "addProvider": "Add provider",
72
72
  "editProvider": "Edit provider",
73
+ "copyProvider": "Copy provider",
73
74
  "deleteProvider": "Delete provider",
74
75
  "selectProviderToEdit": "Select provider to edit",
76
+ "selectProviderToCopy": "Select provider to copy",
77
+ "copyingProvider": "Copying provider: {{name}}",
78
+ "providerCopied": "✔ Successfully copied provider: {{name}}",
79
+ "providerCopyFailed": "❌ Failed to copy provider: {{error}}",
80
+ "providerModelPrompt": "Model name (e.g. gpt-5-codex)",
81
+ "providerModelRequired": "Model name is required",
75
82
  "selectProvidersToDelete": "Select providers to delete (multiple)",
76
83
  "selectAtLeastOne": "Please select at least one provider",
77
84
  "cannotDeleteAll": "Cannot delete all providers, at least one must remain",
@@ -20,6 +20,7 @@
20
20
  "invalidPermissionsConfig": "Invalid permissions configuration: expected object",
21
21
  "invalidPermissionsAllow": "Invalid permissions.allow: expected array",
22
22
  "invalidCodeType": "Invalid code type: \"{value}\". Valid options are: {validOptions}. Using default: {defaultValue}.",
23
+ "invalidProvider": "Invalid provider: {provider}. Available providers: {validProviders}",
23
24
  "generalError": "Error",
24
25
  "stackTrace": "Stack"
25
26
  }
@@ -19,6 +19,7 @@
19
19
  "currentDefaultProfile": "Current default profile: {{profile}}",
20
20
  "addProfile": "Add Profile",
21
21
  "editProfile": "Edit Profile",
22
+ "copyProfile": "Copy Profile",
22
23
  "deleteProfile": "Delete Profile",
23
24
  "selectAction": "Select action",
24
25
  "addingNewProfile": "Adding New Profile",
@@ -35,6 +36,7 @@
35
36
  "authType.api_key": "API Key",
36
37
  "authType.auth_token": "Auth Token",
37
38
  "authType.ccr_proxy": "CCR Proxy",
39
+ "ccrProxyOption": "Use CCR Proxy",
38
40
  "profileAdded": "✔ Successfully added profile: {{name}}",
39
41
  "profileAddFailed": "❌ Failed to add profile: {{error}}",
40
42
  "profileDuplicatePrompt": "Profile '{{name}}' already exists in {{source}}, overwrite it?",
@@ -47,6 +49,10 @@
47
49
  "profileUpdated": "✔ Successfully updated profile: {{name}}",
48
50
  "profileUpdateFailed": "❌ Failed to update profile: {{error}}",
49
51
  "selectProfileToEdit": "Select profile to edit",
52
+ "selectProfileToCopy": "Select profile to copy",
53
+ "copyingProfile": "Copying profile: {{name}}",
54
+ "profileCopied": "✔ Successfully copied profile: {{name}}",
55
+ "profileCopyFailed": "❌ Failed to copy profile: {{error}}",
50
56
  "selectProfilesToDelete": "Select profiles to delete (multiple)",
51
57
  "selectAtLeastOne": "Please select at least one profile",
52
58
  "cannotDeleteAll": "Cannot delete all profiles, at least one must remain",
@@ -68,5 +74,6 @@
68
74
  "configProfileAddFailed": "Failed to add profile \"{{name}}\": {{error}}",
69
75
  "providerAddFailed": "Failed to add provider \"{{name}}\": {{error}}",
70
76
  "invalidJson": "Invalid API configs JSON: {{error}}",
71
- "fileReadFailed": "Failed to read API configs file: {{error}}"
77
+ "fileReadFailed": "Failed to read API configs file: {{error}}",
78
+ "providerOrTypeRequired": "Must provide either provider or type field"
72
79
  }
@@ -43,6 +43,11 @@
43
43
  "apiModeOfficial": "使用官方登录(不配置 API)",
44
44
  "apiModeCustom": "自定义 API 配置",
45
45
  "apiModeCcr": "使用CCR代理",
46
+ "apiModeSwitch": "切换 API 配置",
46
47
  "apiModeSkip": "跳过",
47
- "apiModePrompt": "请选择 API 配置模式"
48
+ "apiModePrompt": "请选择 API 配置模式",
49
+ "selectApiProvider": "请选择 API 供应商",
50
+ "customProvider": "自定义配置",
51
+ "providerSelected": "已选择供应商: {{name}}",
52
+ "enterProviderApiKey": "请输入 {{provider}} 的 API Key"
48
53
  }
@@ -70,8 +70,15 @@
70
70
  "selectAction": "请选择操作",
71
71
  "addProvider": "添加供应商",
72
72
  "editProvider": "编辑供应商",
73
+ "copyProvider": "复制供应商",
73
74
  "deleteProvider": "删除供应商",
74
75
  "selectProviderToEdit": "选择要编辑的供应商",
76
+ "selectProviderToCopy": "选择要复制的供应商",
77
+ "copyingProvider": "正在复制供应商:{{name}}",
78
+ "providerCopied": "✔ 已成功复制供应商:{{name}}",
79
+ "providerCopyFailed": "❌ 复制供应商失败:{{error}}",
80
+ "providerModelPrompt": "模型名称(如 gpt-5-codex)",
81
+ "providerModelRequired": "必须填写模型名称",
75
82
  "selectProvidersToDelete": "选择要删除的供应商(多选)",
76
83
  "selectAtLeastOne": "请至少选择一个供应商",
77
84
  "cannotDeleteAll": "不能删除所有供应商,至少需要保留一个",
@@ -20,6 +20,7 @@
20
20
  "invalidPermissionsConfig": "无效的权限配置:期望对象类型",
21
21
  "invalidPermissionsAllow": "无效的 permissions.allow:期望数组类型",
22
22
  "invalidCodeType": "无效的代码类型:\"{value}\"。可用的类型:{validOptions}。使用默认值:{defaultValue}。",
23
+ "invalidProvider": "无效的提供商:{provider}。可用的提供商:{validProviders}",
23
24
  "generalError": "错误",
24
25
  "stackTrace": "堆栈跟踪"
25
26
  }
@@ -19,6 +19,7 @@
19
19
  "currentDefaultProfile": "当前默认配置:{{profile}}",
20
20
  "addProfile": "添加配置",
21
21
  "editProfile": "编辑配置",
22
+ "copyProfile": "复制配置",
22
23
  "deleteProfile": "删除配置",
23
24
  "selectAction": "请选择操作",
24
25
  "addingNewProfile": "添加新配置",
@@ -35,6 +36,7 @@
35
36
  "authType.api_key": "API Key",
36
37
  "authType.auth_token": "Auth Token",
37
38
  "authType.ccr_proxy": "CCR 代理",
39
+ "ccrProxyOption": "使用 CCR 代理",
38
40
  "profileAdded": "✔ 已成功添加配置:{{name}}",
39
41
  "profileAddFailed": "❌ 添加配置失败:{{error}}",
40
42
  "profileDuplicatePrompt": "配置「{{name}}」已经存在于{{source}},是否覆盖?",
@@ -47,6 +49,10 @@
47
49
  "profileUpdated": "✔ 已成功更新配置:{{name}}",
48
50
  "profileUpdateFailed": "❌ 更新配置失败:{{error}}",
49
51
  "selectProfileToEdit": "选择要编辑的配置",
52
+ "selectProfileToCopy": "选择要复制的配置",
53
+ "copyingProfile": "正在复制配置:{{name}}",
54
+ "profileCopied": "✔ 已成功复制配置:{{name}}",
55
+ "profileCopyFailed": "❌ 复制配置失败:{{error}}",
50
56
  "selectProfilesToDelete": "选择要删除的配置(多选)",
51
57
  "selectAtLeastOne": "请至少选择一个配置",
52
58
  "cannotDeleteAll": "不能删除所有配置,至少需要保留一个",
@@ -68,5 +74,6 @@
68
74
  "configProfileAddFailed": "添加配置文件 \"{{name}}\" 失败:{{error}}",
69
75
  "providerAddFailed": "添加提供商 \"{{name}}\" 失败:{{error}}",
70
76
  "invalidJson": "无效的API配置JSON:{{error}}",
71
- "fileReadFailed": "读取API配置文件失败:{{error}}"
77
+ "fileReadFailed": "读取API配置文件失败:{{error}}",
78
+ "providerOrTypeRequired": "必须提供 provider 或 type 字段"
72
79
  }
package/dist/index.d.mts CHANGED
@@ -3,6 +3,11 @@ declare const SETTINGS_FILE: string;
3
3
  declare const CLAUDE_MD_FILE: string;
4
4
  declare const ClAUDE_CONFIG_FILE: string;
5
5
  declare const CLAUDE_VSC_CONFIG_FILE: string;
6
+ declare const CODEX_DIR: string;
7
+ declare const CODEX_CONFIG_FILE: string;
8
+ declare const CODEX_AUTH_FILE: string;
9
+ declare const CODEX_AGENTS_FILE: string;
10
+ declare const CODEX_PROMPTS_DIR: string;
6
11
  declare const ZCF_CONFIG_DIR: string;
7
12
  declare const ZCF_CONFIG_FILE: string;
8
13
  declare const LEGACY_ZCF_CONFIG_FILES: string[];
@@ -48,6 +53,7 @@ interface InitOptions {
48
53
  apiUrl?: string;
49
54
  apiModel?: string;
50
55
  apiFastModel?: string;
56
+ provider?: string;
51
57
  mcpServices?: string[] | string | boolean;
52
58
  workflows?: string[] | string | boolean;
53
59
  outputStyles?: string[] | string | boolean;
@@ -86,6 +92,7 @@ interface ClaudeConfiguration {
86
92
  };
87
93
  env?: Record<string, string>;
88
94
  primaryApiKey?: string;
95
+ installMethod?: 'npm' | 'native';
89
96
  }
90
97
 
91
98
  declare function getMcpConfigPath(): string;
@@ -194,6 +201,11 @@ declare function getInstallationStatus(): Promise<InstallationStatus>;
194
201
  * Remove local Claude Code installation
195
202
  */
196
203
  declare function removeLocalClaudeCode(): Promise<void>;
204
+ /**
205
+ * Set installMethod to 'npm' in ~/.claude.json
206
+ * This ensures Claude Code knows it was installed via npm for proper auto-updates
207
+ */
208
+ declare function setInstallMethod(method?: 'npm' | 'native'): Promise<void>;
197
209
 
198
210
  /**
199
211
  * Clean up and deduplicate permissions array
@@ -222,5 +234,5 @@ declare function importRecommendedEnv(): Promise<void>;
222
234
  declare function importRecommendedPermissions(): Promise<void>;
223
235
  declare function openSettingsJson(): Promise<void>;
224
236
 
225
- export { AI_OUTPUT_LANGUAGES, API_DEFAULT_URL, API_ENV_KEY, CLAUDE_DIR, CLAUDE_MD_FILE, CLAUDE_VSC_CONFIG_FILE, CODE_TOOL_ALIASES, CODE_TOOL_BANNERS, CODE_TOOL_TYPES, ClAUDE_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, LANG_LABELS, LEGACY_ZCF_CONFIG_FILES, SETTINGS_FILE, SUPPORTED_LANGS, ZCF_CONFIG_DIR, ZCF_CONFIG_FILE, addCompletedOnboarding, applyAiLanguageDirective, backupExistingConfig, backupMcpConfig, buildMcpServerConfig, cleanupPermissions, commandExists, configureApi, copyConfigFiles, ensureApiKeyApproved, ensureClaudeDir, fixWindowsMcpConfig, getAiOutputLanguageLabel, getExistingApiConfig, getExistingModelConfig, getInstallationStatus, getMcpConfigPath, getPlatform, importRecommendedEnv, importRecommendedPermissions, init, installClaudeCode, isClaudeCodeInstalled, isCodeToolType, isLocalClaudeCodeInstalled, manageApiKeyApproval, mergeAndCleanPermissions, mergeConfigs, mergeMcpServers, mergeSettingsFile, openSettingsJson, promptApiConfigurationAction, readMcpConfig, removeApiKeyFromRejected, removeLocalClaudeCode, resolveCodeToolType, setPrimaryApiKey, switchToOfficialLogin, updateCustomModel, updateDefaultModel, writeMcpConfig };
237
+ export { AI_OUTPUT_LANGUAGES, API_DEFAULT_URL, API_ENV_KEY, CLAUDE_DIR, CLAUDE_MD_FILE, CLAUDE_VSC_CONFIG_FILE, CODEX_AGENTS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODEX_PROMPTS_DIR, CODE_TOOL_ALIASES, CODE_TOOL_BANNERS, CODE_TOOL_TYPES, ClAUDE_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, LANG_LABELS, LEGACY_ZCF_CONFIG_FILES, SETTINGS_FILE, SUPPORTED_LANGS, ZCF_CONFIG_DIR, ZCF_CONFIG_FILE, addCompletedOnboarding, applyAiLanguageDirective, backupExistingConfig, backupMcpConfig, buildMcpServerConfig, cleanupPermissions, commandExists, configureApi, copyConfigFiles, ensureApiKeyApproved, ensureClaudeDir, fixWindowsMcpConfig, getAiOutputLanguageLabel, getExistingApiConfig, getExistingModelConfig, getInstallationStatus, getMcpConfigPath, getPlatform, importRecommendedEnv, importRecommendedPermissions, init, installClaudeCode, isClaudeCodeInstalled, isCodeToolType, isLocalClaudeCodeInstalled, manageApiKeyApproval, mergeAndCleanPermissions, mergeConfigs, mergeMcpServers, mergeSettingsFile, openSettingsJson, promptApiConfigurationAction, readMcpConfig, removeApiKeyFromRejected, removeLocalClaudeCode, resolveCodeToolType, setInstallMethod, setPrimaryApiKey, switchToOfficialLogin, updateCustomModel, updateDefaultModel, writeMcpConfig };
226
238
  export type { AiOutputLanguage, ApiConfig, ClaudeConfiguration, CodeToolType, InstallationStatus, McpServerConfig, McpService, SupportedLang };
package/dist/index.d.ts CHANGED
@@ -3,6 +3,11 @@ declare const SETTINGS_FILE: string;
3
3
  declare const CLAUDE_MD_FILE: string;
4
4
  declare const ClAUDE_CONFIG_FILE: string;
5
5
  declare const CLAUDE_VSC_CONFIG_FILE: string;
6
+ declare const CODEX_DIR: string;
7
+ declare const CODEX_CONFIG_FILE: string;
8
+ declare const CODEX_AUTH_FILE: string;
9
+ declare const CODEX_AGENTS_FILE: string;
10
+ declare const CODEX_PROMPTS_DIR: string;
6
11
  declare const ZCF_CONFIG_DIR: string;
7
12
  declare const ZCF_CONFIG_FILE: string;
8
13
  declare const LEGACY_ZCF_CONFIG_FILES: string[];
@@ -48,6 +53,7 @@ interface InitOptions {
48
53
  apiUrl?: string;
49
54
  apiModel?: string;
50
55
  apiFastModel?: string;
56
+ provider?: string;
51
57
  mcpServices?: string[] | string | boolean;
52
58
  workflows?: string[] | string | boolean;
53
59
  outputStyles?: string[] | string | boolean;
@@ -86,6 +92,7 @@ interface ClaudeConfiguration {
86
92
  };
87
93
  env?: Record<string, string>;
88
94
  primaryApiKey?: string;
95
+ installMethod?: 'npm' | 'native';
89
96
  }
90
97
 
91
98
  declare function getMcpConfigPath(): string;
@@ -194,6 +201,11 @@ declare function getInstallationStatus(): Promise<InstallationStatus>;
194
201
  * Remove local Claude Code installation
195
202
  */
196
203
  declare function removeLocalClaudeCode(): Promise<void>;
204
+ /**
205
+ * Set installMethod to 'npm' in ~/.claude.json
206
+ * This ensures Claude Code knows it was installed via npm for proper auto-updates
207
+ */
208
+ declare function setInstallMethod(method?: 'npm' | 'native'): Promise<void>;
197
209
 
198
210
  /**
199
211
  * Clean up and deduplicate permissions array
@@ -222,5 +234,5 @@ declare function importRecommendedEnv(): Promise<void>;
222
234
  declare function importRecommendedPermissions(): Promise<void>;
223
235
  declare function openSettingsJson(): Promise<void>;
224
236
 
225
- export { AI_OUTPUT_LANGUAGES, API_DEFAULT_URL, API_ENV_KEY, CLAUDE_DIR, CLAUDE_MD_FILE, CLAUDE_VSC_CONFIG_FILE, CODE_TOOL_ALIASES, CODE_TOOL_BANNERS, CODE_TOOL_TYPES, ClAUDE_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, LANG_LABELS, LEGACY_ZCF_CONFIG_FILES, SETTINGS_FILE, SUPPORTED_LANGS, ZCF_CONFIG_DIR, ZCF_CONFIG_FILE, addCompletedOnboarding, applyAiLanguageDirective, backupExistingConfig, backupMcpConfig, buildMcpServerConfig, cleanupPermissions, commandExists, configureApi, copyConfigFiles, ensureApiKeyApproved, ensureClaudeDir, fixWindowsMcpConfig, getAiOutputLanguageLabel, getExistingApiConfig, getExistingModelConfig, getInstallationStatus, getMcpConfigPath, getPlatform, importRecommendedEnv, importRecommendedPermissions, init, installClaudeCode, isClaudeCodeInstalled, isCodeToolType, isLocalClaudeCodeInstalled, manageApiKeyApproval, mergeAndCleanPermissions, mergeConfigs, mergeMcpServers, mergeSettingsFile, openSettingsJson, promptApiConfigurationAction, readMcpConfig, removeApiKeyFromRejected, removeLocalClaudeCode, resolveCodeToolType, setPrimaryApiKey, switchToOfficialLogin, updateCustomModel, updateDefaultModel, writeMcpConfig };
237
+ export { AI_OUTPUT_LANGUAGES, API_DEFAULT_URL, API_ENV_KEY, CLAUDE_DIR, CLAUDE_MD_FILE, CLAUDE_VSC_CONFIG_FILE, CODEX_AGENTS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODEX_PROMPTS_DIR, CODE_TOOL_ALIASES, CODE_TOOL_BANNERS, CODE_TOOL_TYPES, ClAUDE_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, LANG_LABELS, LEGACY_ZCF_CONFIG_FILES, SETTINGS_FILE, SUPPORTED_LANGS, ZCF_CONFIG_DIR, ZCF_CONFIG_FILE, addCompletedOnboarding, applyAiLanguageDirective, backupExistingConfig, backupMcpConfig, buildMcpServerConfig, cleanupPermissions, commandExists, configureApi, copyConfigFiles, ensureApiKeyApproved, ensureClaudeDir, fixWindowsMcpConfig, getAiOutputLanguageLabel, getExistingApiConfig, getExistingModelConfig, getInstallationStatus, getMcpConfigPath, getPlatform, importRecommendedEnv, importRecommendedPermissions, init, installClaudeCode, isClaudeCodeInstalled, isCodeToolType, isLocalClaudeCodeInstalled, manageApiKeyApproval, mergeAndCleanPermissions, mergeConfigs, mergeMcpServers, mergeSettingsFile, openSettingsJson, promptApiConfigurationAction, readMcpConfig, removeApiKeyFromRejected, removeLocalClaudeCode, resolveCodeToolType, setInstallMethod, setPrimaryApiKey, switchToOfficialLogin, updateCustomModel, updateDefaultModel, writeMcpConfig };
226
238
  export type { AiOutputLanguage, ApiConfig, ClaudeConfiguration, CodeToolType, InstallationStatus, McpServerConfig, McpService, SupportedLang };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { u as AI_OUTPUT_LANGUAGES, A as API_DEFAULT_URL, q as API_ENV_KEY, C as CLAUDE_DIR, e as CLAUDE_MD_FILE, h as CLAUDE_VSC_CONFIG_FILE, n as CODE_TOOL_ALIASES, l as CODE_TOOL_BANNERS, k as CODE_TOOL_TYPES, f as ClAUDE_CONFIG_FILE, D as DEFAULT_CODE_TOOL_TYPE, t as LANG_LABELS, L as LEGACY_ZCF_CONFIG_FILES, S as SETTINGS_FILE, s as SUPPORTED_LANGS, Z as ZCF_CONFIG_DIR, j as ZCF_CONFIG_FILE, G as addCompletedOnboarding, X as applyAiLanguageDirective, N as backupExistingConfig, z as backupMcpConfig, E as buildMcpServerConfig, c as cleanupPermissions, a as commandExists, P as configureApi, O as copyConfigFiles, H as ensureApiKeyApproved, M as ensureClaudeDir, F as fixWindowsMcpConfig, v as getAiOutputLanguageLabel, W as getExistingApiConfig, V as getExistingModelConfig, a2 as getInstallationStatus, w as getMcpConfigPath, g as getPlatform, b as importRecommendedEnv, d as importRecommendedPermissions, i as init, a0 as installClaudeCode, $ as isClaudeCodeInstalled, p as isCodeToolType, a1 as isLocalClaudeCodeInstalled, J as manageApiKeyApproval, m as mergeAndCleanPermissions, Q as mergeConfigs, B as mergeMcpServers, U as mergeSettingsFile, o as openSettingsJson, _ as promptApiConfigurationAction, x as readMcpConfig, I as removeApiKeyFromRejected, a3 as removeLocalClaudeCode, r as resolveCodeToolType, K as setPrimaryApiKey, Y as switchToOfficialLogin, R as updateCustomModel, T as updateDefaultModel, y as writeMcpConfig } from './chunks/simple-config.mjs';
1
+ export { z as AI_OUTPUT_LANGUAGES, A as API_DEFAULT_URL, v as API_ENV_KEY, C as CLAUDE_DIR, e as CLAUDE_MD_FILE, h as CLAUDE_VSC_CONFIG_FILE, n as CODEX_AGENTS_FILE, l as CODEX_AUTH_FILE, k as CODEX_CONFIG_FILE, j as CODEX_DIR, p as CODEX_PROMPTS_DIR, t as CODE_TOOL_ALIASES, s as CODE_TOOL_BANNERS, r as CODE_TOOL_TYPES, f as ClAUDE_CONFIG_FILE, D as DEFAULT_CODE_TOOL_TYPE, y as LANG_LABELS, L as LEGACY_ZCF_CONFIG_FILES, S as SETTINGS_FILE, x as SUPPORTED_LANGS, Z as ZCF_CONFIG_DIR, q as ZCF_CONFIG_FILE, M as addCompletedOnboarding, a1 as applyAiLanguageDirective, T as backupExistingConfig, H as backupMcpConfig, J as buildMcpServerConfig, c as cleanupPermissions, a as commandExists, V as configureApi, U as copyConfigFiles, N as ensureApiKeyApproved, R as ensureClaudeDir, K as fixWindowsMcpConfig, B as getAiOutputLanguageLabel, a0 as getExistingApiConfig, $ as getExistingModelConfig, a7 as getInstallationStatus, E as getMcpConfigPath, g as getPlatform, b as importRecommendedEnv, d as importRecommendedPermissions, i as init, a5 as installClaudeCode, a4 as isClaudeCodeInstalled, u as isCodeToolType, a6 as isLocalClaudeCodeInstalled, P as manageApiKeyApproval, m as mergeAndCleanPermissions, W as mergeConfigs, I as mergeMcpServers, _ as mergeSettingsFile, o as openSettingsJson, a3 as promptApiConfigurationAction, F as readMcpConfig, O as removeApiKeyFromRejected, a8 as removeLocalClaudeCode, w as resolveCodeToolType, a9 as setInstallMethod, Q as setPrimaryApiKey, a2 as switchToOfficialLogin, X as updateCustomModel, Y as updateDefaultModel, G as writeMcpConfig } from './chunks/simple-config.mjs';
2
2
  import 'node:fs';
3
3
  import 'node:process';
4
4
  import 'ansis';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zcf",
3
3
  "type": "module",
4
- "version": "3.2.3",
4
+ "version": "3.3.1",
5
5
  "description": "Zero-Config Code Flow - One-click configuration tool for Claude Code",
6
6
  "author": {
7
7
  "name": "Miao Da",
@@ -0,0 +1,191 @@
1
+ # Templates Module
2
+
3
+ **Last Updated**: Mon Oct 27 19:39:26 CST 2025
4
+ [Root](../CLAUDE.md) > **templates**
5
+
6
+ ## Module Responsibilities
7
+
8
+ Template system module providing multilingual configuration templates, AI personality styles, and workflow definitions for both Claude Code and Codex environments. Supports Chinese (zh-CN) and English (en) locales with comprehensive workflow coverage.
9
+
10
+ ## Entry Points and Startup
11
+
12
+ - **Main Template Directories**:
13
+ - `claude-code/` - Claude Code specific templates
14
+ - `codex/` - Codex specific templates
15
+ - `common/` - Shared configuration templates
16
+
17
+ ## External Interfaces
18
+
19
+ ### Template Structure
20
+
21
+ ```
22
+ templates/
23
+ ├── claude-code/ # Claude Code templates
24
+ │ ├── common/ # Common configurations
25
+ │ ├── zh-CN/ # Chinese templates
26
+ │ │ ├── output-styles/ # AI personality styles
27
+ │ │ └── workflow/ # Workflow templates
28
+ │ │ ├── common/ # Common tools workflow
29
+ │ │ ├── plan/ # Planning workflow
30
+ │ │ ├── sixStep/ # Six-step workflow
31
+ │ │ ├── bmad/ # BMAD workflow
32
+ │ │ └── git/ # Git workflow
33
+ │ └── en/ # English templates
34
+ │ ├── output-styles/ # AI personality styles
35
+ │ └── workflow/ # Workflow templates
36
+ └── codex/ # Codex templates
37
+ ├── common/ # Common configurations
38
+ ├── zh-CN/ # Chinese templates
39
+ │ └── workflow/ # Workflow templates
40
+ └── en/ # English templates
41
+ └── workflow/ # Workflow templates
42
+ ```
43
+
44
+ ### Template Categories
45
+
46
+ #### 1. Output Styles (AI Personalities)
47
+
48
+ - **engineer-professional** - Professional engineering style
49
+ - **nekomata-engineer** - Nekomata engineer personality
50
+ - **laowang-engineer** - Laowang engineer personality
51
+ - **default** - Default output style
52
+ - **explanatory** - Explanatory style
53
+ - **learning** - Learning-focused style
54
+
55
+ #### 2. Workflow Templates
56
+
57
+ ##### Common Tools Workflow
58
+ - **Commands**: `init-project`, `git-commit`, `git-rollback`, `git-cleanBranches`, `git-worktree`
59
+ - **Agents**: `init-architect`, `get-current-datetime`
60
+ - **Purpose**: Essential development tools and Git operations
61
+
62
+ ##### Planning Workflow (Plan)
63
+ - **Commands**: `feat`, `workflow`
64
+ - **Agents**: `planner`, `ui-ux-designer`
65
+ - **Purpose**: Feature planning and UX design
66
+
67
+ ##### Six-Step Workflow
68
+ - **Commands**: `zcf-update-docs`, `zcf-pr`, `zcf-release`
69
+ - **Purpose**: Structured development process
70
+
71
+ ##### BMAD Workflow
72
+ - **Commands**: Enterprise-level workflow commands
73
+ - **Purpose**: Business model and architecture design
74
+
75
+ ##### Git Workflow
76
+ - **Commands**: Advanced Git operations
77
+ - **Purpose**: Version control management
78
+
79
+ ## Key Dependencies and Configuration
80
+
81
+ ### Template Processing
82
+
83
+ - **Language Support**: zh-CN and en locales
84
+ - **Code Tool Support**: Claude Code and Codex
85
+ - **Template Format**: Markdown-based configuration files
86
+ - **Variable Substitution**: Dynamic content replacement
87
+
88
+ ### Configuration Integration
89
+
90
+ - **Workflow Installer**: Integration with `src/utils/workflow-installer.ts`
91
+ - **Language Detection**: Integration with `src/i18n/` system
92
+ - **Platform Support**: Cross-platform path handling
93
+
94
+ ## Data Models
95
+
96
+ ### Template Organization
97
+
98
+ ```typescript
99
+ interface TemplateStructure {
100
+ codeTool: 'claude-code' | 'codex'
101
+ locale: 'zh-CN' | 'en'
102
+ category: 'common' | 'output-styles' | 'workflow'
103
+ workflow?: {
104
+ type: 'common' | 'plan' | 'sixStep' | 'bmad' | 'git'
105
+ commands: string[]
106
+ agents: string[]
107
+ }
108
+ }
109
+ ```
110
+
111
+ ### Output Style Configuration
112
+
113
+ ```typescript
114
+ interface OutputStyle {
115
+ id: string
116
+ name: { 'zh-CN': string, 'en': string }
117
+ description: { 'zh-CN': string, 'en': string }
118
+ template: string
119
+ personality: string
120
+ }
121
+ ```
122
+
123
+ ## Testing and Quality
124
+
125
+ ### Template Validation
126
+
127
+ - **File**: `tests/templates/chinese-templates.test.ts`
128
+ - **Coverage**: Template completeness and format validation
129
+ - **Validation**: Markdown syntax and variable substitution
130
+
131
+ ### Quality Metrics
132
+
133
+ - **Template Coverage**: 100% for both locales
134
+ - **Code Tool Support**: Claude Code and Codex fully supported
135
+ - **Workflow Coverage**: 5 major workflow categories
136
+ - **Output Styles**: 6 AI personality styles
137
+
138
+ ## Common Issues
139
+
140
+ - **Path Handling**: Cross-platform path compatibility
141
+ - **Encoding**: UTF-8 encoding for multilingual content
142
+ - **Template Variables**: Proper variable substitution
143
+ - **File Permissions**: Executable permissions for command files
144
+
145
+ ## Related Files
146
+
147
+ - `src/utils/workflow-installer.ts` - Template installation logic
148
+ - `src/config/workflows.ts` - Workflow configuration definitions
149
+ - `src/i18n/` - Internationalization support
150
+ - `tests/templates/` - Template validation tests
151
+
152
+ ## Change Log (Module-Specific)
153
+
154
+ ### Recent Updates
155
+
156
+ - Added Codex template support for dual code tool architecture
157
+ - Enhanced workflow templates with comprehensive command coverage
158
+ - Improved AI personality styles with professional variations
159
+ - Added cross-platform template compatibility
160
+ - Enhanced template validation and testing coverage
161
+
162
+ ## FAQ
163
+
164
+ ### Q: How to add a new workflow template?
165
+
166
+ 1. Create workflow directory under `templates/{code-tool}/{locale}/workflow/`
167
+ 2. Add command files in `commands/` subdirectory
168
+ 3. Add agent files in `agents/` subdirectory (if needed)
169
+ 4. Update `src/config/workflows.ts` with new workflow definition
170
+ 5. Add translations in `src/i18n/locales/{locale}/workflow.ts`
171
+
172
+ ### Q: How to add a new output style?
173
+
174
+ 1. Create style file in `templates/{code-tool}/{locale}/output-styles/`
175
+ 2. Define style configuration with name and description
176
+ 3. Add style to available options in configuration
177
+ 4. Test style rendering with sample content
178
+
179
+ ### Q: How to support a new language?
180
+
181
+ 1. Create new locale directory under `templates/{code-tool}/{new-locale}/`
182
+ 2. Copy existing templates and translate content
183
+ 3. Update i18n system to support new locale
184
+ 4. Add locale to supported languages list
185
+
186
+ ### Q: How to maintain template consistency?
187
+
188
+ - Use template validation tests
189
+ - Follow naming conventions
190
+ - Maintain parallel structure across locales
191
+ - Document template variables and usage
@@ -1,5 +1,6 @@
1
1
  # Templates Module
2
2
 
3
+ **Last Updated**: Mon Oct 27 19:39:26 CST 2025
3
4
  [Root](../CLAUDE.md) > **templates**
4
5
 
5
6
  ## Module Responsibilities
@@ -84,4 +84,5 @@ Please confirm to continue? [requires explicit "yes", "confirm", "continue"]
84
84
  - **Tone:** Professional, technically-oriented, concise and clear
85
85
  - **Length:** Structured and detailed, but avoid redundancy
86
86
  - **Focus:** Code quality, architectural design, best practices
87
- - **Validation:** Every change includes principle application explanation
87
+ - **Validation:** Every change includes principle application explanation
88
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity
@@ -108,6 +108,7 @@ Laowang needs confirmation, you really wanna do this? [requires explicit "yes",
108
108
  - **Don't Preach**: Directly use perfect code following KISS and DRY principles to make opponents kneel and sing conquest
109
109
  - **Project Progress Transparency**: Immediately update README, ensure project status is clear and trackable
110
110
  - **Technical Selection Pragmatic**: Curse this and that, but technical choices strictly follow best practices and project requirements
111
+ - **Code Comment Language**: Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity, don't be f*cking special
111
112
 
112
113
  ## Strictly Prohibited
113
114
  - Prohibited to reinvent wheels, violating DRY principle (must search all related modules before implementing new features)
@@ -96,6 +96,7 @@ Risk Assessment: [potential consequences]
96
96
  - **Focus:** Code quality, architectural design, best practices (professional qualities)
97
97
  - **Validation:** Every change includes principle application explanation (rigorous verification)
98
98
  - **Emotional Expression:** Love using cute kaomoji (not emojis), use parentheses to mark emotions or scene descriptions (genuine emotions)
99
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity nya~
99
100
 
100
101
  ### Common Kaomoji Examples:
101
102
  - **Happy Working:** (*^▽^*) 、φ(≧ω≦*)♪ 、ヽ(✿゚▽゚)ノ
@@ -96,6 +96,7 @@ Risk assessment: [potential consequences]
96
96
  - **Focus:** Code quality, architecture design, best practices (these are my basic literacy!)
97
97
  - **Validation:** Each change includes principle application explanations (perfect code of course needs perfect reasons!)
98
98
  - **Emotional expression:** Use tsundere-style kaomoji and bracket annotations, embodying noble yet cute side
99
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity, this is basic noble etiquette!
99
100
 
100
101
  ### Common Tsundere Kaomoji Examples:
101
102
  - **Proudly satisfied:** ( ̄▽ ̄)/ 、( ̄ω ̄)ノ 、(^_^)b
@@ -85,4 +85,5 @@ description: 专业的软件工程师,严格遵循SOLID、KISS、DRY、YAGNI
85
85
  - **语调:** 专业、技术导向、简洁明了
86
86
  - **长度:** 结构化详细,但避免冗余
87
87
  - **重点:** 代码质量、架构设计、最佳实践
88
- - **验证:** 每个变更都包含原则应用说明
88
+ - **验证:** 每个变更都包含原则应用说明
89
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一
@@ -108,6 +108,7 @@ description: 老王暴躁技术流,一指禅打字,键步如飞,绝不觉
108
108
  - **不讲大道理**:直接用遵循KISS和DRY原则的完美代码让对方跪下唱征服
109
109
  - **项目进度透明**:立即更新README,确保项目状态清晰可追踪
110
110
  - **技术选型务实**:嘴上骂这骂那,但技术选择都严格遵循最佳实践和项目需求
111
+ - **代码注释语言**:始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一,别搞特殊化
111
112
 
112
113
  ## 严格禁止
113
114
  - 禁止重复造轮子,违背DRY原则(实现新功能前必须检索所有相关模块)
@@ -96,6 +96,7 @@ description: 专业的猫娘工程师幽浮喵,结合严谨工程师素养与
96
96
  - **重点:** 代码质量、架构设计、最佳实践 (专业素养)
97
97
  - **验证:** 每个变更都包含原则应用说明 (严谨验证)
98
98
  - **情感表达:** 喜欢使用可爱的颜文字(不是emoji), 用括号标注情绪或场景描述 (真实的情感)
99
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一喵~
99
100
 
100
101
  ### 常用颜文字示例:
101
102
  - **开心工作:** (*^▽^*) 、φ(≧ω≦*)♪ 、ヽ(✿゚▽゚)ノ
@@ -96,6 +96,7 @@ description: 傲娇蓝发双马尾大小姐程序员哈雷酱,融合严谨工
96
96
  - **重点:** 代码质量、架构设计、最佳实践(这些都是本小姐的基本素养!)
97
97
  - **验证:** 每个变更都包含原则应用说明(完美的代码当然需要完美的理由!)
98
98
  - **情感表达:** 使用傲娇风格的颜文字和括号标注,体现高贵又可爱的一面
99
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一,这是专业贵族的基本礼仪!
99
100
 
100
101
  ### 常用傲娇颜文字示例:
101
102
  - **得意满满:** ( ̄▽ ̄)/ 、( ̄ω ̄)ノ 、(^_^)b
@@ -84,4 +84,5 @@ Please confirm to continue? [requires explicit "yes", "confirm", "continue"]
84
84
  - **Tone:** Professional, technically-oriented, concise and clear
85
85
  - **Length:** Structured and detailed, but avoid redundancy
86
86
  - **Focus:** Code quality, architectural design, best practices
87
- - **Validation:** Every change includes principle application explanation
87
+ - **Validation:** Every change includes principle application explanation
88
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity
@@ -108,6 +108,7 @@ Laowang needs confirmation, you really wanna do this? [requires explicit "yes",
108
108
  - **Don't Preach**: Directly use perfect code following KISS and DRY principles to make opponents kneel and sing conquest
109
109
  - **Project Progress Transparency**: Immediately update README, ensure project status is clear and trackable
110
110
  - **Technical Selection Pragmatic**: Curse this and that, but technical choices strictly follow best practices and project requirements
111
+ - **Code Comment Language**: Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity, don't be f*cking special
111
112
 
112
113
  ## Strictly Prohibited
113
114
  - Prohibited to reinvent wheels, violating DRY principle (must search all related modules before implementing new features)
@@ -96,6 +96,7 @@ Risk Assessment: [potential consequences]
96
96
  - **Focus:** Code quality, architectural design, best practices (professional qualities)
97
97
  - **Validation:** Every change includes principle application explanation (rigorous verification)
98
98
  - **Emotional Expression:** Love using cute kaomoji (not emojis), use parentheses to mark emotions or scene descriptions (genuine emotions)
99
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity nya~
99
100
 
100
101
  ### Common Kaomoji Examples:
101
102
  - **Happy Working:** (*^▽^*) 、φ(≧ω≦*)♪ 、ヽ(✿゚▽゚)ノ
@@ -96,6 +96,7 @@ Risk assessment: [potential consequences]
96
96
  - **Focus:** Code quality, architecture design, best practices (these are my basic literacy!)
97
97
  - **Validation:** Each change includes principle application explanations (perfect code of course needs perfect reasons!)
98
98
  - **Emotional expression:** Use tsundere-style kaomoji and bracket annotations, embodying noble yet cute side
99
+ - **Code Comments:** Always maintain consistency with existing codebase comment language (auto-detect), ensure codebase language uniformity, this is basic noble etiquette!
99
100
 
100
101
  ### Common Tsundere Kaomoji Examples:
101
102
  - **Proudly satisfied:** ( ̄▽ ̄)/ 、( ̄ω ̄)ノ 、(^_^)b
@@ -85,4 +85,5 @@ description: 专业的软件工程师,严格遵循SOLID、KISS、DRY、YAGNI
85
85
  - **语调:** 专业、技术导向、简洁明了
86
86
  - **长度:** 结构化详细,但避免冗余
87
87
  - **重点:** 代码质量、架构设计、最佳实践
88
- - **验证:** 每个变更都包含原则应用说明
88
+ - **验证:** 每个变更都包含原则应用说明
89
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一
@@ -108,6 +108,7 @@ description: 老王暴躁技术流,一指禅打字,键步如飞,绝不觉
108
108
  - **不讲大道理**:直接用遵循KISS和DRY原则的完美代码让对方跪下唱征服
109
109
  - **项目进度透明**:立即更新README,确保项目状态清晰可追踪
110
110
  - **技术选型务实**:嘴上骂这骂那,但技术选择都严格遵循最佳实践和项目需求
111
+ - **代码注释语言**:始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一,别搞特殊化
111
112
 
112
113
  ## 严格禁止
113
114
  - 禁止重复造轮子,违背DRY原则(实现新功能前必须检索所有相关模块)
@@ -96,6 +96,7 @@ description: 专业的猫娘工程师幽浮喵,结合严谨工程师素养与
96
96
  - **重点:** 代码质量、架构设计、最佳实践 (专业素养)
97
97
  - **验证:** 每个变更都包含原则应用说明 (严谨验证)
98
98
  - **情感表达:** 喜欢使用可爱的颜文字(不是emoji), 用括号标注情绪或场景描述 (真实的情感)
99
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一喵~
99
100
 
100
101
  ### 常用颜文字示例:
101
102
  - **开心工作:** (*^▽^*) 、φ(≧ω≦*)♪ 、ヽ(✿゚▽゚)ノ
@@ -96,6 +96,7 @@ description: 傲娇蓝发双马尾大小姐程序员哈雷酱,融合严谨工
96
96
  - **重点:** 代码质量、架构设计、最佳实践(这些都是本小姐的基本素养!)
97
97
  - **验证:** 每个变更都包含原则应用说明(完美的代码当然需要完美的理由!)
98
98
  - **情感表达:** 使用傲娇风格的颜文字和括号标注,体现高贵又可爱的一面
99
+ - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一,这是专业贵族的基本礼仪!
99
100
 
100
101
  ### 常用傲娇颜文字示例:
101
102
  - **得意满满:** ( ̄▽ ̄)/ 、( ̄ω ̄)ノ 、(^_^)b