@vibeapi/api-helper 0.0.16 → 0.0.20

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 (117) hide show
  1. package/README.md +267 -0
  2. package/dist/__tests__/api-validator.test.d.ts +1 -0
  3. package/dist/__tests__/api-validator.test.js +1 -0
  4. package/dist/__tests__/api-validator.test.js.map +1 -0
  5. package/dist/__tests__/claude-code-manager.test.d.ts +1 -0
  6. package/dist/__tests__/claude-code-manager.test.js +1 -0
  7. package/dist/__tests__/claude-code-manager.test.js.map +1 -0
  8. package/dist/__tests__/command.test.d.ts +1 -0
  9. package/dist/__tests__/command.test.js +1 -0
  10. package/dist/__tests__/command.test.js.map +1 -0
  11. package/dist/__tests__/commands.test.d.ts +1 -0
  12. package/dist/__tests__/commands.test.js +1 -0
  13. package/dist/__tests__/commands.test.js.map +1 -0
  14. package/dist/__tests__/config-profiles.test.d.ts +1 -0
  15. package/dist/__tests__/config-profiles.test.js +1 -0
  16. package/dist/__tests__/config-profiles.test.js.map +1 -0
  17. package/dist/__tests__/config.test.d.ts +1 -0
  18. package/dist/__tests__/config.test.js +1 -0
  19. package/dist/__tests__/config.test.js.map +1 -0
  20. package/dist/__tests__/extra-commands.test.d.ts +1 -0
  21. package/dist/__tests__/extra-commands.test.js +1 -0
  22. package/dist/__tests__/extra-commands.test.js.map +1 -0
  23. package/dist/__tests__/i18n.test.d.ts +1 -0
  24. package/dist/__tests__/i18n.test.js +1 -0
  25. package/dist/__tests__/i18n.test.js.map +1 -0
  26. package/dist/__tests__/logger.test.d.ts +1 -0
  27. package/dist/__tests__/logger.test.js +1 -0
  28. package/dist/__tests__/logger.test.js.map +1 -0
  29. package/dist/__tests__/model-registry.test.d.ts +1 -0
  30. package/dist/__tests__/model-registry.test.js +1 -0
  31. package/dist/__tests__/model-registry.test.js.map +1 -0
  32. package/dist/__tests__/opencode-manager.test.d.ts +1 -0
  33. package/dist/__tests__/opencode-manager.test.js +1 -0
  34. package/dist/__tests__/opencode-manager.test.js.map +1 -0
  35. package/dist/__tests__/runtime-options.test.d.ts +1 -0
  36. package/dist/__tests__/runtime-options.test.js +1 -0
  37. package/dist/__tests__/runtime-options.test.js.map +1 -0
  38. package/dist/__tests__/secret-store.test.d.ts +1 -0
  39. package/dist/__tests__/secret-store.test.js +1 -0
  40. package/dist/__tests__/secret-store.test.js.map +1 -0
  41. package/dist/__tests__/settings-template.test.d.ts +1 -0
  42. package/dist/__tests__/settings-template.test.js +1 -0
  43. package/dist/__tests__/settings-template.test.js.map +1 -0
  44. package/dist/__tests__/string-width.test.d.ts +1 -0
  45. package/dist/__tests__/string-width.test.js +1 -0
  46. package/dist/__tests__/string-width.test.js.map +1 -0
  47. package/dist/__tests__/tool-manager.test.d.ts +1 -0
  48. package/dist/__tests__/tool-manager.test.js +1 -0
  49. package/dist/__tests__/tool-manager.test.js.map +1 -0
  50. package/dist/__tests__/wizard.test.d.ts +1 -0
  51. package/dist/__tests__/wizard.test.js +1 -0
  52. package/dist/__tests__/wizard.test.js.map +1 -0
  53. package/dist/commands/auth.js +1 -1
  54. package/dist/commands/auth.js.map +1 -1
  55. package/dist/commands/bench.d.ts +6 -0
  56. package/dist/commands/bench.js +1 -0
  57. package/dist/commands/bench.js.map +1 -0
  58. package/dist/commands/completion.d.ts +1 -0
  59. package/dist/commands/completion.js +1 -0
  60. package/dist/commands/completion.js.map +1 -0
  61. package/dist/commands/config.js +1 -1
  62. package/dist/commands/config.js.map +1 -1
  63. package/dist/commands/doctor.js +1 -1
  64. package/dist/commands/doctor.js.map +1 -1
  65. package/dist/commands/index.d.ts +5 -0
  66. package/dist/commands/index.js +1 -1
  67. package/dist/commands/index.js.map +1 -1
  68. package/dist/commands/lang.js +1 -1
  69. package/dist/commands/lang.js.map +1 -1
  70. package/dist/commands/logs.d.ts +1 -0
  71. package/dist/commands/logs.js +1 -0
  72. package/dist/commands/logs.js.map +1 -0
  73. package/dist/commands/status.d.ts +1 -0
  74. package/dist/commands/status.js +1 -0
  75. package/dist/commands/status.js.map +1 -0
  76. package/dist/commands/update.d.ts +7 -0
  77. package/dist/commands/update.js +1 -0
  78. package/dist/commands/update.js.map +1 -0
  79. package/dist/lib/api-validator.d.ts +15 -5
  80. package/dist/lib/api-validator.js +1 -1
  81. package/dist/lib/api-validator.js.map +1 -1
  82. package/dist/lib/claude-code-manager.d.ts +1 -0
  83. package/dist/lib/claude-code-manager.js +1 -1
  84. package/dist/lib/claude-code-manager.js.map +1 -1
  85. package/dist/lib/command.d.ts +1 -0
  86. package/dist/lib/command.js +1 -1
  87. package/dist/lib/command.js.map +1 -1
  88. package/dist/lib/config.d.ts +59 -26
  89. package/dist/lib/config.js +1 -1
  90. package/dist/lib/config.js.map +1 -1
  91. package/dist/lib/confirm.d.ts +12 -0
  92. package/dist/lib/confirm.js +1 -0
  93. package/dist/lib/confirm.js.map +1 -0
  94. package/dist/lib/i18n.d.ts +1 -1
  95. package/dist/lib/i18n.js +1 -1
  96. package/dist/lib/i18n.js.map +1 -1
  97. package/dist/lib/opencode-manager.js +1 -1
  98. package/dist/lib/opencode-manager.js.map +1 -1
  99. package/dist/lib/runtime-options.d.ts +17 -0
  100. package/dist/lib/runtime-options.js +1 -0
  101. package/dist/lib/runtime-options.js.map +1 -0
  102. package/dist/lib/secret-store.d.ts +29 -0
  103. package/dist/lib/secret-store.js +1 -0
  104. package/dist/lib/secret-store.js.map +1 -0
  105. package/dist/lib/tool-manager.js +1 -1
  106. package/dist/lib/tool-manager.js.map +1 -1
  107. package/dist/lib/wizard.d.ts +2 -0
  108. package/dist/lib/wizard.js +1 -1
  109. package/dist/lib/wizard.js.map +1 -1
  110. package/dist/locales/en_US.json +104 -3
  111. package/dist/locales/zh_CN.json +104 -3
  112. package/dist/models.json +7 -25
  113. package/dist/utils/logger.d.ts +9 -0
  114. package/dist/utils/logger.js +1 -1
  115. package/dist/utils/logger.js.map +1 -1
  116. package/models.json +7 -25
  117. package/package.json +9 -5
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-manager.js","sourceRoot":"","sources":["../../src/lib/claude-code-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-manager.js","sourceRoot":"","sources":["../../src/lib/claude-code-manager.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class Command {
5
5
  private getVersion;
6
6
  private setupProgram;
7
7
  private handleInitCommand;
8
+ private preflightArgs;
8
9
  execute(args: string[]): Promise<void>;
9
10
  getProgram(): Commander;
10
11
  }
