@vibeapi/api-helper 0.0.17 → 0.0.22
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.
- package/LICENSE +25 -25
- package/README.md +301 -0
- package/dist/__tests__/api-validator.test.js +1 -1
- package/dist/__tests__/api-validator.test.js.map +1 -1
- package/dist/__tests__/claude-code-manager.test.d.ts +1 -0
- package/dist/__tests__/claude-code-manager.test.js +1 -0
- package/dist/__tests__/claude-code-manager.test.js.map +1 -0
- package/dist/__tests__/command.test.d.ts +1 -0
- package/dist/__tests__/command.test.js +1 -0
- package/dist/__tests__/command.test.js.map +1 -0
- package/dist/__tests__/commands.test.d.ts +1 -0
- package/dist/__tests__/commands.test.js +1 -0
- package/dist/__tests__/commands.test.js.map +1 -0
- package/dist/__tests__/config-profiles.test.d.ts +1 -0
- package/dist/__tests__/config-profiles.test.js +1 -0
- package/dist/__tests__/config-profiles.test.js.map +1 -0
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/extra-commands.test.d.ts +1 -0
- package/dist/__tests__/extra-commands.test.js +1 -0
- package/dist/__tests__/extra-commands.test.js.map +1 -0
- package/dist/__tests__/i18n.test.d.ts +1 -0
- package/dist/__tests__/i18n.test.js +1 -0
- package/dist/__tests__/i18n.test.js.map +1 -0
- package/dist/__tests__/logger.test.d.ts +1 -0
- package/dist/__tests__/logger.test.js +1 -0
- package/dist/__tests__/logger.test.js.map +1 -0
- package/dist/__tests__/opencode-manager.test.d.ts +1 -0
- package/dist/__tests__/opencode-manager.test.js +1 -0
- package/dist/__tests__/opencode-manager.test.js.map +1 -0
- package/dist/__tests__/runtime-options.test.d.ts +1 -0
- package/dist/__tests__/runtime-options.test.js +1 -0
- package/dist/__tests__/runtime-options.test.js.map +1 -0
- package/dist/__tests__/secret-store.test.d.ts +1 -0
- package/dist/__tests__/secret-store.test.js +1 -0
- package/dist/__tests__/secret-store.test.js.map +1 -0
- package/dist/__tests__/settings-template.test.d.ts +1 -0
- package/dist/__tests__/settings-template.test.js +1 -0
- package/dist/__tests__/settings-template.test.js.map +1 -0
- package/dist/__tests__/string-width.test.d.ts +1 -0
- package/dist/__tests__/string-width.test.js +1 -0
- package/dist/__tests__/string-width.test.js.map +1 -0
- package/dist/__tests__/tool-adapters.test.d.ts +1 -0
- package/dist/__tests__/tool-adapters.test.js +1 -0
- package/dist/__tests__/tool-adapters.test.js.map +1 -0
- package/dist/__tests__/tool-manager.test.d.ts +1 -0
- package/dist/__tests__/tool-manager.test.js +1 -0
- package/dist/__tests__/tool-manager.test.js.map +1 -0
- package/dist/__tests__/wizard.test.d.ts +1 -0
- package/dist/__tests__/wizard.test.js +1 -0
- package/dist/__tests__/wizard.test.js.map +1 -0
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/bench.d.ts +6 -0
- package/dist/commands/bench.js +1 -0
- package/dist/commands/bench.js.map +1 -0
- package/dist/commands/completion.d.ts +1 -0
- package/dist/commands/completion.js +1 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/lang.js +1 -1
- package/dist/commands/lang.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -0
- package/dist/commands/logs.js +1 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts +7 -0
- package/dist/commands/update.js +1 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/lib/api-validator.d.ts +15 -5
- package/dist/lib/api-validator.js +1 -1
- package/dist/lib/api-validator.js.map +1 -1
- package/dist/lib/brand.d.ts +13 -0
- package/dist/lib/brand.js +1 -0
- package/dist/lib/brand.js.map +1 -0
- package/dist/lib/claude-code-manager.js +1 -1
- package/dist/lib/claude-code-manager.js.map +1 -1
- package/dist/lib/command.d.ts +1 -0
- package/dist/lib/command.js +1 -1
- package/dist/lib/command.js.map +1 -1
- package/dist/lib/config.d.ts +69 -26
- package/dist/lib/config.js +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/confirm.d.ts +12 -0
- package/dist/lib/confirm.js +1 -0
- package/dist/lib/confirm.js.map +1 -0
- package/dist/lib/i18n.d.ts +1 -1
- package/dist/lib/i18n.js +1 -1
- package/dist/lib/i18n.js.map +1 -1
- package/dist/lib/model-registry.d.ts +6 -0
- package/dist/lib/model-registry.js +1 -1
- package/dist/lib/model-registry.js.map +1 -1
- package/dist/lib/opencode-manager.js +1 -1
- package/dist/lib/opencode-manager.js.map +1 -1
- package/dist/lib/runtime-options.d.ts +17 -0
- package/dist/lib/runtime-options.js +1 -0
- package/dist/lib/runtime-options.js.map +1 -0
- package/dist/lib/secret-store.d.ts +29 -0
- package/dist/lib/secret-store.js +1 -0
- package/dist/lib/secret-store.js.map +1 -0
- package/dist/lib/tool-manager.d.ts +10 -3
- package/dist/lib/tool-manager.js +1 -1
- package/dist/lib/tool-manager.js.map +1 -1
- package/dist/lib/tools/atomcode.d.ts +2 -0
- package/dist/lib/tools/atomcode.js +1 -0
- package/dist/lib/tools/atomcode.js.map +1 -0
- package/dist/lib/tools/backup.d.ts +12 -0
- package/dist/lib/tools/backup.js +1 -0
- package/dist/lib/tools/backup.js.map +1 -0
- package/dist/lib/tools/claude-code.d.ts +3 -0
- package/dist/lib/tools/claude-code.js +1 -0
- package/dist/lib/tools/claude-code.js.map +1 -0
- package/dist/lib/tools/codex.d.ts +2 -0
- package/dist/lib/tools/codex.js +1 -0
- package/dist/lib/tools/codex.js.map +1 -0
- package/dist/lib/tools/hermes.d.ts +2 -0
- package/dist/lib/tools/hermes.js +1 -0
- package/dist/lib/tools/hermes.js.map +1 -0
- package/dist/lib/tools/openclaw.d.ts +2 -0
- package/dist/lib/tools/openclaw.js +1 -0
- package/dist/lib/tools/openclaw.js.map +1 -0
- package/dist/lib/tools/opencode.d.ts +3 -0
- package/dist/lib/tools/opencode.js +1 -0
- package/dist/lib/tools/opencode.js.map +1 -0
- package/dist/lib/tools/registry.d.ts +4 -0
- package/dist/lib/tools/registry.js +1 -0
- package/dist/lib/tools/registry.js.map +1 -0
- package/dist/lib/tools/types.d.ts +69 -0
- package/dist/lib/tools/types.js +1 -0
- package/dist/lib/tools/types.js.map +1 -0
- package/dist/lib/wizard.js +1 -1
- package/dist/lib/wizard.js.map +1 -1
- package/dist/locales/en_US.json +282 -200
- package/dist/locales/zh_CN.json +281 -199
- package/dist/models.json +1 -0
- package/dist/settings-template.json +2 -1
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/models.json +1 -0
- package/package.json +5 -2
- package/settings-template.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as e,it as o,expect as i,beforeEach as t,afterEach as n,vi as r}from"vitest";import{mkdirSync as a,rmSync as p,existsSync as s,readFileSync as d}from"fs";import{join as v}from"path";import{tmpdir as f}from"os";const l=v(f(),`chelper-oc-${Date.now()}-${Math.random().toString(36).slice(2)}`);r.mock("os",async()=>({...await r.importActual("os"),homedir:()=>l})),e("OpenCodeManager",()=>{let e;t(async()=>{a(l,{recursive:!0}),({openCodeManager:e}=await import("../lib/opencode-manager.js"))}),n(()=>{try{p(l,{recursive:!0,force:!0})}catch{}}),o("returns empty config when file missing",()=>{i(e.getConfig()).toEqual({})}),o("persists and reads config",()=>{e.saveConfig({model:"foo/bar"});const o=v(l,".config","opencode","opencode.json");i(s(o)).toBe(!0);const t=JSON.parse(d(o,"utf-8"));i(t.model).toBe("foo/bar")}),o("loadPrivateConfig sets provider and model fields",()=>{e.loadPrivateConfig("sk-x",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"});const o=e.getConfig();i(o.provider?.["private-newapi"]?.options?.apiKey).toBe("sk-x"),i(o.model).toBe("private-newapi/o"),i(o.small_model).toBe("private-newapi/h"),i(o.$schema).toBe("https://opencode.ai/config.json")}),o("loadPrivateConfig preserves other providers",()=>{e.saveConfig({provider:{other:{options:{apiKey:"keep"}}}}),e.loadPrivateConfig("sk-x",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"});const o=e.getConfig();i(o.provider?.other?.options?.apiKey).toBe("keep"),i(o.provider?.["private-newapi"]).toBeDefined()}),o("unloadPrivateConfig removes only the private-newapi keys",()=>{e.saveConfig({provider:{"private-newapi":{options:{apiKey:"x"}},other:{options:{apiKey:"keep"}}},model:"private-newapi/o",small_model:"private-newapi/h"}),e.unloadPrivateConfig();const o=e.getConfig();i(o.provider?.["private-newapi"]).toBeUndefined(),i(o.provider?.other?.options?.apiKey).toBe("keep"),i(o.model).toBeUndefined(),i(o.small_model).toBeUndefined()}),o("unloadPrivateConfig drops provider field entirely when empty",()=>{e.saveConfig({provider:{"private-newapi":{options:{apiKey:"x"}}},model:"private-newapi/o"}),e.unloadPrivateConfig();const o=e.getConfig();i(o.provider).toBeUndefined(),i(o.model).toBeUndefined()}),o("detectCurrentConfig returns null without provider",()=>{i(e.detectCurrentConfig().apiKey).toBeNull()}),o("detectCurrentConfig returns key when private-newapi present",()=>{e.saveConfig({provider:{"private-newapi":{options:{apiKey:"sk-detected"}}}}),i(e.detectCurrentConfig().apiKey).toBe("sk-detected")})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/opencode-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAElG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;IACrB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAsB,IAAI,CAAC,CAAC;IAChE,OAAO;QACH,GAAG,MAAM;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;KACzB,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,eAA4E,CAAC;IAEjF,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,eAAe,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACtC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;SACrD,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,eAAe,CAAC,UAAU,CAAC;YACvB,QAAQ,EAAE;gBACN,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aAC3C;SACJ,CAAC,CAAC;QACH,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACtC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;SACrD,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAChE,eAAe,CAAC,UAAU,CAAC;YACvB,QAAQ,EAAE;gBACN,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC9C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aAC3C;YACD,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,kBAAkB;SAClC,CAAC,CAAC;QACH,eAAe,CAAC,mBAAmB,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,eAAe,CAAC,UAAU,CAAC;YACvB,QAAQ,EAAE;gBACN,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;aACjD;YACD,KAAK,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QACH,eAAe,CAAC,mBAAmB,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACnE,eAAe,CAAC,UAAU,CAAC;YACvB,QAAQ,EAAE,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;SACzE,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as t,it as o,expect as e,beforeEach as n,afterEach as a,vi as r}from"vitest";import{mkdirSync as i,rmSync as s}from"fs";import{join as c}from"path";import{tmpdir as p}from"os";async function m(t){return r.resetModules(),await import(t)}t("runtime options & JSON command shapes",()=>{let t,l;n(()=>{t=c(p(),`chelper-runtime-${Date.now()}-${Math.random().toString(36).slice(2)}`),i(t,{recursive:!0}),l=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=t}),a(()=>{void 0!==l?process.env.CHELPER_TEST_HOME=l:delete process.env.CHELPER_TEST_HOME;try{s(t,{recursive:!0,force:!0})}catch{}r.restoreAllMocks()}),o("detects NO_COLOR env preference",async()=>{const t=await m("../lib/runtime-options.js");e(t.detectColorPreferenceFromEnv({NO_COLOR:"1"})).toBe(!1),e(t.detectColorPreferenceFromEnv({NO_COLOR:"0"})).toBe(!0),e(t.detectColorPreferenceFromEnv({})).toBe(!0)}),o("langCommand --json emits structured locale info",async()=>{const t=await m("../lib/runtime-options.js");t.setRuntimeOptions({json:!0});const o={payload:null},n=r.spyOn(process.stdout,"write").mockImplementation(t=>{const e="string"==typeof t?t:Buffer.from(t).toString("utf-8");try{o.payload=JSON.parse(e)}catch{}return!0}),a=await import("../commands/lang.js");await a.langCommand(["show"]),n.mockRestore(),t.resetRuntimeOptions(),e(o.payload).toBeTruthy(),e(o.payload.current).toBeDefined(),e(Array.isArray(o.payload.available)).toBe(!0)}),o("authCommand non-interactive without token reports token_required JSON",async()=>{const t=await m("../lib/runtime-options.js");t.setRuntimeOptions({json:!0,nonInteractive:!0});const o={payload:null},n=r.spyOn(process.stdout,"write").mockImplementation(t=>{const e="string"==typeof t?t:Buffer.from(t).toString("utf-8");try{o.payload=JSON.parse(e)}catch{}return!0}),a=await import("../commands/auth.js");await a.authCommand([]),n.mockRestore(),t.resetRuntimeOptions(),e(o.payload).toEqual(e.objectContaining({ok:!1,error:"token_required"}))}),o("statusCommand --json includes profile metadata",async()=>{const t=await m("../lib/runtime-options.js");t.setRuntimeOptions({json:!0});const o={payload:null},n=r.spyOn(process.stdout,"write").mockImplementation(t=>{const e="string"==typeof t?t:Buffer.from(t).toString("utf-8");try{o.payload=JSON.parse(e)}catch{}return!0}),a=await import("../commands/status.js");await a.statusCommand(),n.mockRestore(),t.resetRuntimeOptions(),e(o.payload).toBeTruthy(),e(o.payload.active_profile).toBeDefined(),e(Array.isArray(o.payload.profiles)).toBe(!0)}),o("configCommand profile list runs in non-interactive JSON-friendly mode",async()=>{const t=await m("../lib/runtime-options.js");t.setRuntimeOptions({nonInteractive:!0});try{const t=await import("../commands/config.js");await t.configCommand(["profile","list"])}finally{t.resetRuntimeOptions()}}),o("dry-run prevents profile deletion and emits dry_run JSON payload",async()=>{const t=await m("../lib/runtime-options.js");t.setRuntimeOptions({json:!0,dryRun:!0,nonInteractive:!0});const o={payload:null},n=r.spyOn(process.stdout,"write").mockImplementation(t=>{const e="string"==typeof t?t:Buffer.from(t).toString("utf-8");try{o.payload=JSON.parse(e)}catch{}return!0});try{const t=await import("../lib/config.js");t.configManager.createProfile("to-be-kept");const n=t.configManager.listProfiles();e(n).toContain("to-be-kept");const a=await import("../commands/config.js");await a.configCommand(["profile","delete","to-be-kept"]);const r=t.configManager.listProfiles();e(r).toContain("to-be-kept"),e(o.payload).toEqual(e.objectContaining({dry_run:!0,payload:e.objectContaining({action:"profile_delete",name:"to-be-kept"})}))}finally{n.mockRestore(),t.resetRuntimeOptions()}}),o("dry-run prevents backup restore and emits dry_run JSON payload",async()=>{const t=await m("../lib/runtime-options.js"),o=await import("../lib/config.js");o.configManager.setApiKey("key-original");const n=o.configManager.createBackup();o.configManager.setApiKey("key-mutated");const a=n.split(/[/\\]/).pop();t.setRuntimeOptions({json:!0,dryRun:!0,nonInteractive:!0});const i={payload:null},s=r.spyOn(process.stdout,"write").mockImplementation(t=>{const o="string"==typeof t?t:Buffer.from(t).toString("utf-8");try{i.payload=JSON.parse(o)}catch{}return!0});try{const t=await import("../commands/config.js");await t.configCommand(["backup","restore",a]),e(o.configManager.getApiKey()).toBe("key-mutated"),e(i.payload).toEqual(e.objectContaining({dry_run:!0,payload:e.objectContaining({action:"backup_restore",name:a})}))}finally{s.mockRestore(),t.resetRuntimeOptions()}})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-options.test.js","sourceRoot":"","sources":["../../src/__tests__/runtime-options.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAM5B,KAAK,UAAU,WAAW,CAAI,IAAY;IACtC,EAAE,CAAC,YAAY,EAAE,CAAC;IAClB,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAM,CAAC;AACrC,CAAC;AAED,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACnD,IAAI,OAAe,CAAC;IACpB,IAAI,gBAAoC,CAAC;IAEzC,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjG,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACzC,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACjF,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QACvG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAC3G,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAA0B,EAAE,EAAE;YACjG,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC;gBACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,oCAAoC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAE9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,CAAE,QAAQ,CAAC,OAAgC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAE,QAAQ,CAAC,OAAoC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAC3G,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAA0B,EAAE,EAAE;YACjG,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC;gBACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,yBAAyB;YAC7B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAE9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAC3G,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAA0B,EAAE,EAAE;YACjG,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC;gBACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,yBAAyB;YAC7B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAE9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,CAAE,QAAQ,CAAC,OAAuC,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QACvF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAE,QAAQ,CAAC,OAAmC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAC3G,OAAO,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAC3G,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAA0B,EAAE,EAAE;YACjG,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC;gBACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,yBAAyB;YAC7B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YAEhE,uDAAuD;YACvD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACrD,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aACrF,CAAC,CAAC,CAAC;QACR,CAAC;gBAAS,CAAC;YACP,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,OAAO,GAAG,MAAM,WAAW,CAA6C,2BAA2B,CAAC,CAAC;QAE3G,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACvD,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAG,CAAC;QAEpD,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAA0B,EAAE,EAAE;YACjG,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC;gBACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,yBAAyB;YAC7B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAE9D,yEAAyE;YACzE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACrD,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aACnF,CAAC,CAAC,CAAC;QACR,CAAC;gBAAS,CAAC;YACP,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as e,it as t,expect as r,beforeEach as s,afterEach as o,vi as i}from"vitest";import{mkdirSync as a,rmSync as c,existsSync as n,statSync as l}from"fs";import{join as p}from"path";import{tmpdir as f}from"os";e("SecretStore",()=>{let e,y,u;s(async()=>{e=p(f(),`chelper-secret-${Date.now()}-${Math.random().toString(36).slice(2)}`),a(e,{recursive:!0}),y=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,i.resetModules(),u=await import("../lib/secret-store.js")}),o(()=>{void 0!==y?process.env.CHELPER_TEST_HOME=y:delete process.env.CHELPER_TEST_HOME;try{c(e,{recursive:!0,force:!0})}catch{}}),t("returns undefined when no key has been stored",()=>{r(u.secretStore.getApiKey("default")).toBeUndefined(),r(u.secretStore.listProfilesWithKeys()).toEqual([])}),t("round-trips an api key through encrypt + decrypt",()=>{u.secretStore.setApiKey("default","sk-abc-123"),r(u.secretStore.getApiKey("default")).toBe("sk-abc-123");const t=p(e,".chelper","secrets.enc");r(n(t)).toBe(!0)}),t("isolates keys per profile",()=>{u.secretStore.setApiKey("default","key-default"),u.secretStore.setApiKey("alt","key-alt"),r(u.secretStore.getApiKey("default")).toBe("key-default"),r(u.secretStore.getApiKey("alt")).toBe("key-alt"),r(u.secretStore.listProfilesWithKeys().sort()).toEqual(["alt","default"])}),t("produces a stable, non-empty fingerprint for stored keys",()=>{r(u.secretStore.fingerprint("default")).toBe(""),u.secretStore.setApiKey("default","sk-fingerprint-test");const e=u.secretStore.fingerprint("default"),t=u.secretStore.fingerprint("default");r(e).toHaveLength(12),r(e).toBe(t)}),t("removes a key on deleteApiKey",()=>{u.secretStore.setApiKey("default","key-default"),u.secretStore.setApiKey("alt","key-alt"),u.secretStore.deleteApiKey("alt"),r(u.secretStore.getApiKey("alt")).toBeUndefined(),r(u.secretStore.getApiKey("default")).toBe("key-default")}),t("does not write a yaml-readable plaintext file",async()=>{u.secretStore.setApiKey("default","sk-very-secret-value");const t=p(e,".chelper","secrets.enc"),s=l(t);r(s.size).toBeGreaterThan(0);const o=(await import("fs")).readFileSync(t,"utf-8");r(o).not.toContain("sk-very-secret-value");const i=JSON.parse(o);r(i.version).toBe(2),r(typeof i.iv).toBe("string"),r(typeof i.salt).toBe("string"),r(typeof i.auth_tag).toBe("string"),r(typeof i.cipher_text).toBe("string")}),t("migrates inline yaml api_key into encrypted store on first read",async()=>{const t=await import("js-yaml"),s=await import("fs"),o=p(e,".chelper");a(o,{recursive:!0}),s.writeFileSync(p(o,"config.yaml"),t.dump({active_profile:"default",profiles:{default:{api_key:"sk-inline-legacy",base_url:"https://api.example.com",models:{plan:"a",solve:"b",scaffold:"c"}}},presets:{}}),"utf-8"),i.resetModules();const c=await import("../lib/config.js");r(c.configManager.getApiKey()).toBe("sk-inline-legacy");const n=t.load(s.readFileSync(p(o,"config.yaml"),"utf-8"));r(n.profiles.default.api_key).toBeUndefined();const l=await import("../lib/secret-store.js");r(l.secretStore.getApiKey("default")).toBe("sk-inline-legacy")}),t("persists across fresh module instances (cross-instance round-trip)",async()=>{u.secretStore.setApiKey("default","sk-cross-instance"),r(u.secretStore.getApiKey("default")).toBe("sk-cross-instance"),i.resetModules();const e=await import("../lib/secret-store.js");r(e.secretStore).not.toBe(u.secretStore),r(e.secretStore.getApiKey("default")).toBe("sk-cross-instance")}),t("upgrades a legacy v1 envelope to v2 on first read",async()=>{const t=await import("fs"),s=await import("crypto"),{hostname:o,userInfo:c}=await import("os"),n=s.randomBytes(16),l=s.randomBytes(12),f=`${c().username}:${o()}:chelper-secret-store`,y=s.scryptSync(f,n,32,{N:16384,maxmem:67108864}),u=s.createCipheriv("aes-256-gcm",y,l),d=Buffer.from(JSON.stringify({api_keys:{default:"sk-legacy-v1"}}),"utf-8"),S=Buffer.concat([u.update(d),u.final()]),g=u.getAuthTag(),m={version:1,iv:l.toString("base64"),salt:n.toString("base64"),auth_tag:g.toString("base64"),cipher_text:S.toString("base64")},k=p(e,".chelper");a(k,{recursive:!0});const B=p(k,"secrets.enc");t.writeFileSync(B,JSON.stringify(m),"utf-8"),i.resetModules();const v=await import("../lib/secret-store.js");r(v.secretStore.getApiKey("default")).toBe("sk-legacy-v1");const h=JSON.parse(t.readFileSync(B,"utf-8"));r(h.version).toBe(2)}),t("refuses to overwrite an undecryptable envelope on setApiKey",async()=>{const t=await import("fs"),s=p(e,".chelper");a(s,{recursive:!0});const o={version:2,iv:Buffer.alloc(12,1).toString("base64"),salt:Buffer.alloc(16,2).toString("base64"),auth_tag:Buffer.alloc(16,3).toString("base64"),cipher_text:Buffer.alloc(48,4).toString("base64")};t.writeFileSync(p(s,"secrets.enc"),JSON.stringify(o),"utf-8"),i.resetModules();const c=await import("../lib/secret-store.js");r(c.secretStore.getApiKey("default")).toBeUndefined(),r(c.secretStore.getLastDecryptError()).not.toBeNull(),r(()=>c.secretStore.setApiKey("default","sk-new-key")).toThrow(c.SecretStoreDecryptError);const n=JSON.parse(t.readFileSync(p(s,"secrets.enc"),"utf-8"));r(n.cipher_text).toBe(o.cipher_text),c.secretStore.deleteAll(),c.secretStore.setApiKey("default","sk-new-key"),r(c.secretStore.getApiKey("default")).toBe("sk-new-key")})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-store.test.js","sourceRoot":"","sources":["../../src/__tests__/secret-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as t,it as e,expect as o}from"vitest";import{loadSettingsTemplate as s,reloadTemplate as a}from"../lib/settings-template.js";t("settings-template",()=>{e("loads a template object",()=>{a();const t=s();o(t).toBeDefined(),o(typeof t).toBe("object")}),e("returns env settings shape",()=>{a();const t=s();t.env&&o(typeof t.env).toBe("object")}),e("caches the template after first load",()=>{a();const t=s(),e=s();o(t).toBe(e)}),e("reloadTemplate clears the cache",()=>{const t=s();a();const e=s();o(t).not.toBe(e),o(t).toEqual(e)})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-template.test.js","sourceRoot":"","sources":["../../src/__tests__/settings-template.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEnF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,cAAc,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,cAAc,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,mDAAmD;QACnD,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,cAAc,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACjC,cAAc,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as t,it as e,expect as o}from"vitest";import{stripAnsi as r,stringWidth as i,padString as n,createBorderLine as s,createContentLine as h}from"../utils/string-width.js";t("string-width utilities",()=>{t("stripAnsi",()=>{e("removes ANSI color codes",()=>{o(r("[31mred[0m")).toBe("red")}),e("returns plain string unchanged",()=>{o(r("hello")).toBe("hello")}),e("handles multi-segment colored strings",()=>{o(r("[1mbold[22m [36mcyan[39m")).toBe("bold cyan")})}),t("stringWidth",()=>{e("returns 1 per ASCII char",()=>{o(i("hello")).toBe(5)}),e("counts CJK as width 2",()=>{o(i("你好")).toBe(4)}),e("counts emoji as width 2",()=>{o(i("🚀")).toBe(2)}),e("strips ANSI before counting",()=>{o(i("[31mhi[0m")).toBe(2)}),e("returns 0 for zero-width characters",()=>{o(i("")).toBe(0)}),e("handles fullwidth characters",()=>{o(i("A")).toBe(2)})}),t("padString",()=>{e("pads to the right by default",()=>{o(n("hi",5)).toBe("hi ")}),e("pads to the left when align=right",()=>{o(n("hi",5," ","right")).toBe(" hi")}),e("centers text",()=>{o(n("hi",6," ","center")).toBe(" hi ")}),e("does not pad when string already wider than target",()=>{o(n("hello",3)).toBe("hello")}),e("uses custom pad char",()=>{o(n("x",4,"-")).toBe("x---")}),e("counts CJK width when padding",()=>{o(n("你",5)).toBe("你 ")})}),t("createBorderLine",()=>{e("creates a border with corners and fill",()=>{const t=s("+","+","-",5);o(t).toBe("+---+")}),e("does not produce negative width",()=>{const t=s("++","++","-",1);o(t).toBe("++++")})}),t("createContentLine",()=>{e("left-aligns content within borders",()=>{const t=h("hi","|","|",6);o(t).toBe("|hi |")}),e("returns content within total width minus borders",()=>{const t=h("x","|","|",5);o(t).toBe("|x |")})})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-width.test.js","sourceRoot":"","sources":["../../src/__tests__/string-width.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as e,it as o,expect as t,beforeEach as s,afterEach as r,vi as a}from"vitest";import{mkdirSync as d,rmSync as i,readFileSync as l,writeFileSync as n,readdirSync as c}from"fs";import{join as p}from"path";import{tmpdir as m}from"os";import*as g from"js-yaml";import*as f from"@iarna/toml";const u={haiku:"h-model",sonnet:"s-model",opus:"o-model",reasoning:"r-model"},v=(e={})=>({apiKey:"sk-test-123",baseUrl:"https://gateway.example.com",models:u,...e});e("tool adapters",()=>{let c,u,E;s(async()=>{c=p(m(),`chelper-tools-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(c,{recursive:!0}),u=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=c,a.resetModules(),E=await import("../lib/tools/registry.js")}),r(()=>{void 0!==u?process.env.CHELPER_TEST_HOME=u:delete process.env.CHELPER_TEST_HOME;try{i(c,{recursive:!0,force:!0})}catch{}}),o("registry exposes the six expected tools",()=>{t(Object.keys(E.TOOL_ADAPTERS).sort()).toEqual(["atomcode","claude-code","codex","hermes","opencode","openclaw"].sort())}),e("codex",()=>{const e=()=>f.parse(l(p(c,".codex","config.toml"),"utf-8"));o("writes a branded provider, primary model and OPENAI_API_KEY auth",()=>{E.getAdapter("codex").loadPrivateConfig(v());const o=e();t(o.model).toBe("o-model"),t(o.model_provider).toBe("custom"),t(o.model_reasoning_effort).toBe("xhigh"),t(o.model_providers.custom.base_url).toBe("https://gateway.example.com/v1"),t(o.model_providers.custom.name).toBe("custom"),t(o.model_providers.custom.wire_api).toBe("responses"),t(o.model_providers.custom.requires_openai_auth).toBe(!0),t(o.features).toEqual({goals:!0,js_repl:!1}),t(JSON.parse(l(p(c,".codex","auth.json"),"utf-8")).OPENAI_API_KEY).toBe("sk-test-123"),t(E.getAdapter("codex").detectCurrentConfig()).toEqual({apiKey:"sk-test-123"})}),o("preserves foreign providers on load and unload",()=>{const o=E.getAdapter("codex");d(p(c,".codex"),{recursive:!0});const s=f.stringify({model_providers:{other:{base_url:"https://other"}}});n(p(c,".codex","config.toml"),s,"utf-8"),o.loadPrivateConfig(v()),t(e().model_providers.other.base_url).toBe("https://other"),o.unloadPrivateConfig();const r=e();t(r.model_providers.custom).toBeUndefined(),t(r.model_providers.other.base_url).toBe("https://other"),t(r.model_provider).toBeUndefined()})}),e("atomcode",()=>{const e=()=>f.parse(l(p(c,".atomcode","config.toml"),"utf-8"));o("writes an openai provider with key and model",()=>{const o=E.getAdapter("atomcode");o.loadPrivateConfig(v());const s=e();t(s.default_provider).toBe("VibeAPI"),t(s.providers.VibeAPI.type).toBe("openai"),t(s.providers.VibeAPI.api_key).toBe("sk-test-123"),t(s.providers.VibeAPI.model).toBe("o-model"),t(s.providers.VibeAPI.base_url).toBe("https://gateway.example.com/v1"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e().providers?.VibeAPI).toBeUndefined()})}),e("openclaw",()=>{const e=()=>JSON.parse(l(p(c,".openclaw","openclaw.json"),"utf-8"));o("writes provider and agents.defaults.model.primary",()=>{const o=E.getAdapter("openclaw");o.loadPrivateConfig(v());const s=e();t(s.models.providers.vibeapi.apiKey).toBe("sk-test-123"),t(s.models.providers.vibeapi.baseUrl).toBe("https://gateway.example.com/v1"),t(s.models.providers.vibeapi.models[0].id).toBe("o-model"),t(s.agents.defaults.model.primary).toBe("vibeapi/o-model"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig();const r=e();t(r.models.providers.vibeapi).toBeUndefined(),t(r.agents.defaults.model.primary).toBeUndefined()})}),e("hermes",()=>{const e=()=>l(p(c,".hermes",".env"),"utf-8");o("writes config.yaml model block and .env api key",()=>{const o=E.getAdapter("hermes");o.loadPrivateConfig(v());const s=g.load(l(p(c,".hermes","config.yaml"),"utf-8"));t(s.model.provider).toBe("custom"),t(s.model.base_url).toBe("https://gateway.example.com/v1"),t(s.model.default).toBe("o-model"),t(e()).toContain("VIBEAPI_API_KEY=sk-test-123"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e()).not.toContain("sk-test-123")})}),o("withV1 does not double-append a version suffix",()=>{E.getAdapter("codex").loadPrivateConfig(v({baseUrl:"https://gw.example.com/v1"}));const e=f.parse(l(p(c,".codex","config.toml"),"utf-8"));t(e.model_providers.custom.base_url).toBe("https://gw.example.com/v1")})}),e("config backups before write",()=>{let e,g,u,E;const _=(e,o)=>c(e).filter(e=>e.startsWith(`${o}.bak-`));s(async()=>{e=p(m(),`chelper-bak-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),g=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),u=await import("../lib/tools/registry.js"),E=await import("../lib/tools/backup.js")}),r(()=>{void 0!==g?process.env.CHELPER_TEST_HOME=g:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("does not back up on the first write (no original file)",()=>{u.getAdapter("codex").loadPrivateConfig(v()),t(_(p(e,".codex"),"config.toml")).toHaveLength(0)}),o("snapshots the original before overwriting on a second load",()=>{const o=u.getAdapter("codex");o.loadPrivateConfig(v({baseUrl:"https://first.example.com"})),o.loadPrivateConfig(v({baseUrl:"https://second.example.com"}));const s=p(e,".codex"),r=_(s,"config.toml");t(r).toHaveLength(1);const a=f.parse(l(p(s,r[0]),"utf-8"));t(a.model_providers.custom.base_url).toBe("https://first.example.com/v1")}),o("keeps at most 10 backups per file",()=>{const o=p(e,"sample.json");n(o,"v0","utf-8");for(let e=1;e<=15;e++)E.backupBeforeWrite(o),n(o,`v${e}`,"utf-8");t(_(e,"sample.json").length).toBe(E.MAX_TOOL_BACKUPS)})}),e("non-Claude tools default to gpt-5.5",()=>{let e,n,c,u;const v=()=>({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...u}});s(async()=>{e=p(m(),`chelper-def-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),n=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),c=await import("../lib/tools/registry.js"),({DEFAULT_MODELS:u}=await import("../lib/config.js"))}),r(()=>{void 0!==n?process.env.CHELPER_TEST_HOME=n:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("codex uses gpt-5.5 when models are default",()=>{c.getAdapter("codex").loadPrivateConfig(v());const o=f.parse(l(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("gpt-5.5")}),o("atomcode uses gpt-5.5 when models are default",()=>{c.getAdapter("atomcode").loadPrivateConfig(v());const o=f.parse(l(p(e,".atomcode","config.toml"),"utf-8"));t(o.providers.VibeAPI.model).toBe("gpt-5.5")}),o("openclaw uses gpt-5.5 when models are default",()=>{c.getAdapter("openclaw").loadPrivateConfig(v());const o=JSON.parse(l(p(e,".openclaw","openclaw.json"),"utf-8"));t(o.models.providers.vibeapi.models[0].id).toBe("gpt-5.5"),t(o.agents.defaults.model.primary).toBe("vibeapi/gpt-5.5")}),o("hermes uses gpt-5.5 when models are default",()=>{c.getAdapter("hermes").loadPrivateConfig(v());const o=g.load(l(p(e,".hermes","config.yaml"),"utf-8"));t(o.model.default).toBe("gpt-5.5")}),o("honors a custom model over the gpt-5.5 default",()=>{c.getAdapter("codex").loadPrivateConfig({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...u,opus:"my-custom-model"}});const o=f.parse(l(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("my-custom-model")})}),e("flexible model configuration",()=>{let e,l,n;s(async()=>{e=p(m(),`chelper-models-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),l=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),n=await import("../lib/config.js")}),r(()=>{void 0!==l?process.env.CHELPER_TEST_HOME=l:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("preserves custom (non-canonical) model slots",()=>{n.configManager.setModels({...u,vision:"vision-model"});const e=n.configManager.getModels();t(e.opus).toBe("o-model"),t(e.vision).toBe("vision-model")}),o("merges per-tool overrides over base models",()=>{n.configManager.setModels(u),n.configManager.setToolModel("codex",{opus:"codex-only-model"}),t(n.configManager.getModelsForTool("codex").opus).toBe("codex-only-model"),t(n.configManager.getModelsForTool("hermes").opus).toBe("o-model"),t(n.configManager.getModels().opus).toBe("o-model")}),o("clears a per-tool override when set to null",()=>{n.configManager.setModels(u),n.configManager.setToolModel("codex",{opus:"x"}),n.configManager.setToolModel("codex",null),t(n.configManager.getModelsForTool("codex").opus).toBe("o-model")})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-adapters.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-adapters.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as o,it as e,expect as n,vi as t}from"vitest";t.mock("child_process",()=>({execSync:t.fn()}));import{execSync as r}from"child_process";import{toolManager as s,SUPPORTED_TOOLS as l,ToolManager as a}from"../lib/tool-manager.js";o("ToolManager",()=>{e("exports a singleton",()=>{n(s).toBe(a.getInstance())}),o("SUPPORTED_TOOLS",()=>{e("lists claude-code and opencode",()=>{n(l["claude-code"]).toBeDefined(),n(l.opencode).toBeDefined()}),e("claude-code entry has expected shape",()=>{const o=l["claude-code"];n(o.command).toBe("claude"),n(o.installCommand).toMatch(/claude-code/),n(o.displayName).toBe("Claude Code")}),e("opencode entry has expected shape",()=>{const o=l.opencode;n(o.command).toBe("opencode"),n(o.installCommand).toMatch(/opencode-ai/),n(o.displayName).toBe("OpenCode")})}),o("isToolInstalled",()=>{e("returns false for unknown tools",()=>{n(s.isToolInstalled("does-not-exist")).toBe(!1)}),e("returns true when probe command succeeds",()=>{r.mockReturnValue(Buffer.from("/path")),n(s.isToolInstalled("claude-code")).toBe(!0)}),e("returns false when probe command throws",()=>{r.mockImplementation(()=>{throw new Error("not found")}),n(s.isToolInstalled("claude-code")).toBe(!1)})}),o("isGitInstalled",()=>{e("returns false when probe throws",()=>{r.mockImplementation(()=>{throw new Error("not found")}),n(s.isGitInstalled()).toBe(!1)}),e("returns true when probe succeeds",()=>{r.mockReturnValue(Buffer.from("/usr/bin/git")),n(s.isGitInstalled()).toBe(!0)})}),o("getSupportedTools",()=>{e("returns visible tools only",()=>{const o=s.getSupportedTools();n(o.length).toBeGreaterThan(0),o.forEach(o=>n(o.hidden).not.toBe(!0))})}),o("getInstalledTools",()=>{e("filters tools whose probe succeeds",()=>{r.mockImplementation(o=>{if(o.includes("claude"))return Buffer.from("/c/claude");throw new Error("not found")});const o=s.getInstalledTools();n(o).toContain("claude-code"),n(o).not.toContain("opencode")})}),o("error paths",()=>{e("updateToolConfig throws on unknown tool",()=>{n(()=>s.updateToolConfig("unknown",{})).toThrow()}),e("loadPrivateConfig throws on unknown tool",()=>{n(()=>s.loadPrivateConfig("unknown","k",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"})).toThrow()}),e("unloadPrivateConfig throws on unknown tool",()=>{n(()=>s.unloadPrivateConfig("unknown")).toThrow()})})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-manager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe as o,it as n,expect as t}from"vitest";import{Wizard as e,wizard as i}from"../lib/wizard.js";o("Wizard",()=>{n("exports a singleton instance",()=>{t(i).toBe(e.getInstance())}),n("singleton is idempotent",()=>{t(e.getInstance()).toBe(e.getInstance())}),n("exposes expected interactive entry points",()=>{t(typeof i.run).toBe("function"),t(typeof i.runFirstTimeSetup).toBe("function"),t(typeof i.showMainMenu).toBe("function"),t(typeof i.configLanguage).toBe("function"),t(typeof i.configApiKey).toBe("function"),t(typeof i.configModels).toBe("function"),t(typeof i.selectAndConfigureTool).toBe("function"),t(typeof i.loadConfig).toBe("function"),t(typeof i.unloadConfig).toBe("function")}),n("printBanner does not throw",()=>{const o=console.log;console.log=()=>{};try{t(()=>i.printBanner()).not.toThrow()}finally{console.log=o}}),n("createBox does not throw on plain ASCII",()=>{const o=console.log;console.log=()=>{};try{t(()=>i.createBox("Hello")).not.toThrow()}finally{console.log=o}}),n("createBox handles CJK content (width-aware)",()=>{const o=console.log;console.log=()=>{};try{t(()=>i.createBox("你好 World")).not.toThrow()}finally{console.log=o}}),n("showOperationHints does not throw",()=>{const o=console.log;console.log=()=>{};try{t(()=>i.showOperationHints()).not.toThrow()}finally{console.log=o}})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.test.js","sourceRoot":"","sources":["../../src/__tests__/wizard.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"inquirer";import
|
|
1
|
+
import o from"chalk";import e from"inquirer";import t from"ora";import{configManager as r}from"../lib/config.js";import{i18n as i}from"../lib/i18n.js";import{validateApiKey as a}from"../lib/api-validator.js";import{toolManager as n}from"../lib/tool-manager.js";import{isJsonMode as d,isNonInteractive as c,shouldAutoConfirm as l,emitJson as s,isColorEnabled as u}from"../lib/runtime-options.js";const m=["claude","claude-code","opencode"];function p(o){return u()?o:o=>o}function f(o,e=o=>o){d()||console.log(p(e)(o))}async function k(e){if(d()){const o=await a(e);return o.valid?(r.setApiKey(e),void s({ok:!0,action:"auth"})):void s({ok:!1,action:"auth",error:o.error||"invalid_api_key"})}const n=t(i.t("wizard.validating_api_key")).start(),c=await a(e);c.valid?(r.setApiKey(e),n.succeed(p(o.green)(i.t("auth.saved")))):"invalid_api_key"===c.error?n.fail(p(o.red)(i.t("wizard.api_key_invalid"))):n.fail(p(o.red)(i.t("wizard.api_key_network_error")))}export async function authCommand(t){0!==t.length?"revoke"!==t[0]?"reload"!==t[0]?await k(t[0]):await async function(e){const t=e.toLowerCase();if(!m.includes(t))return d()?void s({ok:!1,action:"reload",error:"unsupported_tool",tool:e}):void f(i.t("auth.reload_tool_not_supported",{tool:e}),o.red);const a=r.getApiKey();if(!a)return d()?void s({ok:!1,action:"reload",error:"missing_api_key",tool:e}):void f(i.t("auth.reload_missing_config"),o.red);const c="opencode"===t?"OpenCode":"Claude Code",l="opencode"===t?"opencode":"claude-code";d()||f(i.t("auth.reloading",{tool:c}),o.blue);try{n.loadPrivateConfig(l,a,r.getModelsForTool(l)),d()?s({ok:!0,action:"reload",tool:l}):f(i.t("auth.reloaded",{tool:c}),o.green)}catch(e){if(d())return void s({ok:!1,action:"reload",error:"reload_failed",message:e instanceof Error?e.message:String(e)});f(i.t("auth.reload_failed"),o.red),e instanceof Error&&f(e.message,o.red)}}(t[1]||""):await async function(){if(!l()){const{confirm:t}=await e.prompt([{type:"confirm",name:"confirm",message:i.t("auth.revoke_confirm"),default:!1}]);if(!t)return d()?void s({ok:!1,action:"revoke",cancelled:!0}):void f(i.t("auth.not_revoked"),o.yellow)}r.revokeApiKey(),d()?s({ok:!0,action:"revoke"}):f(i.t("auth.revoked"),o.green)}():await async function(){if(c())return d()?void s({ok:!1,action:"auth",error:"token_required"}):void f(i.t("runtime.non_interactive_required_token"),o.red);const{token:t}=await e.prompt([{type:"password",name:"token",message:i.t("auth.token_prompt"),validate:o=>!(!o||0===o.trim().length)||i.t("auth.token_required")}]);await k(t.trim())}()}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"chalk";import{configManager as o}from"../lib/config.js";import{i18n as n}from"../lib/i18n.js";import{isJsonMode as s,emitJson as r,isColorEnabled as t}from"../lib/runtime-options.js";function l(e){return t()?e:e=>e}export async function benchCommand(t,m=function(e){let o=5;for(let n=0;n<e.length;n+=1)if("--samples"===e[n]&&e[n+1]){const s=Number.parseInt(e[n+1],10);Number.isFinite(s)&&s>0&&s<=50&&(o=s)}return{samples:o}}(t)){const i=o.getApiKey();if(!i)return s()?void r({ok:!1,error:"missing_api_key"}):void console.log(l(e.red)(n.t("bench.missing_api_key")));const a=m.fetchFn||fetch,c=o.getBaseUrl(),h=`${c}/v1/models`,g={samples:m.samples,errors:0,durations:[]};s()||console.log(l(e.gray)(n.t("bench.running")));for(let e=0;e<m.samples;e+=1){const e=Date.now();try{if(!(await a(h,{method:"GET",headers:{Authorization:`Bearer ${i}`,Accept:"application/json"}})).ok){g.errors+=1;continue}g.durations.push(Date.now()-e)}catch{g.errors+=1}}const p=function(e){const o=e.durations.slice().sort((e,o)=>e-o),n=o.reduce((e,o)=>e+o,0),s=0===o.length?0:o.length%2==0?(o[o.length/2-1]+o[o.length/2])/2:o[Math.floor(o.length/2)],r=0===o.length?0:n/o.length;return{samples:e.samples,completed:o.length,errors:e.errors,median_ms:Math.round(s),average_ms:Math.round(r),min_ms:o[0]||0,max_ms:o[o.length-1]||0}}(g),u=g.errors===m.samples;s()?r({ok:!u,base_url:c,...p}):(console.log("\n"+l(e.bold)(n.t("bench.result_title"))),console.log(` ${n.t("bench.samples")}: ${p.samples}`),console.log(` ${n.t("bench.median")}: ${p.median_ms}ms`),console.log(` ${n.t("bench.average")}: ${p.average_ms}ms`),console.log(` ${n.t("bench.min")}: ${p.min_ms}ms`),console.log(` ${n.t("bench.max")}: ${p.max_ms}ms`),console.log(` ${n.t("bench.errors")}: ${p.errors}`))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bench.js","sourceRoot":"","sources":["../../src/commands/bench.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function completionCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i18n as n}from"../lib/i18n.js";import{isJsonMode as e,emitJson as o}from"../lib/runtime-options.js";const c=["init","lang","auth","doctor","status","logs","completion","update","bench","config","enter"],s=["profile","preset","backup","claude-code","opencode"],r=["list","create","use","delete"],l=["list","save","use","delete"],t=["list","create","restore"],i=["revoke","reload"],p=["show","set"],m=["path","list","tail"],a=["bash","zsh","fish"],u=["--base","--non-interactive","--json","--yes","--dry-run","--no-color","--help","--version"];export async function completionCommand(h){const _=(h[0]||"").toLowerCase();if(!a.includes(_))return e()?void o({ok:!1,error:"unsupported_shell",shell:_}):void console.log(n.t("completion.unsupported_shell",{shell:_}));const $="bash"===_?`# chelper bash completion\n_chelper_completions() {\n local cur prev\n COMPREPLY=()\n cur="\${COMP_WORDS[COMP_CWORD]}"\n prev="\${COMP_WORDS[COMP_CWORD-1]}"\n\n case "\${prev}" in\n chelper)\n COMPREPLY=( $(compgen -W "${c.join(" ")} ${u.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n config)\n COMPREPLY=( $(compgen -W "${s.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n profile)\n COMPREPLY=( $(compgen -W "${r.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n preset)\n COMPREPLY=( $(compgen -W "${l.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n backup)\n COMPREPLY=( $(compgen -W "${t.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n auth)\n COMPREPLY=( $(compgen -W "${i.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n lang)\n COMPREPLY=( $(compgen -W "${p.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n logs)\n COMPREPLY=( $(compgen -W "${m.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n completion)\n COMPREPLY=( $(compgen -W "${a.join(" ")}" -- "\${cur}") )\n return 0\n ;;\n esac\n\n if [[ "\${cur}" == --* ]]; then\n COMPREPLY=( $(compgen -W "${u.join(" ")}" -- "\${cur}") )\n return 0\n fi\n}\ncomplete -F _chelper_completions chelper\n`:"zsh"===_?`#compdef chelper\n_chelper() {\n local -a commands subcommands\n local context state line\n\n _arguments -C \\\n '(-h --help)'{-h,--help}'[Show help]' \\\n '(-v --version)'{-v,--version}'[Show version]' \\\n '--base[Custom API base URL]:url:' \\\n '--non-interactive[Disable interactive prompts]' \\\n '--json[Emit JSON output]' \\\n '(-y --yes)'{-y,--yes}'[Auto-confirm prompts]' \\\n '--dry-run[Show planned changes without writing]' \\\n '--no-color[Disable colored output]' \\\n '1:command:->command' \\\n '*::arg:->args'\n\n case $state in\n command)\n commands=(\n${c.map(n=>` '${n}:chelper ${n}'`).join("\n")}\n )\n _describe 'command' commands\n ;;\n args)\n case $line[1] in\n config)\n subcommands=(${s.map(n=>`'${n}'`).join(" ")})\n _describe 'config sub' subcommands\n ;;\n auth) _values 'auth sub' ${i.join(" ")} ;;\n lang) _values 'lang sub' ${p.join(" ")} ;;\n logs) _values 'logs action' ${m.join(" ")} ;;\n completion) _values 'shell' ${a.join(" ")} ;;\n esac\n ;;\n esac\n}\ncompdef _chelper chelper\n`:`# chelper fish completion\ncomplete -c chelper -n "__fish_use_subcommand" -a "${c.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from config" -a "${s.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from profile" -a "${r.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from preset" -a "${l.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from backup" -a "${t.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from auth" -a "${i.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from lang" -a "${p.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from logs" -a "${m.join(" ")}"\ncomplete -c chelper -n "__fish_seen_subcommand_from completion" -a "${a.join(" ")}"\ncomplete -c chelper -l base -d 'Custom API base URL'\ncomplete -c chelper -l non-interactive -d 'Disable interactive prompts'\ncomplete -c chelper -l json -d 'Emit JSON output'\ncomplete -c chelper -l yes -s y -d 'Auto-confirm prompts'\ncomplete -c chelper -l dry-run -d 'Show planned changes without writing'\ncomplete -c chelper -l no-color -d 'Disable colored output'\n`;e()?o({shell:_,script:$}):(console.log($),"bash"===_?console.log("# "+n.t("completion.instructions_bash")):"zsh"===_?console.log("# "+n.t("completion.instructions_zsh")):console.log("# "+n.t("completion.instructions_fish")))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"inquirer";import e from"chalk";import{wizard as t}from"../lib/wizard.js";import{toolManager as n,SUPPORTED_TOOLS as i}from"../lib/tool-manager.js";import{i18n as l}from"../lib/i18n.js";import{configManager as r,DEFAULT_PROFILE_NAME as s}from"../lib/config.js";import{confirmAction as c,applyOrDryRun as a}from"../lib/confirm.js";const d=/^[a-zA-Z0-9._-]+$/;function g(o,e){const t=(o||"").trim();if(!t||!d.test(t))throw new Error(l.t(`config.${e}_invalid_name`,{name:t||"<empty>"}));return t}function f(o,t){console.log("\n"+e.bold(o)),0!==t.length?t.forEach(o=>console.log(" "+o)):console.log(e.gray(" ("+l.t("config.empty_list")+")"))}async function m(s,c){if(i[s]){if(!n.isToolInstalled(s)){if(c.nonInteractive)return void console.log(e.yellow(l.t("wizard.tool_not_installed",{tool:i[s].displayName})));console.log(e.yellow(l.t("wizard.tool_not_installed",{tool:i[s].displayName})));const{shouldInstall:t}=await o.prompt([{type:"confirm",name:"shouldInstall",message:l.t("wizard.install_tool_confirm"),default:!0}]);if(!t)return void console.log(e.yellow(l.t("wizard.install_skipped")));try{await n.installTool(s)}catch(o){return console.error(e.red(l.t("install.install_failed_detail"))),void(o instanceof Error&&o.message&&console.error(e.gray(o.message)))}}if(c.nonInteractive){const o=r.getApiKey();return o?(n.loadPrivateConfig(s,o,r.getModelsForTool(s)),void console.log(e.green(l.t("config.tool_config_loaded",{tool:i[s].displayName})))):void console.log(e.red(l.t("wizard.api_key_required")))}await t.showToolMenu(s)}else console.log(e.red(l.t("config.unknown_tool",{tool:s})))}export async function configCommand(t){const{positional:n,options:u}=function(o){const e=[],t={};for(const n of o)"--non-interactive"===n||"-y"===n?t.nonInteractive=!0:e.push(n);return{positional:e,options:t}}(t),p=n[0],_=n.slice(1);if(p){switch(p){case"profile":return void await async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.getActiveProfileName(),t=r.listProfiles().map(t=>{const n=t===o;return`${n?e.green("●"):e.gray("○")} ${t}${n?e.gray(" ("+l.t("config.profile_active_label")+")"):""}`});return void f(l.t("config.profile_list_title"),t)}if("create"===t){const o=g(n,"profile");return r.listProfiles().includes(o)?void console.log(e.yellow(l.t("config.profile_exists",{name:o}))):(r.createProfile(o),void console.log(e.green(l.t("config.profile_created",{name:o}))))}if("use"===t){const o=g(n,"profile");return r.setActiveProfile(o),void console.log(e.green(l.t("config.profile_activated",{name:o})))}if("delete"===t||"remove"===t){const o=g(n,"profile");return o===s&&1===r.listProfiles().length?void console.log(e.yellow(l.t("config.profile_cannot_delete_last"))):void await a({description:l.t("config.profile_delete_dry_run",{name:o}),json:{action:"profile_delete",name:o},apply:async()=>{await c({message:l.t("config.profile_delete_confirm",{name:o}),defaultValue:!1})?(r.deleteProfile(o),console.log(e.green(l.t("config.profile_deleted",{name:o})))):console.log(e.yellow(l.t("config.profile_delete_aborted")))}})}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"preset":return void function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=Object.entries(r.getCustomPresets()).map(([o,t])=>`${e.cyan(o)} ${e.gray(`H:${t.models.haiku} S:${t.models.sonnet} O:${t.models.opus}`)}`);return void f(l.t("config.preset_list_title"),o)}if("save"===t){const o=g(n,"preset");return r.saveCustomPreset(o,r.getModels()),void console.log(e.green(l.t("config.preset_saved",{name:o})))}if("use"===t||"apply"===t){const o=g(n,"preset"),t=r.getCustomPresets()[o];return t?(r.setModels(t.models),void console.log(e.green(l.t("config.preset_applied",{name:o})))):void console.log(e.red(l.t("config.preset_not_found",{name:o})))}if("delete"===t||"remove"===t){const o=g(n,"preset");return r.deleteCustomPreset(o),void console.log(e.green(l.t("config.preset_deleted",{name:o})))}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"tool-model":return void function(o){const t=o[0];if(!t||"list"===t){const o=r.getProfile().tool_models||{},t=Object.entries(o).map(([o,t])=>{const n=Object.entries(t).map(([o,e])=>`${o}=${e}`).join(" ");return`${e.cyan(o)} ${e.gray(n)}`});return void f(l.t("config.tool_model_list_title"),t)}if("set"===t){const t=(o[1]||"").trim(),n=o.length>=4?(o[2]||"").trim():"opus",s=(o.length>=4?o[3]:o[2]||"").trim();return i[t]?s&&d.test(n)?(r.setToolModel(t,{[n]:s}),void console.log(e.green(l.t("config.tool_model_set",{tool:t,slot:n,model:s})))):void console.log(e.red(l.t("config.tool_model_usage"))):void console.log(e.red(l.t("config.unknown_tool",{tool:t})))}if("clear"===t||"remove"===t){const t=(o[1]||"").trim();return i[t]?(r.setToolModel(t,null),void console.log(e.green(l.t("config.tool_model_cleared",{tool:t})))):void console.log(e.red(l.t("config.unknown_tool",{tool:t})))}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"backup":return void await function(o){return async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.listBackups().map(o=>{const t=new Date(o.mtimeMs).toISOString();return`${e.cyan(o.name)} ${e.gray(t)}`});return void f(l.t("config.backup_list_title"),o)}if("create"===t||"snapshot"===t){const o=r.createBackup(n);return void console.log(e.green(l.t("config.backup_created",{path:o})))}if("restore"===t)return n?void await a({description:l.t("config.backup_restore_dry_run",{name:n}),json:{action:"backup_restore",name:n},apply:async()=>{await c({message:l.t("config.backup_restore_confirm",{name:n}),defaultValue:!1})?(r.restoreBackup(n),console.log(e.green(l.t("config.backup_restored",{name:n})))):console.log(e.yellow(l.t("config.backup_restore_aborted")))}}):void console.log(e.red(l.t("config.backup_restore_missing_name")));console.log(e.red(l.t("config.unknown_action",{action:t})))}(o)}(_)}"claude-code"!==p&&"claude-code"!==_[0]?i[p]?await m(p,u):(console.error(e.red(l.t("config.unknown_command",{command:p}))),console.log(e.gray(l.t("config.usage_hint"))),Object.values(i).forEach(o=>{console.log(e.gray(` - ${o.name}: ${o.displayName}`))})):await m("claude-code",u)}else await async function(t){if(t.nonInteractive)return void console.log(e.red(l.t("config.requires_argument")));const{selectedTool:n}=await o.prompt([{type:"list",name:"selectedTool",message:l.t("wizard.select_tool"),choices:Object.values(i).map(o=>({name:`${o.displayName} (${o.name})`,value:o.name}))}]);await m(n,t)}(u)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"chalk";import e from"ora";import{configManager as t}from"../lib/config.js";import{toolManager as s}from"../lib/tool-manager.js";import{i18n as n}from"../lib/i18n.js";import{validateApiKey as l}from"../lib/api-validator.js";export async function doctorCommand(){const a=e(n.t("doctor.checking")).start(),r=[];a.text=n.t("doctor.check_path");try{const o=process.env.PATH||"";r.push({name:"PATH",passed:o.length>0,message:o.length>0?void 0:"PATH is empty"})}catch(o){r.push({name:"PATH",passed:!1,message:String(o)})}a.text=n.t("doctor.check_api_key_network");const i=t.getApiKey();if(i){const e=await l(i);e.valid?r.push({name:"API Key & Network",passed:!0}):"invalid_api_key"===e.error?r.push({name:"API Key & Network",passed:!1,message:o.yellow(n.t("doctor.api_key_invalid"))}):r.push({name:"API Key & Network",passed:!1,message:o.yellow(n.t("doctor.network_error"))})}else r.push({name:"API Key & Network",passed:!1,message:o.yellow(n.t("doctor.api_key_missing"))});if("win32"===process.platform&&s.isToolInstalled("claude-code")){a.text=n.t("doctor.check_git_env");const e=s.isGitInstalled();r.push({name:"Git Environment",passed:e,message:e?void 0:o.yellow(n.t("doctor.git_not_installed"))})}a.text=n.t("doctor.check_tools");const c=s.getInstalledTools();r.push({name:"Installed Tools",passed:c.length>0,message:c.length>0?`${c.map(o=>s.getSupportedTools().find(e=>e.name===o)?.displayName||o).join(", ")}`:o.yellow(n.t("doctor.no_tools_installed"))}),a.stop(),console.log("\n"+o.bold(n.t("doctor.results_title"))+"\n");for(const e of r){const t=e.passed?o.green("✓"):o.red("✗"),s=e.passed?o.green("PASS"):o.red("FAIL");console.log(`${t} ${e.name}: ${s}`),e.message&&console.log(` ${e.message}`)}r.every(o=>o.passed)?console.log("\n"+o.green.bold(n.t("doctor.all_good"))):(console.log("\n"+o.yellow.bold(n.t("doctor.suggestions"))),console.log(o.gray(" - "+n.t("doctor.suggestion_auth"))),console.log(o.gray(" - "+n.t("doctor.suggestion_interactive"))))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -3,3 +3,7 @@ export { authCommand } from './auth.js';
|
|
|
3
3
|
export { doctorCommand } from './doctor.js';
|
|
4
4
|
export { configCommand } from './config.js';
|
|
5
5
|
export { statusCommand } from './status.js';
|
|
6
|
+
export { logsCommand } from './logs.js';
|
|
7
|
+
export { completionCommand } from './completion.js';
|
|
8
|
+
export { benchCommand } from './bench.js';
|
|
9
|
+
export { updateCommand } from './update.js';
|
package/dist/commands/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{langCommand}from"./lang.js";export{authCommand}from"./auth.js";export{doctorCommand}from"./doctor.js";export{configCommand}from"./config.js";export{statusCommand}from"./status.js";
|
|
1
|
+
export{langCommand}from"./lang.js";export{authCommand}from"./auth.js";export{doctorCommand}from"./doctor.js";export{configCommand}from"./config.js";export{statusCommand}from"./status.js";export{logsCommand}from"./logs.js";export{completionCommand}from"./completion.js";export{benchCommand}from"./bench.js";export{updateCommand}from"./update.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/commands/lang.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{configManager as o}from"../lib/config.js";import{i18n as n}from"../lib/i18n.js";import l from"chalk";export async function langCommand(
|
|
1
|
+
import{configManager as o}from"../lib/config.js";import{i18n as n}from"../lib/i18n.js";import l from"chalk";import{isJsonMode as e,emitJson as a,isColorEnabled as t}from"../lib/runtime-options.js";function i(o){return t()?o:o=>o}export async function langCommand(t){if(0===t.length||"show"===t[0]){const t=o.getLang(),r=n.getAvailableLocales();return e()?void a({current:t,available:r}):(console.log(`${n.t("lang.current")}: ${i(l.cyan)(t)}`),void console.log(`${n.t("lang.available")}: ${r.join(", ")}`))}if("set"===t[0]&&t.length>=2){const r=t[1],g=n.getAvailableLocales();if(!g.includes(r))return e()?void a({ok:!1,error:"invalid_locale",requested:r,available:g}):(console.error(i(l.red)(n.t("lang.invalid",{lang:r}))),void console.log(`${n.t("lang.available")}: ${g.join(", ")}`));const s=o.getLang();return o.setLang(r),n.loadFromConfig(r),e()?void a({ok:!0,from:s,to:r}):void console.log(i(l.green)(n.t("lang.changed",{from:s,to:r})))}console.log(n.t("lang.show_usage")),console.log(n.t("lang.set_usage"))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/commands/lang.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/commands/lang.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function logsCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"chalk";import{readdirSync as t,statSync as i,readFileSync as n,existsSync as r}from"fs";import{join as e}from"path";import{logger as s}from"../utils/logger.js";import{i18n as l}from"../lib/i18n.js";import{isJsonMode as f,emitJson as c,isColorEnabled as g}from"../lib/runtime-options.js";const m=/^\d{4}-\d{2}-\d{2}\.log$/;function a(o){return g()?o:o=>o}export async function logsCommand(g){const u=g[0]||"list",d=s.getLogDir();if("path"===u)return f()?void c({log_dir:d}):void console.log(l.t("logs.directory",{dir:d}));const p=function(){const o=s.getLogDir();return r(o)?t(o).filter(o=>m.test(o)).map(t=>{const n=e(o,t),r=i(n);return{name:t,path:n,size:r.size,mtimeMs:r.mtimeMs}}).sort((o,t)=>t.mtimeMs-o.mtimeMs):[]}();if("list"!==u){if("tail"===u){const t=g[1],e=t?p.find(o=>o.name===t):p[0];if(!e)return f()?void c({ok:!1,error:"no_log_file"}):void console.log(a(o.gray)(l.t("logs.no_files")));const s=function(o,t=16384){if(!r(o))return"";const e=i(o),s=n(o);if(e.size<=t)return s.toString("utf-8");let l=e.size-t;for(;l<e.size&&128==(192&s[l]);)l+=1;return s.subarray(l).toString("utf-8")}(e.path);return f()?void c({file:e.name,path:e.path,content:s}):void console.log(s)}f()?c({ok:!1,error:"unknown_action",action:u}):console.log(a(o.red)(l.t("config.unknown_action",{action:u})))}else{if(f())return void c({log_dir:d,files:p});if(console.log("\n"+a(o.bold)(l.t("logs.files_title"))),0===p.length)return void console.log(" "+a(o.gray)(l.t("logs.no_files")));for(const t of p){const i=new Date(t.mtimeMs).toISOString();console.log(` ${a(o.cyan)(t.name)} ${a(o.gray)(`${t.size}B`)} ${a(o.gray)(i)}`)}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|