ccjk 5.2.0 → 5.2.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/api.mjs +6 -6
- package/dist/chunks/auto-updater.mjs +80 -133
- package/dist/chunks/ccm.mjs +7 -7
- package/dist/chunks/ccr.mjs +7 -4
- package/dist/chunks/ccu.mjs +6 -6
- package/dist/chunks/check-updates.mjs +3 -3
- package/dist/chunks/claude-code-incremental-manager.mjs +38 -38
- package/dist/chunks/cloud-v5.mjs +1651 -0
- package/dist/chunks/codex.mjs +70 -70
- package/dist/chunks/commands.mjs +25 -25
- package/dist/chunks/commit.mjs +16 -16
- package/dist/chunks/config-consolidator.mjs +9 -9
- package/dist/chunks/config-switch.mjs +39 -39
- package/dist/chunks/config.mjs +5 -5
- package/dist/chunks/config2.mjs +85 -85
- package/dist/chunks/context.mjs +2 -2
- package/dist/chunks/doctor.mjs +31 -31
- package/dist/chunks/features.mjs +84 -83
- package/dist/chunks/help.mjs +116 -116
- package/dist/chunks/index4.mjs +46 -46
- package/dist/chunks/init.mjs +214 -191
- package/dist/chunks/interview.mjs +102 -102
- package/dist/chunks/manager.mjs +238 -0
- package/dist/chunks/marketplace.mjs +59 -59
- package/dist/chunks/mcp.mjs +82 -82
- package/dist/chunks/menu.mjs +441 -379
- package/dist/chunks/notification.mjs +112 -112
- package/dist/chunks/onboarding.mjs +7 -7
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/permission-manager.mjs +8 -8
- package/dist/chunks/plugin.mjs +100 -100
- package/dist/chunks/prompts.mjs +15 -15
- package/dist/chunks/providers.mjs +65 -65
- package/dist/chunks/session.mjs +83 -83
- package/dist/chunks/skills-sync.mjs +72 -72
- package/dist/chunks/skills.mjs +88 -88
- package/dist/chunks/team.mjs +6 -6
- package/dist/chunks/uninstall.mjs +35 -35
- package/dist/chunks/update.mjs +6 -6
- package/dist/chunks/upgrade-manager.mjs +4 -4
- package/dist/chunks/workflows2.mjs +13 -13
- package/dist/cli.mjs +21 -0
- package/dist/i18n/locales/en/menu.json +16 -1
- package/dist/i18n/locales/en/skills.json +29 -0
- package/dist/i18n/locales/zh-CN/menu.json +16 -1
- package/dist/i18n/locales/zh-CN/skills.json +29 -0
- package/dist/index.mjs +4 -4
- package/dist/shared/{ccjk.f40us0yY.mjs → ccjk.BiJujy5w.mjs} +4 -4
- package/dist/shared/{ccjk.CQzwtnZ1.mjs → ccjk.C_3BYaWc.mjs} +50 -50
- package/dist/shared/{ccjk.Zwx-YR_P.mjs → ccjk.DjD9Rzxq.mjs} +32 -32
- package/dist/shared/{ccjk.DtWIPt8E.mjs → ccjk.XgW1H2t3.mjs} +68 -68
- package/dist/shared/{ccjk.BlPCiSHj.mjs → ccjk.tI4PJA0c.mjs} +30 -30
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ansis__default from 'ansis';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { getTranslation } from './index2.mjs';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
@@ -527,9 +527,9 @@ async function pullSkills(skillIds, options = {}) {
|
|
|
527
527
|
async function syncSkills(options = {}) {
|
|
528
528
|
const t = getTranslation(options.lang);
|
|
529
529
|
console.log("");
|
|
530
|
-
console.log(
|
|
531
|
-
console.log(
|
|
532
|
-
console.log(
|
|
530
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
531
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:title.sync")}`));
|
|
532
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
533
533
|
console.log("");
|
|
534
534
|
try {
|
|
535
535
|
await showSyncStatus(options);
|
|
@@ -540,11 +540,11 @@ async function syncSkills(options = {}) {
|
|
|
540
540
|
default: true
|
|
541
541
|
});
|
|
542
542
|
if (!confirm) {
|
|
543
|
-
console.log(
|
|
543
|
+
console.log(ansis__default.yellow(`
|
|
544
544
|
${t("skillsSync:message.cancelled")}`));
|
|
545
545
|
return;
|
|
546
546
|
}
|
|
547
|
-
console.log(
|
|
547
|
+
console.log(ansis__default.dim(`
|
|
548
548
|
${t("skillsSync:message.syncing")}...
|
|
549
549
|
`));
|
|
550
550
|
const syncOptions = {
|
|
@@ -557,7 +557,7 @@ async function syncSkills(options = {}) {
|
|
|
557
557
|
const result = await syncAllSkills(syncOptions);
|
|
558
558
|
displaySyncResult(result, options.lang);
|
|
559
559
|
} catch (error) {
|
|
560
|
-
console.error(
|
|
560
|
+
console.error(ansis__default.red(`
|
|
561
561
|
${t("skillsSync:error.syncFailed")}: ${error}`));
|
|
562
562
|
throw error;
|
|
563
563
|
}
|
|
@@ -565,15 +565,15 @@ async function syncSkills(options = {}) {
|
|
|
565
565
|
async function pushSkillsCommand(options = {}) {
|
|
566
566
|
const t = getTranslation(options.lang);
|
|
567
567
|
console.log("");
|
|
568
|
-
console.log(
|
|
569
|
-
console.log(
|
|
570
|
-
console.log(
|
|
568
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
569
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:title.push")}`));
|
|
570
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
571
571
|
console.log("");
|
|
572
572
|
try {
|
|
573
573
|
const localSkills = await getLocalSkills();
|
|
574
|
-
console.log(
|
|
574
|
+
console.log(ansis__default.dim(` ${t("skillsSync:message.foundLocalSkills", { count: localSkills.length })}`));
|
|
575
575
|
if (localSkills.length === 0) {
|
|
576
|
-
console.log(
|
|
576
|
+
console.log(ansis__default.yellow(`
|
|
577
577
|
${t("skillsSync:message.noLocalSkills")}`));
|
|
578
578
|
return;
|
|
579
579
|
}
|
|
@@ -584,11 +584,11 @@ async function pushSkillsCommand(options = {}) {
|
|
|
584
584
|
default: true
|
|
585
585
|
});
|
|
586
586
|
if (!confirm) {
|
|
587
|
-
console.log(
|
|
587
|
+
console.log(ansis__default.yellow(`
|
|
588
588
|
${t("skillsSync:message.cancelled")}`));
|
|
589
589
|
return;
|
|
590
590
|
}
|
|
591
|
-
console.log(
|
|
591
|
+
console.log(ansis__default.dim(`
|
|
592
592
|
${t("skillsSync:message.pushing")}...
|
|
593
593
|
`));
|
|
594
594
|
const syncOptions = {
|
|
@@ -601,7 +601,7 @@ async function pushSkillsCommand(options = {}) {
|
|
|
601
601
|
const result = await pushSkills(options.skillIds, syncOptions);
|
|
602
602
|
displaySyncResult(result, options.lang);
|
|
603
603
|
} catch (error) {
|
|
604
|
-
console.error(
|
|
604
|
+
console.error(ansis__default.red(`
|
|
605
605
|
${t("skillsSync:error.pushFailed")}: ${error}`));
|
|
606
606
|
throw error;
|
|
607
607
|
}
|
|
@@ -609,9 +609,9 @@ async function pushSkillsCommand(options = {}) {
|
|
|
609
609
|
async function pullSkillsCommand(options = {}) {
|
|
610
610
|
const t = getTranslation(options.lang);
|
|
611
611
|
console.log("");
|
|
612
|
-
console.log(
|
|
613
|
-
console.log(
|
|
614
|
-
console.log(
|
|
612
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
613
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:title.pull")}`));
|
|
614
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
615
615
|
console.log("");
|
|
616
616
|
try {
|
|
617
617
|
const cloudResponse = await listCloudSkills({ privacy: options.privacy });
|
|
@@ -619,9 +619,9 @@ async function pullSkillsCommand(options = {}) {
|
|
|
619
619
|
throw new Error(cloudResponse.error || "Failed to list cloud skills");
|
|
620
620
|
}
|
|
621
621
|
const cloudSkills = cloudResponse.data?.skills || [];
|
|
622
|
-
console.log(
|
|
622
|
+
console.log(ansis__default.dim(` ${t("skillsSync:message.foundCloudSkills", { count: cloudSkills.length })}`));
|
|
623
623
|
if (cloudSkills.length === 0) {
|
|
624
|
-
console.log(
|
|
624
|
+
console.log(ansis__default.yellow(`
|
|
625
625
|
${t("skillsSync:message.noCloudSkills")}`));
|
|
626
626
|
return;
|
|
627
627
|
}
|
|
@@ -632,11 +632,11 @@ async function pullSkillsCommand(options = {}) {
|
|
|
632
632
|
default: true
|
|
633
633
|
});
|
|
634
634
|
if (!confirm) {
|
|
635
|
-
console.log(
|
|
635
|
+
console.log(ansis__default.yellow(`
|
|
636
636
|
${t("skillsSync:message.cancelled")}`));
|
|
637
637
|
return;
|
|
638
638
|
}
|
|
639
|
-
console.log(
|
|
639
|
+
console.log(ansis__default.dim(`
|
|
640
640
|
${t("skillsSync:message.pulling")}...
|
|
641
641
|
`));
|
|
642
642
|
const syncOptions = {
|
|
@@ -649,7 +649,7 @@ async function pullSkillsCommand(options = {}) {
|
|
|
649
649
|
const result = await pullSkills(options.skillIds, syncOptions);
|
|
650
650
|
displaySyncResult(result, options.lang);
|
|
651
651
|
} catch (error) {
|
|
652
|
-
console.error(
|
|
652
|
+
console.error(ansis__default.red(`
|
|
653
653
|
${t("skillsSync:error.pullFailed")}: ${error}`));
|
|
654
654
|
throw error;
|
|
655
655
|
}
|
|
@@ -657,9 +657,9 @@ async function pullSkillsCommand(options = {}) {
|
|
|
657
657
|
async function listCloudSkillsCommand(options = {}) {
|
|
658
658
|
const t = getTranslation(options.lang);
|
|
659
659
|
console.log("");
|
|
660
|
-
console.log(
|
|
661
|
-
console.log(
|
|
662
|
-
console.log(
|
|
660
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
661
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:title.list")}`));
|
|
662
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
663
663
|
console.log("");
|
|
664
664
|
try {
|
|
665
665
|
const response = await listCloudSkills({ privacy: options.privacy });
|
|
@@ -668,25 +668,25 @@ async function listCloudSkillsCommand(options = {}) {
|
|
|
668
668
|
}
|
|
669
669
|
const skills = response.data?.skills || [];
|
|
670
670
|
if (skills.length === 0) {
|
|
671
|
-
console.log(
|
|
671
|
+
console.log(ansis__default.yellow(` ${t("skillsSync:message.noCloudSkills")}`));
|
|
672
672
|
return;
|
|
673
673
|
}
|
|
674
|
-
console.log(
|
|
674
|
+
console.log(ansis__default.bold.green(` ${t("skillsSync:message.foundCloudSkills", { count: skills.length })}
|
|
675
675
|
`));
|
|
676
676
|
for (const skill of skills) {
|
|
677
677
|
const privacyBadge = getPrivacyBadge(skill.privacy);
|
|
678
|
-
console.log(`${
|
|
679
|
-
console.log(
|
|
678
|
+
console.log(`${ansis__default.bold(` ${skill.name}`) + ansis__default.dim(` v${skill.version}`)} ${privacyBadge}`);
|
|
679
|
+
console.log(ansis__default.dim(` ${skill.metadata.description}`));
|
|
680
680
|
if (skill.metadata.tags && skill.metadata.tags.length > 0) {
|
|
681
|
-
const tags = skill.metadata.tags.map((tag) =>
|
|
681
|
+
const tags = skill.metadata.tags.map((tag) => ansis__default.bgGray.white(` ${tag} `)).join(" ");
|
|
682
682
|
console.log(` ${tags}`);
|
|
683
683
|
}
|
|
684
|
-
console.log(
|
|
685
|
-
console.log(
|
|
684
|
+
console.log(ansis__default.dim(` ${t("skillsSync:label.author")}: ${skill.metadata.author}`));
|
|
685
|
+
console.log(ansis__default.dim(` ${t("skillsSync:label.updated")}: ${new Date(skill.updatedAt).toLocaleString()}`));
|
|
686
686
|
console.log("");
|
|
687
687
|
}
|
|
688
688
|
} catch (error) {
|
|
689
|
-
console.error(
|
|
689
|
+
console.error(ansis__default.red(`
|
|
690
690
|
${t("skillsSync:error.listFailed")}: ${error}`));
|
|
691
691
|
throw error;
|
|
692
692
|
}
|
|
@@ -698,10 +698,10 @@ async function showSyncStatus(options = {}) {
|
|
|
698
698
|
const localSkills = await getLocalSkills();
|
|
699
699
|
const cloudResponse = await listCloudSkills({ privacy: options.privacy });
|
|
700
700
|
const cloudSkills = cloudResponse.success ? cloudResponse.data?.skills || [] : [];
|
|
701
|
-
console.log(
|
|
702
|
-
console.log(
|
|
703
|
-
console.log(
|
|
704
|
-
console.log(
|
|
701
|
+
console.log(ansis__default.bold(` ${t("skillsSync:label.status")}:`));
|
|
702
|
+
console.log(ansis__default.dim(` ${t("skillsSync:label.localSkills")}: ${localSkills.length}`));
|
|
703
|
+
console.log(ansis__default.dim(` ${t("skillsSync:label.cloudSkills")}: ${cloudSkills.length}`));
|
|
704
|
+
console.log(ansis__default.dim(` ${t("skillsSync:label.lastSync")}: ${new Date(syncState.lastGlobalSync).toLocaleString()}`));
|
|
705
705
|
const states = Object.values(syncState.skills);
|
|
706
706
|
const synced = states.filter((s) => s.status === "synced").length;
|
|
707
707
|
const localAhead = states.filter((s) => s.status === "local_ahead").length;
|
|
@@ -710,31 +710,31 @@ async function showSyncStatus(options = {}) {
|
|
|
710
710
|
const localOnly = states.filter((s) => s.status === "local_only").length;
|
|
711
711
|
const remoteOnly = states.filter((s) => s.status === "remote_only").length;
|
|
712
712
|
console.log("");
|
|
713
|
-
console.log(
|
|
713
|
+
console.log(ansis__default.bold(` ${t("skillsSync:label.syncStates")}:`));
|
|
714
714
|
if (synced > 0)
|
|
715
|
-
console.log(
|
|
715
|
+
console.log(ansis__default.green(` \u2713 ${t("skillsSync:status.synced")}: ${synced}`));
|
|
716
716
|
if (localAhead > 0)
|
|
717
|
-
console.log(
|
|
717
|
+
console.log(ansis__default.yellow(` \u2191 ${t("skillsSync:status.localAhead")}: ${localAhead}`));
|
|
718
718
|
if (remoteAhead > 0)
|
|
719
|
-
console.log(
|
|
719
|
+
console.log(ansis__default.yellow(` \u2193 ${t("skillsSync:status.remoteAhead")}: ${remoteAhead}`));
|
|
720
720
|
if (conflicts > 0)
|
|
721
|
-
console.log(
|
|
721
|
+
console.log(ansis__default.red(` \u26A0 ${t("skillsSync:status.conflict")}: ${conflicts}`));
|
|
722
722
|
if (localOnly > 0)
|
|
723
|
-
console.log(
|
|
723
|
+
console.log(ansis__default.green(` \u2295 ${t("skillsSync:status.localOnly")}: ${localOnly}`));
|
|
724
724
|
if (remoteOnly > 0)
|
|
725
|
-
console.log(
|
|
725
|
+
console.log(ansis__default.green(` \u2296 ${t("skillsSync:status.remoteOnly")}: ${remoteOnly}`));
|
|
726
726
|
console.log("");
|
|
727
727
|
} catch (error) {
|
|
728
|
-
console.warn(
|
|
728
|
+
console.warn(ansis__default.yellow(` ${t("skillsSync:warning.statusFailed")}: ${error}`));
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
731
|
async function skillsSyncMenu(options = {}) {
|
|
732
732
|
const t = getTranslation(options.lang);
|
|
733
733
|
while (true) {
|
|
734
734
|
console.log("");
|
|
735
|
-
console.log(
|
|
736
|
-
console.log(
|
|
737
|
-
console.log(
|
|
735
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
736
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:menu.title")}`));
|
|
737
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
738
738
|
console.log("");
|
|
739
739
|
const { action } = await inquirer.prompt({
|
|
740
740
|
type: "list",
|
|
@@ -772,7 +772,7 @@ async function skillsSyncMenu(options = {}) {
|
|
|
772
772
|
break;
|
|
773
773
|
}
|
|
774
774
|
} catch (error) {
|
|
775
|
-
console.error(
|
|
775
|
+
console.error(ansis__default.red(`
|
|
776
776
|
${t("common.error")}: ${error}`));
|
|
777
777
|
}
|
|
778
778
|
await inquirer.prompt({
|
|
@@ -785,45 +785,45 @@ async function skillsSyncMenu(options = {}) {
|
|
|
785
785
|
function displaySyncResult(result, lang) {
|
|
786
786
|
const t = getTranslation();
|
|
787
787
|
console.log("");
|
|
788
|
-
console.log(
|
|
789
|
-
console.log(
|
|
790
|
-
console.log(
|
|
788
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
789
|
+
console.log(ansis__default.bold.cyan(` ${t("skillsSync:result.title")}`));
|
|
790
|
+
console.log(ansis__default.bold.cyan("\u2501".repeat(60)));
|
|
791
791
|
console.log("");
|
|
792
792
|
if (result.success) {
|
|
793
|
-
console.log(
|
|
793
|
+
console.log(ansis__default.bold.green(` \u2713 ${t("skillsSync:result.success")}`));
|
|
794
794
|
} else {
|
|
795
|
-
console.log(
|
|
795
|
+
console.log(ansis__default.bold.red(` \u2717 ${t("skillsSync:result.failed")}`));
|
|
796
796
|
if (result.error) {
|
|
797
|
-
console.log(
|
|
797
|
+
console.log(ansis__default.red(` ${result.error}`));
|
|
798
798
|
}
|
|
799
799
|
}
|
|
800
800
|
console.log("");
|
|
801
|
-
console.log(
|
|
802
|
-
console.log(
|
|
803
|
-
console.log(
|
|
801
|
+
console.log(ansis__default.bold(` ${t("skillsSync:result.statistics")}:`));
|
|
802
|
+
console.log(ansis__default.dim(` ${t("skillsSync:result.total")}: ${result.total}`));
|
|
803
|
+
console.log(ansis__default.green(` ${t("skillsSync:result.succeeded")}: ${result.succeeded}`));
|
|
804
804
|
if (result.failed > 0) {
|
|
805
|
-
console.log(
|
|
805
|
+
console.log(ansis__default.red(` ${t("skillsSync:result.failed")}: ${result.failed}`));
|
|
806
806
|
}
|
|
807
807
|
if (result.conflicts > 0) {
|
|
808
|
-
console.log(
|
|
808
|
+
console.log(ansis__default.yellow(` ${t("skillsSync:result.conflicts")}: ${result.conflicts}`));
|
|
809
809
|
}
|
|
810
|
-
console.log(
|
|
811
|
-
console.log(
|
|
812
|
-
console.log(
|
|
813
|
-
console.log(
|
|
810
|
+
console.log(ansis__default.green(` ${t("skillsSync:result.uploaded")}: ${result.uploaded}`));
|
|
811
|
+
console.log(ansis__default.green(` ${t("skillsSync:result.downloaded")}: ${result.downloaded}`));
|
|
812
|
+
console.log(ansis__default.dim(` ${t("skillsSync:result.skipped")}: ${result.skipped}`));
|
|
813
|
+
console.log(ansis__default.dim(` ${t("skillsSync:result.duration")}: ${(result.durationMs / 1e3).toFixed(2)}s`));
|
|
814
814
|
if (result.failed > 0 || result.conflicts > 0) {
|
|
815
815
|
console.log("");
|
|
816
|
-
console.log(
|
|
816
|
+
console.log(ansis__default.bold(` ${t("skillsSync:result.details")}:`));
|
|
817
817
|
for (const item of result.results) {
|
|
818
818
|
if (!item.success || item.action === "conflict") {
|
|
819
819
|
const icon = item.success ? "\u26A0" : "\u2717";
|
|
820
|
-
const color = item.success ?
|
|
820
|
+
const color = item.success ? ansis__default.yellow : ansis__default.red;
|
|
821
821
|
console.log(color(` ${icon} ${item.skillName}`));
|
|
822
822
|
if (item.error) {
|
|
823
|
-
console.log(
|
|
823
|
+
console.log(ansis__default.dim(` ${item.error}`));
|
|
824
824
|
}
|
|
825
825
|
if (item.action === "conflict") {
|
|
826
|
-
console.log(
|
|
826
|
+
console.log(ansis__default.dim(` ${t("skillsSync:result.conflictHint")}`));
|
|
827
827
|
}
|
|
828
828
|
}
|
|
829
829
|
}
|
|
@@ -833,11 +833,11 @@ function displaySyncResult(result, lang) {
|
|
|
833
833
|
function getPrivacyBadge(privacy) {
|
|
834
834
|
switch (privacy) {
|
|
835
835
|
case "private":
|
|
836
|
-
return
|
|
836
|
+
return ansis__default.bgRed.white(" PRIVATE ");
|
|
837
837
|
case "team":
|
|
838
|
-
return
|
|
838
|
+
return ansis__default.bgYellow.black(" TEAM ");
|
|
839
839
|
case "public":
|
|
840
|
-
return
|
|
840
|
+
return ansis__default.bgGreen.white(" PUBLIC ");
|
|
841
841
|
default:
|
|
842
842
|
return "";
|
|
843
843
|
}
|