@@ -1 +1 @@
1
- import{Command as a}from"commander";import{i18n as e}from"./i18n.js";import{configManager as t}from"./config.js";import{wizard as r}from"./wizard.js";import{langCommand as n,authCommand as o,doctorCommand as i,configCommand as s}from"../commands/index.js";import c from"chalk";import{readFileSync as m}from"fs";import{join as p,dirname as g}from"path";import{fileURLToPath as l}from"url";export class Command{program;constructor(){const r=t.getLang();e.loadFromConfig(r),this.program=new a,this.setupProgram()}getVersion(){try{const a=l(import.meta.url),e=g(a),t=p(e,"../../package.json");return JSON.parse(m(t,"utf-8")).version}catch{return"1.0.0"}}setupProgram(){this.program.name("chelper").description(e.t("cli.title")).version(this.getVersion(),"-v, --version",e.t("commands.version")).helpOption("-h, --help",e.t("commands.help")).option("--base <url>","Custom API base URL"),this.program.command("init").description(e.t("commands.init")).action(async()=>{await this.handleInitCommand()});const a=this.program.command("lang").description(e.t("commands.lang"));a.command("show").description(e.t("lang.show_usage")).action(async()=>{await n(["show"])}),a.command("set <locale>").description(e.t("lang.set_usage")).action(async a=>{await n(["set",a])});const m=this.program.command("auth").description(e.t("commands.auth"));m.argument("[token]","API token").action(async a=>{const e=[];a&&e.push(a),await o(e)}),m.command("revoke").description("Revoke saved API key").action(async()=>{await o(["revoke"])}),m.command("reload <tool>").description("Reload plan configuration to the specified tool (e.g., claude)").action(async a=>{await o(["reload",a])}),this.program.command("doctor").description(e.t("commands.doctor")).action(async()=>{await i()}),this.program.command("enter [option]").description(e.t("commands.enter")).action(async a=>{if(a)switch(a){case"lang":case"language":await r.configLanguage();break;case"apikey":case"api-key":await r.configApiKey();break;case"models":await r.configModels();break;default:{const e=[a];await s(e);break}}else await r.showMainMenu()}),this.program.action(async()=>{t.isFirstRun()?(console.log(c.cyan(e.t("messages.first_run"))),await r.runFirstTimeSetup()):await r.showMainMenu()}),this.program.configureHelp({sortSubcommands:!0,subcommandTerm:a=>a.name()+" "+a.usage()}),this.program.addHelpText("after",`\n${c.bold(e.t("cli.examples"))}:\n ${c.gray("$ chelper # Interactive main menu")}\n ${c.gray("$ chelper init # Run first-time setup wizard")}\n ${c.gray("$ chelper enter # Interactive main menu")}\n ${c.gray("$ chelper enter lang # Interactive language configuration")}\n ${c.gray("$ chelper enter apikey # Interactive API key configuration")}\n ${c.gray("$ chelper enter models # Interactive model configuration")}\n ${c.gray("$ chelper lang show # Show current language")}\n ${c.gray("$ chelper lang set zh_CN")}\n ${c.gray("$ chelper auth # Interactive auth setup")}\n ${c.gray("$ chelper auth <token> # Set API key")}\n ${c.gray("$ chelper auth revoke")}\n ${c.gray("$ chelper doctor # Health check")}\n ${c.gray('$ chelper --base "https://custom.api.com" init # Custom base URL')}\n`)}async handleInitCommand(){await r.runFirstTimeSetup()}async execute(a){try{const e=a.indexOf("--base");-1!==e&&a[e+1]&&t.setBaseUrl(a[e+1]),await this.program.parseAsync(a,{from:"user"})}catch(a){a instanceof Error&&console.error(c.red(e.t("cli.error_general")),a.message),process.exit(1)}}getProgram(){return this.program}}
1
+ import{Command as a}from"commander";import{i18n as o}from"./i18n.js";import{configManager as e}from"./config.js";import{wizard as t}from"./wizard.js";import{langCommand as n,authCommand as r,doctorCommand as s,configCommand as i,statusCommand as c}from"../commands/index.js";import{logsCommand as m}from"../commands/logs.js";import{completionCommand as p}from"../commands/completion.js";import{benchCommand as l}from"../commands/bench.js";import{updateCommand as g}from"../commands/update.js";import h from"chalk";import{readFileSync as d}from"fs";import{join as u,dirname as f}from"path";import{fileURLToPath as y}from"url";import{setRuntimeOptions as w,detectColorPreferenceFromEnv as $,isColorEnabled as b}from"./runtime-options.js";export class Command{program;constructor(){const t=e.getLang();o.loadFromConfig(t),this.program=new a,this.setupProgram()}getVersion(){try{const a=y(import.meta.url),o=f(a),e=u(o,"../../package.json");return JSON.parse(d(e,"utf-8")).version}catch{return"1.0.0"}}setupProgram(){this.program.name("chelper").description(o.t("cli.title")).version(this.getVersion(),"-v, --version",o.t("commands.version")).helpOption("-h, --help",o.t("commands.help")).option("--base <url>","Custom API base URL").option("--non-interactive","Disable interactive prompts (CI mode)").option("--json","Emit machine-readable JSON output where applicable").option("--yes, -y","Auto-confirm prompts that have a default action").option("--dry-run","Show planned changes without writing anywhere").option("--no-color","Disable colored output"),this.program.command("init").description(o.t("commands.init")).action(async()=>{await this.handleInitCommand()});const a=this.program.command("lang").description(o.t("commands.lang"));a.command("show").description(o.t("lang.show_usage")).action(async()=>{await n(["show"])}),a.command("set <locale>").description(o.t("lang.set_usage")).action(async a=>{await n(["set",a])});const d=this.program.command("auth").description(o.t("commands.auth"));d.argument("[token]","API token").action(async a=>{const o=[];a&&o.push(a),await r(o)}),d.command("revoke").description("Revoke saved API key").action(async()=>{await r(["revoke"])}),d.command("reload <tool>").description("Reload plan configuration to the specified tool (e.g., claude)").action(async a=>{await r(["reload",a])}),this.program.command("doctor").description(o.t("commands.doctor")).action(async()=>{await s()}),this.program.command("status").description(o.t("commands.status")).action(async()=>{await c()}),this.program.command("logs").description("Inspect chelper log files").argument("[action]","list|tail|path").argument("[file]","specific log file when using tail").action(async(a,o)=>{const e=[];a&&e.push(a),o&&e.push(o),await m(e)}),this.program.command("completion <shell>").description("Print shell completion script (bash|zsh|fish)").action(async a=>{await p([a])}),this.program.command("update").description("Check for a newer version on npm").action(async()=>{await g()}),this.program.command("bench").description("Benchmark the configured API endpoint").option("--samples <n>","number of samples to send","5").action(async a=>{const o=[];a.samples&&o.push("--samples",a.samples),await l(o)}),this.program.command("config").description("Manage profiles, presets, backups, and per-tool config").argument("[args...]","Subcommand and arguments").allowUnknownOption(!0).action(async a=>{await i(a||[])}),this.program.command("enter [option]").description(o.t("commands.enter")).action(async a=>{if(a)switch(a){case"lang":case"language":await t.configLanguage();break;case"apikey":case"api-key":await t.configApiKey();break;case"models":await t.configModels();break;default:{const o=[a];await i(o);break}}else await t.showMainMenu()}),this.program.action(async()=>{e.isFirstRun()?(console.log(h.cyan(o.t("messages.first_run"))),await t.runFirstTimeSetup()):await t.showMainMenu()}),this.program.configureHelp({sortSubcommands:!0,subcommandTerm:a=>a.name()+" "+a.usage()}),this.program.addHelpText("after",`\n${h.bold(o.t("cli.examples"))}:\n ${h.gray("$ chelper # Interactive main menu")}\n ${h.gray("$ chelper init # Run first-time setup wizard")}\n ${h.gray("$ chelper status --json # Machine-readable status")}\n ${h.gray("$ chelper config profile list")}\n ${h.gray("$ chelper config profile create work")}\n ${h.gray("$ chelper config profile use work")}\n ${h.gray("$ chelper config preset save fast")}\n ${h.gray("$ chelper config backup create snapshot")}\n ${h.gray("$ chelper auth <token> --non-interactive")}\n ${h.gray("$ chelper auth revoke --yes")}\n ${h.gray("$ chelper logs path")}\n ${h.gray("$ chelper completion bash")}\n ${h.gray("$ chelper bench --samples 3")}\n ${h.gray("$ chelper update")}\n ${h.gray('$ chelper --base "https://custom.api.com" init # Custom base URL')}\n`)}async handleInitCommand(){await t.runFirstTimeSetup()}preflightArgs(a){const o=o=>a.includes(o),t=!o("--no-color")&&$();let n;w({nonInteractive:o("--non-interactive"),json:o("--json"),yes:o("--yes")||o("-y"),dryRun:o("--dry-run"),color:t}),t||(h.level=0);for(let o=0;o<a.length;o+=1){const e=a[o];if("--base"===e&&a[o+1]){n=a[o+1];break}if(e.startsWith("--base=")){n=e.slice(7);break}}n&&e.setBaseUrl(n)}async execute(a){try{this.preflightArgs(a),await this.program.parseAsync(a,{from:"user"})}catch(a){if(a instanceof Error){const e=b()?h.red:a=>a;console.error(e(o.t("cli.error_general")),a.message)}process.exit(1)}}getProgram(){return this.program}}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/lib/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/lib/command.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,34 @@
1
1
  export declare const DEFAULT_BASE_URL = "https://www.vibeapi.cn";
2
2
  export declare const DEFAULT_MODELS: import("./model-registry.js").Models;
3
+ export declare const DEFAULT_PROFILE_NAME = "default";
4
+ export interface ChelperModels {
5
+ haiku: string;
6
+ sonnet: string;
7
+ opus: string;
8
+ reasoning: string;
9
+ }
10
+ export interface ChelperProfile {
11
+ api_key?: string;
12
+ base_url?: string;
13
+ models?: ChelperModels;
14
+ }
15
+ export interface ChelperPreset {
16
+ models: ChelperModels;
17
+ updated_at: string;
18
+ }
19
+ export interface ConfigBackupInfo {
20
+ name: string;
21
+ path: string;
22
+ mtimeMs: number;
23
+ }
3
24
  export interface ChelperConfig {
4
25
  lang: string;
26
+ active_profile?: string;
27
+ profiles?: Record<string, ChelperProfile>;
28
+ presets?: Record<string, ChelperPreset>;
5
29
  api_key?: string;
6
- models?: {
7
- haiku: string;
8
- sonnet: string;
9
- opus: string;
10
- reasoning: string;
11
- };
30
+ base_url?: string;
31
+ models?: ChelperModels;
12
32
  }
