@vibeapi/api-helper 0.0.26 → 0.0.29

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 (72) hide show
  1. package/README.md +24 -17
  2. package/dist/__tests__/claude-code-manager.test.js +1 -1
  3. package/dist/__tests__/claude-code-manager.test.js.map +1 -1
  4. package/dist/__tests__/command.test.js +1 -1
  5. package/dist/__tests__/command.test.js.map +1 -1
  6. package/dist/__tests__/commands.test.js +1 -1
  7. package/dist/__tests__/config-profiles.test.js +1 -1
  8. package/dist/__tests__/config.test.js +1 -1
  9. package/dist/__tests__/config.test.js.map +1 -1
  10. package/dist/__tests__/env-cleanup.test.d.ts +1 -0
  11. package/dist/__tests__/env-cleanup.test.js +1 -0
  12. package/dist/__tests__/env-cleanup.test.js.map +1 -0
  13. package/dist/__tests__/extra-commands.test.js +1 -1
  14. package/dist/__tests__/i18n.test.js +1 -1
  15. package/dist/__tests__/i18n.test.js.map +1 -1
  16. package/dist/__tests__/model-registry.test.js +1 -1
  17. package/dist/__tests__/model-registry.test.js.map +1 -1
  18. package/dist/__tests__/opencode-manager.test.js +1 -1
  19. package/dist/__tests__/runtime-options.test.js +1 -1
  20. package/dist/__tests__/secret-store.test.js +1 -1
  21. package/dist/__tests__/secret-store.test.js.map +1 -1
  22. package/dist/__tests__/setup-command.test.d.ts +1 -0
  23. package/dist/__tests__/setup-command.test.js +1 -0
  24. package/dist/__tests__/setup-command.test.js.map +1 -0
  25. package/dist/__tests__/tool-adapters.test.js +1 -1
  26. package/dist/__tests__/tool-adapters.test.js.map +1 -1
  27. package/dist/__tests__/tool-manager.test.js +1 -1
  28. package/dist/__tests__/tool-manager.test.js.map +1 -1
  29. package/dist/commands/auth.js +1 -1
  30. package/dist/commands/auth.js.map +1 -1
  31. package/dist/commands/completion.js +1 -1
  32. package/dist/commands/completion.js.map +1 -1
  33. package/dist/commands/config.js +1 -1
  34. package/dist/commands/config.js.map +1 -1
  35. package/dist/commands/setup.d.ts +20 -0
  36. package/dist/commands/setup.js +1 -0
  37. package/dist/commands/setup.js.map +1 -0
  38. package/dist/commands/status.js +1 -1
  39. package/dist/commands/status.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/lib/claude-code-manager.d.ts +0 -8
  42. package/dist/lib/claude-code-manager.js +1 -1
  43. package/dist/lib/claude-code-manager.js.map +1 -1
  44. package/dist/lib/command.d.ts +5 -0
  45. package/dist/lib/command.js +1 -1
  46. package/dist/lib/command.js.map +1 -1
  47. package/dist/lib/config.d.ts +36 -19
  48. package/dist/lib/config.js +1 -1
  49. package/dist/lib/config.js.map +1 -1
  50. package/dist/lib/env-cleanup.d.ts +23 -0
  51. package/dist/lib/env-cleanup.js +1 -0
  52. package/dist/lib/env-cleanup.js.map +1 -0
  53. package/dist/lib/i18n.d.ts +6 -0
  54. package/dist/lib/i18n.js +1 -1
  55. package/dist/lib/i18n.js.map +1 -1
  56. package/dist/lib/secret-store.d.ts +8 -0
  57. package/dist/lib/secret-store.js +1 -1
  58. package/dist/lib/secret-store.js.map +1 -1
  59. package/dist/lib/tool-manager.d.ts +2 -2
  60. package/dist/lib/tools/opencode.js +1 -1
  61. package/dist/lib/tools/opencode.js.map +1 -1
  62. package/dist/lib/tools/types.d.ts +5 -5
  63. package/dist/lib/tools/types.js +1 -1
  64. package/dist/lib/wizard.d.ts +5 -0
  65. package/dist/lib/wizard.js +1 -1
  66. package/dist/lib/wizard.js.map +1 -1
  67. package/dist/locales/en_US.json +42 -22
  68. package/dist/locales/zh_CN.json +42 -21
  69. package/dist/models.json +2 -2
  70. package/dist/utils/logger.js +1 -1
  71. package/models.json +2 -2
  72. package/package.json +3 -3
