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
package/dist/chunks/skills.mjs
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import inquirer from '
|
|
3
|
-
import { i18n } from './
|
|
1
|
+
import a from './index2.mjs';
|
|
2
|
+
import { i as inquirer } from './index3.mjs';
|
|
3
|
+
import { i18n } from './index5.mjs';
|
|
4
4
|
import { existsSync, unlinkSync, mkdirSync, readdirSync, readFileSync } from 'node:fs';
|
|
5
5
|
import 'node:os';
|
|
6
|
-
import { join } from 'pathe';
|
|
7
6
|
import { CCJK_SKILLS_DIR } from './constants.mjs';
|
|
8
7
|
import { writeFileAtomic } from './fs-operations.mjs';
|
|
8
|
+
import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
9
|
+
import '../shared/ccjk.BAGoDD49.mjs';
|
|
10
|
+
import 'node:readline';
|
|
11
|
+
import 'stream';
|
|
12
|
+
import 'node:tty';
|
|
9
13
|
import 'node:process';
|
|
10
|
-
import 'node:
|
|
11
|
-
import '
|
|
12
|
-
import '
|
|
14
|
+
import 'node:async_hooks';
|
|
15
|
+
import '../shared/ccjk.Cjgrln_h.mjs';
|
|
16
|
+
import 'node:util';
|
|
17
|
+
import 'tty';
|
|
18
|
+
import 'fs';
|
|
19
|
+
import 'child_process';
|
|
20
|
+
import 'node:path';
|
|
13
21
|
import 'node:crypto';
|
|
22
|
+
import 'buffer';
|
|
23
|
+
import 'string_decoder';
|
|
24
|
+
import 'node:url';
|
|
14
25
|
import 'node:fs/promises';
|
|
15
26
|
|
|
16
27
|
const cloudSyncSkill = {
|
|
@@ -1166,9 +1177,9 @@ function getBatchCategories() {
|
|
|
1166
1177
|
|
|
1167
1178
|
async function listSkills(options = {}) {
|
|
1168
1179
|
console.log("");
|
|
1169
|
-
console.log(
|
|
1170
|
-
console.log(
|
|
1171
|
-
console.log(
|
|
1180
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1181
|
+
console.log(a.bold.cyan(` ${i18n.t("skills:title.list")}`));
|
|
1182
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1172
1183
|
console.log("");
|
|
1173
1184
|
try {
|
|
1174
1185
|
const skills = searchSkills({
|
|
@@ -1176,10 +1187,10 @@ async function listSkills(options = {}) {
|
|
|
1176
1187
|
enabled: options.showDisabled ? void 0 : true
|
|
1177
1188
|
});
|
|
1178
1189
|
if (skills.length === 0) {
|
|
1179
|
-
console.log(
|
|
1190
|
+
console.log(a.yellow(` ${i18n.t("skills:message.noSkills")}`));
|
|
1180
1191
|
console.log("");
|
|
1181
|
-
console.log(
|
|
1182
|
-
console.log(
|
|
1192
|
+
console.log(a.dim(` ${i18n.t("skills:hint.createSkill")}`));
|
|
1193
|
+
console.log(a.dim(` ccjk skills create <name>`));
|
|
1183
1194
|
console.log("");
|
|
1184
1195
|
return;
|
|
1185
1196
|
}
|
|
@@ -1190,36 +1201,36 @@ async function listSkills(options = {}) {
|
|
|
1190
1201
|
byCategory.set(skill.category, categorySkills);
|
|
1191
1202
|
}
|
|
1192
1203
|
for (const [category, categorySkills] of byCategory) {
|
|
1193
|
-
console.log(
|
|
1204
|
+
console.log(a.bold.green(` ${getCategoryIcon(category)} ${i18n.t(`skills:category.${category}`)}`));
|
|
1194
1205
|
console.log("");
|
|
1195
1206
|
for (const skill of categorySkills) {
|
|
1196
|
-
const statusIcon = skill.enabled ?
|
|
1207
|
+
const statusIcon = skill.enabled ? a.green("\u2713") : a.dim("\u25CB");
|
|
1197
1208
|
const name = skill.name[options.lang || "en"];
|
|
1198
1209
|
const description = skill.description[options.lang || "en"];
|
|
1199
|
-
const triggers = skill.triggers.map((t) =>
|
|
1200
|
-
console.log(` ${statusIcon} ${
|
|
1201
|
-
console.log(` ${
|
|
1202
|
-
console.log(` ${
|
|
1210
|
+
const triggers = skill.triggers.map((t) => a.green(t)).join(", ");
|
|
1211
|
+
console.log(` ${statusIcon} ${a.bold(name)} ${a.dim(`(${skill.id})`)}`);
|
|
1212
|
+
console.log(` ${a.dim(description)}`);
|
|
1213
|
+
console.log(` ${a.dim(i18n.t("skills:label.triggers"))}: ${triggers}`);
|
|
1203
1214
|
if (skill.tags && skill.tags.length > 0) {
|
|
1204
|
-
const tags = skill.tags.map((tag) =>
|
|
1215
|
+
const tags = skill.tags.map((tag) => a.bgGray.white(` ${tag} `)).join(" ");
|
|
1205
1216
|
console.log(` ${tags}`);
|
|
1206
1217
|
}
|
|
1207
1218
|
console.log("");
|
|
1208
1219
|
}
|
|
1209
1220
|
}
|
|
1210
|
-
console.log(
|
|
1221
|
+
console.log(a.dim(` ${i18n.t("skills:message.totalSkills", { count: skills.length })}`));
|
|
1211
1222
|
console.log("");
|
|
1212
1223
|
} catch (error) {
|
|
1213
|
-
console.error(
|
|
1224
|
+
console.error(a.red(`
|
|
1214
1225
|
${i18n.t("skills:error.listFailed")}: ${error}`));
|
|
1215
1226
|
throw error;
|
|
1216
1227
|
}
|
|
1217
1228
|
}
|
|
1218
1229
|
async function runSkill(skillName, options = {}) {
|
|
1219
1230
|
console.log("");
|
|
1220
|
-
console.log(
|
|
1221
|
-
console.log(
|
|
1222
|
-
console.log(
|
|
1231
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1232
|
+
console.log(a.bold.cyan(` ${i18n.t("skills:title.run")}`));
|
|
1233
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1223
1234
|
console.log("");
|
|
1224
1235
|
try {
|
|
1225
1236
|
let skill = getSkill(skillName);
|
|
@@ -1228,99 +1239,99 @@ async function runSkill(skillName, options = {}) {
|
|
|
1228
1239
|
skill = allSkills.find((s) => s.triggers.includes(skillName) || s.triggers.includes(`/${skillName}`));
|
|
1229
1240
|
}
|
|
1230
1241
|
if (!skill) {
|
|
1231
|
-
console.error(
|
|
1242
|
+
console.error(a.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
|
|
1232
1243
|
console.log("");
|
|
1233
|
-
console.log(
|
|
1234
|
-
console.log(
|
|
1244
|
+
console.log(a.dim(` ${i18n.t("skills:hint.listSkills")}`));
|
|
1245
|
+
console.log(a.dim(` ccjk skills list`));
|
|
1235
1246
|
console.log("");
|
|
1236
1247
|
return;
|
|
1237
1248
|
}
|
|
1238
1249
|
if (!skill.enabled) {
|
|
1239
|
-
console.warn(
|
|
1250
|
+
console.warn(a.yellow(` ${i18n.t("skills:warning.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
|
|
1240
1251
|
console.log("");
|
|
1241
|
-
console.log(
|
|
1242
|
-
console.log(
|
|
1252
|
+
console.log(a.dim(` ${i18n.t("skills:hint.enableSkill")}`));
|
|
1253
|
+
console.log(a.dim(` ccjk skills enable ${skill.id}`));
|
|
1243
1254
|
console.log("");
|
|
1244
1255
|
return;
|
|
1245
1256
|
}
|
|
1246
|
-
console.log(
|
|
1247
|
-
console.log(
|
|
1257
|
+
console.log(a.bold(` ${skill.name[options.lang || "en"]}`));
|
|
1258
|
+
console.log(a.dim(` ${skill.description[options.lang || "en"]}`));
|
|
1248
1259
|
console.log("");
|
|
1249
|
-
console.log(
|
|
1260
|
+
console.log(a.bold.green(` ${i18n.t("skills:label.template")}:`));
|
|
1250
1261
|
console.log("");
|
|
1251
|
-
console.log(
|
|
1262
|
+
console.log(a.dim(" \u2500".repeat(30)));
|
|
1252
1263
|
console.log(skill.template.split("\n").map((line) => ` ${line}`).join("\n"));
|
|
1253
|
-
console.log(
|
|
1264
|
+
console.log(a.dim(" \u2500".repeat(30)));
|
|
1254
1265
|
console.log("");
|
|
1255
|
-
console.log(
|
|
1266
|
+
console.log(a.green(` \u2713 ${i18n.t("skills:message.skillExecuted")}`));
|
|
1256
1267
|
console.log("");
|
|
1257
|
-
console.log(
|
|
1268
|
+
console.log(a.dim(` ${i18n.t("skills:hint.copyTemplate")}`));
|
|
1258
1269
|
console.log("");
|
|
1259
1270
|
} catch (error) {
|
|
1260
|
-
console.error(
|
|
1271
|
+
console.error(a.red(`
|
|
1261
1272
|
${i18n.t("skills:error.runFailed")}: ${error}`));
|
|
1262
1273
|
throw error;
|
|
1263
1274
|
}
|
|
1264
1275
|
}
|
|
1265
1276
|
async function showSkillInfo(skillName, options = {}) {
|
|
1266
1277
|
console.log("");
|
|
1267
|
-
console.log(
|
|
1268
|
-
console.log(
|
|
1269
|
-
console.log(
|
|
1278
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1279
|
+
console.log(a.bold.cyan(` ${i18n.t("skills:title.info")}`));
|
|
1280
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1270
1281
|
console.log("");
|
|
1271
1282
|
try {
|
|
1272
1283
|
const skill = getSkill(skillName);
|
|
1273
1284
|
if (!skill) {
|
|
1274
|
-
console.error(
|
|
1285
|
+
console.error(a.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
|
|
1275
1286
|
console.log("");
|
|
1276
1287
|
return;
|
|
1277
1288
|
}
|
|
1278
1289
|
const name = skill.name[options.lang || "en"];
|
|
1279
1290
|
const description = skill.description[options.lang || "en"];
|
|
1280
|
-
const statusBadge = skill.enabled ?
|
|
1281
|
-
console.log(`${
|
|
1282
|
-
console.log(
|
|
1291
|
+
const statusBadge = skill.enabled ? a.bgGreen.white(" ENABLED ") : a.bgRed.white(" DISABLED ");
|
|
1292
|
+
console.log(`${a.bold.green(` ${name}`)} ${statusBadge}`);
|
|
1293
|
+
console.log(a.dim(` ${description}`));
|
|
1283
1294
|
console.log("");
|
|
1284
|
-
console.log(
|
|
1285
|
-
console.log(
|
|
1286
|
-
console.log(
|
|
1287
|
-
console.log(
|
|
1295
|
+
console.log(a.bold(` ${i18n.t("skills:label.details")}:`));
|
|
1296
|
+
console.log(a.dim(` ${i18n.t("skills:label.id")}: ${skill.id}`));
|
|
1297
|
+
console.log(a.dim(` ${i18n.t("skills:label.version")}: ${skill.version}`));
|
|
1298
|
+
console.log(a.dim(` ${i18n.t("skills:label.category")}: ${i18n.t(`skills:category.${skill.category}`)}`));
|
|
1288
1299
|
if (skill.author) {
|
|
1289
|
-
console.log(
|
|
1300
|
+
console.log(a.dim(` ${i18n.t("skills:label.author")}: ${skill.author}`));
|
|
1290
1301
|
}
|
|
1291
1302
|
console.log("");
|
|
1292
|
-
console.log(
|
|
1303
|
+
console.log(a.bold(` ${i18n.t("skills:label.triggers")}:`));
|
|
1293
1304
|
for (const trigger of skill.triggers) {
|
|
1294
|
-
console.log(
|
|
1305
|
+
console.log(a.green(` ${trigger}`));
|
|
1295
1306
|
}
|
|
1296
1307
|
if (skill.tags && skill.tags.length > 0) {
|
|
1297
1308
|
console.log("");
|
|
1298
|
-
console.log(
|
|
1299
|
-
const tags = skill.tags.map((tag) =>
|
|
1309
|
+
console.log(a.bold(` ${i18n.t("skills:label.tags")}:`));
|
|
1310
|
+
const tags = skill.tags.map((tag) => a.bgGray.white(` ${tag} `)).join(" ");
|
|
1300
1311
|
console.log(` ${tags}`);
|
|
1301
1312
|
}
|
|
1302
1313
|
if (skill.agents && skill.agents.length > 0) {
|
|
1303
1314
|
console.log("");
|
|
1304
|
-
console.log(
|
|
1315
|
+
console.log(a.bold(` ${i18n.t("skills:label.agents")}:`));
|
|
1305
1316
|
for (const agent of skill.agents) {
|
|
1306
|
-
console.log(
|
|
1317
|
+
console.log(a.dim(` - ${agent}`));
|
|
1307
1318
|
}
|
|
1308
1319
|
}
|
|
1309
1320
|
console.log("");
|
|
1310
|
-
console.log(
|
|
1311
|
-
console.log(
|
|
1321
|
+
console.log(a.bold(` ${i18n.t("skills:label.template")}:`));
|
|
1322
|
+
console.log(a.dim(` ${skill.template.length} ${i18n.t("skills:label.characters")}`));
|
|
1312
1323
|
console.log("");
|
|
1313
1324
|
} catch (error) {
|
|
1314
|
-
console.error(
|
|
1325
|
+
console.error(a.red(`
|
|
1315
1326
|
${i18n.t("skills:error.infoFailed")}: ${error}`));
|
|
1316
1327
|
throw error;
|
|
1317
1328
|
}
|
|
1318
1329
|
}
|
|
1319
1330
|
async function createSkill(skillName, options = {}) {
|
|
1320
1331
|
console.log("");
|
|
1321
|
-
console.log(
|
|
1322
|
-
console.log(
|
|
1323
|
-
console.log(
|
|
1332
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1333
|
+
console.log(a.bold.cyan(` ${i18n.t("skills:title.create")}`));
|
|
1334
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1324
1335
|
console.log("");
|
|
1325
1336
|
try {
|
|
1326
1337
|
if (options.batch) {
|
|
@@ -1329,7 +1340,7 @@ async function createSkill(skillName, options = {}) {
|
|
|
1329
1340
|
}
|
|
1330
1341
|
const existing = getSkill(skillName);
|
|
1331
1342
|
if (existing) {
|
|
1332
|
-
console.error(
|
|
1343
|
+
console.error(a.red(` ${i18n.t("skills:error.skillExists", { name: skillName })}`));
|
|
1333
1344
|
console.log("");
|
|
1334
1345
|
return;
|
|
1335
1346
|
}
|
|
@@ -1406,19 +1417,19 @@ async function createSkill(skillName, options = {}) {
|
|
|
1406
1417
|
};
|
|
1407
1418
|
const result = addSkill(skill);
|
|
1408
1419
|
if (result.success) {
|
|
1409
|
-
console.log(
|
|
1420
|
+
console.log(a.green(`
|
|
1410
1421
|
\u2713 ${i18n.t("skills:message.skillCreated", { name: skill.name[options.lang || "en"] })}`));
|
|
1411
|
-
console.log(
|
|
1422
|
+
console.log(a.dim(` ${i18n.t("skills:label.path")}: ${result.path}`));
|
|
1412
1423
|
console.log("");
|
|
1413
|
-
console.log(
|
|
1414
|
-
console.log(
|
|
1424
|
+
console.log(a.dim(` ${i18n.t("skills:hint.runSkill")}`));
|
|
1425
|
+
console.log(a.dim(` ccjk skills run ${skillName}`));
|
|
1415
1426
|
console.log("");
|
|
1416
1427
|
} else {
|
|
1417
|
-
console.error(
|
|
1428
|
+
console.error(a.red(`
|
|
1418
1429
|
${i18n.t("skills:error.createFailed")}: ${result.error}`));
|
|
1419
1430
|
}
|
|
1420
1431
|
} catch (error) {
|
|
1421
|
-
console.error(
|
|
1432
|
+
console.error(a.red(`
|
|
1422
1433
|
${i18n.t("skills:error.createFailed")}: ${error}`));
|
|
1423
1434
|
throw error;
|
|
1424
1435
|
}
|
|
@@ -1427,21 +1438,21 @@ async function enableSkill(skillName, options = {}) {
|
|
|
1427
1438
|
try {
|
|
1428
1439
|
const skill = getSkill(skillName);
|
|
1429
1440
|
if (!skill) {
|
|
1430
|
-
console.error(
|
|
1441
|
+
console.error(a.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
|
|
1431
1442
|
return;
|
|
1432
1443
|
}
|
|
1433
1444
|
if (skill.enabled) {
|
|
1434
|
-
console.log(
|
|
1445
|
+
console.log(a.yellow(` ${i18n.t("skills:message.alreadyEnabled", { name: skill.name[options.lang || "en"] })}`));
|
|
1435
1446
|
return;
|
|
1436
1447
|
}
|
|
1437
1448
|
const success = setSkillEnabled(skillName, true);
|
|
1438
1449
|
if (success) {
|
|
1439
|
-
console.log(
|
|
1450
|
+
console.log(a.green(` \u2713 ${i18n.t("skills:message.skillEnabled", { name: skill.name[options.lang || "en"] })}`));
|
|
1440
1451
|
} else {
|
|
1441
|
-
console.error(
|
|
1452
|
+
console.error(a.red(` ${i18n.t("skills:error.enableFailed")}`));
|
|
1442
1453
|
}
|
|
1443
1454
|
} catch (error) {
|
|
1444
|
-
console.error(
|
|
1455
|
+
console.error(a.red(`
|
|
1445
1456
|
${i18n.t("skills:error.enableFailed")}: ${error}`));
|
|
1446
1457
|
throw error;
|
|
1447
1458
|
}
|
|
@@ -1450,21 +1461,21 @@ async function disableSkill(skillName, options = {}) {
|
|
|
1450
1461
|
try {
|
|
1451
1462
|
const skill = getSkill(skillName);
|
|
1452
1463
|
if (!skill) {
|
|
1453
|
-
console.error(
|
|
1464
|
+
console.error(a.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
|
|
1454
1465
|
return;
|
|
1455
1466
|
}
|
|
1456
1467
|
if (!skill.enabled) {
|
|
1457
|
-
console.log(
|
|
1468
|
+
console.log(a.yellow(` ${i18n.t("skills:message.alreadyDisabled", { name: skill.name[options.lang || "en"] })}`));
|
|
1458
1469
|
return;
|
|
1459
1470
|
}
|
|
1460
1471
|
const success = setSkillEnabled(skillName, false);
|
|
1461
1472
|
if (success) {
|
|
1462
|
-
console.log(
|
|
1473
|
+
console.log(a.green(` \u2713 ${i18n.t("skills:message.skillDisabled", { name: skill.name[options.lang || "en"] })}`));
|
|
1463
1474
|
} else {
|
|
1464
|
-
console.error(
|
|
1475
|
+
console.error(a.red(` ${i18n.t("skills:error.disableFailed")}`));
|
|
1465
1476
|
}
|
|
1466
1477
|
} catch (error) {
|
|
1467
|
-
console.error(
|
|
1478
|
+
console.error(a.red(`
|
|
1468
1479
|
${i18n.t("skills:error.disableFailed")}: ${error}`));
|
|
1469
1480
|
throw error;
|
|
1470
1481
|
}
|
|
@@ -1473,7 +1484,7 @@ async function deleteSkill(skillName, options = {}) {
|
|
|
1473
1484
|
try {
|
|
1474
1485
|
const skill = getSkill(skillName);
|
|
1475
1486
|
if (!skill) {
|
|
1476
|
-
console.error(
|
|
1487
|
+
console.error(a.red(` ${i18n.t("skills:error.skillNotFound", { name: skillName })}`));
|
|
1477
1488
|
return;
|
|
1478
1489
|
}
|
|
1479
1490
|
const { confirm } = await inquirer.prompt({
|
|
@@ -1483,17 +1494,17 @@ async function deleteSkill(skillName, options = {}) {
|
|
|
1483
1494
|
default: false
|
|
1484
1495
|
});
|
|
1485
1496
|
if (!confirm) {
|
|
1486
|
-
console.log(
|
|
1497
|
+
console.log(a.yellow(` ${i18n.t("skills:message.deleteCancelled")}`));
|
|
1487
1498
|
return;
|
|
1488
1499
|
}
|
|
1489
1500
|
const success = removeSkill(skillName);
|
|
1490
1501
|
if (success) {
|
|
1491
|
-
console.log(
|
|
1502
|
+
console.log(a.green(` \u2713 ${i18n.t("skills:message.skillDeleted", { name: skill.name[options.lang || "en"] })}`));
|
|
1492
1503
|
} else {
|
|
1493
|
-
console.error(
|
|
1504
|
+
console.error(a.red(` ${i18n.t("skills:error.deleteFailed")}`));
|
|
1494
1505
|
}
|
|
1495
1506
|
} catch (error) {
|
|
1496
|
-
console.error(
|
|
1507
|
+
console.error(a.red(`
|
|
1497
1508
|
${i18n.t("skills:error.deleteFailed")}: ${error}`));
|
|
1498
1509
|
throw error;
|
|
1499
1510
|
}
|
|
@@ -1501,9 +1512,9 @@ async function deleteSkill(skillName, options = {}) {
|
|
|
1501
1512
|
async function skillsMenu(options = {}) {
|
|
1502
1513
|
while (true) {
|
|
1503
1514
|
console.log("");
|
|
1504
|
-
console.log(
|
|
1505
|
-
console.log(
|
|
1506
|
-
console.log(
|
|
1515
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1516
|
+
console.log(a.bold.cyan(` ${i18n.t("skills:menu.title")}`));
|
|
1517
|
+
console.log(a.bold.cyan("\u2501".repeat(60)));
|
|
1507
1518
|
console.log("");
|
|
1508
1519
|
const { action } = await inquirer.prompt({
|
|
1509
1520
|
type: "list",
|
|
@@ -1589,7 +1600,7 @@ async function skillsMenu(options = {}) {
|
|
|
1589
1600
|
}
|
|
1590
1601
|
}
|
|
1591
1602
|
} catch (error) {
|
|
1592
|
-
console.error(
|
|
1603
|
+
console.error(a.red(`
|
|
1593
1604
|
${i18n.t("common.error")}: ${error}`));
|
|
1594
1605
|
}
|
|
1595
1606
|
await inquirer.prompt({
|
|
@@ -1666,7 +1677,7 @@ This is a custom skill template. Please describe the purpose and functionality o
|
|
|
1666
1677
|
`;
|
|
1667
1678
|
}
|
|
1668
1679
|
async function createBatchSkillsInteractive(_options) {
|
|
1669
|
-
console.log(
|
|
1680
|
+
console.log(a.bold(` ${i18n.t("skills:batch.title")}`));
|
|
1670
1681
|
console.log("");
|
|
1671
1682
|
const categories = getBatchCategories();
|
|
1672
1683
|
const answers = await inquirer.prompt([
|
|
@@ -1682,11 +1693,11 @@ async function createBatchSkillsInteractive(_options) {
|
|
|
1682
1693
|
}
|
|
1683
1694
|
]);
|
|
1684
1695
|
if (answers.categories.length === 0) {
|
|
1685
|
-
console.log(
|
|
1696
|
+
console.log(a.yellow(` ${i18n.t("skills:batch.noneSelected")}`));
|
|
1686
1697
|
return;
|
|
1687
1698
|
}
|
|
1688
1699
|
console.log("");
|
|
1689
|
-
console.log(
|
|
1700
|
+
console.log(a.dim(` ${i18n.t("skills:batch.creating")}...`));
|
|
1690
1701
|
console.log("");
|
|
1691
1702
|
const results = createBatchSkills({
|
|
1692
1703
|
lang: answers.categories.includes("typescript") ? "typescript" : answers.categories.includes("python") ? "python" : void 0,
|
|
@@ -1695,9 +1706,9 @@ async function createBatchSkillsInteractive(_options) {
|
|
|
1695
1706
|
});
|
|
1696
1707
|
const succeeded = results.filter((r) => r.success).length;
|
|
1697
1708
|
const failed = results.filter((r) => !r.success).length;
|
|
1698
|
-
console.log(
|
|
1709
|
+
console.log(a.green(` \u2713 ${i18n.t("skills:batch.created", { count: succeeded })}`));
|
|
1699
1710
|
if (failed > 0) {
|
|
1700
|
-
console.log(
|
|
1711
|
+
console.log(a.red(` \u2717 ${i18n.t("skills:batch.failed", { count: failed })}`));
|
|
1701
1712
|
}
|
|
1702
1713
|
console.log("");
|
|
1703
1714
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { i18n } from './
|
|
1
|
+
import a from './index2.mjs';
|
|
2
|
+
import { i18n } from './index5.mjs';
|
|
3
3
|
import { getContextPersistence } from './persistence.mjs';
|
|
4
|
+
import '../shared/ccjk.BAGoDD49.mjs';
|
|
4
5
|
import 'node:fs';
|
|
5
6
|
import 'node:process';
|
|
6
7
|
import 'node:url';
|
|
7
|
-
import '
|
|
8
|
-
import 'i18next-fs-backend';
|
|
9
|
-
import 'pathe';
|
|
8
|
+
import '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
10
9
|
import 'better-sqlite3';
|
|
11
10
|
|
|
12
11
|
function parseSlashCommand(input) {
|
|
@@ -39,17 +38,17 @@ function getSlashCommands() {
|
|
|
39
38
|
descriptionZh: "\u8FD0\u884C\u5168\u9762\u5065\u5EB7\u68C0\u67E5",
|
|
40
39
|
category: "brain",
|
|
41
40
|
handler: async () => {
|
|
42
|
-
const { runHealthCheck } = await import('./
|
|
41
|
+
const { runHealthCheck } = await import('./index4.mjs');
|
|
43
42
|
const report = await runHealthCheck();
|
|
44
|
-
console.log(
|
|
45
|
-
console.log(`${
|
|
46
|
-
console.log(`${
|
|
43
|
+
console.log(a.cyan.bold("\n\u{1F3E5} Health Check Results\n"));
|
|
44
|
+
console.log(`${a.gray("Overall Score:")} ${a.green.bold(report.totalScore + "/100")}`);
|
|
45
|
+
console.log(`${a.gray("Grade:")} ${a.green.bold(report.grade)}`);
|
|
47
46
|
if (report.recommendations.length > 0) {
|
|
48
|
-
console.log(
|
|
47
|
+
console.log(a.yellow.bold("\n\u{1F4A1} Recommendations:\n"));
|
|
49
48
|
report.recommendations.forEach((rec, i) => {
|
|
50
|
-
console.log(`${
|
|
49
|
+
console.log(`${a.yellow(i + 1 + ".")} ${rec.description}`);
|
|
51
50
|
if (rec.command) {
|
|
52
|
-
console.log(` ${
|
|
51
|
+
console.log(` ${a.gray("\u2192")} ${a.cyan(rec.command)}`);
|
|
53
52
|
}
|
|
54
53
|
});
|
|
55
54
|
}
|
|
@@ -64,27 +63,27 @@ function getSlashCommands() {
|
|
|
64
63
|
category: "context",
|
|
65
64
|
handler: async (args) => {
|
|
66
65
|
if (args.length === 0) {
|
|
67
|
-
console.log(
|
|
68
|
-
console.log(
|
|
66
|
+
console.log(a.yellow("Usage: /search <query>"));
|
|
67
|
+
console.log(a.gray('Example: /search "authentication logic"'));
|
|
69
68
|
return;
|
|
70
69
|
}
|
|
71
70
|
const query = args.join(" ");
|
|
72
71
|
const persistence = getContextPersistence();
|
|
73
72
|
const results = await persistence.searchContexts(query, { limit: 10 });
|
|
74
73
|
if (results.length === 0) {
|
|
75
|
-
console.log(
|
|
74
|
+
console.log(a.yellow(`No results found for: ${query}`));
|
|
76
75
|
return;
|
|
77
76
|
}
|
|
78
|
-
console.log(
|
|
77
|
+
console.log(a.cyan.bold(`
|
|
79
78
|
\u{1F50D} Search Results (${results.length})
|
|
80
79
|
`));
|
|
81
80
|
results.forEach((result, i) => {
|
|
82
|
-
console.log(
|
|
83
|
-
console.log(` ${
|
|
84
|
-
console.log(` ${
|
|
85
|
-
console.log(` ${
|
|
81
|
+
console.log(a.white.bold(`${i + 1}. ${result.id}`));
|
|
82
|
+
console.log(` ${a.gray("Rank:")} ${a.yellow(result.rank.toFixed(2))}`);
|
|
83
|
+
console.log(` ${a.gray("Tokens:")} ${result.originalTokens} \u2192 ${result.compressedTokens}`);
|
|
84
|
+
console.log(` ${a.gray("Algorithm:")} ${result.algorithm}`);
|
|
86
85
|
if (result.snippet) {
|
|
87
|
-
console.log(` ${
|
|
86
|
+
console.log(` ${a.gray("Snippet:")} ${a.dim(result.snippet)}`);
|
|
88
87
|
}
|
|
89
88
|
console.log();
|
|
90
89
|
});
|
|
@@ -110,9 +109,9 @@ function getSlashCommands() {
|
|
|
110
109
|
descriptionZh: "\u6253\u5F00\u4EFB\u52A1\u7BA1\u7406\u5668\uFF08Brain \u7CFB\u7EDF\uFF09",
|
|
111
110
|
category: "brain",
|
|
112
111
|
handler: async () => {
|
|
113
|
-
console.log(
|
|
114
|
-
console.log(
|
|
115
|
-
console.log(
|
|
112
|
+
console.log(a.cyan.bold("\n\u{1F4CB} Task Manager\n"));
|
|
113
|
+
console.log(a.yellow("Task management is integrated with Brain system."));
|
|
114
|
+
console.log(a.gray("Use: ccjk status --tasks to view active tasks"));
|
|
116
115
|
console.log();
|
|
117
116
|
}
|
|
118
117
|
},
|
|
@@ -126,9 +125,9 @@ function getSlashCommands() {
|
|
|
126
125
|
const { backupExistingConfig } = await import('./config.mjs').then(function (n) { return n.j; });
|
|
127
126
|
const backupPath = backupExistingConfig();
|
|
128
127
|
if (backupPath) {
|
|
129
|
-
console.log(
|
|
128
|
+
console.log(a.green(`\u2705 Backup created: ${backupPath}`));
|
|
130
129
|
} else {
|
|
131
|
-
console.log(
|
|
130
|
+
console.log(a.yellow("\u26A0\uFE0F No configuration to backup"));
|
|
132
131
|
}
|
|
133
132
|
}
|
|
134
133
|
},
|
|
@@ -139,10 +138,10 @@ function getSlashCommands() {
|
|
|
139
138
|
descriptionZh: "\u5BF9\u4E0A\u4E0B\u6587\u6570\u636E\u5E93\u8FD0\u884C VACUUM + checkpoint",
|
|
140
139
|
category: "context",
|
|
141
140
|
handler: async () => {
|
|
142
|
-
console.log(
|
|
141
|
+
console.log(a.cyan("\u{1F5DC}\uFE0F Optimizing context database..."));
|
|
143
142
|
const persistence = getContextPersistence();
|
|
144
143
|
persistence.vacuum();
|
|
145
|
-
console.log(
|
|
144
|
+
console.log(a.green("\u2705 Database optimized (VACUUM completed)"));
|
|
146
145
|
}
|
|
147
146
|
},
|
|
148
147
|
{
|
|
@@ -167,22 +166,22 @@ async function executeSlashCommand(input) {
|
|
|
167
166
|
(cmd) => cmd.name === parsed.command || cmd.aliases?.includes(parsed.command)
|
|
168
167
|
);
|
|
169
168
|
if (!command) {
|
|
170
|
-
console.log(
|
|
171
|
-
console.log(
|
|
169
|
+
console.log(a.yellow(`Unknown command: /${parsed.command}`));
|
|
170
|
+
console.log(a.gray("Type /help to see all available commands"));
|
|
172
171
|
return true;
|
|
173
172
|
}
|
|
174
173
|
try {
|
|
175
174
|
await command.handler(parsed.args);
|
|
176
175
|
return true;
|
|
177
176
|
} catch (error) {
|
|
178
|
-
console.error(
|
|
177
|
+
console.error(a.red(`Error executing /${parsed.command}:`), error);
|
|
179
178
|
return true;
|
|
180
179
|
}
|
|
181
180
|
}
|
|
182
181
|
function displaySlashCommandsHelp() {
|
|
183
182
|
const isZh = i18n.language === "zh-CN";
|
|
184
183
|
const commands = getSlashCommands();
|
|
185
|
-
console.log(
|
|
184
|
+
console.log(a.cyan.bold("\n\u{1F4A1} CCJK Slash Commands\n"));
|
|
186
185
|
const categories = {
|
|
187
186
|
brain: { title: isZh ? "\u{1F9E0} Brain \u7CFB\u7EDF" : "\u{1F9E0} Brain System", commands: [] },
|
|
188
187
|
context: { title: isZh ? "\u{1F4E6} \u4E0A\u4E0B\u6587\u7BA1\u7406" : "\u{1F4E6} Context Management", commands: [] },
|
|
@@ -193,16 +192,16 @@ function displaySlashCommandsHelp() {
|
|
|
193
192
|
});
|
|
194
193
|
Object.values(categories).forEach((category) => {
|
|
195
194
|
if (category.commands.length === 0) return;
|
|
196
|
-
console.log(
|
|
195
|
+
console.log(a.white.bold(category.title));
|
|
197
196
|
category.commands.forEach((cmd) => {
|
|
198
|
-
const aliases = cmd.aliases ?
|
|
197
|
+
const aliases = cmd.aliases ? a.gray(` (${cmd.aliases.map((a) => `/${a}`).join(", ")})`) : "";
|
|
199
198
|
const desc = isZh ? cmd.descriptionZh : cmd.description;
|
|
200
|
-
console.log(` ${
|
|
201
|
-
console.log(` ${
|
|
199
|
+
console.log(` ${a.green(`/${cmd.name}`)}${aliases}`);
|
|
200
|
+
console.log(` ${a.gray(desc)}`);
|
|
202
201
|
});
|
|
203
202
|
console.log();
|
|
204
203
|
});
|
|
205
|
-
console.log(
|
|
204
|
+
console.log(a.gray("Tip: Type /help or /? to see this message again\n"));
|
|
206
205
|
}
|
|
207
206
|
|
|
208
207
|
export { displaySlashCommandsHelp, executeSlashCommand, getSlashCommands, parseSlashCommand };
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
|
-
import { join } from 'pathe';
|
|
5
4
|
import { g as getPlatform } from './platform.mjs';
|
|
6
|
-
import { s as scanProject } from '../shared/ccjk.
|
|
5
|
+
import { s as scanProject } from '../shared/ccjk.BrPUmTqm.mjs';
|
|
6
|
+
import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
7
7
|
import 'node:process';
|
|
8
|
-
import '
|
|
8
|
+
import './main.mjs';
|
|
9
|
+
import 'module';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:stream';
|
|
12
|
+
import 'node:readline';
|
|
9
13
|
|
|
10
14
|
class SmartDefaultsDetector {
|
|
11
15
|
/**
|
package/dist/chunks/startup.mjs
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
2
|
import { mkdir } from 'node:fs/promises';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
|
-
import { join, basename } from '
|
|
5
|
-
import { i18n } from './
|
|
4
|
+
import { j as join, b as basename } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
5
|
+
import { i18n } from './index5.mjs';
|
|
6
6
|
import 'node:process';
|
|
7
7
|
import 'node:url';
|
|
8
|
-
import 'i18next';
|
|
9
|
-
import 'i18next-fs-backend';
|
|
10
8
|
|
|
11
9
|
const DEFAULT_COMPACT_CONFIG = {
|
|
12
10
|
warningThreshold: 0.7,
|