cc-proficiency 0.2.7 → 0.2.9
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.es.md +395 -0
- package/README.fr.md +395 -0
- package/README.ja.md +395 -0
- package/README.ko.md +395 -0
- package/README.md +27 -6
- package/README.zh-CN.md +27 -6
- package/dist/cli/commands/achievements.d.ts.map +1 -1
- package/dist/cli/commands/achievements.js +6 -4
- 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 +3 -2
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/badge.d.ts.map +1 -1
- package/dist/cli/commands/badge.js +6 -7
- package/dist/cli/commands/badge.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +8 -3
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +27 -23
- 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 +19 -21
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/leaderboard.d.ts.map +1 -1
- package/dist/cli/commands/leaderboard.js +12 -10
- package/dist/cli/commands/leaderboard.js.map +1 -1
- package/dist/cli/commands/process.js +5 -5
- package/dist/cli/commands/process.js.map +1 -1
- package/dist/cli/commands/refresh.d.ts.map +1 -1
- package/dist/cli/commands/refresh.js +2 -4
- package/dist/cli/commands/refresh.js.map +1 -1
- package/dist/cli/commands/share.d.ts.map +1 -1
- package/dist/cli/commands/share.js +30 -28
- package/dist/cli/commands/share.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +17 -15
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +6 -4
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +14 -12
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +22 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/hooks.d.ts.map +1 -1
- package/dist/cli/services/hooks.js +5 -4
- package/dist/cli/services/hooks.js.map +1 -1
- package/dist/cli/services/publishing.d.ts.map +1 -1
- package/dist/cli/services/publishing.js +15 -16
- package/dist/cli/services/publishing.js.map +1 -1
- package/dist/cli/utils/formatting.d.ts.map +1 -1
- package/dist/cli/utils/formatting.js +19 -12
- package/dist/cli/utils/formatting.js.map +1 -1
- package/dist/cli/utils/locale.d.ts +1 -1
- package/dist/cli/utils/locale.d.ts.map +1 -1
- package/dist/cli/utils/locale.js +4 -6
- package/dist/cli/utils/locale.js.map +1 -1
- package/dist/cli/utils/update-check.d.ts.map +1 -1
- package/dist/cli/utils/update-check.js +3 -2
- package/dist/cli/utils/update-check.js.map +1 -1
- package/dist/gist/registry.d.ts.map +1 -1
- package/dist/gist/registry.js +5 -15
- package/dist/gist/registry.js.map +1 -1
- package/dist/i18n/index.d.ts +17 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +71 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +3 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +276 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +3 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +276 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/fr.d.ts +3 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -0
- package/dist/i18n/locales/fr.js +276 -0
- package/dist/i18n/locales/fr.js.map +1 -0
- package/dist/i18n/locales/ja.d.ts +3 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -0
- package/dist/i18n/locales/ja.js +276 -0
- package/dist/i18n/locales/ja.js.map +1 -0
- package/dist/i18n/locales/ko.d.ts +3 -0
- package/dist/i18n/locales/ko.d.ts.map +1 -0
- package/dist/i18n/locales/ko.js +276 -0
- package/dist/i18n/locales/ko.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +3 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +276 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/i18n/types.d.ts +245 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +5 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/renderer/animated-svg.d.ts +2 -3
- package/dist/renderer/animated-svg.d.ts.map +1 -1
- package/dist/renderer/animated-svg.js +51 -23
- package/dist/renderer/animated-svg.js.map +1 -1
- package/dist/renderer/svg.d.ts +11 -6
- package/dist/renderer/svg.d.ts.map +1 -1
- package/dist/renderer/svg.js +103 -72
- 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 +7 -2
- package/dist/scoring/engine.js.map +1 -1
- package/dist/scoring/rule-engine.d.ts +8 -2
- package/dist/scoring/rule-engine.d.ts.map +1 -1
- package/dist/scoring/rule-engine.js +63 -24
- package/dist/scoring/rule-engine.js.map +1 -1
- package/dist/scoring/rules.d.ts +2 -0
- package/dist/scoring/rules.d.ts.map +1 -1
- package/dist/scoring/rules.js +4 -4
- package/dist/scoring/rules.js.map +1 -1
- package/dist/store/achievements.d.ts +2 -1
- package/dist/store/achievements.d.ts.map +1 -1
- package/dist/store/achievements.js +2 -31
- package/dist/store/achievements.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/display-width.d.ts +10 -0
- package/dist/utils/display-width.d.ts.map +1 -0
- package/dist/utils/display-width.js +58 -0
- package/dist/utils/display-width.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
export type Locale = "en" | "zh-CN" | "es" | "fr" | "ja" | "ko";
|
|
2
|
+
export type DomainId = "cc-mastery" | "tool-mcp" | "agentic" | "prompt-craft" | "context-mgmt";
|
|
3
|
+
export type FeatureKey = "hooks" | "plugins" | "skills" | "mcp" | "agents" | "plan" | "memory" | "rules";
|
|
4
|
+
export interface CommonStrings {
|
|
5
|
+
noAnalysisData: string;
|
|
6
|
+
ghNotAuthenticated: string;
|
|
7
|
+
ghNotAuthenticatedHint: string;
|
|
8
|
+
noGistConfigured: string;
|
|
9
|
+
badgeSavedLocally: (path: string) => string;
|
|
10
|
+
unknownKey: (key: string) => string;
|
|
11
|
+
invalidLocale: (val: string, supported: string) => string;
|
|
12
|
+
}
|
|
13
|
+
export interface BadgeStrings {
|
|
14
|
+
title: string;
|
|
15
|
+
calibrating: string;
|
|
16
|
+
needMore: (n: number) => string;
|
|
17
|
+
sessions: string;
|
|
18
|
+
projects: string;
|
|
19
|
+
setup: string;
|
|
20
|
+
earlyResults: string;
|
|
21
|
+
domainLabels: Record<DomainId, string>;
|
|
22
|
+
featureLabels: Record<FeatureKey, string>;
|
|
23
|
+
claudeMd: string;
|
|
24
|
+
tokensPrefix: string;
|
|
25
|
+
}
|
|
26
|
+
export interface HelpStrings {
|
|
27
|
+
description: string;
|
|
28
|
+
commands: {
|
|
29
|
+
init: string;
|
|
30
|
+
analyze: string;
|
|
31
|
+
process: string;
|
|
32
|
+
badge: string;
|
|
33
|
+
push: string;
|
|
34
|
+
refresh: string;
|
|
35
|
+
explain: string;
|
|
36
|
+
status: string;
|
|
37
|
+
config: string;
|
|
38
|
+
share: string;
|
|
39
|
+
leaderboard: string;
|
|
40
|
+
update: string;
|
|
41
|
+
uninstall: string;
|
|
42
|
+
version: string;
|
|
43
|
+
};
|
|
44
|
+
examples: string;
|
|
45
|
+
}
|
|
46
|
+
export interface InitStrings {
|
|
47
|
+
initializing: string;
|
|
48
|
+
githubUser: (username: string) => string;
|
|
49
|
+
badgeSavedLocallyHint: (path: string) => string;
|
|
50
|
+
ghEnableHint: string;
|
|
51
|
+
localeDetected: (locale: string) => string;
|
|
52
|
+
hookInjected: string;
|
|
53
|
+
runningInitialAnalysis: string;
|
|
54
|
+
creatingGist: string;
|
|
55
|
+
gistCreated: string;
|
|
56
|
+
addToReadme: string;
|
|
57
|
+
gistCreateFailed: (err: string) => string;
|
|
58
|
+
badgePushedToGist: (url: string) => string;
|
|
59
|
+
configSaved: (path: string) => string;
|
|
60
|
+
}
|
|
61
|
+
export interface AnalyzeStrings {
|
|
62
|
+
runningFull: string;
|
|
63
|
+
runningIncremental: string;
|
|
64
|
+
noSessionsFound: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ExplainStrings {
|
|
67
|
+
titleLine: (username: string) => string;
|
|
68
|
+
strengths: string;
|
|
69
|
+
areasToImprove: string;
|
|
70
|
+
featureUsage: string;
|
|
71
|
+
domainTips: Record<DomainId, string>;
|
|
72
|
+
hooksLabel: string;
|
|
73
|
+
skillsLabel: string;
|
|
74
|
+
mcpLabel: string;
|
|
75
|
+
toolsLabel: string;
|
|
76
|
+
flagsLabel: string;
|
|
77
|
+
more: string;
|
|
78
|
+
sessionsSummary: (sessions: number, projects: number) => string;
|
|
79
|
+
}
|
|
80
|
+
export interface AchievementsDisplayStrings {
|
|
81
|
+
title: (unlocked: number, total: number) => string;
|
|
82
|
+
done: string;
|
|
83
|
+
}
|
|
84
|
+
export interface StatusStrings {
|
|
85
|
+
title: string;
|
|
86
|
+
username: string;
|
|
87
|
+
gistId: string;
|
|
88
|
+
autoUpload: string;
|
|
89
|
+
locale: string;
|
|
90
|
+
leaderboardLabel: string;
|
|
91
|
+
joined: (gistId: string) => string;
|
|
92
|
+
notJoined: string;
|
|
93
|
+
pending: string;
|
|
94
|
+
sessionsProcessed: string;
|
|
95
|
+
lastUpdated: string;
|
|
96
|
+
never: string;
|
|
97
|
+
queuePending: string;
|
|
98
|
+
hookLog: (count: number) => string;
|
|
99
|
+
lastHookFired: (time: string) => string;
|
|
100
|
+
noHookEntries: string;
|
|
101
|
+
queueLock: string;
|
|
102
|
+
queueLockHeld: (age: number) => string;
|
|
103
|
+
queueLockStale: string;
|
|
104
|
+
queueLockPresent: string;
|
|
105
|
+
queueLockNone: string;
|
|
106
|
+
notSet: string;
|
|
107
|
+
}
|
|
108
|
+
export interface ConfigStrings {
|
|
109
|
+
setValue: (key: string, val: string) => string;
|
|
110
|
+
}
|
|
111
|
+
export interface ShareStrings {
|
|
112
|
+
joining: string;
|
|
113
|
+
sharingPublicly: string;
|
|
114
|
+
sharedItems: string;
|
|
115
|
+
notShared: string;
|
|
116
|
+
alreadyOnLeaderboard: string;
|
|
117
|
+
creatingPublicGist: string;
|
|
118
|
+
publicGistCreated: (url: string) => string;
|
|
119
|
+
publicGistUpdated: (url: string) => string;
|
|
120
|
+
publicGistCreateFailed: (err: string) => string;
|
|
121
|
+
publicGistUpdateFailed: (err: string) => string;
|
|
122
|
+
registering: string;
|
|
123
|
+
registrationCreated: string;
|
|
124
|
+
profileWillAppear: string;
|
|
125
|
+
syncFailed: (err: string) => string;
|
|
126
|
+
noMergedData: string;
|
|
127
|
+
registerFailed: (err: string) => string;
|
|
128
|
+
leaving: string;
|
|
129
|
+
removalCreated: (url: string) => string;
|
|
130
|
+
publicGistDeleted: string;
|
|
131
|
+
publicGistDeleteFailed: (err: string) => string;
|
|
132
|
+
unchangedNotice: string;
|
|
133
|
+
removedFromLeaderboard: string;
|
|
134
|
+
}
|
|
135
|
+
export interface LeaderboardStrings {
|
|
136
|
+
title: (count: number) => string;
|
|
137
|
+
unavailable: string;
|
|
138
|
+
columnHeader: string;
|
|
139
|
+
users: (count: number, skipped: number) => string;
|
|
140
|
+
updatedJustNow: string;
|
|
141
|
+
updatedRecently: string;
|
|
142
|
+
cached: string;
|
|
143
|
+
sortHelp: string;
|
|
144
|
+
limitHelp: string;
|
|
145
|
+
}
|
|
146
|
+
export interface UpdateStrings {
|
|
147
|
+
checking: string;
|
|
148
|
+
alreadyLatest: (version: string) => string;
|
|
149
|
+
available: (current: string, latest: string) => string;
|
|
150
|
+
updating: string;
|
|
151
|
+
updated: (version: string) => string;
|
|
152
|
+
permissionDenied: string;
|
|
153
|
+
runAsAdmin: string;
|
|
154
|
+
runSudo: (version: string) => string;
|
|
155
|
+
npmNotFound: string;
|
|
156
|
+
fetchFailed: string;
|
|
157
|
+
failed: (err: string) => string;
|
|
158
|
+
tryManually: (version: string) => string;
|
|
159
|
+
}
|
|
160
|
+
export interface UninstallStrings {
|
|
161
|
+
uninstalling: string;
|
|
162
|
+
localDataRemoved: string;
|
|
163
|
+
couldNotRemove: (path: string) => string;
|
|
164
|
+
npmUninstallHint: string;
|
|
165
|
+
}
|
|
166
|
+
export interface ProcessStrings {
|
|
167
|
+
anotherRunning: string;
|
|
168
|
+
queueEmpty: string;
|
|
169
|
+
processed: (count: number, path: string) => string;
|
|
170
|
+
}
|
|
171
|
+
export interface BadgeCmdStrings {
|
|
172
|
+
writtenTo: (path: string) => string;
|
|
173
|
+
savedTo: (path: string) => string;
|
|
174
|
+
}
|
|
175
|
+
export interface CliStrings {
|
|
176
|
+
help: HelpStrings;
|
|
177
|
+
init: InitStrings;
|
|
178
|
+
analyze: AnalyzeStrings;
|
|
179
|
+
explain: ExplainStrings;
|
|
180
|
+
achievements: AchievementsDisplayStrings;
|
|
181
|
+
status: StatusStrings;
|
|
182
|
+
config: ConfigStrings;
|
|
183
|
+
share: ShareStrings;
|
|
184
|
+
leaderboard: LeaderboardStrings;
|
|
185
|
+
update: UpdateStrings;
|
|
186
|
+
uninstall: UninstallStrings;
|
|
187
|
+
process: ProcessStrings;
|
|
188
|
+
badge: BadgeCmdStrings;
|
|
189
|
+
}
|
|
190
|
+
export interface PublishingStrings {
|
|
191
|
+
achievementUnlocked: (icon: string, name: string) => string;
|
|
192
|
+
pushedToGist: string;
|
|
193
|
+
pushFailed: (err: string) => string;
|
|
194
|
+
staticUrl: (url: string) => string;
|
|
195
|
+
animatedUrl: (url: string) => string;
|
|
196
|
+
pushSummary: (sessions: number, hours: string, achievements: number, streak: number) => string;
|
|
197
|
+
}
|
|
198
|
+
export interface HookStrings {
|
|
199
|
+
alreadyInstalled: string;
|
|
200
|
+
couldNotParse: string;
|
|
201
|
+
hookRemoved: string;
|
|
202
|
+
couldNotUpdate: string;
|
|
203
|
+
}
|
|
204
|
+
export interface ServiceStrings {
|
|
205
|
+
publishing: PublishingStrings;
|
|
206
|
+
hooks: HookStrings;
|
|
207
|
+
}
|
|
208
|
+
export interface FormattingStrings {
|
|
209
|
+
calibratingStatus: (sessions: number, needed: number) => string;
|
|
210
|
+
setupLabel: string;
|
|
211
|
+
setupItems: Record<string, string>;
|
|
212
|
+
earlyResultsNote: string;
|
|
213
|
+
tokensLabel: string;
|
|
214
|
+
}
|
|
215
|
+
export interface UpdateCheckStrings {
|
|
216
|
+
available: (current: string, latest: string) => string;
|
|
217
|
+
runUpdate: string;
|
|
218
|
+
}
|
|
219
|
+
export interface AchievementItemStrings {
|
|
220
|
+
name: string;
|
|
221
|
+
description: string;
|
|
222
|
+
}
|
|
223
|
+
export interface InsightStrings {
|
|
224
|
+
domainLabels: Record<DomainId, string>;
|
|
225
|
+
domainActions: Record<DomainId, string>;
|
|
226
|
+
fallbackAction: (label: string) => string;
|
|
227
|
+
}
|
|
228
|
+
export interface RegistryStrings {
|
|
229
|
+
joinTitle: (username: string) => string;
|
|
230
|
+
joinBody: (username: string, gistId: string) => string;
|
|
231
|
+
leaveTitle: (username: string) => string;
|
|
232
|
+
leaveBody: (username: string) => string;
|
|
233
|
+
}
|
|
234
|
+
export interface AllStrings {
|
|
235
|
+
common: CommonStrings;
|
|
236
|
+
badge: BadgeStrings;
|
|
237
|
+
cli: CliStrings;
|
|
238
|
+
services: ServiceStrings;
|
|
239
|
+
formatting: FormattingStrings;
|
|
240
|
+
updateCheck: UpdateCheckStrings;
|
|
241
|
+
achievements: Record<string, AchievementItemStrings>;
|
|
242
|
+
insights: InsightStrings;
|
|
243
|
+
registry: RegistryStrings;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,6DAA6D"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { ProficiencyResult, TokenWindows } from "../types.js";
|
|
2
|
-
|
|
3
|
-
export declare function renderAnimatedFullBadge(result: ProficiencyResult, locale?: Locale, tokenWindows?: TokenWindows): string;
|
|
2
|
+
export declare function renderAnimatedFullBadge(result: ProficiencyResult, tokenWindows?: TokenWindows): string;
|
|
4
3
|
/**
|
|
5
4
|
* Render animated badge. Falls back to static calibrating badge
|
|
6
5
|
* (no animation needed for the calibrating phase).
|
|
7
6
|
*/
|
|
8
|
-
export declare function renderAnimatedBadge(result: ProficiencyResult,
|
|
7
|
+
export declare function renderAnimatedBadge(result: ProficiencyResult, tokenWindows?: TokenWindows): string;
|
|
9
8
|
//# sourceMappingURL=animated-svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-svg.d.ts","sourceRoot":"","sources":["../../src/renderer/animated-svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"animated-svg.d.ts","sourceRoot":"","sources":["../../src/renderer/animated-svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAkHhF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CA+DtG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAKlG"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.renderAnimatedFullBadge = renderAnimatedFullBadge;
|
|
4
4
|
exports.renderAnimatedBadge = renderAnimatedBadge;
|
|
5
|
-
const
|
|
5
|
+
const index_js_1 = require("../i18n/index.js");
|
|
6
6
|
const svg_js_1 = require("./svg.js");
|
|
7
7
|
const format_js_1 = require("../utils/format.js");
|
|
8
8
|
// ── Animation timing ──
|
|
@@ -15,28 +15,44 @@ function barDelay(i) {
|
|
|
15
15
|
function numberDelay(i) {
|
|
16
16
|
return (0.3 + i * 0.2 + 0.8).toFixed(1);
|
|
17
17
|
}
|
|
18
|
+
// ── Animated <switch> helper ──
|
|
19
|
+
function switchedAnimatedText(attrs, getText, entries, animate) {
|
|
20
|
+
const lines = ["<switch>"];
|
|
21
|
+
for (const e of entries) {
|
|
22
|
+
const text = (0, svg_js_1.escapeXml)(getText(e.badge));
|
|
23
|
+
if (e.lang) {
|
|
24
|
+
lines.push(`<text systemLanguage="${e.lang}" ${attrs}>${text}${animate}</text>`);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
lines.push(`<text ${attrs}>${text}${animate}</text>`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
lines.push("</switch>");
|
|
31
|
+
return lines.join("");
|
|
32
|
+
}
|
|
18
33
|
// ── Animated domain row ──
|
|
19
|
-
function renderAnimatedDomainRow(d, y, i,
|
|
20
|
-
const label = (0, svg_js_1.escapeXml)((0, svg_js_1.domainLabel)(d.id, t));
|
|
34
|
+
function renderAnimatedDomainRow(d, y, i, entries) {
|
|
21
35
|
const color = svg_js_1.DOMAIN_COLORS[d.id] ?? svg_js_1.C.textDim;
|
|
22
36
|
const barWidth = 220;
|
|
23
|
-
const
|
|
37
|
+
const pct = d.percentage ?? (d.maxPossible > 0 ? Math.round((d.score / d.maxPossible) * 100) : d.score);
|
|
38
|
+
const filledWidth = Math.round((pct / 100) * barWidth);
|
|
24
39
|
const bDelay = barDelay(i);
|
|
25
40
|
const nDelay = numberDelay(i);
|
|
41
|
+
const labelAttrs = `x="0" y="14" fill="${svg_js_1.C.textDim}" font-size="13" font-family="${svg_js_1.SANS}" font-weight="500"`;
|
|
26
42
|
return `<g transform="translate(25, ${y})">
|
|
27
|
-
|
|
43
|
+
${(0, svg_js_1.switchedText)(labelAttrs, (b) => b.domainLabels[d.id] ?? d.id, entries)}
|
|
28
44
|
<g transform="translate(120, 3)">
|
|
29
45
|
<rect width="${barWidth}" height="12" rx="6" fill="${svg_js_1.C.barBg}" opacity="0.5"/>
|
|
30
46
|
<rect width="0" height="12" rx="6" fill="${color}" filter="url(#glow)">
|
|
31
47
|
<animate attributeName="width" from="0" to="${filledWidth}" dur="${BAR_DUR}" begin="${bDelay}s" fill="freeze" ${BAR_EASING}/>
|
|
32
48
|
</rect>
|
|
33
49
|
</g>
|
|
34
|
-
<text x="${120 + barWidth + 10}" y="14" fill="${svg_js_1.C.text}" font-size="14" font-family="${svg_js_1.MONO}" font-weight="700" opacity="0">${
|
|
35
|
-
<text x="${120 + barWidth +
|
|
50
|
+
<text x="${120 + barWidth + 10}" y="14" fill="${svg_js_1.C.text}" font-size="14" font-family="${svg_js_1.MONO}" font-weight="700" opacity="0">${pct}%<animate attributeName="opacity" from="0" to="1" dur="${FADE_DUR}" begin="${nDelay}s" fill="freeze"/></text>
|
|
51
|
+
<text x="${120 + barWidth + 50}" y="14" fill="${color}" font-size="12" font-family="${svg_js_1.MONO}" opacity="0">${(0, svg_js_1.confidenceSymbol)(d.confidence)}<animate attributeName="opacity" from="0" to="1" dur="${FADE_DUR}" begin="${nDelay}s" fill="freeze"/></text>
|
|
36
52
|
</g>`;
|
|
37
53
|
}
|
|
38
54
|
// ── Animated mini-bar grid ──
|
|
39
|
-
function renderAnimatedMiniBarGrid(featureScores, y, baseDelay,
|
|
55
|
+
function renderAnimatedMiniBarGrid(featureScores, y, baseDelay, entries) {
|
|
40
56
|
const scores = featureScores ?? {};
|
|
41
57
|
const totalFeatures = svg_js_1.MINI_BAR_KEYS.length;
|
|
42
58
|
const gap = 4;
|
|
@@ -48,16 +64,16 @@ function renderAnimatedMiniBarGrid(featureScores, y, baseDelay, t) {
|
|
|
48
64
|
for (let i = 0; i < totalFeatures; i++) {
|
|
49
65
|
const feat = svg_js_1.MINI_BAR_KEYS[i];
|
|
50
66
|
const score = scores[feat.key] ?? 0;
|
|
51
|
-
const label = (0, svg_js_1.escapeXml)(String(t[feat.localeKey]));
|
|
52
67
|
const x = startX + i * (colWidth + gap);
|
|
53
68
|
const fillColor = (0, svg_js_1.miniBarColor)(score, feat.color);
|
|
54
69
|
const opacity = (0, svg_js_1.miniBarOpacity)(score);
|
|
55
70
|
const fadeDelay = (baseDelay + i * 0.06).toFixed(2);
|
|
71
|
+
const labelAttrs = `x="${colWidth / 2}" y="${barHeight + 13}" fill="${svg_js_1.C.textMuted}" font-size="9" font-family="${svg_js_1.SANS}" text-anchor="middle"`;
|
|
56
72
|
lines.push(`<g transform="translate(${x}, ${y})" opacity="0">`);
|
|
57
73
|
lines.push(` <animate attributeName="opacity" from="0" to="1" dur="0.3s" begin="${fadeDelay}s" fill="freeze"/>`);
|
|
58
74
|
lines.push(` <rect width="${colWidth}" height="${barHeight}" rx="4" fill="${fillColor}" opacity="${opacity}"/>`);
|
|
59
75
|
lines.push(` <text x="${colWidth / 2}" y="${barHeight / 2 + 1}" fill="${score > 0 ? '#fff' : svg_js_1.C.textMuted}" font-size="10" font-family="${svg_js_1.MONO}" font-weight="600" text-anchor="middle" dominant-baseline="middle">${score}</text>`);
|
|
60
|
-
lines.push(`
|
|
76
|
+
lines.push(` ${(0, svg_js_1.switchedText)(labelAttrs, (b) => b.featureLabels[feat.key], entries)}`);
|
|
61
77
|
lines.push(`</g>`);
|
|
62
78
|
}
|
|
63
79
|
return lines.join("\n");
|
|
@@ -66,8 +82,9 @@ function renderAnimatedMiniBarGrid(featureScores, y, baseDelay, t) {
|
|
|
66
82
|
function hasTokens(tw) {
|
|
67
83
|
return tw != null && (tw.tokens24h > 0 || tw.tokens30d > 0);
|
|
68
84
|
}
|
|
69
|
-
function renderAnimatedFullBadge(result,
|
|
70
|
-
const
|
|
85
|
+
function renderAnimatedFullBadge(result, tokenWindows) {
|
|
86
|
+
const entries = (0, svg_js_1.buildLocaleEntries)();
|
|
87
|
+
const enBadge = (0, index_js_1.getLocaleStrings)("en").badge;
|
|
71
88
|
const width = 495;
|
|
72
89
|
const rows = result.domains.length;
|
|
73
90
|
const separatorY = 62 + rows * 28 + 6;
|
|
@@ -83,18 +100,29 @@ function renderAnimatedFullBadge(result, locale = "en", tokenWindows) {
|
|
|
83
100
|
const footerDelay = (miniDelay + 0.6).toFixed(1);
|
|
84
101
|
const footerDelay2 = (miniDelay + 0.8).toFixed(1);
|
|
85
102
|
const domainSvg = result.domains
|
|
86
|
-
.map((d, i) => renderAnimatedDomainRow(d, 62 + i * 28, i,
|
|
103
|
+
.map((d, i) => renderAnimatedDomainRow(d, 62 + i * 28, i, entries))
|
|
87
104
|
.join("\n");
|
|
105
|
+
const earlyAnimate = `<animate attributeName="opacity" from="0" to="1" dur="${FADE_DUR}" begin="${footerDelay}s" fill="freeze"/>`;
|
|
88
106
|
const phaseLabel = result.phase === "early"
|
|
89
|
-
?
|
|
107
|
+
? switchedAnimatedText(`x="${width - 25}" y="${footerY + 16}" fill="#d29922" font-size="10" font-family="${svg_js_1.MONO}" text-anchor="end" opacity="0"`, (b) => b.earlyResults, entries, earlyAnimate)
|
|
108
|
+
: "";
|
|
109
|
+
const footerAnimate = `<animate attributeName="opacity" from="0" to="1" dur="0.4s" begin="${footerDelay}s" fill="freeze"/>`;
|
|
110
|
+
const streakPart = result.streak ? ` \u00B7 \uD83D\uDD25 ${result.streak}d` : "";
|
|
111
|
+
const achievePart = result.achievementCount ? ` \u00B7 \uD83C\uDFC6 ${result.achievementCount}` : "";
|
|
112
|
+
const footerAttrs = `x="25" y="${footerY + 16}" fill="${svg_js_1.C.textMuted}" font-size="11" font-family="${svg_js_1.MONO}" opacity="0"`;
|
|
113
|
+
const footerSvg = switchedAnimatedText(footerAttrs, (b) => `${(0, svg_js_1.formatHours)(result.features.totalHours)} \u00B7 ${result.sessionCount} ${b.sessions} \u00B7 ${result.projectCount} ${b.projects}${streakPart}${achievePart}`, entries, footerAnimate);
|
|
114
|
+
const tokenAnimate = `<animate attributeName="opacity" from="0" to="1" dur="0.4s" begin="${footerDelay}s" fill="freeze"/>`;
|
|
115
|
+
const tokenNums = showTokens ? ` ${(0, format_js_1.formatTokens)(tokenWindows.tokens24h)}/24h \u00B7 ${(0, format_js_1.formatTokens)(tokenWindows.tokens30d)}/30d` : "";
|
|
116
|
+
const tokenSvg = showTokens
|
|
117
|
+
? switchedAnimatedText(`x="25" y="${footerY + 30}" fill="${svg_js_1.C.textDim}" font-size="10" font-family="${svg_js_1.MONO}" opacity="0"`, (b) => b.tokensPrefix + tokenNums, entries, tokenAnimate)
|
|
90
118
|
: "";
|
|
91
119
|
return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" role="img" aria-labelledby="cc-title cc-desc">
|
|
92
|
-
<title id="cc-title">${(0, svg_js_1.escapeXml)(
|
|
93
|
-
<desc id="cc-desc">${result.sessionCount} ${(0, svg_js_1.escapeXml)(
|
|
120
|
+
<title id="cc-title">${(0, svg_js_1.escapeXml)(enBadge.title)} \u2014 @${u}</title>
|
|
121
|
+
<desc id="cc-desc">${result.sessionCount} ${(0, svg_js_1.escapeXml)(enBadge.sessions)}, ${result.projectCount} ${(0, svg_js_1.escapeXml)(enBadge.projects)}</desc>
|
|
94
122
|
${(0, svg_js_1.svgDefs)()}
|
|
95
123
|
<rect width="${width}" height="${height}" rx="12" fill="${svg_js_1.C.bg}"/>
|
|
96
124
|
<rect x="0.5" y="0.5" width="${width - 1}" height="${height - 1}" rx="11.5" fill="${svg_js_1.C.card}" stroke="${svg_js_1.C.border}"/>
|
|
97
|
-
|
|
125
|
+
${(0, svg_js_1.switchedText)(`x="25" y="34" fill="${svg_js_1.C.text}" font-size="18" font-family="${svg_js_1.SANS}" font-weight="600"`, (b) => b.title, entries)}
|
|
98
126
|
<a href="https://github.com/${u}" target="_blank"><text x="${width - 25}" y="34" fill="${svg_js_1.C.textDim}" font-size="13" font-family="${svg_js_1.MONO}" text-anchor="end">@${u}</text></a>
|
|
99
127
|
<line x1="25" y1="48" x2="${width - 25}" y2="48" stroke="${svg_js_1.C.border}"/>
|
|
100
128
|
|
|
@@ -102,11 +130,11 @@ function renderAnimatedFullBadge(result, locale = "en", tokenWindows) {
|
|
|
102
130
|
|
|
103
131
|
<line x1="25" y1="${separatorY}" x2="${width - 25}" y2="${separatorY}" stroke="${svg_js_1.C.border}"/>
|
|
104
132
|
|
|
105
|
-
${renderAnimatedMiniBarGrid(result.features.featureScores, miniBarY, miniDelay,
|
|
133
|
+
${renderAnimatedMiniBarGrid(result.features.featureScores, miniBarY, miniDelay, entries)}
|
|
106
134
|
|
|
107
135
|
<line x1="25" y1="${footerY}" x2="${width - 25}" y2="${footerY}" stroke="${svg_js_1.C.border}"/>
|
|
108
|
-
|
|
109
|
-
${
|
|
136
|
+
${footerSvg}
|
|
137
|
+
${tokenSvg}
|
|
110
138
|
<text x="25" y="${footerY + 16 + tokenOffset + 16}" fill="${svg_js_1.C.textMuted}" font-size="9" font-family="${svg_js_1.MONO}" opacity="0">${result.timestamp.slice(0, 10)}<animate attributeName="opacity" from="0" to="1" dur="0.4s" begin="${footerDelay2}s" fill="freeze"/></text>
|
|
111
139
|
<text x="${width - 25}" y="${footerY + 16 + tokenOffset + 16}" fill="${svg_js_1.C.textMuted}" font-size="9" font-family="${svg_js_1.MONO}" text-anchor="end" opacity="0">github.com/Z-M-Huang/cc-proficiency<animate attributeName="opacity" from="0" to="1" dur="0.4s" begin="${footerDelay2}s" fill="freeze"/></text>
|
|
112
140
|
${phaseLabel}
|
|
@@ -116,10 +144,10 @@ function renderAnimatedFullBadge(result, locale = "en", tokenWindows) {
|
|
|
116
144
|
* Render animated badge. Falls back to static calibrating badge
|
|
117
145
|
* (no animation needed for the calibrating phase).
|
|
118
146
|
*/
|
|
119
|
-
function renderAnimatedBadge(result,
|
|
147
|
+
function renderAnimatedBadge(result, tokenWindows) {
|
|
120
148
|
if (result.phase === "calibrating") {
|
|
121
|
-
return (0, svg_js_1.renderCalibratingBadge)(result,
|
|
149
|
+
return (0, svg_js_1.renderCalibratingBadge)(result, tokenWindows);
|
|
122
150
|
}
|
|
123
|
-
return renderAnimatedFullBadge(result,
|
|
151
|
+
return renderAnimatedFullBadge(result, tokenWindows);
|
|
124
152
|
}
|
|
125
153
|
//# sourceMappingURL=animated-svg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-svg.js","sourceRoot":"","sources":["../../src/renderer/animated-svg.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"animated-svg.js","sourceRoot":"","sources":["../../src/renderer/animated-svg.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer/svg.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ProficiencyResult, ConfidenceLevel, TokenWindows } from "../types.js";
|
|
2
|
-
import
|
|
2
|
+
import type { BadgeStrings } from "../i18n/types.js";
|
|
3
3
|
export declare const C: {
|
|
4
4
|
bg: string;
|
|
5
5
|
card: string;
|
|
@@ -18,19 +18,24 @@ export declare const MONO = "ui-monospace, 'SF Mono', SFMono-Regular, monospace"
|
|
|
18
18
|
export declare function escapeXml(str: string): string;
|
|
19
19
|
export declare function confidenceSymbol(c: ConfidenceLevel): string;
|
|
20
20
|
export declare function svgDefs(): string;
|
|
21
|
-
export declare function domainLabel(id: string, t:
|
|
21
|
+
export declare function domainLabel(id: string, t: BadgeStrings): string;
|
|
22
|
+
export type LocaleEntry = {
|
|
23
|
+
lang: string | null;
|
|
24
|
+
badge: BadgeStrings;
|
|
25
|
+
};
|
|
26
|
+
export declare function buildLocaleEntries(): LocaleEntry[];
|
|
27
|
+
export declare function switchedText(attrs: string, getText: (b: BadgeStrings) => string, entries: LocaleEntry[]): string;
|
|
22
28
|
export declare function formatHours(h: number): string;
|
|
23
29
|
export declare const MINI_BAR_KEYS: Array<{
|
|
24
30
|
key: string;
|
|
25
|
-
localeKey: keyof LocaleStrings;
|
|
26
31
|
color: string;
|
|
27
32
|
}>;
|
|
28
33
|
export declare function miniBarColor(score: number, baseColor: string): string;
|
|
29
34
|
export declare function miniBarOpacity(score: number): string;
|
|
30
35
|
export declare const MINI_BAR_SECTION_HEIGHT = 42;
|
|
31
|
-
export declare function renderCalibratingBadge(result: ProficiencyResult,
|
|
32
|
-
export declare function renderFullBadge(result: ProficiencyResult,
|
|
33
|
-
export declare function renderBadge(result: ProficiencyResult,
|
|
36
|
+
export declare function renderCalibratingBadge(result: ProficiencyResult, tokenWindows?: TokenWindows): string;
|
|
37
|
+
export declare function renderFullBadge(result: ProficiencyResult, tokenWindows?: TokenWindows): string;
|
|
38
|
+
export declare function renderBadge(result: ProficiencyResult, tokenWindows?: TokenWindows): string;
|
|
34
39
|
export declare function getInsights(result: ProficiencyResult): {
|
|
35
40
|
topStrength: string;
|
|
36
41
|
nextAction: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/renderer/svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/renderer/svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,eAAO,MAAM,CAAC;;;;;;;;;;;CAWb,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMhD,CAAC;AAEF,eAAO,MAAM,IAAI,qDAAqD,CAAC;AACvE,eAAO,MAAM,IAAI,uDAAuD,CAAC;AAEzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAM3D;AAED,wBAAgB,OAAO,IAAI,MAAM,CAIhC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAG/D;AAID,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAIvE,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAQlD;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,MAAM,EACpC,OAAO,EAAE,WAAW,EAAE,GACrB,MAAM,CAYR;AAiBD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG7C;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS/D,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AA8BD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAa1C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CA+CrG;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CA6C9F;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAG1F;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAUlG"}
|