ccjk 11.1.2 → 12.0.0
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 +1 -1
- package/dist/chunks/agent.mjs +1 -1
- package/dist/chunks/api-cli.mjs +118 -0
- package/dist/chunks/api-providers.mjs +1 -1
- package/dist/chunks/api.mjs +8 -759
- package/dist/chunks/auto-bootstrap.mjs +1 -1
- package/dist/chunks/auto-init.mjs +1 -1
- package/dist/chunks/auto-updater.mjs +1 -1
- package/dist/chunks/banner.mjs +1 -1
- package/dist/chunks/boost.mjs +1 -1
- package/dist/chunks/ccjk-agents.mjs +1 -1
- package/dist/chunks/ccjk-all.mjs +1 -1
- package/dist/chunks/ccjk-config.mjs +1 -1
- package/dist/chunks/ccjk-hooks.mjs +1 -1
- package/dist/chunks/ccjk-mcp.mjs +1 -1
- package/dist/chunks/ccjk-setup.mjs +1 -1
- package/dist/chunks/ccjk-skills.mjs +1 -1
- package/dist/chunks/ccr.mjs +6 -6
- package/dist/chunks/ccu.mjs +1 -1
- package/dist/chunks/check-updates.mjs +2 -2
- package/dist/chunks/claude-code-config-manager.mjs +2 -2
- package/dist/chunks/claude-code-incremental-manager.mjs +2 -2
- package/dist/chunks/claude-config.mjs +1 -1
- package/dist/chunks/claude-wrapper.mjs +1 -1
- package/dist/chunks/codex-config-switch.mjs +1 -1
- package/dist/chunks/codex-provider-manager.mjs +1 -1
- package/dist/chunks/codex-uninstaller.mjs +1 -1
- package/dist/chunks/codex.mjs +1 -1
- package/dist/chunks/commands.mjs +1 -1
- package/dist/chunks/completion.mjs +1 -1
- package/dist/chunks/config-consolidator.mjs +1 -1
- package/dist/chunks/config-switch.mjs +2 -2
- package/dist/chunks/config.mjs +1 -1
- package/dist/chunks/config2.mjs +1 -1
- package/dist/chunks/config3.mjs +1 -1
- package/dist/chunks/constants.mjs +1 -1
- package/dist/chunks/dashboard.mjs +1 -1
- package/dist/chunks/doctor.mjs +31 -7
- package/dist/chunks/evolution.mjs +1 -1
- package/dist/chunks/features.mjs +5 -5
- package/dist/chunks/index.mjs +7 -7
- package/dist/chunks/index2.mjs +10 -177
- package/dist/chunks/index3.mjs +168 -1162
- package/dist/chunks/index4.mjs +1076 -910
- package/dist/chunks/index5.mjs +947 -137
- package/dist/chunks/index6.mjs +167 -635
- package/dist/chunks/index7.mjs +663 -0
- package/dist/chunks/init.mjs +17 -17
- package/dist/chunks/installer.mjs +1 -1
- package/dist/chunks/interview.mjs +2 -2
- package/dist/chunks/marketplace.mjs +1 -1
- package/dist/chunks/mcp-cli.mjs +191 -0
- package/dist/chunks/mcp.mjs +2 -2
- package/dist/chunks/menu.mjs +3 -3
- package/dist/chunks/migrator.mjs +1 -1
- package/dist/chunks/monitor.mjs +1 -1
- package/dist/chunks/notification.mjs +1 -1
- package/dist/chunks/onboarding.mjs +1 -1
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/permission-manager.mjs +1 -1
- package/dist/chunks/permissions.mjs +1 -1
- package/dist/chunks/persistence-manager.mjs +1 -1
- package/dist/chunks/plugin.mjs +1 -1
- package/dist/chunks/prompts.mjs +1 -1
- package/dist/chunks/providers.mjs +1 -1
- package/dist/chunks/quick-actions.mjs +1 -1
- package/dist/chunks/quick-setup.mjs +5 -5
- package/dist/chunks/remote.mjs +2 -2
- package/dist/chunks/silent-updater.mjs +1 -1
- package/dist/chunks/simple-config.mjs +1 -1
- package/dist/chunks/skill.mjs +1 -1
- package/dist/chunks/skills-sync.mjs +1 -1
- package/dist/chunks/skills.mjs +1 -1
- package/dist/chunks/slash-commands.mjs +2 -2
- package/dist/chunks/startup.mjs +1 -1
- package/dist/chunks/stats.mjs +1 -1
- package/dist/chunks/status.mjs +1 -1
- package/dist/chunks/team.mjs +1 -1
- package/dist/chunks/thinking.mjs +2 -2
- package/dist/chunks/uninstall.mjs +3 -3
- package/dist/chunks/update.mjs +4 -4
- package/dist/chunks/upgrade-manager.mjs +1 -1
- package/dist/chunks/version-checker.mjs +1 -1
- package/dist/chunks/vim.mjs +1 -1
- package/dist/chunks/zero-config.mjs +1 -1
- package/dist/cli.mjs +76 -16
- package/dist/index.d.mts +37 -10
- package/dist/index.d.ts +37 -10
- package/dist/index.mjs +2 -2
- package/dist/shared/{ccjk.DB2UYcq0.mjs → ccjk.BOIUTf5z.mjs} +2 -2
- package/dist/shared/ccjk.CL4Yat0G.mjs +303 -0
- package/dist/shared/{ccjk.CxtuJxaS.mjs → ccjk.CN0edl87.mjs} +1 -1
- package/dist/shared/{ccjk.BKoi8-Hy.mjs → ccjk.CrB6OYHv.mjs} +1 -1
- package/dist/shared/{ccjk.DVBW2wxp.mjs → ccjk.Dk1HDseQ.mjs} +1 -1
- package/dist/shared/ccjk.bhFAMRyc.mjs +460 -0
- package/dist/shared/ccjk.cChAaGgT.mjs +88 -0
- package/dist/shared/{ccjk.DrMygfCF.mjs → ccjk.j4uut26D.mjs} +1 -1
- package/package.json +2 -3
- package/dist/shared/ccjk.Cu_R2MbQ.mjs +0 -75
package/dist/chunks/init.mjs
CHANGED
|
@@ -4,9 +4,9 @@ import ansis from 'ansis';
|
|
|
4
4
|
import inquirer from 'inquirer';
|
|
5
5
|
import { version } from './package.mjs';
|
|
6
6
|
import { m as runCodexFullInit, d as selectMcpServices, g as getMcpServices, M as MCP_SERVICE_CONFIGS } from './codex.mjs';
|
|
7
|
-
import { a as modifyApiConfigPartially, b as configureApiCompletely, n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration, s as selectAndInstallWorkflows, c as configureOutputStyle, f as formatApiKeyDisplay, W as WORKFLOW_CONFIG_BASE } from '../shared/ccjk.
|
|
7
|
+
import { a as modifyApiConfigPartially, b as configureApiCompletely, n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration, s as selectAndInstallWorkflows, c as configureOutputStyle, f as formatApiKeyDisplay, W as WORKFLOW_CONFIG_BASE } from '../shared/ccjk.Dk1HDseQ.mjs';
|
|
8
8
|
import { SETTINGS_FILE, DEFAULT_CODE_TOOL_TYPE, CODE_TOOL_BANNERS, API_DEFAULT_URL } from './constants.mjs';
|
|
9
|
-
import { ensureI18nInitialized, i18n } from './
|
|
9
|
+
import { ensureI18nInitialized, i18n } from './index3.mjs';
|
|
10
10
|
import { displayBannerWithInfo, padToDisplayWidth } from './banner.mjs';
|
|
11
11
|
import { readZcfConfig, updateZcfConfig } from './ccjk-config.mjs';
|
|
12
12
|
import { readCcrConfig, backupCcrConfig, createDefaultCcrConfig, writeCcrConfig, configureCcrProxy, setupCcrConfiguration } from './config2.mjs';
|
|
@@ -15,15 +15,15 @@ import { promisify } from 'node:util';
|
|
|
15
15
|
import { updateCcr } from './auto-updater.mjs';
|
|
16
16
|
import { w as wrapCommandWithSudo, i as isWindows, b as isTermux } from './platform.mjs';
|
|
17
17
|
import { c as addCompletedOnboarding, s as setPrimaryApiKey, b as backupMcpConfig, a as buildMcpServerConfig, r as readMcpConfig, e as replaceMcpServers, f as fixWindowsMcpConfig, w as writeMcpConfig, g as syncMcpPermissions } from './claude-config.mjs';
|
|
18
|
-
import { r as resolveCodeType } from '../shared/ccjk.
|
|
18
|
+
import { r as resolveCodeType } from '../shared/ccjk.CN0edl87.mjs';
|
|
19
19
|
import { exists } from './fs-operations.mjs';
|
|
20
20
|
import { readJsonConfig, writeJsonConfig } from './json-config.mjs';
|
|
21
21
|
import { p as promptApiConfigurationAction, i as ensureClaudeDir, e as getExistingApiConfig, s as switchToOfficialLogin, b as backupExistingConfig, c as copyConfigFiles, a as applyAiLanguageDirective, f as configureApi } from './config.mjs';
|
|
22
|
-
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.
|
|
22
|
+
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.j4uut26D.mjs';
|
|
23
23
|
import { getInstallationStatus, installClaudeCode } from './installer.mjs';
|
|
24
24
|
import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
|
|
25
25
|
import { resolveAiOutputLanguage } from './prompts.mjs';
|
|
26
|
-
import { c as checkSuperpowersInstalled, i as installSuperpowers } from '../shared/ccjk.
|
|
26
|
+
import { c as checkSuperpowersInstalled, i as installSuperpowers } from '../shared/ccjk.CrB6OYHv.mjs';
|
|
27
27
|
import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
|
|
28
28
|
import { checkClaudeCodeVersionAndPrompt } from './version-checker.mjs';
|
|
29
29
|
|
|
@@ -260,11 +260,11 @@ function formatError(error, context) {
|
|
|
260
260
|
function displayError(error, context) {
|
|
261
261
|
const formatted = formatError(error, context);
|
|
262
262
|
console.error();
|
|
263
|
-
console.error(ansis.red
|
|
264
|
-
console.error(
|
|
263
|
+
console.error(ansis.red(formatted.title));
|
|
264
|
+
console.error(formatted.message);
|
|
265
265
|
if (formatted.suggestion) {
|
|
266
266
|
console.error();
|
|
267
|
-
console.error(ansis.yellow("\u{1F4A1} Suggestion:"),
|
|
267
|
+
console.error(ansis.yellow("\u{1F4A1} Suggestion:"), formatted.suggestion);
|
|
268
268
|
}
|
|
269
269
|
if (formatted.command) {
|
|
270
270
|
console.error(ansis.cyan(" Run:"), ansis.green(formatted.command));
|
|
@@ -287,7 +287,7 @@ class ProgressTracker {
|
|
|
287
287
|
}
|
|
288
288
|
start() {
|
|
289
289
|
console.log();
|
|
290
|
-
console.log(ansis.cyan
|
|
290
|
+
console.log(ansis.cyan("\u{1F680} Starting setup..."));
|
|
291
291
|
console.log(ansis.gray(` ${this.totalSteps} steps to complete`));
|
|
292
292
|
console.log();
|
|
293
293
|
}
|
|
@@ -297,19 +297,19 @@ class ProgressTracker {
|
|
|
297
297
|
const progress = Math.round(this.currentStep / this.totalSteps * 100);
|
|
298
298
|
const bar = this.renderProgressBar(progress);
|
|
299
299
|
console.log();
|
|
300
|
-
console.log(ansis.cyan(`[${this.currentStep}/${this.totalSteps}]`),
|
|
300
|
+
console.log(ansis.cyan(`[${this.currentStep}/${this.totalSteps}]`), stepName);
|
|
301
301
|
console.log(ansis.gray(` ${bar} ${progress}%`));
|
|
302
302
|
}
|
|
303
303
|
complete() {
|
|
304
304
|
const duration = ((Date.now() - this.startTime) / 1e3).toFixed(1);
|
|
305
305
|
console.log();
|
|
306
|
-
console.log(ansis.green
|
|
306
|
+
console.log(ansis.green("\u2705 Setup complete!"));
|
|
307
307
|
console.log(ansis.gray(` Completed in ${duration}s`));
|
|
308
308
|
console.log();
|
|
309
309
|
}
|
|
310
310
|
error(message) {
|
|
311
311
|
console.log();
|
|
312
|
-
console.log(ansis.red
|
|
312
|
+
console.log(ansis.red("\u274C Setup failed"));
|
|
313
313
|
console.log(ansis.white(` ${message}`));
|
|
314
314
|
console.log();
|
|
315
315
|
}
|
|
@@ -642,7 +642,7 @@ async function init(options = {}) {
|
|
|
642
642
|
try {
|
|
643
643
|
setPrimaryApiKey();
|
|
644
644
|
} catch (error) {
|
|
645
|
-
const { ensureI18nInitialized, i18n: i18nModule } = await import('./
|
|
645
|
+
const { ensureI18nInitialized, i18n: i18nModule } = await import('./index3.mjs');
|
|
646
646
|
ensureI18nInitialized();
|
|
647
647
|
console.error(i18nModule.t("mcp:primaryApiKeySetFailed"), error);
|
|
648
648
|
}
|
|
@@ -1173,7 +1173,7 @@ async function init(options = {}) {
|
|
|
1173
1173
|
}
|
|
1174
1174
|
}
|
|
1175
1175
|
async function handleMultiConfigurations(options, codeToolType) {
|
|
1176
|
-
const { ensureI18nInitialized } = await import('./
|
|
1176
|
+
const { ensureI18nInitialized } = await import('./index3.mjs');
|
|
1177
1177
|
ensureI18nInitialized();
|
|
1178
1178
|
try {
|
|
1179
1179
|
let configs = [];
|
|
@@ -1412,7 +1412,7 @@ async function smartInit(options = {}) {
|
|
|
1412
1412
|
try {
|
|
1413
1413
|
console.log(ansis.bold.green("\n\u{1F9E0} Smart Initialization Mode\n"));
|
|
1414
1414
|
console.log(ansis.gray("Analyzing your project to generate optimal configuration...\n"));
|
|
1415
|
-
const { analyzeProject } = await import('./
|
|
1415
|
+
const { analyzeProject } = await import('./index7.mjs');
|
|
1416
1416
|
const analysis = await analyzeProject();
|
|
1417
1417
|
console.log(ansis.cyan("\u{1F4CA} Project Analysis:"));
|
|
1418
1418
|
console.log(ansis.gray(` \u2022 Type: ${analysis.projectType}`));
|
|
@@ -1431,7 +1431,7 @@ async function smartInit(options = {}) {
|
|
|
1431
1431
|
console.log(ansis.gray(` \u2022 CI/CD: ${analysis.cicd.join(", ")}`));
|
|
1432
1432
|
}
|
|
1433
1433
|
console.log("");
|
|
1434
|
-
const { selectTemplates } = await import('./
|
|
1434
|
+
const { selectTemplates } = await import('./index7.mjs');
|
|
1435
1435
|
const selection = await selectTemplates(analysis);
|
|
1436
1436
|
console.log(ansis.cyan("\u{1F3AF} Template Selection:"));
|
|
1437
1437
|
console.log(ansis.gray(` \u2022 Agents: ${selection.agents.length} selected`));
|
|
@@ -1457,7 +1457,7 @@ async function smartInit(options = {}) {
|
|
|
1457
1457
|
}
|
|
1458
1458
|
}
|
|
1459
1459
|
console.log(ansis.gray("\n\u{1F527} Generating configurations...\n"));
|
|
1460
|
-
const { generateConfigs, writeConfigs } = await import('./
|
|
1460
|
+
const { generateConfigs, writeConfigs } = await import('./index7.mjs');
|
|
1461
1461
|
const config = await generateConfigs(selection);
|
|
1462
1462
|
await writeConfigs(config);
|
|
1463
1463
|
console.log(ansis.green("\u2714 Configurations generated successfully!"));
|
|
@@ -6,7 +6,7 @@ import inquirer from 'inquirer';
|
|
|
6
6
|
import ora from 'ora';
|
|
7
7
|
import { join } from 'pathe';
|
|
8
8
|
import { exec } from 'tinyexec';
|
|
9
|
-
import { ensureI18nInitialized, i18n } from './
|
|
9
|
+
import { ensureI18nInitialized, i18n } from './index3.mjs';
|
|
10
10
|
import { updateClaudeCode } from './auto-updater.mjs';
|
|
11
11
|
import { exists } from './fs-operations.mjs';
|
|
12
12
|
import { f as findCommandPath, g as getPlatform, a as getHomebrewCommandPaths, b as isTermux, c as getTermuxPrefix, d as isWSL, e as getWSLInfo, w as wrapCommandWithSudo, h as commandExists, j as getRecommendedInstallMethods } from './platform.mjs';
|
|
@@ -4,8 +4,8 @@ import { resolve, dirname, join } from 'node:path';
|
|
|
4
4
|
import process__default from 'node:process';
|
|
5
5
|
import ansis from 'ansis';
|
|
6
6
|
import inquirer from 'inquirer';
|
|
7
|
-
import { i18n } from './
|
|
8
|
-
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.
|
|
7
|
+
import { i18n } from './index3.mjs';
|
|
8
|
+
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.j4uut26D.mjs';
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
10
|
import 'node:url';
|
|
11
11
|
import 'i18next';
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
2
|
+
import { i18n } from './index3.mjs';
|
|
3
|
+
import { g as getMcpServices } from './codex.mjs';
|
|
4
|
+
import { r as readMcpConfig } from './claude-config.mjs';
|
|
5
|
+
import { i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.BOIUTf5z.mjs';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:process';
|
|
8
|
+
import 'node:url';
|
|
9
|
+
import 'i18next';
|
|
10
|
+
import 'i18next-fs-backend';
|
|
11
|
+
import 'pathe';
|
|
12
|
+
import 'dayjs';
|
|
13
|
+
import 'inquirer';
|
|
14
|
+
import 'ora';
|
|
15
|
+
import 'semver';
|
|
16
|
+
import 'smol-toml';
|
|
17
|
+
import 'tinyexec';
|
|
18
|
+
import './constants.mjs';
|
|
19
|
+
import 'node:os';
|
|
20
|
+
import './ccjk-config.mjs';
|
|
21
|
+
import './fs-operations.mjs';
|
|
22
|
+
import 'node:crypto';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
import './json-config.mjs';
|
|
25
|
+
import './config.mjs';
|
|
26
|
+
import '../shared/ccjk.BiCrMV5O.mjs';
|
|
27
|
+
import './platform.mjs';
|
|
28
|
+
import '../shared/ccjk.BFQ7yr5S.mjs';
|
|
29
|
+
import './prompts.mjs';
|
|
30
|
+
import './package.mjs';
|
|
31
|
+
import '../shared/ccjk.DHbrGcgg.mjs';
|
|
32
|
+
import 'inquirer-toggle';
|
|
33
|
+
import 'node:child_process';
|
|
34
|
+
|
|
35
|
+
async function mcpInstallCli(options) {
|
|
36
|
+
const lang = options.lang || i18n.language || "en";
|
|
37
|
+
const isZh = lang === "zh-CN";
|
|
38
|
+
if (!options.services || options.services.length === 0) {
|
|
39
|
+
console.log(ansis.red(isZh ? "\u9519\u8BEF: \u5FC5\u987B\u6307\u5B9A\u670D\u52A1\u540D\u79F0" : "Error: Service names required"));
|
|
40
|
+
console.log(ansis.dim(isZh ? "\u7528\u6CD5: ccjk mcp install <service1> [service2...]" : "Usage: ccjk mcp install <service1> [service2...]"));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const availableServices = await getMcpServices();
|
|
44
|
+
const invalidServices = options.services.filter(
|
|
45
|
+
(s) => !availableServices.some((svc) => svc.id === s)
|
|
46
|
+
);
|
|
47
|
+
if (invalidServices.length > 0) {
|
|
48
|
+
console.log(ansis.red(isZh ? `\u9519\u8BEF: \u672A\u77E5\u7684\u670D\u52A1: ${invalidServices.join(", ")}` : `Error: Unknown services: ${invalidServices.join(", ")}`));
|
|
49
|
+
console.log(ansis.dim(isZh ? "\u63D0\u793A: \u4F7F\u7528 ccjk mcp list \u67E5\u770B\u53EF\u7528\u670D\u52A1" : "Tip: Use ccjk mcp list to see available services"));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
if (!options.yes) {
|
|
53
|
+
const inquirer = await import('inquirer');
|
|
54
|
+
const { confirm } = await inquirer.default.prompt([{
|
|
55
|
+
type: "confirm",
|
|
56
|
+
name: "confirm",
|
|
57
|
+
message: isZh ? `\u786E\u8BA4\u5B89\u88C5 ${options.services.length} \u4E2A MCP \u670D\u52A1?` : `Install ${options.services.length} MCP service(s)?`,
|
|
58
|
+
default: true
|
|
59
|
+
}]);
|
|
60
|
+
if (!confirm) {
|
|
61
|
+
console.log(ansis.yellow(isZh ? "\u5DF2\u53D6\u6D88" : "Cancelled"));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
let successCount = 0;
|
|
66
|
+
let failCount = 0;
|
|
67
|
+
for (const serviceId of options.services) {
|
|
68
|
+
const result = await installMcpService(serviceId, options.tool);
|
|
69
|
+
if (result.success) {
|
|
70
|
+
successCount++;
|
|
71
|
+
} else {
|
|
72
|
+
failCount++;
|
|
73
|
+
console.log(ansis.red(isZh ? `\u2717 \u5B89\u88C5 ${serviceId} \u5931\u8D25: ${result.error || "\u672A\u77E5\u9519\u8BEF"}` : `\u2717 Failed to install ${serviceId}: ${result.error || "Unknown error"}`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (successCount > 0) {
|
|
77
|
+
console.log(ansis.green(isZh ? `\u2713 \u5DF2\u5B89\u88C5 ${successCount} \u4E2A\u670D\u52A1` : `\u2713 Installed ${successCount} service(s)`));
|
|
78
|
+
}
|
|
79
|
+
if (failCount > 0) {
|
|
80
|
+
console.log(ansis.red(isZh ? `\u2717 ${failCount} \u4E2A\u670D\u52A1\u5B89\u88C5\u5931\u8D25` : `\u2717 ${failCount} service(s) failed`));
|
|
81
|
+
}
|
|
82
|
+
if (successCount > 0) {
|
|
83
|
+
console.log(ansis.dim(isZh ? "\u63D0\u793A: \u91CD\u542F Claude Code \u4EE5\u5E94\u7528\u66F4\u6539" : "Tip: Restart Claude Code to apply changes"));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function mcpUninstallCli(options) {
|
|
87
|
+
const lang = options.lang || i18n.language || "en";
|
|
88
|
+
const isZh = lang === "zh-CN";
|
|
89
|
+
if (!options.services || options.services.length === 0) {
|
|
90
|
+
console.log(ansis.red(isZh ? "\u9519\u8BEF: \u5FC5\u987B\u6307\u5B9A\u670D\u52A1\u540D\u79F0" : "Error: Service names required"));
|
|
91
|
+
console.log(ansis.dim(isZh ? "\u7528\u6CD5: ccjk mcp uninstall <service1> [service2...]" : "Usage: ccjk mcp uninstall <service1> [service2...]"));
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
const config = readMcpConfig();
|
|
95
|
+
if (!config || !config.mcpServers) {
|
|
96
|
+
console.log(ansis.yellow(isZh ? "\u672A\u5B89\u88C5\u4EFB\u4F55 MCP \u670D\u52A1" : "No MCP services installed"));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const notInstalled = options.services.filter((s) => !config.mcpServers[s]);
|
|
100
|
+
if (notInstalled.length > 0) {
|
|
101
|
+
console.log(ansis.yellow(isZh ? `\u8B66\u544A: \u4EE5\u4E0B\u670D\u52A1\u672A\u5B89\u88C5: ${notInstalled.join(", ")}` : `Warning: Not installed: ${notInstalled.join(", ")}`));
|
|
102
|
+
}
|
|
103
|
+
const toRemove = options.services.filter((s) => config.mcpServers[s]);
|
|
104
|
+
if (toRemove.length === 0) {
|
|
105
|
+
console.log(ansis.yellow(isZh ? "\u6CA1\u6709\u670D\u52A1\u9700\u8981\u5378\u8F7D" : "No services to uninstall"));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!options.yes) {
|
|
109
|
+
const inquirer = await import('inquirer');
|
|
110
|
+
const { confirm } = await inquirer.default.prompt([{
|
|
111
|
+
type: "confirm",
|
|
112
|
+
name: "confirm",
|
|
113
|
+
message: isZh ? `\u786E\u8BA4\u5378\u8F7D ${toRemove.length} \u4E2A MCP \u670D\u52A1?` : `Uninstall ${toRemove.length} MCP service(s)?`,
|
|
114
|
+
default: true
|
|
115
|
+
}]);
|
|
116
|
+
if (!confirm) {
|
|
117
|
+
console.log(ansis.yellow(isZh ? "\u5DF2\u53D6\u6D88" : "Cancelled"));
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
let successCount = 0;
|
|
122
|
+
let failCount = 0;
|
|
123
|
+
for (const serviceId of toRemove) {
|
|
124
|
+
const result = await uninstallMcpService(serviceId, options.tool);
|
|
125
|
+
if (result.success) {
|
|
126
|
+
successCount++;
|
|
127
|
+
} else {
|
|
128
|
+
failCount++;
|
|
129
|
+
console.log(ansis.red(isZh ? `\u2717 \u5378\u8F7D ${serviceId} \u5931\u8D25: ${result.error || "\u672A\u77E5\u9519\u8BEF"}` : `\u2717 Failed to uninstall ${serviceId}: ${result.error || "Unknown error"}`));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (successCount > 0) {
|
|
133
|
+
console.log(ansis.green(isZh ? `\u2713 \u5DF2\u5378\u8F7D ${successCount} \u4E2A\u670D\u52A1` : `\u2713 Uninstalled ${successCount} service(s)`));
|
|
134
|
+
}
|
|
135
|
+
if (failCount > 0) {
|
|
136
|
+
console.log(ansis.red(isZh ? `\u2717 ${failCount} \u4E2A\u670D\u52A1\u5378\u8F7D\u5931\u8D25` : `\u2717 ${failCount} service(s) failed`));
|
|
137
|
+
}
|
|
138
|
+
if (successCount > 0) {
|
|
139
|
+
console.log(ansis.dim(isZh ? "\u63D0\u793A: \u91CD\u542F Claude Code \u4EE5\u5E94\u7528\u66F4\u6539" : "Tip: Restart Claude Code to apply changes"));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async function mcpListCli(options = {}) {
|
|
143
|
+
const lang = options.lang || i18n.language || "en";
|
|
144
|
+
const isZh = lang === "zh-CN";
|
|
145
|
+
const availableServices = await getMcpServices();
|
|
146
|
+
const config = readMcpConfig();
|
|
147
|
+
const installedServices = Object.keys(config?.mcpServers || {});
|
|
148
|
+
if (options.json) {
|
|
149
|
+
const output = {
|
|
150
|
+
installed: installedServices,
|
|
151
|
+
available: availableServices.map((s) => ({
|
|
152
|
+
id: s.id,
|
|
153
|
+
name: s.name,
|
|
154
|
+
description: s.description,
|
|
155
|
+
installed: installedServices.includes(s.id)
|
|
156
|
+
}))
|
|
157
|
+
};
|
|
158
|
+
console.log(JSON.stringify(output, null, 2));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
console.log("");
|
|
162
|
+
console.log(ansis.bold.cyan(isZh ? "\u{1F4E6} MCP \u670D\u52A1" : "\u{1F4E6} MCP Services"));
|
|
163
|
+
console.log(ansis.dim("\u2500".repeat(50)));
|
|
164
|
+
console.log("");
|
|
165
|
+
if (options.installed) {
|
|
166
|
+
if (installedServices.length === 0) {
|
|
167
|
+
console.log(ansis.yellow(isZh ? "\u672A\u5B89\u88C5\u4EFB\u4F55\u670D\u52A1" : "No services installed"));
|
|
168
|
+
} else {
|
|
169
|
+
console.log(ansis.green(isZh ? `\u5DF2\u5B89\u88C5 ${installedServices.length} \u4E2A\u670D\u52A1:` : `${installedServices.length} service(s) installed:`));
|
|
170
|
+
for (const serviceId of installedServices) {
|
|
171
|
+
const service = availableServices.find((s) => s.id === serviceId);
|
|
172
|
+
const name = service ? service.name : serviceId;
|
|
173
|
+
console.log(` ${ansis.green("\u25CF")} ${name} ${ansis.dim(`(${serviceId})`)}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
} else {
|
|
177
|
+
console.log(ansis.dim(isZh ? "\u53EF\u7528\u670D\u52A1:" : "Available services:"));
|
|
178
|
+
for (const service of availableServices) {
|
|
179
|
+
const installed = installedServices.includes(service.id);
|
|
180
|
+
const icon = installed ? ansis.green("\u2713") : ansis.dim("\u25CB");
|
|
181
|
+
const name = service.name;
|
|
182
|
+
const desc = service.description;
|
|
183
|
+
console.log(` ${icon} ${ansis.bold(name)} ${ansis.dim(`(${service.id})`)}`);
|
|
184
|
+
console.log(` ${ansis.dim(desc)}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
console.log("");
|
|
188
|
+
console.log(ansis.dim(isZh ? "\u63D0\u793A: \u4F7F\u7528 ccjk mcp install <service> \u5B89\u88C5\u670D\u52A1" : "Tip: Use ccjk mcp install <service> to install a service"));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { mcpInstallCli, mcpListCli, mcpUninstallCli };
|
package/dist/chunks/mcp.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
|
-
import { i18n } from './
|
|
2
|
+
import { i18n } from './index3.mjs';
|
|
3
3
|
import 'node:child_process';
|
|
4
4
|
import 'node:process';
|
|
5
5
|
import { M as MCP_SERVICE_TIERS, i as isCoreService, g as getServicesByTier, c as checkMcpPerformance, f as formatPerformanceWarning, a as calculateResourceUsage, b as getOptimizationSuggestions, d as getMcpTierConfig } from './mcp-performance.mjs';
|
|
6
6
|
import { r as readMcpConfig, b as backupMcpConfig, w as writeMcpConfig } from './claude-config.mjs';
|
|
7
7
|
import inquirer from 'inquirer';
|
|
8
8
|
import { M as MCP_SERVICE_CONFIGS } from './codex.mjs';
|
|
9
|
-
import { d as displayInstalledMcpServices,
|
|
9
|
+
import { d as displayInstalledMcpServices, b as isMcpServiceInstalled, i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.BOIUTf5z.mjs';
|
|
10
10
|
import { existsSync, unlinkSync, statSync, mkdirSync, readFileSync } from 'node:fs';
|
|
11
11
|
import { homedir } from 'node:os';
|
|
12
12
|
import { join } from 'pathe';
|
package/dist/chunks/menu.mjs
CHANGED
|
@@ -5,12 +5,12 @@ import process__default from 'node:process';
|
|
|
5
5
|
import { join } from 'pathe';
|
|
6
6
|
import { M as MCP_SERVICE_CONFIGS } from './codex.mjs';
|
|
7
7
|
import { CODE_TOOL_BANNERS, CLAUDE_DIR, isCodeToolType, DEFAULT_CODE_TOOL_TYPE } from './constants.mjs';
|
|
8
|
-
import { ensureI18nInitialized, i18n } from './
|
|
8
|
+
import { ensureI18nInitialized, i18n } from './index3.mjs';
|
|
9
9
|
import { displayBannerWithInfo } from './banner.mjs';
|
|
10
10
|
import { updateZcfConfig, readZcfConfig } from './ccjk-config.mjs';
|
|
11
11
|
import { r as readMcpConfig } from './claude-config.mjs';
|
|
12
|
-
import { r as resolveCodeType } from '../shared/ccjk.
|
|
13
|
-
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.
|
|
12
|
+
import { r as resolveCodeType } from '../shared/ccjk.CN0edl87.mjs';
|
|
13
|
+
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.j4uut26D.mjs';
|
|
14
14
|
import { changeScriptLanguageFeature, mcpManagerFeature, configureMergedPermissionsFeature, configureAiMemoryFeature, configureDefaultModelFeature, configureMcpFeature, configureApiFeature } from './features.mjs';
|
|
15
15
|
import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
|
|
16
16
|
import { homedir } from 'node:os';
|
package/dist/chunks/migrator.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { exists } from './fs-operations.mjs';
|
|
|
3
3
|
import { readJsonConfig, writeJsonConfig } from './json-config.mjs';
|
|
4
4
|
import 'node:os';
|
|
5
5
|
import 'pathe';
|
|
6
|
-
import './
|
|
6
|
+
import './index3.mjs';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:process';
|
|
9
9
|
import 'node:url';
|
package/dist/chunks/monitor.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
|
-
import { i18n } from './
|
|
3
|
+
import { i18n } from './index3.mjs';
|
|
4
4
|
import { m as maskToken, a as isValidTokenFormat, c as generateDeviceToken, d as decryptToken, e as encryptToken, f as getDeviceInfo, i as isDeviceBound, g as getBindingStatus, u as unbindDevice, b as bindDevice, s as sendNotification } from '../shared/ccjk.CGcy7cNM.mjs';
|
|
5
5
|
import { exec } from 'node:child_process';
|
|
6
6
|
import * as nodeFs from 'node:fs';
|
|
@@ -10,7 +10,7 @@ import { d as detectProject, g as getProjectSummary, a as generateSuggestions }
|
|
|
10
10
|
import { boxify, COLORS as theme, STATUS } from './banner.mjs';
|
|
11
11
|
import { writeFileAtomic } from './fs-operations.mjs';
|
|
12
12
|
import 'node:os';
|
|
13
|
-
import './
|
|
13
|
+
import './index3.mjs';
|
|
14
14
|
import 'node:url';
|
|
15
15
|
import 'i18next';
|
|
16
16
|
import 'i18next-fs-backend';
|
package/dist/chunks/package.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { join } from 'pathe';
|
|
|
4
4
|
import { SETTINGS_FILE, CCJK_CONFIG_DIR } from './constants.mjs';
|
|
5
5
|
import { STATUS } from './banner.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
|
-
import './
|
|
7
|
+
import './index3.mjs';
|
|
8
8
|
import 'node:process';
|
|
9
9
|
import 'node:url';
|
|
10
10
|
import 'i18next';
|
|
@@ -2,7 +2,7 @@ import process__default from 'node:process';
|
|
|
2
2
|
import ansis from 'ansis';
|
|
3
3
|
import inquirer from 'inquirer';
|
|
4
4
|
import 'tinyexec';
|
|
5
|
-
import { i18n } from './
|
|
5
|
+
import { i18n } from './index3.mjs';
|
|
6
6
|
import { g as getPermissionManager } from '../shared/ccjk.h7_W-wTs.mjs';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:url';
|
|
@@ -2,7 +2,7 @@ import ansis from 'ansis';
|
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { writeFileSync } from 'node:fs';
|
|
4
4
|
import { join } from 'pathe';
|
|
5
|
-
import { i18n } from './
|
|
5
|
+
import { i18n } from './index3.mjs';
|
|
6
6
|
import { getContextPersistence } from './persistence.mjs';
|
|
7
7
|
import 'node:process';
|
|
8
8
|
import 'node:url';
|
package/dist/chunks/plugin.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { Buffer } from 'node:buffer';
|
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, readdirSync, statSync, rmSync } from 'node:fs';
|
|
5
5
|
import { join } from 'pathe';
|
|
6
6
|
import { CCJK_CLOUD_PLUGINS_DIR, CCJK_CLOUD_PLUGINS_CACHE_DIR, CCJK_CLOUD_PLUGINS_INSTALLED_DIR } from './constants.mjs';
|
|
7
|
-
import { i18n } from './
|
|
7
|
+
import { i18n } from './index3.mjs';
|
|
8
8
|
import { writeFileAtomic } from './fs-operations.mjs';
|
|
9
9
|
import { homedir } from 'node:os';
|
|
10
10
|
import { d as detectProject } from '../shared/ccjk.CBhIZiPz.mjs';
|
package/dist/chunks/prompts.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import ansis from 'ansis';
|
|
|
3
3
|
import inquirer from 'inquirer';
|
|
4
4
|
import { version } from './package.mjs';
|
|
5
5
|
import { LANG_LABELS, getAiOutputLanguageLabel, SUPPORTED_LANGS, AI_OUTPUT_LANGUAGES } from './constants.mjs';
|
|
6
|
-
import { ensureI18nInitialized, i18n } from './
|
|
6
|
+
import { ensureI18nInitialized, i18n } from './index3.mjs';
|
|
7
7
|
import { readZcfConfig, updateZcfConfig } from './ccjk-config.mjs';
|
|
8
8
|
import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
|
|
9
9
|
import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { getApiProviderPresets } from './api-providers.mjs';
|
|
3
|
-
import { i18n } from './
|
|
3
|
+
import { i18n } from './index3.mjs';
|
|
4
4
|
import { P as ProviderHealthMonitor } from '../shared/ccjk.J8YiPsOw.mjs';
|
|
5
5
|
import './constants.mjs';
|
|
6
6
|
import 'node:os';
|
|
@@ -7,7 +7,7 @@ import { MetricsDisplay } from './metrics-display.mjs';
|
|
|
7
7
|
import { r as runHealthCheck } from '../shared/ccjk.DfwJOEok.mjs';
|
|
8
8
|
import 'better-sqlite3';
|
|
9
9
|
import './constants.mjs';
|
|
10
|
-
import './
|
|
10
|
+
import './index3.mjs';
|
|
11
11
|
import 'node:process';
|
|
12
12
|
import 'node:url';
|
|
13
13
|
import 'i18next';
|
|
@@ -2,7 +2,7 @@ import ansis from 'ansis';
|
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { version } from './package.mjs';
|
|
4
4
|
import { detectSmartDefaults } from './smart-defaults.mjs';
|
|
5
|
-
import { i18n } from './
|
|
5
|
+
import { i18n } from './index3.mjs';
|
|
6
6
|
import { updateZcfConfig } from './ccjk-config.mjs';
|
|
7
7
|
import { i as init } from './init.mjs';
|
|
8
8
|
import 'node:child_process';
|
|
@@ -33,17 +33,17 @@ import '../shared/ccjk.BFQ7yr5S.mjs';
|
|
|
33
33
|
import './prompts.mjs';
|
|
34
34
|
import '../shared/ccjk.DHbrGcgg.mjs';
|
|
35
35
|
import 'inquirer-toggle';
|
|
36
|
-
import '../shared/ccjk.
|
|
36
|
+
import '../shared/ccjk.Dk1HDseQ.mjs';
|
|
37
37
|
import './banner.mjs';
|
|
38
38
|
import './config2.mjs';
|
|
39
39
|
import 'node:util';
|
|
40
40
|
import './auto-updater.mjs';
|
|
41
41
|
import './version-checker.mjs';
|
|
42
42
|
import 'node:path';
|
|
43
|
-
import '../shared/ccjk.
|
|
44
|
-
import '../shared/ccjk.
|
|
43
|
+
import '../shared/ccjk.CN0edl87.mjs';
|
|
44
|
+
import '../shared/ccjk.j4uut26D.mjs';
|
|
45
45
|
import './installer.mjs';
|
|
46
|
-
import '../shared/ccjk.
|
|
46
|
+
import '../shared/ccjk.CrB6OYHv.mjs';
|
|
47
47
|
|
|
48
48
|
function displayHeader() {
|
|
49
49
|
console.log("");
|
package/dist/chunks/remote.mjs
CHANGED
|
@@ -4,9 +4,9 @@ import inquirer from 'inquirer';
|
|
|
4
4
|
import ora from 'ora';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
|
-
import { i18n } from './
|
|
7
|
+
import { i18n } from './index3.mjs';
|
|
8
8
|
import { i as isDeviceBound, g as getBindingStatus, b as bindDevice } from '../shared/ccjk.CGcy7cNM.mjs';
|
|
9
|
-
import { l as logger } from '../shared/ccjk.
|
|
9
|
+
import { l as logger } from '../shared/ccjk.cChAaGgT.mjs';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:process';
|
|
12
12
|
import 'node:url';
|
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { join, dirname } from 'pathe';
|
|
6
6
|
import { CCJK_CONFIG_DIR } from './constants.mjs';
|
|
7
7
|
import { getCloudState, updateCloudState } from './auto-bootstrap.mjs';
|
|
8
|
-
import './
|
|
8
|
+
import './index3.mjs';
|
|
9
9
|
import 'i18next';
|
|
10
10
|
import 'i18next-fs-backend';
|
|
11
11
|
import 'node:crypto';
|
|
@@ -7,7 +7,7 @@ import { ensureDir, writeFileAtomic } from './fs-operations.mjs';
|
|
|
7
7
|
import { m as mergeAndCleanPermissions } from '../shared/ccjk.BiCrMV5O.mjs';
|
|
8
8
|
import { g as getPlatform } from './platform.mjs';
|
|
9
9
|
import 'node:os';
|
|
10
|
-
import './
|
|
10
|
+
import './index3.mjs';
|
|
11
11
|
import 'node:process';
|
|
12
12
|
import 'i18next';
|
|
13
13
|
import 'i18next-fs-backend';
|
package/dist/chunks/skill.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { join, dirname } from 'pathe';
|
|
|
8
8
|
import { g as getPluginManager } from '../shared/ccjk.BsXQugfY.mjs';
|
|
9
9
|
import 'tinyexec';
|
|
10
10
|
import './constants.mjs';
|
|
11
|
-
import './
|
|
11
|
+
import './index3.mjs';
|
|
12
12
|
import 'node:process';
|
|
13
13
|
import 'i18next';
|
|
14
14
|
import 'i18next-fs-backend';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
|
-
import { getTranslation } from './
|
|
3
|
+
import { getTranslation } from './index3.mjs';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
5
5
|
import { existsSync, readdirSync, readFileSync, mkdirSync } from 'node:fs';
|
|
6
6
|
import process__default from 'node:process';
|
package/dist/chunks/skills.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
|
-
import { i18n } from './
|
|
3
|
+
import { i18n } from './index3.mjs';
|
|
4
4
|
import { existsSync, unlinkSync, mkdirSync, readdirSync, readFileSync } from 'node:fs';
|
|
5
5
|
import 'node:os';
|
|
6
6
|
import { join } from 'pathe';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
|
-
import { i18n } from './
|
|
2
|
+
import { i18n } from './index3.mjs';
|
|
3
3
|
import { getContextPersistence } from './persistence.mjs';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'node:process';
|
|
@@ -39,7 +39,7 @@ function getSlashCommands() {
|
|
|
39
39
|
descriptionZh: "\u8FD0\u884C\u5168\u9762\u5065\u5EB7\u68C0\u67E5",
|
|
40
40
|
category: "brain",
|
|
41
41
|
handler: async () => {
|
|
42
|
-
const { runHealthCheck } = await import('./
|
|
42
|
+
const { runHealthCheck } = await import('./index2.mjs');
|
|
43
43
|
const report = await runHealthCheck();
|
|
44
44
|
console.log(ansis.cyan.bold("\n\u{1F3E5} Health Check Results\n"));
|
|
45
45
|
console.log(`${ansis.gray("Overall Score:")} ${ansis.green.bold(report.totalScore + "/100")}`);
|
package/dist/chunks/startup.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync, readFileSync, readdirSync } from
|
|
|
2
2
|
import { mkdir } from 'node:fs/promises';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { join, basename } from 'pathe';
|
|
5
|
-
import { i18n } from './
|
|
5
|
+
import { i18n } from './index3.mjs';
|
|
6
6
|
import 'node:process';
|
|
7
7
|
import 'node:url';
|
|
8
8
|
import 'i18next';
|
package/dist/chunks/stats.mjs
CHANGED
package/dist/chunks/status.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { r as runHealthCheck } from '../shared/ccjk.DfwJOEok.mjs';
|
|
|
10
10
|
import 'node:child_process';
|
|
11
11
|
import 'better-sqlite3';
|
|
12
12
|
import './constants.mjs';
|
|
13
|
-
import './
|
|
13
|
+
import './index3.mjs';
|
|
14
14
|
import 'node:url';
|
|
15
15
|
import 'i18next';
|
|
16
16
|
import 'i18next-fs-backend';
|