ccjk 12.0.0 → 12.0.2
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/dist/chunks/agent-teams.mjs +17 -18
- package/dist/chunks/agent.mjs +105 -102
- package/dist/chunks/agents.mjs +87 -77
- package/dist/chunks/api-cli.mjs +41 -27
- package/dist/chunks/api-providers.mjs +2 -4
- package/dist/chunks/api.mjs +22 -11
- package/dist/chunks/auto-bootstrap.mjs +3 -5
- package/dist/chunks/auto-init.mjs +3 -4
- package/dist/chunks/auto-updater.mjs +103 -91
- package/dist/chunks/banner.mjs +41 -42
- package/dist/chunks/boost.mjs +30 -31
- package/dist/chunks/ccjk-agents.mjs +6 -9
- package/dist/chunks/ccjk-all.mjs +703 -85
- package/dist/chunks/ccjk-config.mjs +6 -6
- package/dist/chunks/ccjk-hooks.mjs +20 -9
- package/dist/chunks/ccjk-mcp.mjs +64 -52
- package/dist/chunks/ccjk-setup.mjs +35 -25
- package/dist/chunks/ccjk-skills.mjs +51 -41
- package/dist/chunks/ccr.mjs +42 -32
- package/dist/chunks/ccu.mjs +16 -12
- package/dist/chunks/check-updates.mjs +30 -19
- package/dist/chunks/claude-code-config-manager.mjs +25 -10
- package/dist/chunks/claude-code-incremental-manager.mjs +65 -51
- package/dist/chunks/claude-config.mjs +2 -2
- package/dist/chunks/claude-wrapper.mjs +9 -6
- package/dist/chunks/cleanup-migration.mjs +1 -1
- package/dist/chunks/cli-hook.mjs +10 -3
- package/dist/chunks/cloud-sync.mjs +1 -1
- package/dist/chunks/codex-config-switch.mjs +58 -45
- package/dist/chunks/codex-provider-manager.mjs +29 -16
- package/dist/chunks/codex-uninstaller.mjs +5 -6
- package/dist/chunks/codex.mjs +89 -89
- package/dist/chunks/commands.mjs +28 -29
- package/dist/chunks/commands2.mjs +4 -3
- package/dist/chunks/commit.mjs +42 -23
- package/dist/chunks/completion.mjs +46 -47
- package/dist/chunks/config-consolidator.mjs +12 -13
- package/dist/chunks/config-switch.mjs +66 -53
- package/dist/chunks/config.mjs +10 -10
- package/dist/chunks/config2.mjs +53 -42
- package/dist/chunks/config3.mjs +107 -93
- package/dist/chunks/constants.mjs +2 -4
- package/dist/chunks/context-loader.mjs +5 -4
- package/dist/chunks/context.mjs +77 -76
- package/dist/chunks/convoy-manager.mjs +4 -4
- package/dist/chunks/dashboard.mjs +28 -29
- package/dist/chunks/doctor.mjs +68 -54
- package/dist/chunks/evolution.mjs +37 -38
- package/dist/chunks/features.mjs +103 -92
- package/dist/chunks/fs-operations.mjs +1 -1
- package/dist/chunks/health-alerts.mjs +1 -1
- package/dist/chunks/health-check.mjs +1 -1
- package/dist/chunks/help.mjs +117 -116
- package/dist/chunks/hook-installer.mjs +3 -2
- package/dist/chunks/index.mjs +20 -6
- package/dist/chunks/index10.mjs +1171 -0
- package/dist/chunks/index11.mjs +1008 -0
- package/dist/chunks/index12.mjs +193 -0
- package/dist/chunks/index13.mjs +218 -0
- package/dist/chunks/index14.mjs +663 -0
- package/dist/chunks/index2.mjs +19 -10
- package/dist/chunks/index3.mjs +19079 -164
- package/dist/chunks/index4.mjs +8 -1171
- package/dist/chunks/index5.mjs +7479 -884
- package/dist/chunks/index6.mjs +160 -184
- package/dist/chunks/index7.mjs +3573 -653
- package/dist/chunks/index8.mjs +19 -0
- package/dist/chunks/index9.mjs +616 -0
- package/dist/chunks/init.mjs +173 -173
- package/dist/chunks/installer.mjs +92 -82
- package/dist/chunks/installer2.mjs +3 -2
- package/dist/chunks/interview.mjs +118 -107
- package/dist/chunks/json-config.mjs +3 -2
- package/dist/chunks/linux.mjs +3863 -0
- package/dist/chunks/macos.mjs +69 -0
- package/dist/chunks/main.mjs +635 -0
- package/dist/chunks/marketplace.mjs +69 -66
- package/dist/chunks/mcp-cli.mjs +61 -48
- package/dist/chunks/mcp.mjs +140 -127
- package/dist/chunks/menu.mjs +85 -85
- package/dist/chunks/metrics-display.mjs +41 -40
- package/dist/chunks/migrator.mjs +4 -5
- package/dist/chunks/monitor.mjs +95 -95
- package/dist/chunks/notification.mjs +151 -141
- package/dist/chunks/onboarding.mjs +26 -15
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/paradigm.mjs +24 -23
- package/dist/chunks/permission-manager.mjs +10 -11
- package/dist/chunks/permissions.mjs +72 -57
- package/dist/chunks/persistence-manager.mjs +97 -84
- package/dist/chunks/persistence.mjs +1 -1
- package/dist/chunks/platform.mjs +29 -29
- package/dist/chunks/plugin.mjs +104 -105
- package/dist/chunks/prompts.mjs +36 -25
- package/dist/chunks/providers.mjs +68 -69
- package/dist/chunks/quick-actions.mjs +71 -72
- package/dist/chunks/quick-provider.mjs +56 -40
- package/dist/chunks/quick-setup.mjs +71 -60
- package/dist/chunks/remote.mjs +21 -12
- package/dist/chunks/session.mjs +116 -103
- package/dist/chunks/sessions.mjs +29 -28
- package/dist/chunks/silent-updater.mjs +8 -10
- package/dist/chunks/simple-config.mjs +13 -10
- package/dist/chunks/skill.mjs +8560 -103
- package/dist/chunks/skills-sync.mjs +5212 -79
- package/dist/chunks/skills.mjs +105 -94
- package/dist/chunks/slash-commands.mjs +36 -37
- package/dist/chunks/smart-defaults.mjs +7 -3
- package/dist/chunks/smart-guide.mjs +1 -1
- package/dist/chunks/startup.mjs +2 -4
- package/dist/chunks/stats.mjs +41 -42
- package/dist/chunks/status.mjs +49 -50
- package/dist/chunks/team.mjs +24 -12
- package/dist/chunks/thinking.mjs +74 -63
- package/dist/chunks/trace.mjs +20 -19
- package/dist/chunks/uninstall.mjs +69 -56
- package/dist/chunks/update.mjs +39 -28
- package/dist/chunks/upgrade-manager.mjs +24 -18
- package/dist/chunks/version-checker.mjs +45 -41
- package/dist/chunks/vim.mjs +81 -69
- package/dist/chunks/windows.mjs +14 -0
- package/dist/chunks/workflows.mjs +15 -15
- package/dist/chunks/wsl.mjs +129 -0
- package/dist/chunks/zero-config.mjs +45 -34
- package/dist/cli.mjs +20 -20
- package/dist/index.mjs +41 -31
- package/dist/shared/ccjk.BAGoDD49.mjs +36 -0
- package/dist/shared/ccjk.BBtCGd_g.mjs +899 -0
- package/dist/shared/{ccjk.CGcy7cNM.mjs → ccjk.BDKUdmLk.mjs} +1 -1
- package/dist/shared/{ccjk.DtMBiwVG.mjs → ccjk.BFxsJM0k.mjs} +1 -1
- package/dist/shared/{ccjk.j4uut26D.mjs → ccjk.BIxuVL3_.mjs} +5 -5
- package/dist/shared/ccjk.BRZ9ww8S.mjs +142 -0
- package/dist/shared/{ccjk.CN0edl87.mjs → ccjk.BSYWk9ML.mjs} +1 -1
- package/dist/shared/{ccjk.Dk1HDseQ.mjs → ccjk.BnpWvs9V.mjs} +75 -75
- package/dist/shared/ccjk.BoApaI4j.mjs +28 -0
- package/dist/shared/{ccjk.DKojSRzw.mjs → ccjk.BrPUmTqm.mjs} +1 -1
- package/dist/shared/{ccjk.C10pepYx.mjs → ccjk.BxSmJ8B7.mjs} +1 -1
- package/dist/shared/ccjk.Bx_rmYfN.mjs +69 -0
- package/dist/shared/ccjk.COweQ1RR.mjs +5 -0
- package/dist/shared/{ccjk.BN90X6oc.mjs → ccjk.CePkJq2S.mjs} +17 -17
- package/dist/shared/{ccjk.Bvoex4TZ.mjs → ccjk.CfKKcvWy.mjs} +1 -1
- package/dist/shared/ccjk.Cjgrln_h.mjs +297 -0
- package/dist/shared/ccjk.CxpGa6MC.mjs +2724 -0
- package/dist/shared/{ccjk.DfwJOEok.mjs → ccjk.D5MFQT7w.mjs} +1 -1
- package/dist/shared/{ccjk.cChAaGgT.mjs → ccjk.DG_o24cZ.mjs} +6 -6
- package/dist/shared/{ccjk.bhFAMRyc.mjs → ccjk.DLLw-h4Y.mjs} +32 -32
- package/dist/shared/ccjk.DOwtZMk8.mjs +4019 -0
- package/dist/shared/{ccjk.BsXQugfY.mjs → ccjk.DTdjs-qK.mjs} +13 -13
- package/dist/shared/{ccjk.Bdhyg3X-.mjs → ccjk.DsYaCCx4.mjs} +1 -1
- package/dist/shared/ccjk.KfSWcGlE.mjs +38 -0
- package/dist/shared/ccjk.RyizuzOI.mjs +21 -0
- package/dist/shared/{ccjk.h7_W-wTs.mjs → ccjk.SPoXMvZD.mjs} +1 -1
- package/dist/shared/ccjk.T_cX87dY.mjs +15 -0
- package/dist/shared/{ccjk.CrB6OYHv.mjs → ccjk._dESH4Rk.mjs} +2 -2
- package/dist/shared/ccjk.bQ7Dh1g4.mjs +249 -0
- package/dist/shared/{ccjk.CBhIZiPz.mjs → ccjk.hoqrwWdN.mjs} +1 -1
- package/dist/shared/{ccjk.BNwRnWYx.mjs → ccjk.s7OCVzdd.mjs} +1230 -33
- package/dist/shared/{ccjk.BOIUTf5z.mjs → ccjk.waa2ikKJ.mjs} +8 -9
- package/package.json +31 -30
- package/dist/shared/ccjk.DHbrGcgg.mjs +0 -13
- package/dist/shared/ccjk.DntgA8fQ.mjs +0 -42
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync, statSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { CLAUDE_AGENTS_DIR, SETTINGS_FILE, CCJK_SKILLS_DIR } from '../chunks/constants.mjs';
|
|
3
|
-
import { join } from '
|
|
3
|
+
import { j as join } from './ccjk.bQ7Dh1g4.mjs';
|
|
4
4
|
import process__default from 'node:process';
|
|
5
5
|
|
|
6
6
|
const agentsCheck = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import a from '../chunks/index2.mjs';
|
|
2
2
|
|
|
3
3
|
class Logger {
|
|
4
4
|
level;
|
|
@@ -41,15 +41,15 @@ class Logger {
|
|
|
41
41
|
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
|
|
42
42
|
switch (level) {
|
|
43
43
|
case "debug":
|
|
44
|
-
return
|
|
44
|
+
return a.gray(prefix);
|
|
45
45
|
case "info":
|
|
46
|
-
return
|
|
46
|
+
return a.green(prefix);
|
|
47
47
|
case "success":
|
|
48
|
-
return
|
|
48
|
+
return a.cyan(prefix);
|
|
49
49
|
case "warn":
|
|
50
|
-
return
|
|
50
|
+
return a.yellow(prefix);
|
|
51
51
|
case "error":
|
|
52
|
-
return
|
|
52
|
+
return a.red(prefix);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
debug(message, data) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import inquirer from '
|
|
1
|
+
import a from '../chunks/index2.mjs';
|
|
2
|
+
import { i as inquirer } from '../chunks/index3.mjs';
|
|
3
3
|
import { b as getPresetById, c as getRecommendedPresets, a as getChinesePresets, g as getAllPresets } from './ccjk.CL4Yat0G.mjs';
|
|
4
4
|
import { existsSync, readFileSync, mkdirSync } from 'node:fs';
|
|
5
5
|
import { homedir } from 'node:os';
|
|
6
|
-
import { join } from 'pathe';
|
|
7
6
|
import { writeFileAtomic } from '../chunks/fs-operations.mjs';
|
|
7
|
+
import { j as join } from './ccjk.bQ7Dh1g4.mjs';
|
|
8
8
|
|
|
9
9
|
const CLAUDE_DIR = join(homedir(), ".claude");
|
|
10
10
|
const SETTINGS_FILE = join(CLAUDE_DIR, "settings.json");
|
|
@@ -186,12 +186,12 @@ function displayCurrentStatus(lang = "en") {
|
|
|
186
186
|
const { mode, provider } = detectCurrentMode();
|
|
187
187
|
const config = getCurrentConfig();
|
|
188
188
|
console.log("");
|
|
189
|
-
console.log(
|
|
190
|
-
console.log(
|
|
191
|
-
console.log(
|
|
189
|
+
console.log(a.green("\u2550".repeat(50)));
|
|
190
|
+
console.log(a.bold.cyan(lang === "zh-CN" ? " \u5F53\u524D API \u914D\u7F6E" : " Current API Configuration"));
|
|
191
|
+
console.log(a.green("\u2550".repeat(50)));
|
|
192
192
|
console.log("");
|
|
193
193
|
if (mode === "none") {
|
|
194
|
-
console.log(
|
|
194
|
+
console.log(a.yellow(lang === "zh-CN" ? " \u26A0 \u672A\u914D\u7F6E API" : " \u26A0 No API configured"));
|
|
195
195
|
console.log("");
|
|
196
196
|
return;
|
|
197
197
|
}
|
|
@@ -200,26 +200,26 @@ function displayCurrentStatus(lang = "en") {
|
|
|
200
200
|
simple: lang === "zh-CN" ? "\u7B80\u5355\u6A21\u5F0F (API \u4E2D\u8F6C)" : "Simple Mode (API Proxy)",
|
|
201
201
|
ccr: lang === "zh-CN" ? "CCR \u9AD8\u7EA7\u8DEF\u7531" : "CCR Advanced Router"
|
|
202
202
|
};
|
|
203
|
-
console.log(` ${
|
|
203
|
+
console.log(` ${a.bold(lang === "zh-CN" ? "\u6A21\u5F0F:" : "Mode:")} ${a.green(modeLabels[mode])}`);
|
|
204
204
|
if (provider) {
|
|
205
205
|
const preset = getPresetById(provider);
|
|
206
206
|
const providerName = preset ? lang === "zh-CN" ? preset.nameZh : preset.name : provider;
|
|
207
|
-
console.log(` ${
|
|
207
|
+
console.log(` ${a.bold(lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:")} ${a.green(providerName)}`);
|
|
208
208
|
}
|
|
209
209
|
if (config?.ANTHROPIC_BASE_URL) {
|
|
210
|
-
console.log(` ${
|
|
210
|
+
console.log(` ${a.bold("Base URL:")} ${a.gray(config.ANTHROPIC_BASE_URL)}`);
|
|
211
211
|
}
|
|
212
212
|
if (config?.ANTHROPIC_API_KEY) {
|
|
213
213
|
const masked = `${config.ANTHROPIC_API_KEY.substring(0, 10)}...`;
|
|
214
|
-
console.log(` ${
|
|
214
|
+
console.log(` ${a.bold("API Key:")} ${a.gray(masked)}`);
|
|
215
215
|
}
|
|
216
216
|
console.log("");
|
|
217
217
|
}
|
|
218
218
|
async function runConfigWizard(lang = "en") {
|
|
219
219
|
console.log("");
|
|
220
|
-
console.log(
|
|
221
|
-
console.log(
|
|
222
|
-
console.log(
|
|
220
|
+
console.log(a.green("\u2550".repeat(50)));
|
|
221
|
+
console.log(a.bold.cyan(lang === "zh-CN" ? " API \u914D\u7F6E\u5411\u5BFC" : " API Configuration Wizard"));
|
|
222
|
+
console.log(a.green("\u2550".repeat(50)));
|
|
223
223
|
console.log("");
|
|
224
224
|
const modeChoices = [
|
|
225
225
|
{
|
|
@@ -306,9 +306,9 @@ async function runQuickSetup(lang) {
|
|
|
306
306
|
return { success: false, mode: "simple", error: "Provider not found" };
|
|
307
307
|
}
|
|
308
308
|
console.log("");
|
|
309
|
-
console.log(
|
|
309
|
+
console.log(a.green(`\u{1F4CB} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
|
|
310
310
|
if (preset.instructions) {
|
|
311
|
-
console.log(
|
|
311
|
+
console.log(a.gray(` ${lang === "zh-CN" ? preset.instructions.zh : preset.instructions.en}`));
|
|
312
312
|
}
|
|
313
313
|
console.log("");
|
|
314
314
|
let apiKey = "";
|
|
@@ -329,17 +329,17 @@ async function runQuickSetup(lang) {
|
|
|
329
329
|
const result = configureWithPreset(preset, apiKey);
|
|
330
330
|
if (result.success) {
|
|
331
331
|
console.log("");
|
|
332
|
-
console.log(
|
|
333
|
-
console.log(
|
|
334
|
-
console.log(
|
|
332
|
+
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "API \u914D\u7F6E\u6210\u529F!" : "API configured successfully!"}`));
|
|
333
|
+
console.log(a.gray(` ${lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:"} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
|
|
334
|
+
console.log(a.gray(` ${lang === "zh-CN" ? "\u9ED8\u8BA4\u6A21\u578B:" : "Default model:"} ${preset.defaultModel}`));
|
|
335
335
|
console.log("");
|
|
336
336
|
}
|
|
337
337
|
return result;
|
|
338
338
|
}
|
|
339
339
|
async function runOfficialSetup(lang) {
|
|
340
340
|
console.log("");
|
|
341
|
-
console.log(
|
|
342
|
-
console.log(
|
|
341
|
+
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} \u5B98\u65B9 Anthropic API" : "\u{1F4CB} Official Anthropic API"));
|
|
342
|
+
console.log(a.gray(lang === "zh-CN" ? " \u4ECE https://console.anthropic.com/settings/keys \u83B7\u53D6 API \u5BC6\u94A5" : " Get your API key from https://console.anthropic.com/settings/keys"));
|
|
343
343
|
console.log("");
|
|
344
344
|
const { apiKey } = await inquirer.prompt({
|
|
345
345
|
type: "password",
|
|
@@ -358,14 +358,14 @@ async function runOfficialSetup(lang) {
|
|
|
358
358
|
const result = configureOfficialMode(apiKey);
|
|
359
359
|
if (result.success) {
|
|
360
360
|
console.log("");
|
|
361
|
-
console.log(
|
|
361
|
+
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "\u5B98\u65B9 API \u914D\u7F6E\u6210\u529F!" : "Official API configured successfully!"}`));
|
|
362
362
|
console.log("");
|
|
363
363
|
}
|
|
364
364
|
return result;
|
|
365
365
|
}
|
|
366
366
|
async function runCustomSetup(lang) {
|
|
367
367
|
console.log("");
|
|
368
|
-
console.log(
|
|
368
|
+
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} \u81EA\u5B9A\u4E49 API \u914D\u7F6E" : "\u{1F4CB} Custom API Configuration"));
|
|
369
369
|
console.log("");
|
|
370
370
|
const { baseUrl } = await inquirer.prompt({
|
|
371
371
|
type: "input",
|
|
@@ -399,15 +399,15 @@ async function runCustomSetup(lang) {
|
|
|
399
399
|
});
|
|
400
400
|
if (result.success) {
|
|
401
401
|
console.log("");
|
|
402
|
-
console.log(
|
|
402
|
+
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "\u81EA\u5B9A\u4E49 API \u914D\u7F6E\u6210\u529F!" : "Custom API configured successfully!"}`));
|
|
403
403
|
console.log("");
|
|
404
404
|
}
|
|
405
405
|
return result;
|
|
406
406
|
}
|
|
407
407
|
async function runCcrSetup(lang) {
|
|
408
408
|
console.log("");
|
|
409
|
-
console.log(
|
|
410
|
-
console.log(
|
|
409
|
+
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} CCR \u9AD8\u7EA7\u8DEF\u7531\u914D\u7F6E" : "\u{1F4CB} CCR Advanced Router Configuration"));
|
|
410
|
+
console.log(a.gray(lang === "zh-CN" ? " CCR \u63D0\u4F9B\u5B8C\u6574\u7684\u6A21\u578B\u8DEF\u7531\u3001\u8F6C\u6362\u548C\u591A\u63D0\u4F9B\u5546\u652F\u6301" : " CCR provides full model routing, transformation, and multi-provider support"));
|
|
411
411
|
console.log("");
|
|
412
412
|
try {
|
|
413
413
|
const { setupCcrConfiguration } = await import('../chunks/config2.mjs');
|
|
@@ -429,10 +429,10 @@ async function runCcrSetup(lang) {
|
|
|
429
429
|
async function testApiConnection(lang = "en") {
|
|
430
430
|
const config = getCurrentConfig();
|
|
431
431
|
if (!config || !config.ANTHROPIC_API_KEY && !config.ANTHROPIC_AUTH_TOKEN) {
|
|
432
|
-
console.log(
|
|
432
|
+
console.log(a.yellow(lang === "zh-CN" ? "\u26A0 \u672A\u914D\u7F6E API" : "\u26A0 No API configured"));
|
|
433
433
|
return false;
|
|
434
434
|
}
|
|
435
|
-
console.log(
|
|
435
|
+
console.log(a.green(lang === "zh-CN" ? "\u{1F50D} \u6D4B\u8BD5 API \u8FDE\u63A5..." : "\u{1F50D} Testing API connection..."));
|
|
436
436
|
try {
|
|
437
437
|
const baseUrl = config.ANTHROPIC_BASE_URL || "https://api.anthropic.com";
|
|
438
438
|
const testUrl = baseUrl.includes("v1") ? baseUrl : `${baseUrl}/v1/models`;
|
|
@@ -444,15 +444,15 @@ async function testApiConnection(lang = "en") {
|
|
|
444
444
|
}
|
|
445
445
|
});
|
|
446
446
|
if (response.ok || response.status === 401) {
|
|
447
|
-
console.log(
|
|
447
|
+
console.log(a.green(lang === "zh-CN" ? "\u2714 API \u8FDE\u63A5\u6210\u529F" : "\u2714 API connection successful"));
|
|
448
448
|
return true;
|
|
449
449
|
} else {
|
|
450
|
-
console.log(
|
|
450
|
+
console.log(a.yellow(`\u26A0 API returned status: ${response.status}`));
|
|
451
451
|
return false;
|
|
452
452
|
}
|
|
453
453
|
} catch (error) {
|
|
454
|
-
console.log(
|
|
455
|
-
console.log(
|
|
454
|
+
console.log(a.red(lang === "zh-CN" ? "\u2716 API \u8FDE\u63A5\u5931\u8D25" : "\u2716 API connection failed"));
|
|
455
|
+
console.log(a.gray(` ${error instanceof Error ? error.message : String(error)}`));
|
|
456
456
|
return false;
|
|
457
457
|
}
|
|
458
458
|
}
|