cc-proficiency 0.2.2 → 0.2.4
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/README.md +2 -0
- package/dist/cli/commands/achievements.d.ts +2 -0
- package/dist/cli/commands/achievements.d.ts.map +1 -0
- package/dist/cli/commands/achievements.js +51 -0
- package/dist/cli/commands/achievements.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +2 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +27 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/badge.d.ts +2 -0
- package/dist/cli/commands/badge.d.ts.map +1 -0
- package/dist/cli/commands/badge.js +25 -0
- package/dist/cli/commands/badge.js.map +1 -0
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +39 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -0
- package/dist/cli/commands/explain.d.ts.map +1 -0
- package/dist/cli/commands/explain.js +44 -0
- package/dist/cli/commands/explain.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +63 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/process.d.ts +2 -0
- package/dist/cli/commands/process.d.ts.map +1 -0
- package/dist/cli/commands/process.js +76 -0
- package/dist/cli/commands/process.js.map +1 -0
- package/dist/cli/commands/push.d.ts +2 -0
- package/dist/cli/commands/push.d.ts.map +1 -0
- package/dist/cli/commands/push.js +8 -0
- package/dist/cli/commands/push.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +53 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +2 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +27 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +86 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/services/hooks.d.ts +3 -0
- package/dist/cli/services/hooks.d.ts.map +1 -0
- package/dist/cli/services/hooks.js +68 -0
- package/dist/cli/services/hooks.js.map +1 -0
- package/dist/cli/services/publishing.d.ts +2 -0
- package/dist/cli/services/publishing.d.ts.map +1 -0
- package/dist/cli/services/publishing.js +87 -0
- package/dist/cli/services/publishing.js.map +1 -0
- package/dist/cli/services/sessions.d.ts +11 -0
- package/dist/cli/services/sessions.d.ts.map +1 -0
- package/dist/cli/services/sessions.js +78 -0
- package/dist/cli/services/sessions.js.map +1 -0
- package/dist/cli/utils/formatting.d.ts +5 -0
- package/dist/cli/utils/formatting.d.ts.map +1 -0
- package/dist/cli/utils/formatting.js +64 -0
- package/dist/cli/utils/formatting.js.map +1 -0
- package/dist/cli/utils/locale.d.ts +3 -0
- package/dist/cli/utils/locale.d.ts.map +1 -0
- package/dist/cli/utils/locale.js +14 -0
- package/dist/cli/utils/locale.js.map +1 -0
- package/dist/gist/uploader.d.ts +12 -0
- package/dist/gist/uploader.d.ts.map +1 -1
- package/dist/gist/uploader.js +72 -0
- package/dist/gist/uploader.js.map +1 -1
- package/dist/hooks/session-end.js +3 -2
- package/dist/parsers/config-parser.d.ts.map +1 -1
- package/dist/parsers/config-parser.js +170 -164
- package/dist/parsers/config-parser.js.map +1 -1
- package/dist/renderer/svg.d.ts.map +1 -1
- package/dist/renderer/svg.js +10 -4
- package/dist/renderer/svg.js.map +1 -1
- package/dist/scoring/engine.d.ts.map +1 -1
- package/dist/scoring/engine.js +12 -0
- package/dist/scoring/engine.js.map +1 -1
- package/dist/scoring/rule-engine.d.ts.map +1 -1
- package/dist/scoring/rule-engine.js.map +1 -1
- package/dist/scoring/signals.js +2 -2
- package/dist/scoring/signals.js.map +1 -1
- package/dist/store/achievements.d.ts +16 -0
- package/dist/store/achievements.d.ts.map +1 -0
- package/dist/store/achievements.js +153 -0
- package/dist/store/achievements.js.map +1 -0
- package/dist/store/local-store.d.ts.map +1 -1
- package/dist/store/remote-store.d.ts +42 -0
- package/dist/store/remote-store.d.ts.map +1 -0
- package/dist/store/remote-store.js +185 -0
- package/dist/store/remote-store.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -1
- package/hooks/session-end.ts +4 -3
- package/package.json +8 -3
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -616
- package/dist/cli.js.map +0 -1
- package/skills/proficiency/SKILL.md +0 -15
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,IAAI,IAAI,CA+CtC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdAchievements = cmdAchievements;
|
|
4
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
5
|
+
const uploader_js_1 = require("../../gist/uploader.js");
|
|
6
|
+
const remote_store_js_1 = require("../../store/remote-store.js");
|
|
7
|
+
const achievements_js_1 = require("../../store/achievements.js");
|
|
8
|
+
const formatting_js_1 = require("../utils/formatting.js");
|
|
9
|
+
function cmdAchievements() {
|
|
10
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
11
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
12
|
+
if (!store.lastResult) {
|
|
13
|
+
console.log("No analysis data. Run 'cc-proficiency analyze' first.");
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
let unlockedIds = [];
|
|
17
|
+
if (config.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
18
|
+
const remoteJson = (0, uploader_js_1.readGistFile)(config.gistId, "cc-proficiency.json");
|
|
19
|
+
const remote = remoteJson ? (0, remote_store_js_1.parseRemoteStore)(remoteJson) : null;
|
|
20
|
+
if (remote) {
|
|
21
|
+
unlockedIds = remote.achievements.map((a) => a.id);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const result = store.lastResult;
|
|
25
|
+
const ctx = {
|
|
26
|
+
totalSessions: result.sessionCount,
|
|
27
|
+
totalHours: result.features.totalHours,
|
|
28
|
+
totalProjects: result.projectCount,
|
|
29
|
+
domains: result.domains,
|
|
30
|
+
streak: { current: 0, longest: 0 },
|
|
31
|
+
features: result.features,
|
|
32
|
+
activeDates: [],
|
|
33
|
+
};
|
|
34
|
+
const newLocal = (0, achievements_js_1.checkAchievements)(ctx, unlockedIds);
|
|
35
|
+
const allUnlocked = new Set([...unlockedIds, ...newLocal]);
|
|
36
|
+
console.log(`\n Achievements (${allUnlocked.size}/${achievements_js_1.ACHIEVEMENTS.length})\n`);
|
|
37
|
+
for (const achievement of achievements_js_1.ACHIEVEMENTS) {
|
|
38
|
+
const unlocked = allUnlocked.has(achievement.id);
|
|
39
|
+
const { current, target } = achievement.progress(ctx);
|
|
40
|
+
const pct = Math.min(100, Math.round((current / target) * 100));
|
|
41
|
+
const bar = (0, formatting_js_1.progressBar)(pct, 12);
|
|
42
|
+
if (unlocked) {
|
|
43
|
+
console.log(` ${achievement.icon} ${achievement.name.padEnd(18)} ${bar} Done!`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.log(` \u2591 ${achievement.name.padEnd(18)} ${bar} ${current}/${target}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
console.log("");
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=achievements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.js","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":";;AAMA,0CA+CC;AArDD,+DAAmE;AACnE,wDAAyE;AACzE,iEAA+D;AAC/D,iEAA8E;AAC9E,0DAAqD;AAErD,SAAgB,eAAe;IAC7B,MAAM,KAAK,GAAG,IAAA,0BAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAC;IAE5B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,IAAA,+BAAiB,GAAE,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAA,0BAAY,EAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,kCAAgB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,MAAM,GAAG,GAAG;QACV,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACtC,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,mCAAiB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,IAAI,IAAI,8BAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IAE/E,KAAK,MAAM,WAAW,IAAI,8BAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,IAAA,2BAAW,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEjC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB9D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdAnalyze = cmdAnalyze;
|
|
4
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
5
|
+
const sessions_js_1 = require("../services/sessions.js");
|
|
6
|
+
const formatting_js_1 = require("../utils/formatting.js");
|
|
7
|
+
async function cmdAnalyze(args) {
|
|
8
|
+
const full = args.includes("--full");
|
|
9
|
+
console.log(full ? "Running full analysis..." : "Running incremental analysis...\n");
|
|
10
|
+
const { sessions, config } = await (0, sessions_js_1.gatherData)(full);
|
|
11
|
+
if (sessions.length === 0) {
|
|
12
|
+
console.log("No sessions found. Use Claude Code first, then run analyze again.");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
16
|
+
const result = (0, sessions_js_1.runAnalysis)(sessions, config, userConfig.username ?? "unknown");
|
|
17
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
18
|
+
store.lastResult = result;
|
|
19
|
+
for (const s of sessions) {
|
|
20
|
+
if (!store.processedSessionIds.includes(s.sessionId)) {
|
|
21
|
+
store.processedSessionIds.push(s.sessionId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
(0, local_store_js_1.saveStore)(store);
|
|
25
|
+
(0, formatting_js_1.printResult)(result);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":";;AAIA,gCAwBC;AA5BD,+DAA8E;AAC9E,yDAAkE;AAClE,0DAAqD;AAE9C,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;IAErF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,2BAAU,GAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IAE/E,MAAM,KAAK,GAAG,IAAA,0BAAS,GAAE,CAAC;IAC1B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAA,0BAAS,EAAC,KAAK,CAAC,CAAC;IAEjB,IAAA,2BAAW,EAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/badge.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiB7C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdBadge = cmdBadge;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const svg_js_1 = require("../../renderer/svg.js");
|
|
6
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
7
|
+
const locale_js_1 = require("../utils/locale.js");
|
|
8
|
+
function cmdBadge(args) {
|
|
9
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
10
|
+
if (!store.lastResult) {
|
|
11
|
+
console.log("No analysis data. Run 'cc-proficiency analyze' first.");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const svg = (0, svg_js_1.renderBadge)(store.lastResult, (0, locale_js_1.getConfigLocale)());
|
|
15
|
+
const outputIdx = args.indexOf("--output");
|
|
16
|
+
if (outputIdx !== -1 && args[outputIdx + 1]) {
|
|
17
|
+
(0, node_fs_1.writeFileSync)(args[outputIdx + 1], svg, "utf-8");
|
|
18
|
+
console.log(`Badge written to ${args[outputIdx + 1]}`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const path = (0, local_store_js_1.saveBadge)(svg);
|
|
22
|
+
console.log(`Badge saved to ${path}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/cli/commands/badge.ts"],"names":[],"mappings":";;AAKA,4BAiBC;AAtBD,qCAAwC;AACxC,kDAAoD;AACpD,+DAAkE;AAClE,kDAAqD;AAErD,SAAgB,QAAQ,CAAC,IAAc;IACrC,MAAM,KAAK,GAAG,IAAA,0BAAS,GAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,UAAU,EAAE,IAAA,2BAAe,GAAE,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAA,uBAAa,EAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,IAAA,0BAAS,EAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA+B9C"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdConfig = cmdConfig;
|
|
4
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
5
|
+
function cmdConfig(args) {
|
|
6
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
7
|
+
if (args.length === 0) {
|
|
8
|
+
console.log(JSON.stringify(config, null, 2));
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (args.length === 1) {
|
|
12
|
+
const key = args[0];
|
|
13
|
+
if (key in config) {
|
|
14
|
+
console.log(`${key}: ${JSON.stringify(config[key])}`);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.log(`Unknown key: ${key}`);
|
|
18
|
+
}
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const [key, value] = args;
|
|
22
|
+
if (key === "username")
|
|
23
|
+
config.username = value;
|
|
24
|
+
else if (key === "gistId")
|
|
25
|
+
config.gistId = value;
|
|
26
|
+
else if (key === "autoUpload")
|
|
27
|
+
config.autoUpload = value === "true";
|
|
28
|
+
else if (key === "public")
|
|
29
|
+
config.public = value === "true";
|
|
30
|
+
else if (key === "locale")
|
|
31
|
+
config.locale = value;
|
|
32
|
+
else {
|
|
33
|
+
console.log(`Unknown key: ${key}`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
37
|
+
console.log(`Set ${key} = ${value}`);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":";;AAEA,8BA+BC;AAjCD,+DAAoE;AAEpE,SAAgB,SAAS,CAAC,IAAc;IACtC,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAC;IAE5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAwB,CAAC;QAC3C,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IAC1B,IAAI,GAAG,KAAK,UAAU;QAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3C,IAAI,GAAG,KAAK,QAAQ;QAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;SAC5C,IAAI,GAAG,KAAK,YAAY;QAAE,MAAM,CAAC,UAAU,GAAG,KAAK,KAAK,MAAM,CAAC;SAC/D,IAAI,GAAG,KAAK,QAAQ;QAAE,MAAM,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;SACvD,IAAI,GAAG,KAAK,QAAQ;QAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;SAC5C,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,IAAA,2BAAU,EAAC,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,IAAI,IAAI,CA6CjC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdExplain = cmdExplain;
|
|
4
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
5
|
+
function cmdExplain() {
|
|
6
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
7
|
+
if (!store.lastResult) {
|
|
8
|
+
console.log("No analysis data. Run 'cc-proficiency analyze' first.");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const result = store.lastResult;
|
|
12
|
+
const sorted = [...result.domains].sort((a, b) => b.score - a.score);
|
|
13
|
+
const weakest = [...result.domains].sort((a, b) => a.score - b.score);
|
|
14
|
+
console.log(`\n Claude Code Proficiency \u2014 @${result.username}\n`);
|
|
15
|
+
console.log(" Strengths:");
|
|
16
|
+
for (const d of sorted) {
|
|
17
|
+
console.log(` ${d.label.padEnd(14)} ${d.score}/100`);
|
|
18
|
+
}
|
|
19
|
+
const tips = {
|
|
20
|
+
"cc-mastery": "Enhance CLAUDE.md with imports, add hooks with matchers, create rules files, use plan mode",
|
|
21
|
+
"tool-mcp": "Chain tools deliberately (Grep\u2192Read\u2192Edit), set up MCP servers, use LSP integration",
|
|
22
|
+
"agentic": "Use subagents with different types (Explore, Plan), try parallel agents and worktrees",
|
|
23
|
+
"prompt-craft": "Structure prompts with markdown lists, provide code blocks and file references",
|
|
24
|
+
"context-mgmt": "Use cross-session memory files, work across multiple projects, update CLAUDE.md",
|
|
25
|
+
};
|
|
26
|
+
console.log("\n Areas to Improve:");
|
|
27
|
+
for (let i = 0; i < Math.min(2, weakest.length); i++) {
|
|
28
|
+
const d = weakest[i];
|
|
29
|
+
console.log(` ${d.label} (${d.score}/100)`);
|
|
30
|
+
console.log(` \u2192 ${tips[d.id] ?? "Practice using this feature area"}`);
|
|
31
|
+
}
|
|
32
|
+
const f = result.features;
|
|
33
|
+
console.log("\n Feature Usage:");
|
|
34
|
+
if (f.hooks.length > 0)
|
|
35
|
+
console.log(` Hooks: ${f.hooks.map((h) => `${h.name} (${h.count}x)`).join(", ")}`);
|
|
36
|
+
if (f.skills.length > 0)
|
|
37
|
+
console.log(` Skills: ${f.skills.map((s) => `${s.name} (${s.count}x)`).join(", ")}`);
|
|
38
|
+
if (f.mcpServers.length > 0)
|
|
39
|
+
console.log(` MCP: ${f.mcpServers.join(", ")}`);
|
|
40
|
+
console.log(` Tools: ${f.topTools.map((t) => `${t.name} (${t.count})`).join(", ")} +${f.uniqueToolCount - f.topTools.length} more`);
|
|
41
|
+
console.log(` Flags: ${f.usedPlanMode ? "\u2713 Plan" : "\u2717 Plan"} ${f.hasMemory ? "\u2713 Memory" : "\u2717 Memory"} ${f.hasRules ? "\u2713 Rules" : "\u2717 Rules"}`);
|
|
42
|
+
console.log(`\n ${result.sessionCount} sessions \u00B7 ${result.projectCount} projects\n`);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=explain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD7C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdInit = cmdInit;
|
|
4
|
+
const svg_js_1 = require("../../renderer/svg.js");
|
|
5
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
6
|
+
const queue_js_1 = require("../../store/queue.js");
|
|
7
|
+
const uploader_js_1 = require("../../gist/uploader.js");
|
|
8
|
+
const hooks_js_1 = require("../services/hooks.js");
|
|
9
|
+
const locale_js_1 = require("../utils/locale.js");
|
|
10
|
+
const analyze_js_1 = require("./analyze.js");
|
|
11
|
+
async function cmdInit() {
|
|
12
|
+
console.log("Initializing cc-proficiency...\n");
|
|
13
|
+
(0, queue_js_1.ensureStoreDir)();
|
|
14
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
15
|
+
if ((0, uploader_js_1.isGhAuthenticated)()) {
|
|
16
|
+
const username = (0, uploader_js_1.getGhUsername)();
|
|
17
|
+
if (username) {
|
|
18
|
+
config.username = username;
|
|
19
|
+
console.log(` GitHub user: @${username}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.log(" \u26A0 GitHub CLI not authenticated.");
|
|
24
|
+
console.log(" Badge will be saved locally to: " + (0, local_store_js_1.getBadgePath)());
|
|
25
|
+
console.log(" To enable auto-upload: gh auth login && cc-proficiency init\n");
|
|
26
|
+
}
|
|
27
|
+
(0, hooks_js_1.injectHook)();
|
|
28
|
+
console.log(" \u2713 Hook injected into ~/.claude/settings.json");
|
|
29
|
+
console.log("\n Running initial analysis...");
|
|
30
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
31
|
+
await (0, analyze_js_1.cmdAnalyze)(["--full"]);
|
|
32
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
33
|
+
let badgeSvg = '<svg xmlns="http://www.w3.org/2000/svg"><text>No data</text></svg>';
|
|
34
|
+
if (store.lastResult) {
|
|
35
|
+
badgeSvg = (0, svg_js_1.renderBadge)(store.lastResult, (0, locale_js_1.getConfigLocale)());
|
|
36
|
+
(0, local_store_js_1.saveBadge)(badgeSvg);
|
|
37
|
+
}
|
|
38
|
+
if (config.username && (0, uploader_js_1.isGhAuthenticated)() && !config.gistId) {
|
|
39
|
+
console.log(" Creating private Gist with badge...");
|
|
40
|
+
const result = (0, uploader_js_1.createGist)(badgeSvg, config.public);
|
|
41
|
+
if (result.success && result.url) {
|
|
42
|
+
config.gistId = result.url;
|
|
43
|
+
const rawUrl = (0, uploader_js_1.getGistRawUrl)(config.username, result.url);
|
|
44
|
+
console.log(` \u2713 Gist created`);
|
|
45
|
+
console.log(`\n Add to your README:`);
|
|
46
|
+
console.log(` `);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log(` \u26A0 Could not create Gist: ${result.error}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (config.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
53
|
+
const gistResult = (0, uploader_js_1.updateGist)(config.gistId, badgeSvg);
|
|
54
|
+
if (gistResult.success) {
|
|
55
|
+
const rawUrl = (0, uploader_js_1.getGistRawUrl)(config.username ?? "", config.gistId);
|
|
56
|
+
console.log(` \u2713 Badge pushed to Gist: ${rawUrl}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
60
|
+
console.log("\n \u2713 Configuration saved to " + (0, local_store_js_1.getStoreDir)());
|
|
61
|
+
console.log(" Badge saved locally to: " + (0, local_store_js_1.getBadgePath)());
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/process.ts"],"names":[],"mappings":"AAYA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EhD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdProcess = cmdProcess;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const transcript_parser_js_1 = require("../../parsers/transcript-parser.js");
|
|
6
|
+
const config_parser_js_1 = require("../../parsers/config-parser.js");
|
|
7
|
+
const engine_js_1 = require("../../scoring/engine.js");
|
|
8
|
+
const svg_js_1 = require("../../renderer/svg.js");
|
|
9
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
10
|
+
const queue_js_1 = require("../../store/queue.js");
|
|
11
|
+
const uploader_js_1 = require("../../gist/uploader.js");
|
|
12
|
+
const sessions_js_1 = require("../services/sessions.js");
|
|
13
|
+
const locale_js_1 = require("../utils/locale.js");
|
|
14
|
+
async function cmdProcess() {
|
|
15
|
+
if (!(0, queue_js_1.acquireLock)()) {
|
|
16
|
+
console.log("Another process is running. Skipping.");
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const queue = (0, queue_js_1.readQueue)();
|
|
21
|
+
if (queue.length === 0) {
|
|
22
|
+
console.log("Queue empty. Nothing to process.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
26
|
+
const newSessions = [];
|
|
27
|
+
const processed = [];
|
|
28
|
+
for (const entry of queue) {
|
|
29
|
+
if ((0, local_store_js_1.isSessionProcessed)(store, entry.sessionId)) {
|
|
30
|
+
processed.push(entry.sessionId);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (!(0, node_fs_1.existsSync)(entry.transcriptPath)) {
|
|
34
|
+
(0, local_store_js_1.logError)(`Transcript not found: ${entry.transcriptPath}`);
|
|
35
|
+
processed.push(entry.sessionId);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const session = await (0, transcript_parser_js_1.parseTranscript)(entry.transcriptPath);
|
|
40
|
+
if (session.events.length > 0) {
|
|
41
|
+
newSessions.push(session);
|
|
42
|
+
store.processedSessionIds.push(entry.sessionId);
|
|
43
|
+
}
|
|
44
|
+
processed.push(entry.sessionId);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
(0, local_store_js_1.logError)(`Failed to parse ${entry.sessionId}: ${err}`);
|
|
48
|
+
processed.push(entry.sessionId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (newSessions.length > 0) {
|
|
52
|
+
const config = (0, config_parser_js_1.parseClaudeConfig)();
|
|
53
|
+
const allSessions = await (0, sessions_js_1.gatherAllProcessedSessions)(store);
|
|
54
|
+
const sessionsToScore = allSessions.length > 0 ? allSessions : newSessions;
|
|
55
|
+
const setupChecklist = (0, config_parser_js_1.buildSetupChecklist)(config);
|
|
56
|
+
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
57
|
+
const result = (0, engine_js_1.computeProficiency)(sessionsToScore, config, userConfig.username ?? "unknown", setupChecklist);
|
|
58
|
+
store.lastResult = result;
|
|
59
|
+
const svg = (0, svg_js_1.renderBadge)(result, (0, locale_js_1.getConfigLocale)());
|
|
60
|
+
const badgePath = (0, local_store_js_1.saveBadge)(svg);
|
|
61
|
+
if (userConfig.autoUpload && userConfig.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
62
|
+
const gistResult = (0, uploader_js_1.updateGist)(userConfig.gistId, svg);
|
|
63
|
+
if (!gistResult.success) {
|
|
64
|
+
(0, local_store_js_1.logError)(`Gist push failed: ${gistResult.error}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
console.log(`Processed ${newSessions.length} session(s). Badge saved to ${badgePath}`);
|
|
68
|
+
}
|
|
69
|
+
(0, queue_js_1.writeQueue)(new Set(processed));
|
|
70
|
+
(0, local_store_js_1.saveStore)(store);
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
(0, queue_js_1.releaseLock)();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/cli/commands/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdPush = cmdPush;
|
|
4
|
+
const publishing_js_1 = require("../services/publishing.js");
|
|
5
|
+
function cmdPush() {
|
|
6
|
+
(0, publishing_js_1.pushToGist)();
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":";;AAEA,0BAEC;AAJD,6DAAuD;AAEvD,SAAgB,OAAO;IACrB,IAAA,0BAAU,GAAE,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,IAAI,IAAI,CAiDhC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdStatus = cmdStatus;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
7
|
+
const queue_js_1 = require("../../store/queue.js");
|
|
8
|
+
function cmdStatus() {
|
|
9
|
+
const hookLogPath = (0, node_path_1.join)((0, local_store_js_1.getStoreDir)(), "hook.log");
|
|
10
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
11
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
12
|
+
console.log("\n cc-proficiency status\n");
|
|
13
|
+
console.log(` Username: ${config.username ?? "(not set)"}`);
|
|
14
|
+
console.log(` Gist ID: ${config.gistId ?? "(not set)"}`);
|
|
15
|
+
console.log(` Auto-upload: ${config.autoUpload}`);
|
|
16
|
+
console.log(` Locale: ${config.locale ?? "en"}`);
|
|
17
|
+
console.log(`\n Sessions processed: ${store.processedSessionIds.length}`);
|
|
18
|
+
console.log(` Last updated: ${store.lastUpdated ?? "never"}`);
|
|
19
|
+
const queue = (0, queue_js_1.readQueue)();
|
|
20
|
+
console.log(` Queue pending: ${queue.length}`);
|
|
21
|
+
if ((0, node_fs_1.existsSync)(hookLogPath)) {
|
|
22
|
+
const log = (0, node_fs_1.readFileSync)(hookLogPath, "utf-8").trim().split("\n");
|
|
23
|
+
const recent = log.slice(-10);
|
|
24
|
+
console.log(`\n Hook log (last ${recent.length} entries):`);
|
|
25
|
+
for (const line of recent) {
|
|
26
|
+
console.log(` ${line}`);
|
|
27
|
+
}
|
|
28
|
+
const lastQueued = log.filter((l) => l.includes("QUEUED")).pop();
|
|
29
|
+
if (lastQueued) {
|
|
30
|
+
const match = lastQueued.match(/\[(.*?)\]/);
|
|
31
|
+
console.log(`\n Last hook fired: ${match ? match[1] : "unknown"}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log("\n Hook log: no entries yet (hook hasn't fired)");
|
|
36
|
+
}
|
|
37
|
+
const lockPath = (0, node_path_1.join)((0, local_store_js_1.getStoreDir)(), "queue.lock");
|
|
38
|
+
if ((0, node_fs_1.existsSync)(lockPath)) {
|
|
39
|
+
try {
|
|
40
|
+
const lockTime = parseInt((0, node_fs_1.readFileSync)(lockPath, "utf-8"), 10);
|
|
41
|
+
const age = Math.round((Date.now() - lockTime) / 1000);
|
|
42
|
+
console.log(` Queue lock: held (${age}s ago)${age > 60 ? " \u2190 STALE" : ""}`);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
console.log(" Queue lock: present (unknown age)");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log(" Queue lock: none");
|
|
50
|
+
}
|
|
51
|
+
console.log("");
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,IAAI,IAAI,CAoBnC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdUninstall = cmdUninstall;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
7
|
+
const hooks_js_1 = require("../services/hooks.js");
|
|
8
|
+
function cmdUninstall() {
|
|
9
|
+
console.log("Uninstalling cc-proficiency...\n");
|
|
10
|
+
(0, hooks_js_1.removeHook)();
|
|
11
|
+
const storeDir = (0, local_store_js_1.getStoreDir)();
|
|
12
|
+
if ((0, node_fs_1.existsSync)(storeDir)) {
|
|
13
|
+
try {
|
|
14
|
+
const files = (0, node_fs_1.readdirSync)(storeDir);
|
|
15
|
+
for (const f of files) {
|
|
16
|
+
(0, node_fs_1.unlinkSync)((0, node_path_1.join)(storeDir, f));
|
|
17
|
+
}
|
|
18
|
+
(0, node_fs_1.rmdirSync)(storeDir);
|
|
19
|
+
console.log(" \u2713 Local data removed");
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
console.log(" \u26A0 Could not fully remove " + storeDir);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
console.log("\n cc-proficiency uninstalled. Run 'npm uninstall -g cc-proficiency' to remove the package.");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":";;AAKA,oCAoBC;AAzBD,qCAAyE;AACzE,yCAAiC;AACjC,+DAAyD;AACzD,mDAAkD;AAElD,SAAgB,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,IAAA,qBAAU,GAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,IAAA,4BAAW,GAAE,CAAC;IAC/B,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;AAC9G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|