@vibeapi/api-helper 0.0.25 → 0.0.28

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 (62) hide show
  1. package/README.md +17 -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__/tool-adapters.test.js +1 -1
  22. package/dist/__tests__/tool-adapters.test.js.map +1 -1
  23. package/dist/__tests__/tool-manager.test.js +1 -1
  24. package/dist/__tests__/tool-manager.test.js.map +1 -1
  25. package/dist/commands/completion.js +1 -1
  26. package/dist/commands/completion.js.map +1 -1
  27. package/dist/commands/config.js +1 -1
  28. package/dist/commands/config.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/lib/claude-code-manager.d.ts +0 -8
  31. package/dist/lib/claude-code-manager.js +1 -1
  32. package/dist/lib/claude-code-manager.js.map +1 -1
  33. package/dist/lib/command.d.ts +5 -0
  34. package/dist/lib/command.js +1 -1
  35. package/dist/lib/command.js.map +1 -1
  36. package/dist/lib/config.d.ts +27 -19
  37. package/dist/lib/config.js +1 -1
  38. package/dist/lib/config.js.map +1 -1
  39. package/dist/lib/env-cleanup.d.ts +23 -0
  40. package/dist/lib/env-cleanup.js +1 -0
  41. package/dist/lib/env-cleanup.js.map +1 -0
  42. package/dist/lib/i18n.d.ts +6 -0
  43. package/dist/lib/i18n.js +1 -1
  44. package/dist/lib/i18n.js.map +1 -1
  45. package/dist/lib/secret-store.js +1 -1
  46. package/dist/lib/tool-manager.d.ts +2 -2
  47. package/dist/lib/tools/backup.d.ts +8 -1
  48. package/dist/lib/tools/backup.js +1 -1
  49. package/dist/lib/tools/backup.js.map +1 -1
  50. package/dist/lib/tools/opencode.js +1 -1
  51. package/dist/lib/tools/opencode.js.map +1 -1
  52. package/dist/lib/tools/types.d.ts +5 -5
  53. package/dist/lib/tools/types.js +1 -1
  54. package/dist/lib/wizard.d.ts +7 -2
  55. package/dist/lib/wizard.js +1 -1
  56. package/dist/lib/wizard.js.map +1 -1
  57. package/dist/locales/en_US.json +38 -33
  58. package/dist/locales/zh_CN.json +39 -34
  59. package/dist/models.json +2 -2
  60. package/dist/utils/logger.js +1 -1
  61. package/models.json +2 -2
  62. package/package.json +3 -3
package/dist/models.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "defaultModels": {
3
3
  "haiku": "claude-haiku-4-5-20251001",
4
- "sonnet": "claude-sonnet-4-6",
4
+ "sonnet": "claude-sonnet-5[1m]",
5
5
  "opus": "claude-opus-4-8[1m]",
6
6
  "reasoning": "claude-opus-4-8[1m]"
7
7
  },