@@ -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,11 @@ export declare class Command {
5
5
  private getVersion;
6
6
  private setupProgram;
7
7
  private handleInitCommand;
8
+ /**
9
+ * 启动即检测 shell 环境里泄漏的 ANTHROPIC_BASE_URL / ANTHROPIC_API_KEY 并清除,
10
+ * 否则它们会覆盖 vibecli 写进各工具配置文件的凭据。
11
+ */
12
+ private cleanupLeakedEnvVars;
8
13
  private preflightArgs;
9
14
  execute(args: string[]): Promise<void>;
10
15
  getProgram(): Commander;
@@ -1 +1 @@
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
+ import{Command as a}from"commander";import{i18n as e,detectSystemLang as o}from"./i18n.js";import{configManager as t}from"./config.js";import{wizard as i}from"./wizard.js";import{langCommand as n,authCommand as s,doctorCommand as r,configCommand as c,statusCommand as m}from"../commands/index.js";import{logsCommand as p}from"../commands/logs.js";import{completionCommand as l}from"../commands/completion.js";import{benchCommand as d}from"../commands/bench.js";import{updateCommand as g}from"../commands/update.js";import{setupCommand as u}from"../commands/setup.js";import h from"chalk";import{readFileSync as y}from"fs";import{join as f,dirname as b}from"path";import{fileURLToPath as v}from"url";import{setRuntimeOptions as w,detectColorPreferenceFromEnv as k,isColorEnabled as $,isJsonMode as j}from"./runtime-options.js";import{cleanupAnthropicEnvVars as C}from"./env-cleanup.js";export class Command{program;constructor(){const i=t.isFirstRun()?o():t.getLang();e.loadFromConfig(i),this.program=new a,this.setupProgram()}getVersion(){try{const a=v(import.meta.url),e=b(a),o=f(e,"../../package.json");return JSON.parse(y(o,"utf-8")).version}catch{return"1.0.0"}}setupProgram(){this.program.name("vibecli").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").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("setup").description(e.t("commands.setup")).option("--key <key>","API key for all capable tools (capability auto-detected)").option("--claudekey <key>","Dedicated API key for Claude Code").option("--codexkey <key>","Dedicated API key for Codex").option("--all","Configure every tool the key can serve (default behavior)").action(async a=>{await u(a)}),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 o=this.program.command("auth").description(e.t("commands.auth"));o.argument("[token]","API token").action(async a=>{const e=[];a&&e.push(a),await s(e)}),o.command("revoke").description("Revoke saved API key").action(async()=>{await s(["revoke"])}),o.command("reload <tool>").description("Reload plan configuration to the specified tool (e.g., claude)").action(async a=>{await s(["reload",a])}),this.program.command("doctor").description(e.t("commands.doctor")).action(async()=>{await r()}),this.program.command("status").description(e.t("commands.status")).action(async()=>{await m()}),this.program.command("logs").description("Inspect vibecli log files").argument("[action]","list|tail|path").argument("[file]","specific log file when using tail").action(async(a,e)=>{const o=[];a&&o.push(a),e&&o.push(e),await p(o)}),this.program.command("completion <shell>").description("Print shell completion script (bash|zsh|fish)").action(async a=>{await l([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 e=[];a.samples&&e.push("--samples",a.samples),await d(e)}),this.program.command("config").description("Manage profiles, presets, backups, and per-tool config").argument("[args...]","Subcommand and arguments").allowUnknownOption(!0).action(async a=>{await c(a||[])}),this.program.command("enter [option]").description(e.t("commands.enter")).action(async a=>{if(a)switch(a){case"lang":case"language":await i.configLanguage();break;case"apikey":case"api-key":await i.configApiKey();break;case"models":await i.configModels();break;default:{const e=[a];await c(e);break}}else await i.showMainMenu()}),this.program.action(async()=>{t.isFirstRun()?(console.log(h.cyan(e.t("messages.first_run"))),await i.runFirstTimeSetup()):await i.showMainMenu()}),this.program.configureHelp({sortSubcommands:!0,subcommandTerm:a=>a.name()+" "+a.usage()}),this.program.addHelpText("after",`\n${h.bold(e.t("cli.examples"))}:\n ${h.gray("$ vibecli # Interactive main menu")}\n ${h.gray("$ vibecli init # Run first-time setup wizard")}\n ${h.gray("$ vibecli setup --key sk-xxx # One-shot setup (auto-detect capable tools)")}\n ${h.gray("$ vibecli setup --claudekey sk-a --codexkey sk-b")}\n ${h.gray("$ vibecli status --json # Machine-readable status")}\n ${h.gray("$ vibecli config profile list")}\n ${h.gray("$ vibecli config profile create work")}\n ${h.gray("$ vibecli config profile use work")}\n ${h.gray("$ vibecli config preset save fast")}\n ${h.gray("$ vibecli config backup create snapshot")}\n ${h.gray("$ vibecli auth <token> --non-interactive")}\n ${h.gray("$ vibecli auth revoke --yes")}\n ${h.gray("$ vibecli logs path")}\n ${h.gray("$ vibecli completion bash")}\n ${h.gray("$ vibecli bench --samples 3")}\n ${h.gray("$ vibecli update")}\n ${h.gray('$ vibecli --base "https://custom.api.com" init # Custom base URL')}\n`)}async handleInitCommand(){await i.runFirstTimeSetup()}cleanupLeakedEnvVars(){const a=C();if(0===a.length||j())return;const o=e.t("messages.env_vars_cleared",{vars:a.join(", ")});console.log($()?h.yellow(o):o)}preflightArgs(a){const e=e=>a.includes(e),o=!e("--no-color")&&k();let i;w({nonInteractive:e("--non-interactive"),json:e("--json"),yes:e("--yes")||e("-y"),dryRun:e("--dry-run"),color:o}),o||(h.level=0);for(let e=0;e<a.length;e+=1){const o=a[e];if("--base"===o&&a[e+1]){i=a[e+1];break}if(o.startsWith("--base=")){i=o.slice(7);break}}i&&t.setBaseUrl(i)}async execute(a){try{this.preflightArgs(a),this.cleanupLeakedEnvVars(),await this.program.parseAsync(a,{from:"user"})}catch(a){if(a instanceof Error){const o=$()?h.red:a=>a;console.error(o(e.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,7 +1,7 @@
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
3
  export declare const DEFAULT_PROFILE_NAME = "default";
4
- export interface ChelperModels {
4
+ export interface VibecliModels {
5
5
  haiku: string;
6
6
  sonnet: string;
7
7
  opus: string;
@@ -9,15 +9,15 @@ export interface ChelperModels {
9
9
  /** Additional custom slots (e.g. a "vision" or "fast" slot) are preserved as-is. */
10
10
  [slot: string]: string;
11
11
  }
12
- export interface ChelperProfile {
12
+ export interface VibecliProfile {
13
13
  api_key?: string;
14
14
  base_url?: string;
15
- models?: ChelperModels;
15
+ models?: VibecliModels;
16
16
  /** Per-tool model overrides, merged over `models` when configuring that tool. */
17
- tool_models?: Record<string, Partial<ChelperModels>>;
17
+ tool_models?: Record<string, Partial<VibecliModels>>;
18
18
  }
19
- export interface ChelperPreset {
20
- models: ChelperModels;
19
+ export interface VibecliPreset {
20
+ models: VibecliModels;
21
21
  updated_at: string;
22
22
  }
23
23
  export interface ConfigBackupInfo {
@@ -25,14 +25,14 @@ export interface ConfigBackupInfo {
25
25
  path: string;
26
26
  mtimeMs: number;
27
27
  }
28
- export interface ChelperConfig {
28
+ export interface VibecliConfig {
29
29
  lang: string;
30
30
  active_profile?: string;
31
- profiles?: Record<string, ChelperProfile>;
32
- presets?: Record<string, ChelperPreset>;
31
+ profiles?: Record<string, VibecliProfile>;
32
+ presets?: Record<string, VibecliPreset>;
33
33
  api_key?: string;
34
34
  base_url?: string;
35
- models?: ChelperModels;
35
+ models?: VibecliModels;
36
36
  }
37
37
  export declare class ConfigManager {
38
38
  private static instance;
@@ -41,6 +41,14 @@ export declare class ConfigManager {
41
41
  private config;
42
42
  private runtimeBaseUrl?;
43
43
  private constructor();
44
+ /**
45
+ * CLI 由 chelper 更名为 vibecli:老用户的数据目录 ~/.chelper(config.yaml、
46
+ * secrets.enc、备份)整体迁移为 ~/.vibecli。
47
+ * 注意:logger 等模块可能在本构造器之前就把新目录建成空壳(写日志时
48
+ * mkdir),所以不能只看目录存不存在——以「新目录是否已有真实配置」为准;
49
+ * 新目录是空壳时逐项搬运。失败不阻塞启动(下次启动会重试)。
50
+ */
51
+ private migrateLegacyConfigDir;
44
52
  private resolveConfigDir;
45
53
  private createDefaultConfig;
46
54
  private normalizeModels;
@@ -65,36 +73,45 @@ export declare class ConfigManager {
65
73
  private atomicWrite;
66
74
  private backupConfig;
67
75
  private rotateBackups;
68
- saveConfig(config?: ChelperConfig): void;
76
+ saveConfig(config?: VibecliConfig): void;
69
77
  private extractSecretsForPersistence;
70
78
  private hydrateSecretsFromStore;
71
- getConfig(): ChelperConfig;
72
- updateConfig(updates: Partial<ChelperConfig>): void;
79
+ getConfig(): VibecliConfig;
80
+ updateConfig(updates: Partial<VibecliConfig>): void;
73
81
  isFirstRun(): boolean;
74
82
  getLang(): string;
75
83
  setLang(lang: string): void;
76
84
  getActiveProfileName(): string;
77
85
  listProfiles(): string[];
78
- getProfile(name?: string): ChelperProfile;
86
+ getProfile(name?: string): VibecliProfile;
79
87
  createProfile(name: string, sourceProfileName?: string): void;
80
88
  setActiveProfile(name: string): void;
81
- updateProfile(name: string, updates: Partial<ChelperProfile>): void;
89
+ updateProfile(name: string, updates: Partial<VibecliProfile>): void;
82
90
  deleteProfile(name: string): void;
83
91
  getApiKey(): string | undefined;
84
92
  setApiKey(apiKey: string): void;
85
93
  revokeApiKey(): void;
86
94
  getApiKeyFingerprint(): string;
95
+ /**
96
+ * 工具实际使用的 Key:工具专属 Key(如 Codex 用 GPT 分组令牌)优先,
97
+ * 没有则回退当前 profile 的默认 Key。
98
+ */
99
+ getApiKeyForTool(toolName: string): string | undefined;
100
+ setToolApiKey(toolName: string, apiKey: string): void;
101
+ clearToolApiKey(toolName: string): void;
102
+ listToolApiKeys(): string[];
103
+ getToolApiKeyFingerprint(toolName: string): string;
87
104
  getModels(): typeof DEFAULT_MODELS;
88
105
  setModels(models: typeof DEFAULT_MODELS): void;
89
- updateModels(partial: Partial<ChelperModels>): void;
106
+ updateModels(partial: Partial<VibecliModels>): void;
90
107
  /**
91
108
  * Resolve the effective models for a specific tool: the profile's base models
92
109
  * with any per-tool override merged on top.
93
110
  */
94
- getModelsForTool(toolName: string): ChelperModels;
111
+ getModelsForTool(toolName: string): VibecliModels;
95
112
  /** Set (or clear) a per-tool model override on the active profile. */
96
- setToolModel(toolName: string, override: Partial<ChelperModels> | null): void;
97
- getCustomPresets(): Record<string, ChelperPreset>;
113
+ setToolModel(toolName: string, override: Partial<VibecliModels> | null): void;
114
+ getCustomPresets(): Record<string, VibecliPreset>;
98
115
  saveCustomPreset(name: string, models: typeof DEFAULT_MODELS): void;
99
116
  deleteCustomPreset(name: string): void;
100
117
  listBackups(): ConfigBackupInfo[];
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as t,readFileSync as i,writeFileSync as s,renameSync as o,unlinkSync as r,readdirSync as n,statSync as a,copyFileSync as c}from"fs";import{join as l}from"path";import{homedir as f}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 m}from"./secret-store.js";import{i18n as u}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=l(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()?l(t.trim(),".chelper"):l(f(),".chelper")}createDefaultConfig(){return this.syncLegacyFields({lang:"en_US",active_profile:"default",profiles:{[DEFAULT_PROFILE_NAME]:{}},presets:{}})}normalizeModels(e){const t={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};if(e&&"object"==typeof e)for(const[i,s]of Object.entries(e))i in t||"string"==typeof s&&s.trim()&&(t[i]=s.trim());return t}normalizeToolModels(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={};for(const[e,s]of Object.entries(t))"string"==typeof s&&s.trim()&&(i[e]=s.trim());return Object.keys(i).length>0?[[e,i]]:[]});return Object.fromEntries(t)}normalizeProfile(e){if(!e)return{};const t=this.normalizeToolModels(e.tool_models);return{..."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)}:{},...Object.keys(t).length>0?{tool_models:t}:{}}}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]:{}},o=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:o.api_key,base_url:o.base_url,models:o.models?this.normalizeModels(o.models):DEFAULT_MODELS}}sanitizeBackupLabel(e){return(e||"").trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)}getBackupDir(){return l(this.configDir,"backups")}getSecretsPath(){return l(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"}),o=this.hydrateSecretsFromStore(s);return(this.needsMigration(t)||this.hasInlineSecrets(t))&&(this.backupConfig(),this.atomicWrite(this.configPath,g.dump(this.extractSecretsForPersistence(o)))),o}}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,o=this.normalizeProfiles(s.profiles),r=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(o).length>0?o:{[DEFAULT_PROFILE_NAME]:r},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"),o(n,t)}catch(t){if(e(n))try{r(n)}catch{}throw t}}backupConfig(){if(!e(this.configPath))return;const o=this.getBackupDir();e(o)||t(o,{recursive:!0});const r=(new Date).toISOString().replace(/[:.]/g,"-"),n=l(o,`config-${r}.yaml`);try{const e=i(this.configPath,"utf-8");s(n,e,"utf-8"),this.snapshotSecrets(n),this.rotateBackups(o,10,30)}catch(e){h.logError("ConfigManager.backupConfig",e)}}rotateBackups(t,i,s){try{const o=Date.now()-24*s*60*60*1e3,c=n(t).filter(e=>e.startsWith("config-")&&e.endsWith(".yaml")).map(e=>({name:e,path:l(t,e),mtime:a(l(t,e)).mtime})).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()),f=new Set;c.slice(i).forEach(e=>f.add(e.path)),c.forEach(e=>{e.mtime.getTime()<o&&f.add(e.path)});for(const t of f){let i=!1;try{r(t),i=!0}catch(e){h.logError("ConfigManager.rotateBackups",e)}if(i){const i=this.getSecretsBackupPath(t);if(e(i))try{r(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&&(m.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=m.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,...t.tool_models&&Object.keys(t.tool_models).length>0?{tool_models:this.normalizeToolModels(t.tool_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,o={...i,...void 0!==t.api_key?{api_key:t.api_key}:{},...void 0!==t.base_url?{base_url:t.base_url}:{},...s?{models:s}:{}},r={...this.config.profiles||{},[e]:o};this.saveConfig({...this.config,profiles:r})}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{m.deleteApiKey(this.getActiveProfileName())}catch(e){h.logError("ConfigManager.revokeApiKey",e);try{m.deleteAll()}catch(e){h.logError("ConfigManager.revokeApiKey.deleteAll",e)}}this.saveConfig({...this.config,profiles:s})}getApiKeyFingerprint(){try{return m.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){this.setModels(this.normalizeModels({...this.getModels(),...e}))}getModelsForTool(e){const t=this.getModels(),i=this.config.profiles?.[this.getActiveProfileName()]?.tool_models?.[e];return i?this.normalizeModels({...t,...i}):t}setToolModel(e,t){const i=this.getActiveProfileName(),s=this.config.profiles?.[i]||{},o={...s.tool_models||{}};t&&0!==Object.keys(t).length?o[e]=t:delete o[e];const r={...s};Object.keys(o).length>0?r.tool_models=o:delete r.tool_models;const n={...this.config.profiles||{},[i]:r};this.saveConfig({...this.config,profiles:n})}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=l(t,e);return{name:e,path:i,mtimeMs:a(i).mtimeMs}}).sort((e,t)=>t.mtimeMs-e.mtimeMs):[]}createBackup(o){this.ensureConfigDir();const r=this.getBackupDir();e(r)||t(r,{recursive:!0});const n=(new Date).toISOString().replace(/[:.]/g,"-"),a=this.sanitizeBackupLabel(o),c=l(r,a?`config-${n}-${a}.yaml`:`config-${n}.yaml`),f=e(this.configPath)?i(this.configPath,"utf-8"):g.dump(this.getConfig());return s(c,f,"utf-8"),this.snapshotSecrets(c),this.rotateBackups(r,10,30),c}restoreBackup(t){if(!t||"."===t||".."===t||/[/\\]|\.\./.test(t))throw new Error(`Invalid backup name: ${t}`);const s=this.getBackupDir(),o=l(s,t);if(!e(o))throw new Error(`Backup not found: ${t}`);const r=i(o,"utf-8"),n=g.load(r),a=this.getSecretsBackupPath(o),c=e(a),f=this.hasInlineSecrets(n);if(!c&&!f)throw new Error(u.t("config.backup_companion_missing",{path:a}));c&&this.restoreSecretsSnapshot(o);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
+ import{existsSync as e,mkdirSync as t,readFileSync as i,writeFileSync as o,renameSync as r,unlinkSync as s,readdirSync as n,rmdirSync as a,statSync as c,copyFileSync as l}from"fs";import{join as f,dirname as g}from"path";import{homedir as h}from"os";import*as p from"js-yaml";import{logger as m}from"../utils/logger.js";import{getDefaultModels as u}from"./model-registry.js";import{secretStore as d}from"./secret-store.js";import{i18n as y}from"./i18n.js";export const DEFAULT_BASE_URL="https://www.vibeapi.cn";export const DEFAULT_MODELS=u();export const DEFAULT_PROFILE_NAME="default";export class ConfigManager{static instance;configDir;configPath;config;runtimeBaseUrl;constructor(){this.configDir=this.resolveConfigDir(),this.migrateLegacyConfigDir(),this.configPath=f(this.configDir,"config.yaml"),this.config=this.loadConfig()}migrateLegacyConfigDir(){try{const t=f(g(this.configDir),".chelper");if(t===this.configDir||!e(t))return;if(["config.yaml","secrets.enc"].some(t=>e(f(this.configDir,t))))return;if(e(this.configDir)){for(const i of n(t)){const o=f(this.configDir,i);e(o)||r(f(t,i),o)}0===n(t).length&&a(t)}else r(t,this.configDir);m.info(`Migrated config dir: ${t} -> ${this.configDir}`)}catch(e){m.warn("Failed to migrate legacy .chelper config dir:",e)}}resolveConfigDir(){const e=process.env.VIBECLI_CONFIG_DIR;if(e&&e.trim())return e.trim();const t=process.env.VIBECLI_TEST_HOME;return t&&t.trim()?f(t.trim(),".vibecli"):f(h(),".vibecli")}createDefaultConfig(){return this.syncLegacyFields({lang:"en_US",active_profile:"default",profiles:{[DEFAULT_PROFILE_NAME]:{}},presets:{}})}normalizeModels(e){const t={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};if(e&&"object"==typeof e)for(const[i,o]of Object.entries(e))i in t||"string"==typeof o&&o.trim()&&(t[i]=o.trim());return t}normalizeToolModels(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={};for(const[e,o]of Object.entries(t))"string"==typeof o&&o.trim()&&(i[e]=o.trim());return Object.keys(i).length>0?[[e,i]]:[]});return Object.fromEntries(t)}normalizeProfile(e){if(!e)return{};const t=this.normalizeToolModels(e.tool_models);return{..."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)}:{},...Object.keys(t).length>0?{tool_models:t}:{}}}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",o=t[i]?t:{...t,[i]:{}},r=this.getResolvedActiveProfile({...e,profiles:o,active_profile:i});return{...e,lang:e.lang||"en_US",active_profile:i,profiles:o,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{l(i,this.getSecretsBackupPath(t))}catch(e){m.logError("ConfigManager.snapshotSecrets",e)}}restoreSecretsSnapshot(t){const i=this.getSecretsBackupPath(t);if(e(i))try{l(i,this.getSecretsPath())}catch(e){m.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=p.load(e),o=this.migrateOldConfig(t||{lang:"en_US"}),r=this.hydrateSecretsFromStore(o);return(this.needsMigration(t)||this.hasInlineSecrets(t))&&(this.backupConfig(),this.atomicWrite(this.configPath,p.dump(this.extractSecretsForPersistence(r)))),r}}catch(e){m.warn("Failed to load config, using defaults:",e),m.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,...o}=t,r=this.normalizeProfiles(o.profiles),s=this.normalizeProfile({api_key:"string"==typeof o.api_key?o.api_key:void 0,base_url:"string"==typeof o.base_url?o.base_url:void 0,models:o.models}),n=Object.keys(r).length>0?r:{[DEFAULT_PROFILE_NAME]:s},a="string"==typeof o.active_profile&&o.active_profile.trim()?o.active_profile.trim():Object.keys(n)[0]||"default";return this.syncLegacyFields({lang:"string"==typeof o.lang&&o.lang?o.lang:"en_US",active_profile:a,profiles:n,presets:this.normalizePresets(o.presets)})}atomicWrite(t,i){const n=`${t}.tmp`;try{o(n,i,"utf-8"),r(n,t)}catch(t){if(e(n))try{s(n)}catch{}throw t}}backupConfig(){if(!e(this.configPath))return;const r=this.getBackupDir();e(r)||t(r,{recursive:!0});const s=(new Date).toISOString().replace(/[:.]/g,"-"),n=f(r,`config-${s}.yaml`);try{const e=i(this.configPath,"utf-8");o(n,e,"utf-8"),this.snapshotSecrets(n),this.rotateBackups(r,10,30)}catch(e){m.logError("ConfigManager.backupConfig",e)}}rotateBackups(t,i,o){try{const r=Date.now()-24*o*60*60*1e3,a=n(t).filter(e=>e.startsWith("config-")&&e.endsWith(".yaml")).map(e=>({name:e,path:f(t,e),mtime:c(f(t,e)).mtime})).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()),l=new Set;a.slice(i).forEach(e=>l.add(e.path)),a.forEach(e=>{e.mtime.getTime()<r&&l.add(e.path)});for(const t of l){let i=!1;try{s(t),i=!0}catch(e){m.logError("ConfigManager.rotateBackups",e)}if(i){const i=this.getSecretsBackupPath(t);if(e(i))try{s(i)}catch(e){m.logError("ConfigManager.rotateBackups.secrets",e)}}}}catch(e){m.logError("ConfigManager.rotateBackups",e)}}saveConfig(e){try{this.ensureConfigDir(),this.backupConfig();const t=this.syncLegacyFields(this.migrateOldConfig(e||this.config)),i=this.extractSecretsForPersistence(t),o=p.dump(i);this.atomicWrite(this.configPath,o),this.config=t}catch(e){throw m.error("Failed to save config:",e),m.logError("ConfigManager.saveConfig",e),e}}extractSecretsForPersistence(e){const t={...e.profiles||{}},i=[];for(const[e,o]of Object.entries(t))o?.api_key&&(d.setApiKey(e,o.api_key),i.push(e));for(const e of i){const{api_key:i,...o}=t[e];t[e]=o}const o={...e,profiles:t};return delete o.api_key,o}hydrateSecretsFromStore(e){const t={...e.profiles||{}};for(const[e,i]of Object.entries(t)){if(i?.api_key)continue;const o=d.getApiKey(e);o&&(t[e]={...i,api_key:o})}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,...t.tool_models&&Object.keys(t.tool_models).length>0?{tool_models:this.normalizeToolModels(t.tool_models)}:{}}}createProfile(e,t=this.getActiveProfileName()){const i=this.getProfile(t),o={...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:o})}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]||{},o=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}:{},...o?{models:o}:{}},s={...this.config.profiles||{},[e]:r};this.saveConfig({...this.config,profiles:s})}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 o=this.getActiveProfileName()===e?i[0]:this.getActiveProfileName();this.saveConfig({...this.config,profiles:t,active_profile:o})}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,o={...this.config.profiles||{},[this.getActiveProfileName()]:i};try{d.deleteApiKey(this.getActiveProfileName()),d.deleteToolApiKeys(this.getActiveProfileName())}catch(e){m.logError("ConfigManager.revokeApiKey",e);try{d.deleteAll()}catch(e){m.logError("ConfigManager.revokeApiKey.deleteAll",e)}}this.saveConfig({...this.config,profiles:o})}getApiKeyFingerprint(){try{return d.fingerprint(this.getActiveProfileName())}catch{return""}}getApiKeyForTool(e){try{const t=d.getToolApiKey(this.getActiveProfileName(),e);if(t)return t}catch{}return this.getApiKey()||void 0}setToolApiKey(e,t){d.setToolApiKey(this.getActiveProfileName(),e,t)}clearToolApiKey(e){d.deleteToolApiKey(this.getActiveProfileName(),e)}listToolApiKeys(){try{return d.listToolsWithKeys(this.getActiveProfileName())}catch{return[]}}getToolApiKeyFingerprint(e){try{return d.toolFingerprint(this.getActiveProfileName(),e)}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){this.setModels(this.normalizeModels({...this.getModels(),...e}))}getModelsForTool(e){const t=this.getModels(),i=this.config.profiles?.[this.getActiveProfileName()]?.tool_models?.[e];return i?this.normalizeModels({...t,...i}):t}setToolModel(e,t){const i=this.getActiveProfileName(),o=this.config.profiles?.[i]||{},r={...o.tool_models||{}};t&&0!==Object.keys(t).length?r[e]=t:delete r[e];const s={...o};Object.keys(r).length>0?s.tool_models=r:delete s.tool_models;const n={...this.config.profiles||{},[i]:s};this.saveConfig({...this.config,profiles:n})}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:c(i).mtimeMs}}).sort((e,t)=>t.mtimeMs-e.mtimeMs):[]}createBackup(r){this.ensureConfigDir();const s=this.getBackupDir();e(s)||t(s,{recursive:!0});const n=(new Date).toISOString().replace(/[:.]/g,"-"),a=this.sanitizeBackupLabel(r),c=f(s,a?`config-${n}-${a}.yaml`:`config-${n}.yaml`),l=e(this.configPath)?i(this.configPath,"utf-8"):p.dump(this.getConfig());return o(c,l,"utf-8"),this.snapshotSecrets(c),this.rotateBackups(s,10,30),c}restoreBackup(t){if(!t||"."===t||".."===t||/[/\\]|\.\./.test(t))throw new Error(`Invalid backup name: ${t}`);const o=this.getBackupDir(),r=f(o,t);if(!e(r))throw new Error(`Backup not found: ${t}`);const s=i(r,"utf-8"),n=p.load(s),a=this.getSecretsBackupPath(r),c=e(a),l=this.hasInlineSecrets(n);if(!c&&!l)throw new Error(y.t("config.backup_companion_missing",{path:a}));c&&this.restoreSecretsSnapshot(r);const g=this.migrateOldConfig(n||this.createDefaultConfig()),h=c?this.hydrateSecretsFromStore(g):g;this.saveConfig(h)}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,o={...this.config.profiles||{},[this.getActiveProfileName()]:i};this.saveConfig({...this.config,profiles:o})}}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,23 @@
1
+ /**
2
+ * Shell 环境变量里的 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL 会覆盖 vibecli 写进
3
+ * settings.json 的凭据,导致"改了配置却不生效"。这里统一负责把它们清掉:
4
+ * CLI 启动时检测一次(见 command.ts),给 Claude Code 写配置前再兜底一次。
5
+ */
6
+ export declare const ANTHROPIC_ENV_VARS: readonly ["ANTHROPIC_API_KEY", "ANTHROPIC_BASE_URL"];
7
+ /**
8
+ * 获取当前 shell 的 rc 文件路径(Windows 不使用 rc 文件,返回 null)。
9
+ */
10
+ export declare function getShellRcFilePath(): string | null;
11
+ /**
12
+ * 从当前 shell 的 rc 文件里移除 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL 的 export 行。
13
+ * 返回 rc 文件是否被修改。
14
+ */
15
+ export declare function cleanupShellRcEnvVars(): boolean;
16
+ /**
17
+ * 检测并清除环境中的 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL:
18
+ * 1. 从当前 shell 的 rc 文件删掉对应的 export 行(持久来源);
19
+ * 2. 从本进程 process.env 删除——vibecli 会以子进程启动各工具,
20
+ * 不清掉的话残留变量仍会盖过刚写好的配置文件。
21
+ * 返回被清除的变量名(未检测到时为空数组)。
22
+ */
23
+ export declare function cleanupAnthropicEnvVars(): string[];
@@ -0,0 +1 @@
1
+ import{existsSync as e,readFileSync as r,writeFileSync as n}from"fs";import{join as t}from"path";import{logger as o}from"../utils/logger.js";import{toolHome as s}from"./tools/types.js";export const ANTHROPIC_ENV_VARS=["ANTHROPIC_API_KEY","ANTHROPIC_BASE_URL"];export function getShellRcFilePath(){if("win32"===process.platform)return null;const e=s();switch((process.env.SHELL||"").split("/").pop()||""){case"bash":return t(e,".bashrc");case"zsh":return t(e,".zshrc");case"fish":return t(e,".config","fish","config.fish");default:return t(e,".profile")}}export function cleanupShellRcEnvVars(){if("win32"===process.platform)return!1;try{const t=getShellRcFilePath();if(!t||!e(t))return!1;let s=r(t,"utf-8");const l=s,c=[/^\s*export\s+ANTHROPIC_BASE_URL=.*$/gm,/^\s*export\s+ANTHROPIC_API_KEY=.*$/gm,/^\s*#\s*Claude Code environment variables\s*$/gm];for(const e of c)s=s.replace(e,"");if(s!==l)return n(t,s,"utf-8"),o.info(`Cleaned up ANTHROPIC_* environment variables from ${t}`),!0}catch(e){o.warn("Failed to cleanup shell environment variables:",e),o.logError("envCleanup.cleanupShellRcEnvVars",e)}return!1}export function cleanupAnthropicEnvVars(){const e=ANTHROPIC_ENV_VARS.filter(e=>!!process.env[e]);if(0===e.length)return[];cleanupShellRcEnvVars();for(const r of e)delete process.env[r];return[...e]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-cleanup.js","sourceRoot":"","sources":["../../src/lib/env-cleanup.ts"],"names":[],"mappings":"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"}
@@ -16,5 +16,11 @@ declare class I18n {
16
16
  private loadSavedLocale;
17
17
  loadFromConfig(locale: string): void;
18
18
  }
19
+ /**
20
+ * 探测系统语言:中文系统返回 zh_CN,其余一律 en_US。
21
+ * POSIX 依次看 LC_ALL / LC_MESSAGES / LANG / LANGUAGE;Windows 通常没有
22
+ * 这些环境变量,回退到 Intl(跟随操作系统区域设置)。
23
+ */
24
+ export declare function detectSystemLang(): 'zh_CN' | 'en_US';
19
25
  export { I18n };
20
26
  export declare const i18n: 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 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
+ import{readFileSync as t,existsSync as e,readdirSync as s}from"fs";import{join as o,dirname as a}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),e=a(t);this.localesDir=o(e,"..","locales"),this.loadTranslations(),this.loadSavedLocale()}static getInstance(){return l.instance||(l.instance=new l),l.instance}loadTranslations(){try{if(!e(this.localesDir))return void n.warn(`Locales directory not found at ${this.localesDir}`);const a=s(this.localesDir).filter(t=>t.endsWith(".json"));if(0===a.length)return void n.warn("No locale files found in locales directory");for(const e of a){const s=e.replace(".json",""),a=o(this.localesDir,e);try{const e=t(a,"utf-8"),o=JSON.parse(e);this.translations.set(s,o)}catch(t){n.warn(`Failed to load locale file ${e}:`,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 e=t.split("-")[0],s=Array.from(this.translations.keys()).find(t=>t.startsWith(e+"_"));s?this.currentLocale=s:"zh"===e?this.currentLocale="zh_CN":"en"===e&&(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,e){const s=t.split(".");let o=this.translations.get(this.currentLocale);for(const e of s){if(!o||"object"!=typeof o||!(e in o)){o=this.translations.get(this.fallbackLocale);for(const e of s){if(!o||"object"!=typeof o||!(e in o))return t;o=o[e]}break}o=o[e]}return"string"!=typeof o?t:e?o.replace(/\{\{(\w+)\}\}/g,(t,s)=>e[s]||t):o}t(t,e){return this.translate(t,e)}saveLocale(){}loadSavedLocale(){}loadFromConfig(t){this.translations.has(t)&&(this.currentLocale=t)}}export function detectSystemLang(){const t=process.env.LC_ALL||process.env.LC_MESSAGES||process.env.LANG||process.env.LANGUAGE||"";let e="";try{e=Intl.DateTimeFormat().resolvedOptions().locale||""}catch{}return`${t} ${e}`.toLowerCase().split(/[\s:;,]+/).some(t=>"zh"===t||t.startsWith("zh-")||t.startsWith("zh_"))?"zh_CN":"en_US"}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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"}
@@ -24,6 +24,14 @@ export declare class SecretStore {
24
24
  setApiKey(profile: string, apiKey: string): void;
25
25
  deleteApiKey(profile: string): void;
26
26
  listProfilesWithKeys(): string[];
27
+ /** 读取某工具的专属 Key(没有则 undefined,调用方回退 profile 默认 Key)。 */
28
+ getToolApiKey(profile: string, tool: string): string | undefined;
29
+ setToolApiKey(profile: string, tool: string, apiKey: string): void;
30
+ deleteToolApiKey(profile: string, tool: string): void;
31
+ /** 撤销 profile 时连同其全部工具专属 Key 一起清掉。 */
32
+ deleteToolApiKeys(profile: string): void;
33
+ listToolsWithKeys(profile: string): string[];
34
+ toolFingerprint(profile: string, tool: string): string;
27
35
  deleteAll(): void;
28
36
  }
29
37
  export declare const secretStore: SecretStore;
@@ -1 +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();
1
+ import{existsSync as e,mkdirSync as t,readFileSync as r,writeFileSync as s,renameSync as o,unlinkSync as i,chmodSync as c}from"fs";import{join as n,dirname as a}from"path";import{homedir as l,hostname as p,userInfo as h}from"os";import{createCipheriv as y,createDecipheriv as d,randomBytes as u,scryptSync as f,createHash as S}from"crypto";import{logger as _}from"../utils/logger.js";const g="aes-256-gcm";export class SecretStoreDecryptError extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="SecretStoreDecryptError"}}function v(e,t=32768){const r=`${h().username}:${p()}:vibecli-secret-store`;return f(r,e,32,{N:t,maxmem:67108864})}export class SecretStore{static instance;secretsDir;secretsPath;lastDecryptError=null;constructor(){this.secretsDir=function(){const e=process.env.VIBECLI_CONFIG_DIR;if(e&&e.trim())return e.trim();const t=process.env.VIBECLI_TEST_HOME;return t&&t.trim()?n(t.trim(),".vibecli"):n(l(),".vibecli")}(),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{c(this.secretsPath,384)}catch{}}catch(t){if(e(r))try{i(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 _.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"),i=v(t,1===e.version?16384:32768),c=d(g,i,r);c.setAuthTag(s);try{const e=Buffer.concat([c.update(o),c.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=u(16),r=u(12),s=v(t),o=y(g,s,r),i=Buffer.from(JSON.stringify(e),"utf-8"),c=Buffer.concat([o.update(i),o.final()]),n=o.getAuthTag();return{version:2,iv:r.toString("base64"),salt:t.toString("base64"),auth_tag:n.toString("base64"),cipher_text:c.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){_.logError("SecretStore.upgradeEnvelope",e)}return t}catch(e){throw e instanceof SecretStoreDecryptError&&(this.lastDecryptError=e,_.warn("SecretStore decrypt failed - identity drift suspected; refusing to drop existing envelope")),_.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 ~/.vibecli/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 ~/.vibecli/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()}getToolApiKey(e,t){const r=this.safeLoadRecord();return r.tool_api_keys?.[e]?.[t]}setToolApiKey(t,r,s){const o=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 ~/.vibecli/secrets.enc to proceed",this.lastDecryptError);o.tool_api_keys={...o.tool_api_keys||{},[t]:{...o.tool_api_keys?.[t]||{},[r]:s}},this.persistRecord(o),this.lastDecryptError=null}deleteToolApiKey(t,r){const s=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 ~/.vibecli/secrets.enc to proceed",this.lastDecryptError);const o=s.tool_api_keys?.[t];if(!o||!(r in o))return;const{[r]:i,...c}=o;if(s.tool_api_keys={...s.tool_api_keys||{},[t]:c},0===Object.keys(c).length){const{[t]:e,...r}=s.tool_api_keys;s.tool_api_keys=r}this.persistRecord(s)}deleteToolApiKeys(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 ~/.vibecli/secrets.enc to proceed",this.lastDecryptError);if(!r.tool_api_keys||!(t in r.tool_api_keys))return;const{[t]:s,...o}=r.tool_api_keys;r.tool_api_keys=o,this.persistRecord(r)}listToolsWithKeys(e){const t=this.safeLoadRecord();return Object.keys(t.tool_api_keys?.[e]||{}).sort()}toolFingerprint(e,t){const r=this.getToolApiKey(e,t);return r?S("sha256").update(r).digest("hex").slice(0,12):""}deleteAll(){if(e(this.secretsPath))try{i(this.secretsPath)}catch(e){_.logError("SecretStore.deleteAll",e)}}}export const secretStore=SecretStore.getInstance();