cc-proficiency 0.2.4 → 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 +21 -0
- package/dist/cli/commands/achievements.d.ts.map +1 -1
- package/dist/cli/commands/achievements.js +1 -0
- package/dist/cli/commands/achievements.js.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +6 -1
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +4 -0
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/explain.js +1 -1
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -0
- package/dist/cli/commands/init.js.map +1 -1
- 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.map +1 -1
- package/dist/cli/commands/process.js +12 -4
- package/dist/cli/commands/process.js.map +1 -1
- 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.map +1 -1
- package/dist/cli/commands/status.js +1 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/index.js +28 -6
- package/dist/cli/index.js.map +1 -1
- 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 +16 -0
- package/dist/cli/services/publishing.d.ts.map +1 -1
- package/dist/cli/services/publishing.js +62 -37
- package/dist/cli/services/publishing.js.map +1 -1
- package/dist/cli/services/sessions.d.ts.map +1 -1
- package/dist/cli/services/sessions.js +4 -2
- package/dist/cli/services/sessions.js.map +1 -1
- package/dist/cli/utils/formatting.d.ts.map +1 -1
- package/dist/cli/utils/formatting.js +2 -0
- package/dist/cli/utils/formatting.js.map +1 -1
- 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/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 +31 -229
- 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/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 +2 -0
- 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/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"achievements.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"achievements.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,IAAI,IAAI,CAgDtC"}
|
|
@@ -30,6 +30,7 @@ function cmdAchievements() {
|
|
|
30
30
|
streak: { current: 0, longest: 0 },
|
|
31
31
|
features: result.features,
|
|
32
32
|
activeDates: [],
|
|
33
|
+
leaderboard: config.leaderboard ?? false,
|
|
33
34
|
};
|
|
34
35
|
const newLocal = (0, achievements_js_1.checkAchievements)(ctx, unlockedIds);
|
|
35
36
|
const allUnlocked = new Set([...unlockedIds, ...newLocal]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"achievements.js","sourceRoot":"","sources":["../../../src/cli/commands/achievements.ts"],"names":[],"mappings":";;AAMA,
|
|
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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -8,13 +8,18 @@ async function cmdAnalyze(args) {
|
|
|
8
8
|
const full = args.includes("--full");
|
|
9
9
|
console.log(full ? "Running full analysis..." : "Running incremental analysis...\n");
|
|
10
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);
|
|
11
17
|
if (sessions.length === 0) {
|
|
12
18
|
console.log("No sessions found. Use Claude Code first, then run analyze again.");
|
|
13
19
|
return;
|
|
14
20
|
}
|
|
15
21
|
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
16
22
|
const result = (0, sessions_js_1.runAnalysis)(sessions, config, userConfig.username ?? "unknown");
|
|
17
|
-
const store = (0, local_store_js_1.loadStore)();
|
|
18
23
|
store.lastResult = result;
|
|
19
24
|
for (const s of sessions) {
|
|
20
25
|
if (!store.processedSessionIds.includes(s.sessionId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":";;AAIA,
|
|
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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -29,6 +29,10 @@ function cmdConfig(args) {
|
|
|
29
29
|
config.public = value === "true";
|
|
30
30
|
else if (key === "locale")
|
|
31
31
|
config.locale = value;
|
|
32
|
+
else if (key === "leaderboard")
|
|
33
|
+
config.leaderboard = value === "true";
|
|
34
|
+
else if (key === "publicGistId")
|
|
35
|
+
config.publicGistId = value;
|
|
32
36
|
else {
|
|
33
37
|
console.log(`Unknown key: ${key}`);
|
|
34
38
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":";;AAEA,
|
|
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"}
|
|
@@ -38,7 +38,7 @@ function cmdExplain() {
|
|
|
38
38
|
if (f.mcpServers.length > 0)
|
|
39
39
|
console.log(` MCP: ${f.mcpServers.join(", ")}`);
|
|
40
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"}`);
|
|
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
42
|
console.log(`\n ${result.sessionCount} sessions \u00B7 ${result.projectCount} projects\n`);
|
|
43
43
|
}
|
|
44
44
|
//# sourceMappingURL=explain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":";;AAEA,gCA6CC;AA/CD,+DAAuD;AAEvD,SAAgB,UAAU;IACxB,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,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GAA2B;QACnC,YAAY,EAAE,4FAA4F;QAC1G,UAAU,EAAE,8FAA8F;QAC1G,SAAS,EAAE,uFAAuF;QAClG,cAAc,EAAE,gFAAgF;QAChG,cAAc,EAAE,iFAAiF;KAClG,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,kCAAkC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,CAAC;IACxI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1R,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,YAAY,oBAAoB,MAAM,CAAC,YAAY,aAAa,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -5,6 +5,7 @@ const svg_js_1 = require("../../renderer/svg.js");
|
|
|
5
5
|
const local_store_js_1 = require("../../store/local-store.js");
|
|
6
6
|
const queue_js_1 = require("../../store/queue.js");
|
|
7
7
|
const uploader_js_1 = require("../../gist/uploader.js");
|
|
8
|
+
const locales_js_1 = require("../../i18n/locales.js");
|
|
8
9
|
const hooks_js_1 = require("../services/hooks.js");
|
|
9
10
|
const locale_js_1 = require("../utils/locale.js");
|
|
10
11
|
const analyze_js_1 = require("./analyze.js");
|
|
@@ -24,6 +25,11 @@ async function cmdInit() {
|
|
|
24
25
|
console.log(" Badge will be saved locally to: " + (0, local_store_js_1.getBadgePath)());
|
|
25
26
|
console.log(" To enable auto-upload: gh auth login && cc-proficiency init\n");
|
|
26
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
|
+
}
|
|
27
33
|
(0, hooks_js_1.injectHook)();
|
|
28
34
|
console.log(" \u2713 Hook injected into ~/.claude/settings.json");
|
|
29
35
|
console.log("\n Running initial analysis...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;
|
|
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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/process.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -10,6 +10,7 @@ const local_store_js_1 = require("../../store/local-store.js");
|
|
|
10
10
|
const queue_js_1 = require("../../store/queue.js");
|
|
11
11
|
const uploader_js_1 = require("../../gist/uploader.js");
|
|
12
12
|
const sessions_js_1 = require("../services/sessions.js");
|
|
13
|
+
const publishing_js_1 = require("../services/publishing.js");
|
|
13
14
|
const locale_js_1 = require("../utils/locale.js");
|
|
14
15
|
async function cmdProcess() {
|
|
15
16
|
if (!(0, queue_js_1.acquireLock)()) {
|
|
@@ -48,20 +49,27 @@ async function cmdProcess() {
|
|
|
48
49
|
processed.push(entry.sessionId);
|
|
49
50
|
}
|
|
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;
|
|
51
57
|
if (newSessions.length > 0) {
|
|
52
|
-
const config = (0, config_parser_js_1.parseClaudeConfig)();
|
|
58
|
+
const config = (0, config_parser_js_1.parseClaudeConfig)(allCwds.length > 0 ? allCwds : undefined);
|
|
53
59
|
const allSessions = await (0, sessions_js_1.gatherAllProcessedSessions)(store);
|
|
54
60
|
const sessionsToScore = allSessions.length > 0 ? allSessions : newSessions;
|
|
55
61
|
const setupChecklist = (0, config_parser_js_1.buildSetupChecklist)(config);
|
|
56
62
|
const userConfig = (0, local_store_js_1.loadConfig)();
|
|
57
63
|
const result = (0, engine_js_1.computeProficiency)(sessionsToScore, config, userConfig.username ?? "unknown", setupChecklist);
|
|
58
64
|
store.lastResult = result;
|
|
65
|
+
// Save local badge first (always works, even offline)
|
|
59
66
|
const svg = (0, svg_js_1.renderBadge)(result, (0, locale_js_1.getConfigLocale)());
|
|
60
67
|
const badgePath = (0, local_store_js_1.saveBadge)(svg);
|
|
68
|
+
// Push SVG + JSON atomically (preserves achievements/streak)
|
|
61
69
|
if (userConfig.autoUpload && userConfig.gistId && (0, uploader_js_1.isGhAuthenticated)()) {
|
|
62
|
-
const
|
|
63
|
-
if (!
|
|
64
|
-
(0, local_store_js_1.logError)(`Gist push failed: ${
|
|
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}`);
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
console.log(`Processed ${newSessions.length} session(s). Badge saved to ${badgePath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/cli/commands/process.ts"],"names":[],"mappings":";;
|
|
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":"share.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/share.ts"],"names":[],"mappings":"AAMA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAK7C"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdShare = cmdShare;
|
|
4
|
+
const uploader_js_1 = require("../../gist/uploader.js");
|
|
5
|
+
const registry_js_1 = require("../../gist/registry.js");
|
|
6
|
+
const local_store_js_1 = require("../../store/local-store.js");
|
|
7
|
+
const public_profile_js_1 = require("../../store/public-profile.js");
|
|
8
|
+
const publishing_js_1 = require("../services/publishing.js");
|
|
9
|
+
function cmdShare(args) {
|
|
10
|
+
if (args.includes("--remove")) {
|
|
11
|
+
return doLeave();
|
|
12
|
+
}
|
|
13
|
+
return doJoin();
|
|
14
|
+
}
|
|
15
|
+
function doJoin() {
|
|
16
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
17
|
+
const store = (0, local_store_js_1.loadStore)();
|
|
18
|
+
// Prerequisites
|
|
19
|
+
if (!(0, uploader_js_1.isGhAuthenticated)()) {
|
|
20
|
+
console.log("\u26A0 GitHub CLI not authenticated. Run: gh auth login");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (!config.gistId) {
|
|
24
|
+
console.log("No Gist configured. Run: cc-proficiency init");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!store.lastResult) {
|
|
28
|
+
console.log("No analysis data. Run: cc-proficiency analyze");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Idempotent check
|
|
32
|
+
if (config.leaderboard && config.publicGistId) {
|
|
33
|
+
console.log("Already on the leaderboard. Profile auto-updates on push.");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Privacy notice
|
|
37
|
+
console.log(" Joining the cc-proficiency leaderboard...\n");
|
|
38
|
+
console.log(" This will share publicly:");
|
|
39
|
+
console.log(" - GitHub username, domain scores, streak, achievement count");
|
|
40
|
+
console.log(" - Total sessions and hours, member since date\n");
|
|
41
|
+
console.log(" NOT shared: session details, project names, file paths, tools\n");
|
|
42
|
+
// Ensure fresh data via mergeAndPush
|
|
43
|
+
const pushResult = (0, publishing_js_1.mergeAndPush)(store, store.lastResult, config.gistId, config.username ?? "unknown", false);
|
|
44
|
+
if (!pushResult.success) {
|
|
45
|
+
console.log(`\u2717 Failed to sync data: ${pushResult.error}`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Build public profile from merged data
|
|
49
|
+
if (!pushResult.merged) {
|
|
50
|
+
console.log("\u2717 Failed to build public profile — no merged data");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const publicProfile = (0, public_profile_js_1.buildPublicProfile)(pushResult.merged);
|
|
54
|
+
const profileJson = JSON.stringify(publicProfile, null, 2);
|
|
55
|
+
// Create or reuse public gist
|
|
56
|
+
let publicGistId = config.publicGistId;
|
|
57
|
+
let newlyCreated = false;
|
|
58
|
+
if (!publicGistId) {
|
|
59
|
+
console.log(" Creating public profile gist...");
|
|
60
|
+
const gistResult = (0, uploader_js_1.createPublicGist)(profileJson);
|
|
61
|
+
if (!gistResult.success || !gistResult.url) {
|
|
62
|
+
console.log(`\u2717 Failed to create public gist: ${gistResult.error}`);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
publicGistId = gistResult.url;
|
|
66
|
+
newlyCreated = true;
|
|
67
|
+
console.log(` \u2713 Public gist created: ${publicGistId}`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Update existing public gist
|
|
71
|
+
const updateResult = (0, uploader_js_1.pushGistFiles)(publicGistId, {
|
|
72
|
+
"cc-proficiency-public.json": profileJson,
|
|
73
|
+
});
|
|
74
|
+
if (!updateResult.success) {
|
|
75
|
+
console.log(`\u2717 Failed to update public gist: ${updateResult.error}`);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
console.log(` \u2713 Public gist updated: ${publicGistId}`);
|
|
79
|
+
}
|
|
80
|
+
// Open registration issue
|
|
81
|
+
console.log(" Registering on leaderboard...");
|
|
82
|
+
const issueResult = (0, registry_js_1.openJoinIssue)(config.username ?? "unknown", publicGistId);
|
|
83
|
+
if (!issueResult.success) {
|
|
84
|
+
// Rollback: delete newly created gist to prevent orphans
|
|
85
|
+
if (newlyCreated) {
|
|
86
|
+
(0, uploader_js_1.deleteGist)(publicGistId);
|
|
87
|
+
}
|
|
88
|
+
console.log(`\u2717 Failed to register: ${issueResult.error}`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Save config on success only
|
|
92
|
+
config.leaderboard = true;
|
|
93
|
+
config.publicGistId = publicGistId;
|
|
94
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
95
|
+
console.log(` \u2713 Registration issue created`);
|
|
96
|
+
console.log(` ${issueResult.issueUrl}`);
|
|
97
|
+
console.log("\n Your profile will appear once the issue is processed.");
|
|
98
|
+
}
|
|
99
|
+
function doLeave() {
|
|
100
|
+
const config = (0, local_store_js_1.loadConfig)();
|
|
101
|
+
if (!(0, uploader_js_1.isGhAuthenticated)()) {
|
|
102
|
+
console.log("\u26A0 GitHub CLI not authenticated. Run: gh auth login");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
console.log(" Leaving the cc-proficiency leaderboard...\n");
|
|
106
|
+
// Open removal issue FIRST — don't delete gist until issue is confirmed
|
|
107
|
+
const issueResult = (0, registry_js_1.openLeaveIssue)(config.username ?? "unknown");
|
|
108
|
+
if (!issueResult.success) {
|
|
109
|
+
console.log(`\u2717 Could not create removal issue: ${issueResult.error}`);
|
|
110
|
+
console.log(" Your leaderboard entry and public gist are unchanged.");
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(` \u2713 Removal issue created: ${issueResult.issueUrl}`);
|
|
114
|
+
// Only delete gist + clear config after issue is confirmed
|
|
115
|
+
if (config.publicGistId) {
|
|
116
|
+
const delResult = (0, uploader_js_1.deleteGist)(config.publicGistId);
|
|
117
|
+
if (delResult.success) {
|
|
118
|
+
console.log(" \u2713 Public profile gist deleted");
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
console.log(` \u26A0 Could not delete public gist: ${delResult.error}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
config.leaderboard = false;
|
|
125
|
+
config.publicGistId = undefined;
|
|
126
|
+
(0, local_store_js_1.saveConfig)(config);
|
|
127
|
+
console.log("\n Removed from leaderboard.");
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share.js","sourceRoot":"","sources":["../../../src/cli/commands/share.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,IAAI,IAAI,CAkDhC"}
|
|
@@ -14,6 +14,7 @@ function cmdStatus() {
|
|
|
14
14
|
console.log(` Gist ID: ${config.gistId ?? "(not set)"}`);
|
|
15
15
|
console.log(` Auto-upload: ${config.autoUpload}`);
|
|
16
16
|
console.log(` Locale: ${config.locale ?? "en"}`);
|
|
17
|
+
console.log(` Leaderboard: ${config.leaderboard ? `joined (${config.publicGistId ?? "pending"})` : "not joined"}`);
|
|
17
18
|
console.log(`\n Sessions processed: ${store.processedSessionIds.length}`);
|
|
18
19
|
console.log(` Last updated: ${store.lastUpdated ?? "never"}`);
|
|
19
20
|
const queue = (0, queue_js_1.readQueue)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -14,6 +14,9 @@ const achievements_js_1 = require("./commands/achievements.js");
|
|
|
14
14
|
const status_js_1 = require("./commands/status.js");
|
|
15
15
|
const config_js_1 = require("./commands/config.js");
|
|
16
16
|
const uninstall_js_1 = require("./commands/uninstall.js");
|
|
17
|
+
const share_js_1 = require("./commands/share.js");
|
|
18
|
+
const leaderboard_js_1 = require("./commands/leaderboard.js");
|
|
19
|
+
const update_check_js_1 = require("./utils/update-check.js");
|
|
17
20
|
function getVersion() {
|
|
18
21
|
try {
|
|
19
22
|
// dist/cli/index.js -> ../../package.json
|
|
@@ -37,6 +40,8 @@ Commands:
|
|
|
37
40
|
explain Show score drivers and improvement tips
|
|
38
41
|
status Show hook activity, queue, and config
|
|
39
42
|
config [key] [value] View or set configuration
|
|
43
|
+
share [--remove] Join or leave the community leaderboard
|
|
44
|
+
leaderboard View community rankings
|
|
40
45
|
uninstall Remove hooks and clean up
|
|
41
46
|
version Show version info
|
|
42
47
|
|
|
@@ -47,6 +52,10 @@ Examples:
|
|
|
47
52
|
cc-proficiency explain
|
|
48
53
|
`);
|
|
49
54
|
}
|
|
55
|
+
// Commands that should check for updates (interactive, not hook-spawned)
|
|
56
|
+
const UPDATE_CHECK_COMMANDS = new Set([
|
|
57
|
+
"analyze", "explain", "badge", "status", "version", "achievements", "leaderboard",
|
|
58
|
+
]);
|
|
50
59
|
async function main() {
|
|
51
60
|
const args = process.argv.slice(2);
|
|
52
61
|
const command = args[0];
|
|
@@ -54,30 +63,43 @@ async function main() {
|
|
|
54
63
|
case "init":
|
|
55
64
|
return await (0, init_js_1.cmdInit)();
|
|
56
65
|
case "analyze":
|
|
57
|
-
|
|
66
|
+
await (0, analyze_js_1.cmdAnalyze)(args);
|
|
67
|
+
break;
|
|
58
68
|
case "process":
|
|
59
69
|
return (0, process_js_1.cmdProcess)();
|
|
60
70
|
case "badge":
|
|
61
|
-
|
|
71
|
+
await (0, badge_js_1.cmdBadge)(args);
|
|
72
|
+
break;
|
|
62
73
|
case "push":
|
|
63
74
|
return (0, push_js_1.cmdPush)();
|
|
64
75
|
case "explain":
|
|
65
|
-
|
|
76
|
+
await (0, explain_js_1.cmdExplain)();
|
|
77
|
+
break;
|
|
66
78
|
case "achievements":
|
|
67
|
-
|
|
79
|
+
await (0, achievements_js_1.cmdAchievements)();
|
|
80
|
+
break;
|
|
68
81
|
case "status":
|
|
69
|
-
|
|
82
|
+
await (0, status_js_1.cmdStatus)();
|
|
83
|
+
break;
|
|
70
84
|
case "config":
|
|
71
85
|
return (0, config_js_1.cmdConfig)(args.slice(1));
|
|
86
|
+
case "share":
|
|
87
|
+
return (0, share_js_1.cmdShare)(args);
|
|
88
|
+
case "leaderboard":
|
|
89
|
+
await (0, leaderboard_js_1.cmdLeaderboard)(args);
|
|
90
|
+
break;
|
|
72
91
|
case "uninstall":
|
|
73
92
|
return (0, uninstall_js_1.cmdUninstall)();
|
|
74
93
|
case "version":
|
|
75
94
|
console.log(`cc-proficiency v${getVersion()} (scoring ${engine_js_1.SCORING_VERSION})`);
|
|
76
|
-
|
|
95
|
+
break;
|
|
77
96
|
default:
|
|
78
97
|
printUsage();
|
|
79
98
|
return;
|
|
80
99
|
}
|
|
100
|
+
if (command && UPDATE_CHECK_COMMANDS.has(command)) {
|
|
101
|
+
await (0, update_check_js_1.checkForUpdates)(getVersion()).catch(() => { });
|
|
102
|
+
}
|
|
81
103
|
}
|
|
82
104
|
main().catch((err) => {
|
|
83
105
|
console.error("Error:", err);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AACvC,yCAAiC;AACjC,oDAAuD;AACvD,gDAA6C;AAC7C,sDAAmD;AACnD,sDAAmD;AACnD,kDAA+C;AAC/C,gDAA6C;AAC7C,sDAAmD;AACnD,gEAA6D;AAC7D,oDAAiD;AACjD,oDAAiD;AACjD,0DAAuD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LeaderboardEntry } from "../../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Fetch leaderboard from registry gist + individual public profiles.
|
|
4
|
+
* Falls back to cache if offline.
|
|
5
|
+
*/
|
|
6
|
+
export declare function fetchLeaderboard(sortBy?: string, limit?: number): {
|
|
7
|
+
entries: LeaderboardEntry[];
|
|
8
|
+
fromCache: boolean;
|
|
9
|
+
skipped: number;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=leaderboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../../src/cli/services/leaderboard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAkCzE;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,MAAc,EACtB,KAAK,GAAE,MAAW,GACjB;IAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwDtE"}
|