@@ -9,7 +9,7 @@
9
9
  "toolDefaults": {
10
10
  "claude-code": "",
11
11
  "opencode": "gpt-5.5",
12
- "codex": "gpt-5.5",
12
+ "codex": "gpt-5.6-sol",
13
13
  "openclaw": "gpt-5.5",
14
14
  "hermes": "gpt-5.5",
15
15
  "atomcode": "gpt-5.5"
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as t,appendFileSync as i,readdirSync as o,statSync as r,unlinkSync as s}from"fs";import{join as g}from"path";import{homedir as n}from"os";export var LogLevel;!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR"}(LogLevel||(LogLevel={}));const l=["token","apikey","api_key","api-key","auth_token","auth-token","authorization","password","secret","credential","anthropic_auth_token","anthropic_api_key","z_ai_api_key"],a=[/eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,/\b[a-zA-Z0-9]{32,}\b/g,/Bearer\s+[A-Za-z0-9._-]+/gi];export class Logger{static instance;logLevel=LogLevel.INFO;fileLogLevel=LogLevel.WARN;logDir;fileLoggingEnabled=!0;retentionDays=14;constructor(){this.logDir=g(n(),".chelper"),this.ensureLogDir(),this.rotateOldLogs()}static getInstance(){return Logger.instance||(Logger.instance=new Logger),Logger.instance}ensureLogDir(){try{e(this.logDir)||t(this.logDir,{recursive:!0})}catch{this.fileLoggingEnabled=!1}}getLogFilePath(){const e=(new Date).toISOString().split("T")[0];return g(this.logDir,`${e}.log`)}rotateOldLogs(){if(this.fileLoggingEnabled&&e(this.logDir))try{const e=Date.now()-24*this.retentionDays*60*60*1e3,t=o(this.logDir).filter(e=>/^\d{4}-\d{2}-\d{2}\.log$/.test(e));for(const i of t){const t=g(this.logDir,i);try{r(t).mtimeMs<e&&s(t)}catch{}}}catch{}}setRetentionDays(e){e>=0&&Number.isFinite(e)&&(this.retentionDays=Math.floor(e),this.rotateOldLogs())}sanitizeValue(e){if(null==e)return e;if("string"==typeof e){let t=e;for(const e of a)t=t.replace(e,"[REDACTED]");return t}if(Array.isArray(e))return e.map(e=>this.sanitizeValue(e));if("object"==typeof e){const t={};for(const[i,o]of Object.entries(e)){const e=i.toLowerCase(),r=l.some(t=>e.includes(t));t[i]=r?"[REDACTED]":this.sanitizeValue(o)}return t}return e}sanitize(e,t){return{message:this.sanitizeValue(e),args:t.map(e=>this.sanitizeValue(e))}}formatArgs(e){return 0===e.length?"":" "+e.map(e=>{if("object"==typeof e)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}).join(" ")}writeToFile(e,t,o){if(this.fileLoggingEnabled)try{const{message:r,args:s}=this.sanitize(t,o),g=`${(new Date).toISOString()} [${e}] ${r}${this.formatArgs(s)}\n`;i(this.getLogFilePath(),g,"utf-8")}catch{}}setLogLevel(e){this.logLevel=e}setFileLogLevel(e){this.fileLogLevel=e}setFileLoggingEnabled(e){this.fileLoggingEnabled=e}debug(e,...t){this.logLevel<=LogLevel.DEBUG&&console.debug(`[DEBUG] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.DEBUG&&this.writeToFile("DEBUG",e,t)}info(e,...t){this.logLevel<=LogLevel.INFO&&console.info(`[INFO] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.INFO&&this.writeToFile("INFO",e,t)}warn(e,...t){this.logLevel<=LogLevel.WARN&&console.warn(`[WARN] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.WARN&&this.writeToFile("WARN",e,t)}error(e,...t){this.logLevel<=LogLevel.ERROR&&console.error(`[ERROR] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.ERROR&&this.writeToFile("ERROR",e,t)}logError(e,t){const i=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;this.writeToFile("ERROR",`[${e}] ${i}`,o?[{stack:o}]:[])}getLogDir(){return this.logDir}}export const logger=Logger.getInstance();
1
+ import{existsSync as e,mkdirSync as t,appendFileSync as i,readdirSync as o,statSync as r,unlinkSync as s}from"fs";import{join as g}from"path";import{homedir as n}from"os";export var LogLevel;!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR"}(LogLevel||(LogLevel={}));const l=["token","apikey","api_key","api-key","auth_token","auth-token","authorization","password","secret","credential","anthropic_auth_token","anthropic_api_key","z_ai_api_key"],a=[/eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,/\b[a-zA-Z0-9]{32,}\b/g,/Bearer\s+[A-Za-z0-9._-]+/gi];export class Logger{static instance;logLevel=LogLevel.INFO;fileLogLevel=LogLevel.WARN;logDir;fileLoggingEnabled=!0;retentionDays=14;constructor(){this.logDir=g(n(),".vibecli"),this.ensureLogDir(),this.rotateOldLogs()}static getInstance(){return Logger.instance||(Logger.instance=new Logger),Logger.instance}ensureLogDir(){try{e(this.logDir)||t(this.logDir,{recursive:!0})}catch{this.fileLoggingEnabled=!1}}getLogFilePath(){const e=(new Date).toISOString().split("T")[0];return g(this.logDir,`${e}.log`)}rotateOldLogs(){if(this.fileLoggingEnabled&&e(this.logDir))try{const e=Date.now()-24*this.retentionDays*60*60*1e3,t=o(this.logDir).filter(e=>/^\d{4}-\d{2}-\d{2}\.log$/.test(e));for(const i of t){const t=g(this.logDir,i);try{r(t).mtimeMs<e&&s(t)}catch{}}}catch{}}setRetentionDays(e){e>=0&&Number.isFinite(e)&&(this.retentionDays=Math.floor(e),this.rotateOldLogs())}sanitizeValue(e){if(null==e)return e;if("string"==typeof e){let t=e;for(const e of a)t=t.replace(e,"[REDACTED]");return t}if(Array.isArray(e))return e.map(e=>this.sanitizeValue(e));if("object"==typeof e){const t={};for(const[i,o]of Object.entries(e)){const e=i.toLowerCase(),r=l.some(t=>e.includes(t));t[i]=r?"[REDACTED]":this.sanitizeValue(o)}return t}return e}sanitize(e,t){return{message:this.sanitizeValue(e),args:t.map(e=>this.sanitizeValue(e))}}formatArgs(e){return 0===e.length?"":" "+e.map(e=>{if("object"==typeof e)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}).join(" ")}writeToFile(e,t,o){if(this.fileLoggingEnabled)try{const{message:r,args:s}=this.sanitize(t,o),g=`${(new Date).toISOString()} [${e}] ${r}${this.formatArgs(s)}\n`;i(this.getLogFilePath(),g,"utf-8")}catch{}}setLogLevel(e){this.logLevel=e}setFileLogLevel(e){this.fileLogLevel=e}setFileLoggingEnabled(e){this.fileLoggingEnabled=e}debug(e,...t){this.logLevel<=LogLevel.DEBUG&&console.debug(`[DEBUG] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.DEBUG&&this.writeToFile("DEBUG",e,t)}info(e,...t){this.logLevel<=LogLevel.INFO&&console.info(`[INFO] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.INFO&&this.writeToFile("INFO",e,t)}warn(e,...t){this.logLevel<=LogLevel.WARN&&console.warn(`[WARN] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.WARN&&this.writeToFile("WARN",e,t)}error(e,...t){this.logLevel<=LogLevel.ERROR&&console.error(`[ERROR] ${e}`,...t),this.fileLoggingEnabled&&this.fileLogLevel<=LogLevel.ERROR&&this.writeToFile("ERROR",e,t)}logError(e,t){const i=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;this.writeToFile("ERROR",`[${e}] ${i}`,o?[{stack:o}]:[])}getLogDir(){return this.logDir}}export const logger=Logger.getInstance();
package/models.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "defaultModels": {
3
3
  "haiku": "claude-haiku-4-5-20251001",
4
- "sonnet": "claude-sonnet-4-6",
4
+ "sonnet": "claude-sonnet-5[1m]",
5
5
  "opus": "claude-opus-4-8[1m]",
6
6
  "reasoning": "claude-opus-4-8[1m]"
7
7
  },
@@ -9,7 +9,7 @@
9
9
  "toolDefaults": {
10
10
  "claude-code": "",
11
11
  "opencode": "gpt-5.5",
12
- "codex": "gpt-5.5",
12
+ "codex": "gpt-5.6-sol",
13
13
  "openclaw": "gpt-5.5",
14
14
  "hermes": "gpt-5.5",
15
15
  "atomcode": "gpt-5.5"
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@vibeapi/api-helper",
3
- "version": "0.0.25",
4
- "description": "CLI tool for managing AI coding assistants (Claude Code, OpenCode, Codex, OpenClaw, Hermes, AtomCode) with one unified config",
3
+ "version": "0.0.28",
4
+ "description": "CLI tool for managing AI coding assistants (Claude Code, Codex, OpenClaw, Hermes, AtomCode) with one unified config",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
8
8
  "api-helper": "dist/cli.js",
9
- "chelper": "dist/cli.js"
9
+ "vibecli": "dist/cli.js"
10
10
  },
11
11
  "homepage": "https://www.vibeapi.cn/",
12
12
  "bugs": {