13
33
  export declare class ConfigManager {
14
34
  private static instance;
@@ -17,46 +37,59 @@ export declare class ConfigManager {
17
37
  private config;
18
38
  private runtimeBaseUrl?;
19
39
  private constructor();
20
- /**
21
- * 获取配置目录路径,支持环境变量覆盖
22
- */
23
- private getConfigDir;
40
+ private resolveConfigDir;
41
+ private createDefaultConfig;
42
+ private normalizeModels;
43
+ private normalizeProfile;
44
+ private normalizeProfiles;
45
+ private normalizePresets;
46
+ private getResolvedActiveProfile;
47
+ private syncLegacyFields;
48
+ private sanitizeBackupLabel;
49
+ private getBackupDir;
50
+ private getSecretsPath;
51
+ private getSecretsBackupPath;
52
+ private snapshotSecrets;
53
+ private restoreSecretsSnapshot;
24
54
  static getInstance(): ConfigManager;
25
55
  private ensureConfigDir;
26
56
  private loadConfig;
27
- /**
28
- * 检查配置是否需要迁移
29
- */
57
+ private hasInlineSecrets;
30
58
  private needsMigration;
31
- /**
32
- * 迁移旧配置格式
33
- */
34
59
  private migrateOldConfig;
35
- /**
36
- * 原子写入文件
37
- */
38
60
  private atomicWrite;
39
- /**
40
- * 备份当前配置
41
- */
42
61
  private backupConfig;
43
- /**
44
- * 轮转备份文件,保留最近的 N 个
45
- */
46
62
  private rotateBackups;
47
63
  saveConfig(config?: ChelperConfig): void;
64
+ private extractSecretsForPersistence;
65
+ private hydrateSecretsFromStore;
48
66
  getConfig(): ChelperConfig;
49
67
  updateConfig(updates: Partial<ChelperConfig>): void;
50
68
  isFirstRun(): boolean;
51
69
  getLang(): string;
52
70
  setLang(lang: string): void;
71
+ getActiveProfileName(): string;
72
+ listProfiles(): string[];
73
+ getProfile(name?: string): ChelperProfile;
74
+ createProfile(name: string, sourceProfileName?: string): void;
75
+ setActiveProfile(name: string): void;
76
+ updateProfile(name: string, updates: Partial<ChelperProfile>): void;
77
+ deleteProfile(name: string): void;
53
78
  getApiKey(): string | undefined;
54
79
  setApiKey(apiKey: string): void;
55
80
  revokeApiKey(): void;
81
+ getApiKeyFingerprint(): string;
56
82
  getModels(): typeof DEFAULT_MODELS;
57
83
  setModels(models: typeof DEFAULT_MODELS): void;
58
84
  updateModels(partial: Partial<typeof DEFAULT_MODELS>): void;
85
+ getCustomPresets(): Record<string, ChelperPreset>;
86
+ saveCustomPreset(name: string, models: typeof DEFAULT_MODELS): void;
87
+ deleteCustomPreset(name: string): void;
88
+ listBackups(): ConfigBackupInfo[];
89
+ createBackup(label?: string): string;
90
+ restoreBackup(name: string): void;
59
91
  getBaseUrl(): string;
60
- setBaseUrl(url: string): void;
92
+ setBaseUrl(url: string, persist?: boolean): void;
93
+ resetBaseUrl(): void;
61
94
  }
62
95
  export declare const configManager: ConfigManager;
@@ -1 +1 @@
1
- import{existsSync as t,mkdirSync as i,readFileSync as n,writeFileSync as o,renameSync as e,unlinkSync as r,readdirSync as a,statSync as s}from"fs";import{join as g}from"path";import{homedir as c}from"os";import*as f from"js-yaml";import{logger as h}from"../utils/logger.js";import{getDefaultModels as u}from"./model-registry.js";export const DEFAULT_BASE_URL="https://www.vibeapi.cn";export const DEFAULT_MODELS=u();export class ConfigManager{static instance;configDir;configPath;config;runtimeBaseUrl;constructor(){this.configDir=this.getConfigDir(),this.configPath=g(this.configDir,"config.yaml"),this.config=this.loadConfig()}getConfigDir(){const t=process.env.CHELPER_CONFIG_DIR;if(t&&t.trim())return t.trim();const i=process.env.CHELPER_TEST_HOME;return i&&i.trim()?g(i.trim(),".chelper"):g(c(),".chelper")}static getInstance(){return ConfigManager.instance||(ConfigManager.instance=new ConfigManager),ConfigManager.instance}ensureConfigDir(){t(this.configDir)||i(this.configDir,{recursive:!0})}loadConfig(){try{if(t(this.configPath)){const t=n(this.configPath,"utf-8"),i=f.load(t),o=this.migrateOldConfig(i||{lang:"en_US"});return this.needsMigration(i)&&(this.backupConfig(),this.atomicWrite(this.configPath,f.dump(o))),o}}catch(t){console.warn("Failed to load config, using defaults:",t),h.logError("ConfigManager.loadConfig",t)}return{lang:"en_US"}}needsMigration(t){return t&&"plan"in t}migrateOldConfig(t){if(t.plan){const{plan:i,...n}=t;return{...n,lang:t.lang||"en_US",api_key:t.api_key,models:DEFAULT_MODELS}}return t}atomicWrite(i,n){const a=`${i}.tmp`;try{o(a,n,"utf-8"),e(a,i)}catch(i){if(t(a))try{r(a)}catch{}throw i}}backupConfig(){if(!t(this.configPath))return;const e=g(this.configDir,"backups");t(e)||i(e,{recursive:!0});const r=(new Date).toISOString().replace(/[:.]/g,"-"),a=g(e,`config-${r}.yaml`);try{const t=n(this.configPath,"utf-8");o(a,t,"utf-8"),this.rotateBackups(e,10)}catch(t){h.logError("ConfigManager.backupConfig",t)}}rotateBackups(t,i){try{a(t).filter(t=>t.startsWith("config-")&&t.endsWith(".yaml")).map(i=>({name:i,path:g(t,i),mtime:s(g(t,i)).mtime})).sort((t,i)=>i.mtime.getTime()-t.mtime.getTime()).slice(i).forEach(t=>{try{r(t.path)}catch(t){h.logError("ConfigManager.rotateBackups",t)}})}catch(t){h.logError("ConfigManager.rotateBackups",t)}}saveConfig(t){try{this.ensureConfigDir(),this.backupConfig();const i=t||this.config,n=f.dump(i);this.atomicWrite(this.configPath,n),this.config=i}catch(t){throw console.error("Failed to save config:",t),h.logError("ConfigManager.saveConfig",t),t}}getConfig(){return{...this.config}}updateConfig(t){this.config={...this.config,...t},this.saveConfig()}isFirstRun(){return!t(this.configPath)}getLang(){return this.config.lang||"en_US"}setLang(t){this.updateConfig({lang:t})}getApiKey(){return this.config.api_key}setApiKey(t){this.updateConfig({api_key:t})}revokeApiKey(){this.updateConfig({api_key:void 0})}getModels(){return this.config.models||DEFAULT_MODELS}setModels(t){this.updateConfig({models:t})}updateModels(t){const i=this.getModels(),n={haiku:t.haiku??i.haiku,sonnet:t.sonnet??i.sonnet,opus:t.opus??i.opus,reasoning:t.reasoning??i.reasoning};this.updateConfig({models:n})}getBaseUrl(){return this.runtimeBaseUrl||DEFAULT_BASE_URL}setBaseUrl(t){this.runtimeBaseUrl=t}}export const configManager=ConfigManager.getInstance();
1
+ import{existsSync as e,mkdirSync as t,readFileSync as i,writeFileSync as s,renameSync as r,unlinkSync as o,readdirSync as n,statSync as a,copyFileSync as c}from"fs";import{join as f}from"path";import{homedir as l}from"os";import*as g from"js-yaml";import{logger as h}from"../utils/logger.js";import{getDefaultModels as p}from"./model-registry.js";import{secretStore as u}from"./secret-store.js";import{i18n as m}from"./i18n.js";export const DEFAULT_BASE_URL="https://www.vibeapi.cn";export const DEFAULT_MODELS=p();export const DEFAULT_PROFILE_NAME="default";export class ConfigManager{static instance;configDir;configPath;config;runtimeBaseUrl;constructor(){this.configDir=this.resolveConfigDir(),this.configPath=f(this.configDir,"config.yaml"),this.config=this.loadConfig()}resolveConfigDir(){const e=process.env.CHELPER_CONFIG_DIR;if(e&&e.trim())return e.trim();const t=process.env.CHELPER_TEST_HOME;return t&&t.trim()?f(t.trim(),".chelper"):f(l(),".chelper")}createDefaultConfig(){return this.syncLegacyFields({lang:"en_US",active_profile:"default",profiles:{[DEFAULT_PROFILE_NAME]:{}},presets:{}})}normalizeModels(e){return{haiku:e?.haiku?.trim()||DEFAULT_MODELS.haiku,sonnet:e?.sonnet?.trim()||DEFAULT_MODELS.sonnet,opus:e?.opus?.trim()||DEFAULT_MODELS.opus,reasoning:e?.reasoning?.trim()||DEFAULT_MODELS.reasoning}}normalizeProfile(e){return e?{..."string"==typeof e.api_key&&e.api_key?{api_key:e.api_key}:{},..."string"==typeof e.base_url&&e.base_url?{base_url:e.base_url}:{},...e.models?{models:this.normalizeModels(e.models)}:{}}:{}}normalizeProfiles(e){if(!e||"object"!=typeof e)return{};const t=Object.entries(e).flatMap(([e,t])=>e&&"string"==typeof e&&t&&"object"==typeof t?[[e,this.normalizeProfile(t)]]:[]);return Object.fromEntries(t)}normalizePresets(e){if(!e||"object"!=typeof e)return{};const t=Object.entries(e).flatMap(([e,t])=>{if(!e||"string"!=typeof e||!t||"object"!=typeof t)return[];const i=t;return i.models?[[e,{models:this.normalizeModels(i.models),updated_at:i.updated_at||new Date(0).toISOString()}]]:[]});return Object.fromEntries(t)}getResolvedActiveProfile(e){const t=e.active_profile||"default";return e.profiles?.[t]||{}}syncLegacyFields(e){const t=this.normalizeProfiles(e.profiles),i=e.active_profile?.trim()||Object.keys(t)[0]||"default",s=t[i]?t:{...t,[i]:{}},r=this.getResolvedActiveProfile({...e,profiles:s,active_profile:i});return{...e,lang:e.lang||"en_US",active_profile:i,profiles:s,presets:this.normalizePresets(e.presets),api_key:r.api_key,base_url:r.base_url,models:r.models?this.normalizeModels(r.models):DEFAULT_MODELS}}sanitizeBackupLabel(e){return(e||"").trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)}getBackupDir(){return f(this.configDir,"backups")}getSecretsPath(){return f(this.configDir,"secrets.enc")}getSecretsBackupPath(e){return e.replace(/\.yaml$/,".secrets.enc")}snapshotSecrets(t){const i=this.getSecretsPath();if(e(i))try{c(i,this.getSecretsBackupPath(t))}catch(e){h.logError("ConfigManager.snapshotSecrets",e)}}restoreSecretsSnapshot(t){const i=this.getSecretsBackupPath(t);if(e(i))try{c(i,this.getSecretsPath())}catch(e){h.logError("ConfigManager.restoreSecretsSnapshot",e)}}static getInstance(){return ConfigManager.instance||(ConfigManager.instance=new ConfigManager),ConfigManager.instance}ensureConfigDir(){e(this.configDir)||t(this.configDir,{recursive:!0})}loadConfig(){try{if(e(this.configPath)){const e=i(this.configPath,"utf-8"),t=g.load(e),s=this.migrateOldConfig(t||{lang:"en_US"}),r=this.hydrateSecretsFromStore(s);return(this.needsMigration(t)||this.hasInlineSecrets(t))&&(this.backupConfig(),this.atomicWrite(this.configPath,g.dump(this.extractSecretsForPersistence(r)))),r}}catch(e){h.warn("Failed to load config, using defaults:",e),h.logError("ConfigManager.loadConfig",e)}return this.createDefaultConfig()}hasInlineSecrets(e){if(!e||"object"!=typeof e)return!1;const t=e;if("string"==typeof t.api_key&&t.api_key)return!0;if(t.profiles&&"object"==typeof t.profiles)for(const e of Object.values(t.profiles))if(e&&"object"==typeof e&&"string"==typeof e.api_key&&e.api_key)return!0;return!1}needsMigration(e){return!(!e||"object"!=typeof e)&&("plan"in e||!("profiles"in e)||!("active_profile"in e)||!("presets"in e))}migrateOldConfig(e){if(!e||"object"!=typeof e)return this.createDefaultConfig();const t=e,{plan:i,...s}=t,r=this.normalizeProfiles(s.profiles),o=this.normalizeProfile({api_key:"string"==typeof s.api_key?s.api_key:void 0,base_url:"string"==typeof s.base_url?s.base_url:void 0,models:s.models}),n=Object.keys(r).length>0?r:{[DEFAULT_PROFILE_NAME]:o},a="string"==typeof s.active_profile&&s.active_profile.trim()?s.active_profile.trim():Object.keys(n)[0]||"default";return this.syncLegacyFields({lang:"string"==typeof s.lang&&s.lang?s.lang:"en_US",active_profile:a,profiles:n,presets:this.normalizePresets(s.presets)})}atomicWrite(t,i){const n=`${t}.tmp`;try{s(n,i,"utf-8"),r(n,t)}catch(t){if(e(n))try{o(n)}catch{}throw t}}backupConfig(){if(!e(this.configPath))return;const r=this.getBackupDir();e(r)||t(r,{recursive:!0});const o=(new Date).toISOString().replace(/[:.]/g,"-"),n=f(r,`config-${o}.yaml`);try{const e=i(this.configPath,"utf-8");s(n,e,"utf-8"),this.snapshotSecrets(n),this.rotateBackups(r,10,30)}catch(e){h.logError("ConfigManager.backupConfig",e)}}rotateBackups(t,i,s){try{const r=Date.now()-24*s*60*60*1e3,c=n(t).filter(e=>e.startsWith("config-")&&e.endsWith(".yaml")).map(e=>({name:e,path:f(t,e),mtime:a(f(t,e)).mtime})).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()),l=new Set;c.slice(i).forEach(e=>l.add(e.path)),c.forEach(e=>{e.mtime.getTime()<r&&l.add(e.path)});for(const t of l){let i=!1;try{o(t),i=!0}catch(e){h.logError("ConfigManager.rotateBackups",e)}if(i){const i=this.getSecretsBackupPath(t);if(e(i))try{o(i)}catch(e){h.logError("ConfigManager.rotateBackups.secrets",e)}}}}catch(e){h.logError("ConfigManager.rotateBackups",e)}}saveConfig(e){try{this.ensureConfigDir(),this.backupConfig();const t=this.syncLegacyFields(this.migrateOldConfig(e||this.config)),i=this.extractSecretsForPersistence(t),s=g.dump(i);this.atomicWrite(this.configPath,s),this.config=t}catch(e){throw h.error("Failed to save config:",e),h.logError("ConfigManager.saveConfig",e),e}}extractSecretsForPersistence(e){const t={...e.profiles||{}},i=[];for(const[e,s]of Object.entries(t))s?.api_key&&(u.setApiKey(e,s.api_key),i.push(e));for(const e of i){const{api_key:i,...s}=t[e];t[e]=s}const s={...e,profiles:t};return delete s.api_key,s}hydrateSecretsFromStore(e){const t={...e.profiles||{}};for(const[e,i]of Object.entries(t)){if(i?.api_key)continue;const s=u.getApiKey(e);s&&(t[e]={...i,api_key:s})}return{...e,profiles:t}}getConfig(){return this.syncLegacyFields({...this.config})}updateConfig(e){this.saveConfig({...this.config,...e})}isFirstRun(){return!e(this.configPath)}getLang(){return this.config.lang||"en_US"}setLang(e){this.updateConfig({lang:e})}getActiveProfileName(){return this.config.active_profile||"default"}listProfiles(){return Object.keys(this.config.profiles||{}).sort()}getProfile(e=this.getActiveProfileName()){const t=this.config.profiles?.[e]||{};return{...t.api_key?{api_key:t.api_key}:{},...t.base_url?{base_url:t.base_url}:{},models:t.models?this.normalizeModels(t.models):DEFAULT_MODELS}}createProfile(e,t=this.getActiveProfileName()){const i=this.getProfile(t),s={...this.config.profiles||{},[e]:{...i.api_key?{api_key:i.api_key}:{},...i.base_url?{base_url:i.base_url}:{},models:this.normalizeModels(i.models)}};this.saveConfig({...this.config,profiles:s})}setActiveProfile(e){if(!this.config.profiles?.[e])throw new Error(`Profile not found: ${e}`);this.saveConfig({...this.config,active_profile:e})}updateProfile(e,t){const i=this.config.profiles?.[e]||{},s=t.models?this.normalizeModels({...i.models,...t.models}):i.models?this.normalizeModels(i.models):void 0,r={...i,...void 0!==t.api_key?{api_key:t.api_key}:{},...void 0!==t.base_url?{base_url:t.base_url}:{},...s?{models:s}:{}},o={...this.config.profiles||{},[e]:r};this.saveConfig({...this.config,profiles:o})}deleteProfile(e){const t={...this.config.profiles||{}};if(!t[e])return;const i=Object.keys(t).filter(t=>t!==e);if(0===i.length)throw new Error("At least one profile must remain");delete t[e];const s=this.getActiveProfileName()===e?i[0]:this.getActiveProfileName();this.saveConfig({...this.config,profiles:t,active_profile:s})}getApiKey(){return this.config.profiles?.[this.getActiveProfileName()]?.api_key}setApiKey(e){this.updateProfile(this.getActiveProfileName(),{api_key:e})}revokeApiKey(){const e=this.config.profiles?.[this.getActiveProfileName()]||{},{api_key:t,...i}=e,s={...this.config.profiles||{},[this.getActiveProfileName()]:i};try{u.deleteApiKey(this.getActiveProfileName())}catch(e){h.logError("ConfigManager.revokeApiKey",e);try{u.deleteAll()}catch(e){h.logError("ConfigManager.revokeApiKey.deleteAll",e)}}this.saveConfig({...this.config,profiles:s})}getApiKeyFingerprint(){try{return u.fingerprint(this.getActiveProfileName())}catch{return""}}getModels(){const e=this.config.profiles?.[this.getActiveProfileName()]?.models;return e?this.normalizeModels(e):DEFAULT_MODELS}setModels(e){this.updateProfile(this.getActiveProfileName(),{models:this.normalizeModels(e)})}updateModels(e){const t=this.getModels(),i={haiku:e.haiku??t.haiku,sonnet:e.sonnet??t.sonnet,opus:e.opus??t.opus,reasoning:e.reasoning??t.reasoning};this.setModels(i)}getCustomPresets(){return{...this.config.presets||{}}}saveCustomPreset(e,t){const i={...this.config.presets||{},[e]:{models:this.normalizeModels(t),updated_at:(new Date).toISOString()}};this.saveConfig({...this.config,presets:i})}deleteCustomPreset(e){const t={...this.config.presets||{}};t[e]&&(delete t[e],this.saveConfig({...this.config,presets:t}))}listBackups(){const t=this.getBackupDir();return e(t)?n(t).filter(e=>e.startsWith("config-")&&e.endsWith(".yaml")).map(e=>{const i=f(t,e);return{name:e,path:i,mtimeMs:a(i).mtimeMs}}).sort((e,t)=>t.mtimeMs-e.mtimeMs):[]}createBackup(r){this.ensureConfigDir();const o=this.getBackupDir();e(o)||t(o,{recursive:!0});const n=(new Date).toISOString().replace(/[:.]/g,"-"),a=this.sanitizeBackupLabel(r),c=f(o,a?`config-${n}-${a}.yaml`:`config-${n}.yaml`),l=e(this.configPath)?i(this.configPath,"utf-8"):g.dump(this.getConfig());return s(c,l,"utf-8"),this.snapshotSecrets(c),this.rotateBackups(o,10,30),c}restoreBackup(t){if(!t||"."===t||".."===t||/[/\\]|\.\./.test(t))throw new Error(`Invalid backup name: ${t}`);const s=this.getBackupDir(),r=f(s,t);if(!e(r))throw new Error(`Backup not found: ${t}`);const o=i(r,"utf-8"),n=g.load(o),a=this.getSecretsBackupPath(r),c=e(a),l=this.hasInlineSecrets(n);if(!c&&!l)throw new Error(m.t("config.backup_companion_missing",{path:a}));c&&this.restoreSecretsSnapshot(r);const h=this.migrateOldConfig(n||this.createDefaultConfig()),p=c?this.hydrateSecretsFromStore(h):h;this.saveConfig(p)}getBaseUrl(){return this.runtimeBaseUrl||this.config.profiles?.[this.getActiveProfileName()]?.base_url||DEFAULT_BASE_URL}setBaseUrl(e,t=!1){this.runtimeBaseUrl=e,t&&this.updateProfile(this.getActiveProfileName(),{base_url:e})}resetBaseUrl(){this.runtimeBaseUrl=void 0;const e=this.config.profiles?.[this.getActiveProfileName()]||{},{base_url:t,...i}=e,s={...this.config.profiles||{},[this.getActiveProfileName()]:i};this.saveConfig({...this.config,profiles:s})}}export const configManager=ConfigManager.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface ConfirmOptions {
2
+ message: string;
3
+ defaultValue?: boolean;
4
+ }
5
+ export declare function confirmAction({ message, defaultValue }: ConfirmOptions): Promise<boolean>;
6
+ export interface DryRunGuardArgs<T> {
7
+ description: string;
8
+ json?: T;
9
+ apply: () => void | Promise<void>;
10
+ onApplied?: () => void;
11
+ }
12
+ export declare function applyOrDryRun<T>({ description, json, apply, onApplied }: DryRunGuardArgs<T>): Promise<void>;
@@ -0,0 +1 @@
1
+ import r from"inquirer";import{isDryRun as n,shouldAutoConfirm as o,isJsonMode as i,emitJson as t,isColorEnabled as e}from"./runtime-options.js";import{i18n as a}from"./i18n.js";import p from"chalk";export async function confirmAction({message:n,defaultValue:i=!1}){if(o())return!0;const{confirmed:t}=await r.prompt([{type:"confirm",name:"confirmed",message:n,default:i}]);return Boolean(t)}export async function applyOrDryRun({description:r,json:o,apply:m,onApplied:s}){if(n()){if(i())return void t({dry_run:!0,description:r,payload:o??null});const n=e()?p.cyan:r=>r;return void process.stdout.write(`${n(a.t("runtime.dry_run_label"))} ${r}\n`)}await m(),s&&s()}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/lib/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAkB;IACjF,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,OAAO,EAAE,YAAY;SACxB;KACJ,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAsB;IAC9F,IAAI,QAAQ,EAAE,EAAE,CAAC;QACb,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,OAAO,EAAE,IAAI,IAAI,IAAI;aACxB,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC;QACtF,OAAO;IACX,CAAC;IAED,MAAM,KAAK,EAAE,CAAC;IACd,IAAI,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;IAChB,CAAC;AACL,CAAC"}
@@ -16,5 +16,5 @@ declare class I18n {
16
16
  private loadSavedLocale;
17
17
  loadFromConfig(locale: string): void;
18
18
  }
