cc-proficiency 0.2.3 → 0.2.5
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 +23 -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 +52 -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 +32 -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 +43 -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 +69 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/leaderboard.d.ts +2 -0
- package/dist/cli/commands/leaderboard.d.ts.map +1 -0
- package/dist/cli/commands/leaderboard.js +58 -0
- package/dist/cli/commands/leaderboard.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 +84 -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/share.d.ts +2 -0
- package/dist/cli/commands/share.d.ts.map +1 -0
- package/dist/cli/commands/share.js +129 -0
- package/dist/cli/commands/share.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 +54 -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 +108 -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/leaderboard.d.ts +11 -0
- package/dist/cli/services/leaderboard.d.ts.map +1 -0
- package/dist/cli/services/leaderboard.js +120 -0
- package/dist/cli/services/leaderboard.js.map +1 -0
- package/dist/cli/services/publishing.d.ts +18 -0
- package/dist/cli/services/publishing.d.ts.map +1 -0
- package/dist/cli/services/publishing.js +112 -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 +80 -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 +66 -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/cli/utils/update-check.d.ts +7 -0
- package/dist/cli/utils/update-check.d.ts.map +1 -0
- package/dist/cli/utils/update-check.js +122 -0
- package/dist/cli/utils/update-check.js.map +1 -0
- package/dist/gist/registry.d.ts +26 -0
- package/dist/gist/registry.d.ts.map +1 -0
- package/dist/gist/registry.js +101 -0
- package/dist/gist/registry.js.map +1 -0
- package/dist/gist/uploader.d.ts +9 -1
- package/dist/gist/uploader.d.ts.map +1 -1
- package/dist/gist/uploader.js +47 -1
- package/dist/gist/uploader.js.map +1 -1
- package/dist/hooks/session-end.js +3 -2
- package/dist/i18n/locales.d.ts.map +1 -1
- package/dist/i18n/locales.js +2 -1
- package/dist/i18n/locales.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/parsers/config-detectors.d.ts +29 -0
- package/dist/parsers/config-detectors.d.ts.map +1 -0
- package/dist/parsers/config-detectors.js +367 -0
- package/dist/parsers/config-detectors.js.map +1 -0
- package/dist/parsers/config-parser.d.ts +7 -2
- package/dist/parsers/config-parser.d.ts.map +1 -1
- package/dist/parsers/config-parser.js +36 -228
- package/dist/parsers/config-parser.js.map +1 -1
- package/dist/renderer/svg.d.ts.map +1 -1
- package/dist/renderer/svg.js +3 -1
- package/dist/renderer/svg.js.map +1 -1
- package/dist/scoring/engine.d.ts +1 -1
- package/dist/scoring/engine.d.ts.map +1 -1
- package/dist/scoring/engine.js +30 -8
- package/dist/scoring/engine.js.map +1 -1
- package/dist/scoring/feature-scores.d.ts +27 -0
- package/dist/scoring/feature-scores.d.ts.map +1 -0
- package/dist/scoring/feature-scores.js +63 -0
- package/dist/scoring/feature-scores.js.map +1 -0
- package/dist/scoring/rule-engine.d.ts.map +1 -1
- package/dist/scoring/rule-engine.js.map +1 -1
- package/dist/scoring/rules.d.ts.map +1 -1
- package/dist/scoring/rules.js +12 -0
- package/dist/scoring/rules.js.map +1 -1
- package/dist/scoring/signals.js +4 -2
- package/dist/scoring/signals.js.map +1 -1
- package/dist/store/achievements.d.ts.map +1 -1
- package/dist/store/achievements.js +8 -0
- package/dist/store/achievements.js.map +1 -1
- package/dist/store/local-store.d.ts +3 -1
- package/dist/store/local-store.d.ts.map +1 -1
- package/dist/store/local-store.js +21 -3
- package/dist/store/local-store.js.map +1 -1
- package/dist/store/public-profile.d.ts +12 -0
- package/dist/store/public-profile.d.ts.map +1 -0
- package/dist/store/public-profile.js +50 -0
- package/dist/store/public-profile.js.map +1 -0
- package/dist/store/queue.js +1 -1
- package/dist/store/queue.js.map +1 -1
- package/dist/store/remote-store.d.ts.map +1 -1
- package/dist/types.d.ts +54 -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 -722
- package/dist/cli.js.map +0 -1
- package/skills/proficiency/SKILL.md +0 -15
package/README.md
CHANGED
|
@@ -288,9 +288,30 @@ Config evidence is weighted more heavily during calibration, less as transcripts
|
|
|
288
288
|
| `cc-proficiency badge [--output <file>]` | Generate SVG badge |
|
|
289
289
|
| `cc-proficiency push` | Upload badge to Gist |
|
|
290
290
|
| `cc-proficiency explain` | Show score drivers and tips |
|
|
291
|
+
| `cc-proficiency achievements` | View achievement progress |
|
|
292
|
+
| `cc-proficiency status` | Show hook activity, queue, and config |
|
|
291
293
|
| `cc-proficiency config [key] [value]` | View/set configuration |
|
|
294
|
+
| `cc-proficiency share [--remove]` | Join or leave the community leaderboard |
|
|
295
|
+
| `cc-proficiency leaderboard` | View community rankings |
|
|
292
296
|
| `cc-proficiency uninstall` | Remove hooks and clean up |
|
|
293
297
|
|
|
298
|
+
### Community Leaderboard
|
|
299
|
+
|
|
300
|
+
Opt into the community leaderboard to compare your proficiency with other Claude Code users:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# Join the leaderboard (creates a separate public profile)
|
|
304
|
+
$ cc-proficiency share
|
|
305
|
+
|
|
306
|
+
# View rankings
|
|
307
|
+
$ cc-proficiency leaderboard
|
|
308
|
+
|
|
309
|
+
# Leave the leaderboard
|
|
310
|
+
$ cc-proficiency share --remove
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Your private data (session details, project names, file paths) is never shared. Only scores, streak, and achievement count are public. See the [wiki](https://github.com/Z-M-Huang/cc-proficiency/wiki) for full documentation.
|
|
314
|
+
|
|
294
315
|
## Architecture
|
|
295
316
|
|
|
296
317
|
```
|
|
@@ -318,6 +339,8 @@ npm install
|
|
|
318
339
|
npm test # 146 tests
|
|
319
340
|
npm run build # compile to dist/
|
|
320
341
|
npm run typecheck # tsc --noEmit
|
|
342
|
+
npm run lint # eslint
|
|
343
|
+
npm run check # typecheck + lint + test
|
|
321
344
|
```
|
|
322
345
|
|
|
323
346
|
## License
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,IAAI,IAAI,CAgDtC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
leaderboard: config.leaderboard ?? false,
|
|
34
|
+
};
|
|
35
|
+
const newLocal = (0, achievements_js_1.checkAchievements)(ctx, unlockedIds);
|
|
36
|
+
const allUnlocked = new Set([...unlockedIds, ...newLocal]);
|
|
37
|
+
console.log(`\n Achievements (${allUnlocked.size}/${achievements_js_1.ACHIEVEMENTS.length})\n`);
|
|
38
|
+
for (const achievement of achievements_js_1.ACHIEVEMENTS) {
|
|
39
|
+
const unlocked = allUnlocked.has(achievement.id);
|
|
40
|
+
const { current, target } = achievement.progress(ctx);
|
|
41
|
+
const pct = Math.min(100, Math.round((current / target) * 100));
|
|
42
|
+
const bar = (0, formatting_js_1.progressBar)(pct, 12);
|
|
43
|
+
if (unlocked) {
|
|
44
|
+
console.log(` ${achievement.icon} ${achievement.name.padEnd(18)} ${bar} Done!`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(` \u2591 ${achievement.name.padEnd(18)} ${bar} ${current}/${target}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
console.log("");
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=achievements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.js","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":";;AAMA,0CAgDC;AAtDD,+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;QACf,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;KACzC,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,CA8B9D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
// Always persist current cwd, even if no sessions found
|
|
12
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
13
|
+
const known = new Set(store.knownProjectCwds ?? []);
|
|
14
|
+
known.add(process.cwd());
|
|
15
|
+
store.knownProjectCwds = [...known];
|
|
16
|
+
(0, local_store_js_1.saveStore)(store);
|
|
17
|
+
if (sessions.length === 0) {
|
|
18
|
+
console.log("No sessions found. Use Claude Code first, then run analyze again.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
22
|
+
const result = (0, sessions_js_1.runAnalysis)(sessions, config, userConfig.username ?? "unknown");
|
|
23
|
+
store.lastResult = result;
|
|
24
|
+
for (const s of sessions) {
|
|
25
|
+
if (!store.processedSessionIds.includes(s.sessionId)) {
|
|
26
|
+
store.processedSessionIds.push(s.sessionId);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
(0, local_store_js_1.saveStore)(store);
|
|
30
|
+
(0, formatting_js_1.printResult)(result);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":";;AAIA,gCA8BC;AAlCD,+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,wDAAwD;IACxD,MAAM,KAAK,GAAG,IAAA,0BAAS,GAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzB,KAAK,CAAC,gBAAgB,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACpC,IAAA,0BAAS,EAAC,KAAK,CAAC,CAAC;IAEjB,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,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,CAiC9C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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 if (key === "leaderboard")
|
|
33
|
+
config.leaderboard = value === "true";
|
|
34
|
+
else if (key === "publicGistId")
|
|
35
|
+
config.publicGistId = value;
|
|
36
|
+
else {
|
|
37
|
+
console.log(`Unknown key: ${key}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
41
|
+
console.log(`Set ${key} = ${value}`);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":";;AAEA,8BAiCC;AAnCD,+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,IAAI,GAAG,KAAK,aAAa;QAAE,MAAM,CAAC,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC;SACjE,IAAI,GAAG,KAAK,cAAc;QAAE,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;SACxD,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"} ${f.hasAgents ? "\u2713 Agents" : "\u2717 Agents"} ${f.hasSkills ? "\u2713 Skills" : "\u2717 Skills"}`);
|
|
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":"AASA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6D7C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
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 locales_js_1 = require("../../i18n/locales.js");
|
|
9
|
+
const hooks_js_1 = require("../services/hooks.js");
|
|
10
|
+
const locale_js_1 = require("../utils/locale.js");
|
|
11
|
+
const analyze_js_1 = require("./analyze.js");
|
|
12
|
+
async function cmdInit() {
|
|
13
|
+
console.log("Initializing cc-proficiency...\n");
|
|
14
|
+
(0, queue_js_1.ensureStoreDir)();
|
|
15
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
16
|
+
if ((0, uploader_js_1.isGhAuthenticated)()) {
|
|
17
|
+
const username = (0, uploader_js_1.getGhUsername)();
|
|
18
|
+
if (username) {
|
|
19
|
+
config.username = username;
|
|
20
|
+
console.log(` GitHub user: @${username}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(" \u26A0 GitHub CLI not authenticated.");
|
|
25
|
+
console.log(" Badge will be saved locally to: " + (0, local_store_js_1.getBadgePath)());
|
|
26
|
+
console.log(" To enable auto-upload: gh auth login && cc-proficiency init\n");
|
|
27
|
+
}
|
|
28
|
+
// Auto-detect locale from environment (LANG/LC_ALL)
|
|
29
|
+
if (!config.locale) {
|
|
30
|
+
config.locale = (0, locales_js_1.detectLocale)();
|
|
31
|
+
console.log(` Locale: ${config.locale}`);
|
|
32
|
+
}
|
|
33
|
+
(0, hooks_js_1.injectHook)();
|
|
34
|
+
console.log(" \u2713 Hook injected into ~/.claude/settings.json");
|
|
35
|
+
console.log("\n Running initial analysis...");
|
|
36
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
37
|
+
await (0, analyze_js_1.cmdAnalyze)(["--full"]);
|
|
38
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
39
|
+
let badgeSvg = '<svg xmlns="http://www.w3.org/2000/svg"><text>No data</text></svg>';
|
|
40
|
+
if (store.lastResult) {
|
|
41
|
+
badgeSvg = (0, svg_js_1.renderBadge)(store.lastResult, (0, locale_js_1.getConfigLocale)());
|
|
42
|
+
(0, local_store_js_1.saveBadge)(badgeSvg);
|
|
43
|
+
}
|
|
44
|
+
if (config.username && (0, uploader_js_1.isGhAuthenticated)() && !config.gistId) {
|
|
45
|
+
console.log(" Creating private Gist with badge...");
|
|
46
|
+
const result = (0, uploader_js_1.createGist)(badgeSvg, config.public);
|
|
47
|
+
if (result.success && result.url) {
|
|
48
|
+
config.gistId = result.url;
|
|
49
|
+
const rawUrl = (0, uploader_js_1.getGistRawUrl)(config.username, result.url);
|
|
50
|
+
console.log(` \u2713 Gist created`);
|
|
51
|
+
console.log(`\n Add to your README:`);
|
|
52
|
+
console.log(` `);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(` \u26A0 Could not create Gist: ${result.error}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (config.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
59
|
+
const gistResult = (0, uploader_js_1.updateGist)(config.gistId, badgeSvg);
|
|
60
|
+
if (gistResult.success) {
|
|
61
|
+
const rawUrl = (0, uploader_js_1.getGistRawUrl)(config.username ?? "", config.gistId);
|
|
62
|
+
console.log(` \u2713 Badge pushed to Gist: ${rawUrl}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
66
|
+
console.log("\n \u2713 Configuration saved to " + (0, local_store_js_1.getStoreDir)());
|
|
67
|
+
console.log(" Badge saved locally to: " + (0, local_store_js_1.getBadgePath)());
|
|
68
|
+
}
|
|
69
|
+
//# 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":"leaderboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/leaderboard.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAgDnD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdLeaderboard = cmdLeaderboard;
|
|
4
|
+
const leaderboard_js_1 = require("../services/leaderboard.js");
|
|
5
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
6
|
+
function cmdLeaderboard(args) {
|
|
7
|
+
// Parse --sort and --limit
|
|
8
|
+
let sortBy = "avg";
|
|
9
|
+
let limit = 20;
|
|
10
|
+
for (let i = 0; i < args.length; i++) {
|
|
11
|
+
const arg = args[i];
|
|
12
|
+
if (arg.startsWith("--sort=")) {
|
|
13
|
+
sortBy = arg.slice(7);
|
|
14
|
+
}
|
|
15
|
+
else if (arg.startsWith("--limit=")) {
|
|
16
|
+
limit = parseInt(arg.slice(8), 10) || 20;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const { entries, fromCache, skipped } = (0, leaderboard_js_1.fetchLeaderboard)(sortBy, limit);
|
|
20
|
+
if (entries.length === 0) {
|
|
21
|
+
console.log("Leaderboard unavailable. Try again later.");
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
25
|
+
const myUsername = config.username;
|
|
26
|
+
console.log(`\n cc-proficiency Leaderboard (${entries.length} users)`);
|
|
27
|
+
console.log(" " + "\u2500".repeat(58));
|
|
28
|
+
console.log(" # User Avg CC Tool Agen Prmp Ctx");
|
|
29
|
+
console.log(" " + "\u2500".repeat(58));
|
|
30
|
+
for (let i = 0; i < entries.length; i++) {
|
|
31
|
+
const e = entries[i];
|
|
32
|
+
const rank = String(i + 1).padStart(3);
|
|
33
|
+
const user = `@${e.username}`.padEnd(16);
|
|
34
|
+
const avg = String(e.averageScore).padStart(3);
|
|
35
|
+
const scores = getDomainScores(e);
|
|
36
|
+
const marker = e.username === myUsername ? " \u25C4" : "";
|
|
37
|
+
console.log(` ${rank} ${user} ${avg} ${scores}${marker}`);
|
|
38
|
+
}
|
|
39
|
+
console.log(" " + "\u2500".repeat(58));
|
|
40
|
+
const cacheNote = fromCache ? " (cached)" : "";
|
|
41
|
+
const skipNote = skipped > 0 ? ` (${skipped} skipped)` : "";
|
|
42
|
+
console.log(` ${entries.length} users${skipNote} \u00B7 Updated ${getTimeAgo(fromCache)}${cacheNote}`);
|
|
43
|
+
console.log("\n --sort=<avg|cc-mastery|tool-mcp|agentic|prompt-craft|context-mgmt|hours|streak>");
|
|
44
|
+
console.log(" --limit=N (default 20)\n");
|
|
45
|
+
}
|
|
46
|
+
function getDomainScores(entry) {
|
|
47
|
+
const ids = ["cc-mastery", "tool-mcp", "agentic", "prompt-craft", "context-mgmt"];
|
|
48
|
+
return ids.map((id) => {
|
|
49
|
+
const d = entry.domains.find((x) => x.id === id);
|
|
50
|
+
return String(d?.score ?? 0).padStart(4);
|
|
51
|
+
}).join(" ");
|
|
52
|
+
}
|
|
53
|
+
function getTimeAgo(fromCache) {
|
|
54
|
+
if (!fromCache)
|
|
55
|
+
return "just now";
|
|
56
|
+
return "recently";
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=leaderboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../../src/cli/commands/leaderboard.ts"],"names":[],"mappings":";;AAGA,wCAgDC;AAnDD,+DAA8D;AAC9D,+DAAwD;AAExD,SAAgB,cAAc,CAAC,IAAc;IAC3C,2BAA2B;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAgB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAExE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,SAAS,QAAQ,mBAAmB,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;IAExG,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,KAAwD;IAC/E,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,SAAkB;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC;IAClC,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/process.ts"],"names":[],"mappings":"AAaA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA0FhD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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 publishing_js_1 = require("../services/publishing.js");
|
|
14
|
+
const locale_js_1 = require("../utils/locale.js");
|
|
15
|
+
async function cmdProcess() {
|
|
16
|
+
if (!(0, queue_js_1.acquireLock)()) {
|
|
17
|
+
console.log("Another process is running. Skipping.");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const queue = (0, queue_js_1.readQueue)();
|
|
22
|
+
if (queue.length === 0) {
|
|
23
|
+
console.log("Queue empty. Nothing to process.");
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
27
|
+
const newSessions = [];
|
|
28
|
+
const processed = [];
|
|
29
|
+
for (const entry of queue) {
|
|
30
|
+
if ((0, local_store_js_1.isSessionProcessed)(store, entry.sessionId)) {
|
|
31
|
+
processed.push(entry.sessionId);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (!(0, node_fs_1.existsSync)(entry.transcriptPath)) {
|
|
35
|
+
(0, local_store_js_1.logError)(`Transcript not found: ${entry.transcriptPath}`);
|
|
36
|
+
processed.push(entry.sessionId);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const session = await (0, transcript_parser_js_1.parseTranscript)(entry.transcriptPath);
|
|
41
|
+
if (session.events.length > 0) {
|
|
42
|
+
newSessions.push(session);
|
|
43
|
+
store.processedSessionIds.push(entry.sessionId);
|
|
44
|
+
}
|
|
45
|
+
processed.push(entry.sessionId);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
(0, local_store_js_1.logError)(`Failed to parse ${entry.sessionId}: ${err}`);
|
|
49
|
+
processed.push(entry.sessionId);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Always persist queue cwds, even if no new sessions scored
|
|
53
|
+
const queueCwds = queue.map((e) => e.cwd).filter(Boolean);
|
|
54
|
+
const knownCwds = store.knownProjectCwds ?? [];
|
|
55
|
+
const allCwds = [...new Set([...knownCwds, ...queueCwds])];
|
|
56
|
+
store.knownProjectCwds = allCwds;
|
|
57
|
+
if (newSessions.length > 0) {
|
|
58
|
+
const config = (0, config_parser_js_1.parseClaudeConfig)(allCwds.length > 0 ? allCwds : undefined);
|
|
59
|
+
const allSessions = await (0, sessions_js_1.gatherAllProcessedSessions)(store);
|
|
60
|
+
const sessionsToScore = allSessions.length > 0 ? allSessions : newSessions;
|
|
61
|
+
const setupChecklist = (0, config_parser_js_1.buildSetupChecklist)(config);
|
|
62
|
+
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
63
|
+
const result = (0, engine_js_1.computeProficiency)(sessionsToScore, config, userConfig.username ?? "unknown", setupChecklist);
|
|
64
|
+
store.lastResult = result;
|
|
65
|
+
// Save local badge first (always works, even offline)
|
|
66
|
+
const svg = (0, svg_js_1.renderBadge)(result, (0, locale_js_1.getConfigLocale)());
|
|
67
|
+
const badgePath = (0, local_store_js_1.saveBadge)(svg);
|
|
68
|
+
// Push SVG + JSON atomically (preserves achievements/streak)
|
|
69
|
+
if (userConfig.autoUpload && userConfig.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
70
|
+
const pushResult = (0, publishing_js_1.mergeAndPush)(store, result, userConfig.gistId, userConfig.username ?? "unknown", false);
|
|
71
|
+
if (!pushResult.success) {
|
|
72
|
+
(0, local_store_js_1.logError)(`Gist push failed: ${pushResult.error}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
console.log(`Processed ${newSessions.length} session(s). Badge saved to ${badgePath}`);
|
|
76
|
+
}
|
|
77
|
+
(0, queue_js_1.writeQueue)(new Set(processed));
|
|
78
|
+
(0, local_store_js_1.saveStore)(store);
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
(0, queue_js_1.releaseLock)();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# 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":"share.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/share.ts"],"names":[],"mappings":"AAMA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAK7C"}
|