19
+ export { I18n };
19
20
  export declare const i18n: I18n;
20
- export { i18n as I18n };
package/dist/lib/i18n.js CHANGED
@@ -1 +1 @@
1
- import{readFileSync as t,existsSync as s,readdirSync as e}from"fs";import{join as o,dirname as a}from"path";import{fileURLToPath as n}from"url";class r{static instance;currentLocale="en_US";translations=new Map;fallbackLocale="en_US";localesDir;constructor(){const t=n(import.meta.url),s=a(t);this.localesDir=o(s,"..","locales"),this.loadTranslations(),this.loadSavedLocale()}static getInstance(){return r.instance||(r.instance=new r),r.instance}loadTranslations(){try{if(!s(this.localesDir))return void console.warn(`Locales directory not found at ${this.localesDir}`);const a=e(this.localesDir).filter(t=>t.endsWith(".json"));if(0===a.length)return void console.warn("No locale files found in locales directory");for(const s of a){const e=s.replace(".json",""),a=o(this.localesDir,s);try{const s=t(a,"utf-8"),o=JSON.parse(s);this.translations.set(e,o)}catch(t){console.warn(`Failed to load locale file ${s}:`,t)}}const n=process.env.LANG||process.env.LC_ALL||process.env.LC_MESSAGES;if(n){const t=n.split(".")[0].replace("_","-");if(this.translations.has(t))this.currentLocale=t;else{const s=t.split("-")[0],e=Array.from(this.translations.keys()).find(t=>t.startsWith(s+"_"));e?this.currentLocale=e:"zh"===s?this.currentLocale="zh_CN":"en"===s&&(this.currentLocale="en_US")}}}catch(t){console.warn("Failed to load translations:",t)}}setLocale(t){this.translations.has(t)?(this.currentLocale=t,this.saveLocale()):console.warn(`Locale '${t}' not supported, falling back to '${this.currentLocale}'`)}getLocale(){return this.currentLocale}getAvailableLocales(){return Array.from(this.translations.keys())}translate(t,s){const e=t.split(".");let o=this.translations.get(this.currentLocale);for(const s of e){if(!o||"object"!=typeof o||!(s in o)){o=this.translations.get(this.fallbackLocale);for(const s of e){if(!o||"object"!=typeof o||!(s in o))return t;o=o[s]}break}o=o[s]}return"string"!=typeof o?t:s?o.replace(/\{\{(\w+)\}\}/g,(t,e)=>s[e]||t):o}t(t,s){return this.translate(t,s)}saveLocale(){}loadSavedLocale(){}loadFromConfig(t){this.translations.has(t)&&(this.currentLocale=t)}}export const i18n=r.getInstance();export{i18n as I18n};
1
+ import{readFileSync as t,existsSync as s,readdirSync as e}from"fs";import{join as a,dirname as o}from"path";import{fileURLToPath as r}from"url";import{logger as n}from"../utils/logger.js";class l{static instance;currentLocale="en_US";translations=new Map;fallbackLocale="en_US";localesDir;constructor(){const t=r(import.meta.url),s=o(t);this.localesDir=a(s,"..","locales"),this.loadTranslations(),this.loadSavedLocale()}static getInstance(){return l.instance||(l.instance=new l),l.instance}loadTranslations(){try{if(!s(this.localesDir))return void n.warn(`Locales directory not found at ${this.localesDir}`);const o=e(this.localesDir).filter(t=>t.endsWith(".json"));if(0===o.length)return void n.warn("No locale files found in locales directory");for(const s of o){const e=s.replace(".json",""),o=a(this.localesDir,s);try{const s=t(o,"utf-8"),a=JSON.parse(s);this.translations.set(e,a)}catch(t){n.warn(`Failed to load locale file ${s}:`,t)}}const r=process.env.LANG||process.env.LC_ALL||process.env.LC_MESSAGES;if(r){const t=r.split(".")[0].replace("_","-");if(this.translations.has(t))this.currentLocale=t;else{const s=t.split("-")[0],e=Array.from(this.translations.keys()).find(t=>t.startsWith(s+"_"));e?this.currentLocale=e:"zh"===s?this.currentLocale="zh_CN":"en"===s&&(this.currentLocale="en_US")}}}catch(t){n.warn("Failed to load translations:",t)}}setLocale(t){this.translations.has(t)?(this.currentLocale=t,this.saveLocale()):n.warn(`Locale '${t}' not supported, falling back to '${this.currentLocale}'`)}getLocale(){return this.currentLocale}getAvailableLocales(){return Array.from(this.translations.keys())}translate(t,s){const e=t.split(".");let a=this.translations.get(this.currentLocale);for(const s of e){if(!a||"object"!=typeof a||!(s in a)){a=this.translations.get(this.fallbackLocale);for(const s of e){if(!a||"object"!=typeof a||!(s in a))return t;a=a[s]}break}a=a[s]}return"string"!=typeof a?t:s?a.replace(/\{\{(\w+)\}\}/g,(t,e)=>s[e]||t):a}t(t,s){return this.translate(t,s)}saveLocale(){}loadSavedLocale(){}loadFromConfig(t){this.translations.has(t)&&(this.currentLocale=t)}}export{l as I18n};export const i18n=l.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/lib/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/lib/i18n.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as n,readFileSync as o,writeFileSync as i}from"fs";import{join as t,dirname as r}from"path";import{homedir as a}from"os";import{logger as s}from"../utils/logger.js";import{configManager as p,DEFAULT_MODELS as c}from"./config.js";export class OpenCodeManager{static instance;configPath;constructor(){this.configPath=t(a(),".config","opencode","opencode.json")}static getInstance(){return OpenCodeManager.instance||(OpenCodeManager.instance=new OpenCodeManager),OpenCodeManager.instance}ensureConfigDir(){const o=r(this.configPath);e(o)||n(o,{recursive:!0})}getConfig(){try{if(e(this.configPath)){const e=o(this.configPath,"utf-8");return JSON.parse(e)}}catch(e){console.warn("Failed to read OpenCode config:",e),s.logError("OpenCodeManager.getConfig",e)}return{}}saveConfig(e){try{this.ensureConfigDir(),i(this.configPath,JSON.stringify(e,null,4),"utf-8")}catch(e){throw new Error(`Failed to save OpenCode config: ${e}`)}}loadPrivateConfig(e,n){const o=this.getConfig(),{provider:i,...t}=o,r={};if(i)for(const[e,n]of Object.entries(i))"private-newapi"!==e&&(r[e]=n);r["private-newapi"]={options:{apiKey:e,baseURL:p.getBaseUrl()}};const a={$schema:"https://opencode.ai/config.json",...t,provider:r,model:`private-newapi/${n.opus||c.opus}`,small_model:`private-newapi/${n.haiku||c.haiku}`};this.saveConfig(a)}unloadPrivateConfig(){const e=this.getConfig();e.provider&&(delete e.provider["private-newapi"],0===Object.keys(e.provider).length&&delete e.provider),e.model?.includes("private-newapi")&&delete e.model,e.small_model?.includes("private-newapi")&&delete e.small_model,this.saveConfig(e)}detectCurrentConfig(){try{const e=this.getConfig();if(!e.provider)return{apiKey:null};let n=null;return e.provider["private-newapi"]&&(n=e.provider["private-newapi"].options?.apiKey||null),{apiKey:n}}catch{return{apiKey:null}}}}export const openCodeManager=OpenCodeManager.getInstance();
1
+ import{existsSync as e,mkdirSync as n,readFileSync as i,writeFileSync as t}from"fs";import{join as o,dirname as r}from"path";import{homedir as a}from"os";import{logger as s}from"../utils/logger.js";import{configManager as p,DEFAULT_MODELS as c}from"./config.js";export class OpenCodeManager{static instance;configPath;constructor(){this.configPath=o(a(),".config","opencode","opencode.json")}static getInstance(){return OpenCodeManager.instance||(OpenCodeManager.instance=new OpenCodeManager),OpenCodeManager.instance}ensureConfigDir(){const i=r(this.configPath);e(i)||n(i,{recursive:!0})}getConfig(){try{if(e(this.configPath)){const e=i(this.configPath,"utf-8");return JSON.parse(e)}}catch(e){s.warn("Failed to read OpenCode config:",e),s.logError("OpenCodeManager.getConfig",e)}return{}}saveConfig(e){try{this.ensureConfigDir(),t(this.configPath,JSON.stringify(e,null,4),"utf-8")}catch(e){throw new Error(`Failed to save OpenCode config: ${e}`)}}loadPrivateConfig(e,n){const i=this.getConfig(),{provider:t,...o}=i,r={};if(t)for(const[e,n]of Object.entries(t))"private-newapi"!==e&&(r[e]=n);r["private-newapi"]={options:{apiKey:e,baseURL:p.getBaseUrl()}};const a={$schema:"https://opencode.ai/config.json",...o,provider:r,model:`private-newapi/${n.opus||c.opus}`,small_model:`private-newapi/${n.haiku||c.haiku}`};this.saveConfig(a)}unloadPrivateConfig(){const e=this.getConfig();e.provider&&(delete e.provider["private-newapi"],0===Object.keys(e.provider).length&&delete e.provider),e.model?.includes("private-newapi")&&delete e.model,e.small_model?.includes("private-newapi")&&delete e.small_model,this.saveConfig(e)}detectCurrentConfig(){try{const e=this.getConfig();if(!e.provider)return{apiKey:null};let n=null;return e.provider["private-newapi"]&&(n=e.provider["private-newapi"].options?.apiKey||null),{apiKey:n}}catch{return{apiKey:null}}}}export const openCodeManager=OpenCodeManager.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-manager.js","sourceRoot":"","sources":["../../src/lib/opencode-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAyB5D,MAAM,OAAO,eAAe;IAChB,MAAM,CAAC,QAAQ,CAAkB;IACjC,UAAU,CAAS;IAE3B;QACI,kBAAkB;QAClB,mCAAmC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,eAAe;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QACL,IAAI,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAsB;QAC7B,IAAI,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,MAA6B;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,yBAAyB;QACzB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;QAC/D,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,WAAW,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;oBAC3B,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACL,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,WAAW,CAAC,gBAAgB,CAAC,GAAG;YAC5B,OAAO,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE;aACtC;SACJ,CAAC;QAEF,MAAM,SAAS,GAAmB;YAC9B,OAAO,EAAE,iCAAiC;YAC1C,GAAG,UAAU;YACb,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE;YAC7D,WAAW,EAAE,kBAAkB,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE;SACxE,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,mCAAmC;QACnC,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAEhD,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,OAAO,aAAa,CAAC,QAAQ,CAAC;YAClC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,IAAI,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClD,OAAO,aAAa,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxD,OAAO,aAAa,CAAC,WAAW,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAEhC,iBAAiB;YACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;YAED,uBAAuB;YACvB,IAAI,MAAM,GAAkB,IAAI,CAAC;YAEjC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;YACvE,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"opencode-manager.js","sourceRoot":"","sources":["../../src/lib/opencode-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAyB5D,MAAM,OAAO,eAAe;IAChB,MAAM,CAAC,QAAQ,CAAkB;IACjC,UAAU,CAAS;IAE3B;QACI,kBAAkB;QAClB,mCAAmC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,eAAe;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QACL,IAAI,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAsB;QAC7B,IAAI,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,MAA6B;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,yBAAyB;QACzB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;QAC/D,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,WAAW,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;oBAC3B,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACL,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,WAAW,CAAC,gBAAgB,CAAC,GAAG;YAC5B,OAAO,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE;aACtC;SACJ,CAAC;QAEF,MAAM,SAAS,GAAmB;YAC9B,OAAO,EAAE,iCAAiC;YAC1C,GAAG,UAAU;YACb,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE;YAC7D,WAAW,EAAE,kBAAkB,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE;SACxE,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,mCAAmC;QACnC,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAEhD,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,OAAO,aAAa,CAAC,QAAQ,CAAC;YAClC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,IAAI,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClD,OAAO,aAAa,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxD,OAAO,aAAa,CAAC,WAAW,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAEhC,iBAAiB;YACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;YAED,uBAAuB;YACvB,IAAI,MAAM,GAAkB,IAAI,CAAC;YAEjC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;YACvE,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface CliRuntimeOptions {
2
+ nonInteractive: boolean;
3
+ json: boolean;
4
+ yes: boolean;
5
+ dryRun: boolean;
6
+ color: boolean;
7
+ }
8
+ export declare function setRuntimeOptions(options: Partial<CliRuntimeOptions>): void;
9
+ export declare function getRuntimeOptions(): CliRuntimeOptions;
10
+ export declare function isJsonMode(): boolean;
11
+ export declare function isNonInteractive(): boolean;
12
+ export declare function isDryRun(): boolean;
13
+ export declare function shouldAutoConfirm(): boolean;
14
+ export declare function isColorEnabled(): boolean;
15
+ export declare function resetRuntimeOptions(): void;
16
+ export declare function detectColorPreferenceFromEnv(env?: NodeJS.ProcessEnv): boolean;
17
+ export declare function emitJson(data: unknown, output?: (line: string) => void): void;
@@ -0,0 +1 @@
1
+ const n={nonInteractive:!1,json:!1,yes:!1,dryRun:!1,color:!0};let t={...n};export function setRuntimeOptions(n){t={...t,...n}}export function getRuntimeOptions(){return{...t}}export function isJsonMode(){return t.json}export function isNonInteractive(){return t.nonInteractive||t.json}export function isDryRun(){return t.dryRun}export function shouldAutoConfirm(){return t.yes||t.nonInteractive||t.json}export function isColorEnabled(){return t.color}export function resetRuntimeOptions(){t={...n}}export function detectColorPreferenceFromEnv(n=process.env){return(!n.NO_COLOR||"0"===n.NO_COLOR)&&"0"!==n.FORCE_COLOR&&"false"!==n.FORCE_COLOR}export function emitJson(n,t=n=>process.stdout.write(n+"\n")){t(JSON.stringify(n,null,2))}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-options.js","sourceRoot":"","sources":["../../src/lib/runtime-options.ts"],"names":[],"mappings":"AAQA,MAAM,eAAe,GAAsB;IACvC,cAAc,EAAE,KAAK;IACrB,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;CACd,CAAC;AAEF,IAAI,cAAc,GAAsB,EAAE,GAAG,eAAe,EAAE,CAAC;AAE/D,MAAM,UAAU,iBAAiB,CAAC,OAAmC;IACjE,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,cAAc,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,OAAO,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,OAAO,cAAc,CAAC,MAAM,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,cAAc,CAAC,GAAG,IAAI,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,cAAc,CAAC,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,mBAAmB;IAC/B,cAAc,GAAG,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7E,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa,EAAE,SAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAChH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,29 @@
1
+ export declare class SecretStoreDecryptError extends Error {
2
+ readonly cause?: unknown | undefined;
3
+ constructor(message: string, cause?: unknown | undefined);
4
+ }
5
+ export declare class SecretStore {
6
+ private static instance;
7
+ private secretsDir;
8
+ private secretsPath;
9
+ private lastDecryptError;
10
+ private constructor();
11
+ static getInstance(): SecretStore;
12
+ private ensureDir;
13
+ private writeAtomic;
14
+ private readEnvelope;
15
+ private decrypt;
16
+ private encrypt;
17
+ private loadRecord;
18
+ private safeLoadRecord;
19
+ private persistRecord;
20
+ isAvailable(): boolean;
21
+ getLastDecryptError(): SecretStoreDecryptError | null;
22
+ fingerprint(profile: string): string;
23
+ getApiKey(profile: string): string | undefined;
24
+ setApiKey(profile: string, apiKey: string): void;
25
+ deleteApiKey(profile: string): void;
26
+ listProfilesWithKeys(): string[];
27
+ deleteAll(): void;
28
+ }
29
+ export declare const secretStore: SecretStore;
@@ -0,0 +1 @@
1
+ import{existsSync as e,mkdirSync as t,readFileSync as r,writeFileSync as s,renameSync as o,unlinkSync as c,chmodSync as i}from"fs";import{join as n,dirname as a}from"path";import{homedir as p,hostname as h,userInfo as l}from"os";import{createCipheriv as u,createDecipheriv as f,randomBytes as y,scryptSync as d,createHash as S}from"crypto";import{logger as g}from"../utils/logger.js";const m="aes-256-gcm";export class SecretStoreDecryptError extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="SecretStoreDecryptError"}}function E(e,t=32768){const r=`${l().username}:${h()}:chelper-secret-store`;return d(r,e,32,{N:t,maxmem:67108864})}export class SecretStore{static instance;secretsDir;secretsPath;lastDecryptError=null;constructor(){this.secretsDir=function(){const e=process.env.CHELPER_CONFIG_DIR;if(e&&e.trim())return e.trim();const t=process.env.CHELPER_TEST_HOME;return t&&t.trim()?n(t.trim(),".chelper"):n(p(),".chelper")}(),this.secretsPath=n(this.secretsDir,"secrets.enc")}static getInstance(){return SecretStore.instance||(SecretStore.instance=new SecretStore),SecretStore.instance}ensureDir(){const r=a(this.secretsPath);e(r)||t(r,{recursive:!0})}writeAtomic(t){const r=`${this.secretsPath}.tmp`;try{s(r,t,{encoding:"utf-8",mode:384}),o(r,this.secretsPath);try{i(this.secretsPath,384)}catch{}}catch(t){if(e(r))try{c(r)}catch{}throw t}}readEnvelope(){if(!e(this.secretsPath))return null;try{const e=r(this.secretsPath,"utf-8"),t=JSON.parse(e);return function(e){if(!e||"object"!=typeof e)return!1;const t=e;return(2===t.version||1===t.version)&&"string"==typeof t.iv&&"string"==typeof t.salt&&"string"==typeof t.auth_tag&&"string"==typeof t.cipher_text}(t)?t:null}catch(e){return g.logError("SecretStore.readEnvelope",e),null}}decrypt(e){const t=Buffer.from(e.salt,"base64"),r=Buffer.from(e.iv,"base64"),s=Buffer.from(e.auth_tag,"base64"),o=Buffer.from(e.cipher_text,"base64"),c=E(t,1===e.version?16384:32768),i=f(m,c,r);i.setAuthTag(s);try{const e=Buffer.concat([i.update(o),i.final()]);return JSON.parse(e.toString("utf-8"))}catch(e){throw new SecretStoreDecryptError("Failed to decrypt secret envelope (host or user identity may have changed)",e)}}encrypt(e){const t=y(16),r=y(12),s=E(t),o=u(m,s,r),c=Buffer.from(JSON.stringify(e),"utf-8"),i=Buffer.concat([o.update(c),o.final()]),n=o.getAuthTag();return{version:2,iv:r.toString("base64"),salt:t.toString("base64"),auth_tag:n.toString("base64"),cipher_text:i.toString("base64")}}loadRecord(){const e=this.readEnvelope();if(!e)return{};try{const t=this.decrypt(e);if(1===e.version&&t.api_keys&&Object.keys(t.api_keys).length>0)try{this.persistRecord(t)}catch(e){g.logError("SecretStore.upgradeEnvelope",e)}return t}catch(e){throw e instanceof SecretStoreDecryptError&&(this.lastDecryptError=e,g.warn("SecretStore decrypt failed - identity drift suspected; refusing to drop existing envelope")),g.logError("SecretStore.loadRecord",e),e}}safeLoadRecord(){try{return this.loadRecord()}catch{return{}}}persistRecord(e){this.ensureDir();const t=this.encrypt(e);this.writeAtomic(JSON.stringify(t,null,2))}isAvailable(){return!0}getLastDecryptError(){return this.lastDecryptError}fingerprint(e){const t=this.getApiKey(e);return t?S("sha256").update(t).digest("hex").slice(0,12):""}getApiKey(e){const t=this.safeLoadRecord();return t.api_keys?.[e]}setApiKey(t,r){const s=this.safeLoadRecord();if(this.lastDecryptError&&e(this.secretsPath))throw new SecretStoreDecryptError("Refusing to overwrite an undecryptable secrets envelope; remove it explicitly via deleteAll() or delete ~/.chelper/secrets.enc to proceed",this.lastDecryptError);s.api_keys={...s.api_keys||{},[t]:r},this.persistRecord(s),this.lastDecryptError=null}deleteApiKey(t){const r=this.safeLoadRecord();if(this.lastDecryptError&&e(this.secretsPath))throw new SecretStoreDecryptError("Refusing to mutate an undecryptable secrets envelope; remove it explicitly via deleteAll() or delete ~/.chelper/secrets.enc to proceed",this.lastDecryptError);if(!r.api_keys||!(t in r.api_keys))return;const{[t]:s,...o}=r.api_keys;r.api_keys=o,this.persistRecord(r)}listProfilesWithKeys(){const e=this.safeLoadRecord();return Object.keys(e.api_keys||{}).sort()}deleteAll(){if(e(this.secretsPath))try{c(this.secretsPath)}catch(e){g.logError("SecretStore.deleteAll",e)}}}export const secretStore=SecretStore.getInstance();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-store.js","sourceRoot":"","sources":["../../src/lib/secret-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{execSync as o}from"child_process";import{existsSync as n,readFileSync as t,writeFileSync as l,mkdirSync as e}from"fs";import{join as i,dirname as s}from"path";import{homedir as a}from"os";import{claudeCodeManager as r}from"./claude-code-manager.js";import{openCodeManager as c}from"./opencode-manager.js";import{i18n as d}from"./i18n.js";import g from"inquirer";import m from"chalk";import p from"terminal-link";import u from"ora";import{logger as f}from"../utils/logger.js";export const SUPPORTED_TOOLS={"claude-code":{name:"claude-code",command:"claude",installCommand:"npm install -g @anthropic-ai/claude-code",configPath:i(a(),".claude","settings.json"),displayName:"Claude Code"},opencode:{name:"opencode",command:"opencode",installCommand:"npm install -g opencode-ai",configPath:i(a(),".config","opencode","opencode.json"),displayName:"OpenCode"}};export class ToolManager{static instance;constructor(){}static getInstance(){return ToolManager.instance||(ToolManager.instance=new ToolManager),ToolManager.instance}isToolInstalled(n){const t=SUPPORTED_TOOLS[n];if(!t)return!1;try{const n="win32"===process.platform?`where ${t.command}`:`which ${t.command}`;return o(n,{stdio:"pipe"}),!0}catch{return!1}}async installTool(n){const t=SUPPORTED_TOOLS[n];if(!t)throw new Error(`Unknown tool: ${n}`);const l=u(d.t("wizard.installing_tool")).start();try{l.info(m.gray("$ ")+m.white(t.installCommand)),l.stop(),o(t.installCommand,{stdio:"inherit"}),l.succeed(d.t("wizard.tool_installed"))}catch(e){l.fail(d.t("wizard.install_failed"));const i=(e.message||"")+(e.stderr?.toString()||"")+(e.stdout?.toString()||"");if(!(i.includes("EACCES")||i.includes("permission denied")||i.includes("EPERM")||243===e.status))throw new Error(`Failed to install ${t.displayName}: ${e}`);if(console.log("\n⚠️ "+d.t("install.permission_detected")+"\n"),"win32"===process.platform)try{const n=t.installCommand.replace("npm install -g","npm install -g --force");return console.log("🔧 "+d.t("install.trying_solution",{num:"1",desc:d.t("install.using_force")})),console.log(m.gray("$ ")+m.white(n)),o(n,{stdio:"inherit"}),void console.log("\n✅ "+d.t("install.permission_fixed"))}catch(o){console.log(`Retry install error ${o}`),console.log("\n❌ "+d.t("install.auto_fix_failed")),console.log(m.yellow("\n📌 "+d.t("install.windows_solutions"))),console.log(""),console.log(m.cyan.bold(d.t("install.windows_solution_1_title"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step1"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step2"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step3"))),console.log(m.white(` ${t.installCommand}`)),console.log(""),console.log(m.cyan.bold(d.t("install.windows_solution_2_title"))),console.log(m.gray(" "+d.t("install.windows_solution_2_command"))),console.log(m.white(` ${t.installCommand.replace("npm install -g","npm install -g --prefix=%APPDATA%\\npm")}`)),console.log("");const{action:l}=await g.prompt([{type:"list",name:"action",message:d.t("install.what_next"),choices:[{name:d.t("install.installed_continue"),value:"continue"},{name:d.t("install.cancel_install"),value:"cancel"}]}]);if("cancel"===l)throw new Error(d.t("install.user_cancelled"));if(!this.isToolInstalled(n))throw console.log(m.red("\n❌ "+d.t("install.still_not_installed",{tool:t.displayName}))),new Error(`${t.displayName} is not installed`);return void console.log(m.green("\n✅ "+d.t("install.verified_success",{tool:t.displayName})))}console.log(m.yellow("\n📌 "+d.t("install.unix_solutions"))),console.log(""),console.log(m.cyan.bold(d.t("install.unix_solution_1_title"))),console.log(m.gray(" "+d.t("install.unix_solution_1_desc"))),console.log(m.white(` sudo ${t.installCommand}`)),console.log("");const s="https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally",a=p(s,s,{fallback:()=>s});console.log(m.cyan.bold(d.t("install.unix_solution_2_title"))),console.log(m.gray(" "+d.t("install.unix_solution_2_desc"))),console.log(m.blue(" 📖 "+d.t("install.npm_docs_link")+": ")+a),console.log("");const{action:r}=await g.prompt([{type:"list",name:"action",message:d.t("install.what_next"),choices:[{name:d.t("install.installed_continue"),value:"continue"},{name:d.t("install.cancel_install"),value:"cancel"}]}]);if("cancel"===r)throw new Error(d.t("install.user_cancelled"));if(!this.isToolInstalled(n))throw console.log(m.red("\n❌ "+d.t("install.still_not_installed",{tool:t.displayName}))),new Error(`${t.displayName} is not installed`);console.log(m.green("\n✅ "+d.t("install.verified_success",{tool:t.displayName})))}}getToolConfig(o){const l=SUPPORTED_TOOLS[o];if(!l)throw new Error(`Unknown tool: ${o}`);if("claude-code"===o)return{settings:r.getSettings(),mcp:r.getMCPConfig()};if("opencode"===o)return c.getConfig();try{if(n(l.configPath)){const o=t(l.configPath,"utf-8");return JSON.parse(o)}}catch(n){console.warn(`Failed to read config for ${o}:`,n),f.logError(`ToolManager.getToolConfig(${o})`,n)}return null}updateToolConfig(o,t){const i=SUPPORTED_TOOLS[o];if(!i)throw new Error(`Unknown tool: ${o}`);if("claude-code"===o)return t.settings&&r.saveSettings(t.settings),void(t.mcp&&r.saveMCPConfig(t.mcp));if("opencode"!==o)try{const o=s(i.configPath);n(o)||e(o,{recursive:!0}),l(i.configPath,JSON.stringify(t,null,2),"utf-8")}catch(n){throw new Error(`Failed to update config for ${o}: ${n}`)}else c.saveConfig(t)}loadPrivateConfig(o,n,t){if(!SUPPORTED_TOOLS[o])throw new Error(`Unknown tool: ${o}`);if("claude-code"!==o){if("opencode"!==o)throw new Error(`Tool ${o} does not support private config`);c.loadPrivateConfig(n,t)}else r.loadPrivateConfig(n,t)}getInstalledTools(){return Object.keys(SUPPORTED_TOOLS).filter(o=>this.isToolInstalled(o))}unloadPrivateConfig(o){if(!SUPPORTED_TOOLS[o])throw new Error(`Unknown tool: ${o}`);if("claude-code"!==o){if("opencode"!==o)throw new Error(`Tool ${o} does not support private config`);c.unloadPrivateConfig()}else r.unloadPrivateConfig()}getSupportedTools(){return Object.values(SUPPORTED_TOOLS).filter(o=>!o.hidden)}isGitInstalled(){try{const n="win32"===process.platform?"where git":"which git";return o(n,{stdio:"pipe"}),!0}catch{return!1}}}export const toolManager=ToolManager.getInstance();
1
+ import{execSync as o}from"child_process";import{existsSync as n,readFileSync as t,writeFileSync as l,mkdirSync as e}from"fs";import{join as i,dirname as s}from"path";import{homedir as a}from"os";import{claudeCodeManager as r}from"./claude-code-manager.js";import{openCodeManager as c}from"./opencode-manager.js";import{i18n as d}from"./i18n.js";import g from"inquirer";import m from"chalk";import p from"terminal-link";import u from"ora";import{logger as f}from"../utils/logger.js";export const SUPPORTED_TOOLS={"claude-code":{name:"claude-code",command:"claude",installCommand:"npm install -g @anthropic-ai/claude-code",configPath:i(a(),".claude","settings.json"),displayName:"Claude Code"},opencode:{name:"opencode",command:"opencode",installCommand:"npm install -g opencode-ai",configPath:i(a(),".config","opencode","opencode.json"),displayName:"OpenCode"}};export class ToolManager{static instance;constructor(){}static getInstance(){return ToolManager.instance||(ToolManager.instance=new ToolManager),ToolManager.instance}isToolInstalled(n){const t=SUPPORTED_TOOLS[n];if(!t)return!1;try{const n="win32"===process.platform?`where ${t.command}`:`which ${t.command}`;return o(n,{stdio:"pipe"}),!0}catch{return!1}}async installTool(n){const t=SUPPORTED_TOOLS[n];if(!t)throw new Error(`Unknown tool: ${n}`);const l=u(d.t("wizard.installing_tool")).start();try{l.info(m.gray("$ ")+m.white(t.installCommand)),l.stop(),o(t.installCommand,{stdio:"inherit"}),l.succeed(d.t("wizard.tool_installed"))}catch(e){l.fail(d.t("wizard.install_failed"));const i=(e.message||"")+(e.stderr?.toString()||"")+(e.stdout?.toString()||"");if(!(i.includes("EACCES")||i.includes("permission denied")||i.includes("EPERM")||243===e.status))throw new Error(`Failed to install ${t.displayName}: ${e}`);if(console.log("\n⚠️ "+d.t("install.permission_detected")+"\n"),"win32"===process.platform)try{const n=t.installCommand.replace("npm install -g","npm install -g --force");return console.log("🔧 "+d.t("install.trying_solution",{num:"1",desc:d.t("install.using_force")})),console.log(m.gray("$ ")+m.white(n)),o(n,{stdio:"inherit"}),void console.log("\n✅ "+d.t("install.permission_fixed"))}catch(o){f.warn("Retry install failed:",o),console.log("\n❌ "+d.t("install.auto_fix_failed")),console.log(m.yellow("\n📌 "+d.t("install.windows_solutions"))),console.log(""),console.log(m.cyan.bold(d.t("install.windows_solution_1_title"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step1"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step2"))),console.log(m.gray(" "+d.t("install.windows_solution_1_step3"))),console.log(m.white(` ${t.installCommand}`)),console.log(""),console.log(m.cyan.bold(d.t("install.windows_solution_2_title"))),console.log(m.gray(" "+d.t("install.windows_solution_2_command"))),console.log(m.white(` ${t.installCommand.replace("npm install -g","npm install -g --prefix=%APPDATA%\\npm")}`)),console.log("");const{action:l}=await g.prompt([{type:"list",name:"action",message:d.t("install.what_next"),choices:[{name:d.t("install.installed_continue"),value:"continue"},{name:d.t("install.cancel_install"),value:"cancel"}]}]);if("cancel"===l)throw new Error(d.t("install.user_cancelled"));if(!this.isToolInstalled(n))throw console.log(m.red("\n❌ "+d.t("install.still_not_installed",{tool:t.displayName}))),new Error(`${t.displayName} is not installed`);return void console.log(m.green("\n✅ "+d.t("install.verified_success",{tool:t.displayName})))}console.log(m.yellow("\n📌 "+d.t("install.unix_solutions"))),console.log(""),console.log(m.cyan.bold(d.t("install.unix_solution_1_title"))),console.log(m.gray(" "+d.t("install.unix_solution_1_desc"))),console.log(m.white(` sudo ${t.installCommand}`)),console.log("");const s="https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally",a=p(s,s,{fallback:()=>s});console.log(m.cyan.bold(d.t("install.unix_solution_2_title"))),console.log(m.gray(" "+d.t("install.unix_solution_2_desc"))),console.log(m.blue(" 📖 "+d.t("install.npm_docs_link")+": ")+a),console.log("");const{action:r}=await g.prompt([{type:"list",name:"action",message:d.t("install.what_next"),choices:[{name:d.t("install.installed_continue"),value:"continue"},{name:d.t("install.cancel_install"),value:"cancel"}]}]);if("cancel"===r)throw new Error(d.t("install.user_cancelled"));if(!this.isToolInstalled(n))throw console.log(m.red("\n❌ "+d.t("install.still_not_installed",{tool:t.displayName}))),new Error(`${t.displayName} is not installed`);console.log(m.green("\n✅ "+d.t("install.verified_success",{tool:t.displayName})))}}getToolConfig(o){const l=SUPPORTED_TOOLS[o];if(!l)throw new Error(`Unknown tool: ${o}`);if("claude-code"===o)return{settings:r.getSettings(),mcp:r.getMCPConfig()};if("opencode"===o)return c.getConfig();try{if(n(l.configPath)){const o=t(l.configPath,"utf-8");return JSON.parse(o)}}catch(n){f.warn(`Failed to read config for ${o}:`,n),f.logError(`ToolManager.getToolConfig(${o})`,n)}return null}updateToolConfig(o,t){const i=SUPPORTED_TOOLS[o];if(!i)throw new Error(`Unknown tool: ${o}`);if("claude-code"===o)return t.settings&&r.saveSettings(t.settings),void(t.mcp&&r.saveMCPConfig(t.mcp));if("opencode"!==o)try{const o=s(i.configPath);n(o)||e(o,{recursive:!0}),l(i.configPath,JSON.stringify(t,null,2),"utf-8")}catch(n){throw new Error(`Failed to update config for ${o}: ${n}`)}else c.saveConfig(t)}loadPrivateConfig(o,n,t){if(!SUPPORTED_TOOLS[o])throw new Error(`Unknown tool: ${o}`);if("claude-code"!==o){if("opencode"!==o)throw new Error(`Tool ${o} does not support private config`);c.loadPrivateConfig(n,t)}else r.loadPrivateConfig(n,t)}getInstalledTools(){return Object.keys(SUPPORTED_TOOLS).filter(o=>this.isToolInstalled(o))}unloadPrivateConfig(o){if(!SUPPORTED_TOOLS[o])throw new Error(`Unknown tool: ${o}`);if("claude-code"!==o){if("opencode"!==o)throw new Error(`Tool ${o} does not support private config`);c.unloadPrivateConfig()}else r.unloadPrivateConfig()}getSupportedTools(){return Object.values(SUPPORTED_TOOLS).filter(o=>!o.hidden)}isGitInstalled(){try{const n="win32"===process.platform?"where git":"which git";return o(n,{stdio:"pipe"}),!0}catch{return!1}}}export const toolManager=ToolManager.getInstance();