quackscore 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +30 -10
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +10 -4
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/leaderboard.d.ts +1 -1
  6. package/dist/commands/leaderboard.d.ts.map +1 -1
  7. package/dist/commands/leaderboard.js +12 -5
  8. package/dist/commands/leaderboard.js.map +1 -1
  9. package/dist/commands/mock-report.js +13 -13
  10. package/dist/commands/mock-report.js.map +1 -1
  11. package/dist/config/types.d.ts +1 -1
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +2 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/index.js +5 -5
  16. package/dist/index.js.map +1 -1
  17. package/dist/llm/prompts.d.ts.map +1 -1
  18. package/dist/llm/prompts.js +7 -2
  19. package/dist/llm/prompts.js.map +1 -1
  20. package/dist/llm/providers.d.ts.map +1 -1
  21. package/dist/llm/providers.js +11 -1
  22. package/dist/llm/providers.js.map +1 -1
  23. package/dist/report/generate.d.ts.map +1 -1
  24. package/dist/report/generate.js +32 -9
  25. package/dist/report/generate.js.map +1 -1
  26. package/dist/report/index.d.ts +1 -0
  27. package/dist/report/index.d.ts.map +1 -1
  28. package/dist/report/index.js +1 -0
  29. package/dist/report/index.js.map +1 -1
  30. package/dist/report/leaderboard.d.ts +3 -0
  31. package/dist/report/leaderboard.d.ts.map +1 -0
  32. package/dist/report/leaderboard.js +486 -0
  33. package/dist/report/leaderboard.js.map +1 -0
  34. package/dist/shared/technologies.d.ts +2 -2
  35. package/dist/shared/technologies.d.ts.map +1 -1
  36. package/dist/shared/technologies.js +38 -32
  37. package/dist/shared/technologies.js.map +1 -1
  38. package/dist/shared/types.d.ts +6 -0
  39. package/dist/shared/types.d.ts.map +1 -1
  40. package/dist/storage/index.d.ts +1 -1
  41. package/dist/storage/index.d.ts.map +1 -1
  42. package/dist/storage/index.js +1 -1
  43. package/dist/storage/index.js.map +1 -1
  44. package/dist/storage/leaderboard.d.ts +1 -0
  45. package/dist/storage/leaderboard.d.ts.map +1 -1
  46. package/dist/storage/leaderboard.js +93 -8
  47. package/dist/storage/leaderboard.js.map +1 -1
  48. package/dist/storage/paths.d.ts +1 -0
  49. package/dist/storage/paths.d.ts.map +1 -1
  50. package/dist/storage/paths.js +1 -0
  51. package/dist/storage/paths.js.map +1 -1
  52. package/dist/storage/user.d.ts.map +1 -1
  53. package/dist/storage/user.js +10 -2
  54. package/dist/storage/user.js.map +1 -1
  55. package/package.json +9 -2
package/README.md CHANGED
@@ -26,7 +26,7 @@ That's it. Quack.
26
26
 
27
27
  - Node.js 18+
28
28
  - `QUACKSCORE_GH_TOKEN` — a GitHub personal access token
29
- - `QUACKSCORE_LLM_API_KEY` — API key for your chosen LLM provider
29
+ - `QUACKSCORE_LLM_API_KEY` — API key for your chosen LLM provider (not required for Ollama or unauthenticated LiteLLM proxies)
30
30
 
31
31
  ---
32
32
 
@@ -46,16 +46,17 @@ npx quackscore --help
46
46
 
47
47
  ## Supported LLM providers
48
48
 
49
- | Provider | Value |
50
- |---|---|
51
- | Anthropic | `anthropic` |
52
- | OpenAI | `openai` |
53
- | Google | `google` |
54
- | OpenRouter | `openrouter` |
55
- | MiniMax | `minimax` |
56
- | Ollama (local) | `ollama` |
49
+ | Provider | Value | Notes |
50
+ |---|---|---|
51
+ | Anthropic | `anthropic` | |
52
+ | OpenAI | `openai` | |
53
+ | Google | `google` | |
54
+ | OpenRouter | `openrouter` | |
55
+ | MiniMax | `minimax` | |
56
+ | Ollama (local) | `ollama` | No API key needed |
57
+ | LiteLLM proxy | `litellm` | Routes to Azure OpenAI, Bedrock, and more |
57
58
 
58
- All remote providers use `QUACKSCORE_LLM_API_KEY`. Ollama needs no key.
59
+ All remote providers use `QUACKSCORE_LLM_API_KEY`. Ollama needs no key. LiteLLM's key is optional (only needed if your proxy requires auth).
59
60
 
60
61
  ---
61
62
 
@@ -133,6 +134,25 @@ quackscore init --provider minimax --model MiniMax-M2.7
133
134
 
134
135
  # Ollama (local)
135
136
  quackscore init --provider ollama --model llama3.2
137
+
138
+ # LiteLLM proxy — Azure OpenAI
139
+ quackscore init --provider litellm --model azure/gpt-4o-mini --base-url http://localhost:4000
140
+
141
+ # LiteLLM proxy — AWS Bedrock
142
+ quackscore init --provider litellm --model bedrock/claude-3-5-sonnet --base-url http://localhost:4000
143
+ ```
144
+
145
+ LiteLLM lets you run a single proxy that routes to Azure OpenAI, AWS Bedrock, Hugging Face, and [many other backends](https://docs.litellm.ai/docs/providers). Start it with:
146
+
147
+ ```bash
148
+ pip install litellm
149
+ litellm --model azure/gpt-4o-mini # or whichever backend you want
150
+ ```
151
+
152
+ Then set your key if the proxy requires auth:
153
+
154
+ ```bash
155
+ export QUACKSCORE_LLM_API_KEY=<your-litellm-master-key>
136
156
  ```
137
157
 
138
158
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDjE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDjE"}
@@ -10,6 +10,7 @@ const VALID_PROVIDERS = [
10
10
  'openrouter',
11
11
  'minimax',
12
12
  'ollama',
13
+ 'litellm',
13
14
  ];
14
15
  export async function runInit(options) {
15
16
  diagLog('Starting init command', {
@@ -43,13 +44,18 @@ export async function runInit(options) {
43
44
  console.log(` Base URL : ${chalk.cyan(options.baseUrl)}`);
44
45
  }
45
46
  console.log('');
46
- if (options.provider !== 'ollama') {
47
+ if (options.provider === 'ollama') {
48
+ rpgInfo('Ollama requires no API key. Make sure Ollama is running locally.');
49
+ }
50
+ else if (options.provider === 'litellm') {
51
+ rpgInfo('LiteLLM proxy API key is optional. Set it if your proxy requires auth:');
52
+ console.log(` ${chalk.yellow(`export ${LLM_API_KEY_ENV}=<your-litellm-master-key>`)}`);
53
+ rpgInfo(`Point --base-url at your LiteLLM proxy (default: http://localhost:4000)`);
54
+ }
55
+ else {
47
56
  rpgInfo(`Set your API key before running:`);
48
57
  console.log(` ${chalk.yellow(`export ${LLM_API_KEY_ENV}=<your-api-key>`)}`);
49
58
  }
50
- else if (options.provider === 'ollama') {
51
- rpgInfo('Ollama requires no API key. Make sure Ollama is running locally.');
52
- }
53
59
  console.log('');
54
60
  rpgInfo('Example models for this provider:');
55
61
  for (const m of PROVIDER_EXAMPLE_MODELS[options.provider]) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function runLeaderboard(): void;
1
+ export declare function runLeaderboard(): Promise<void>;
2
2
  //# sourceMappingURL=leaderboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,IAAI,IAAI,CAkCrC"}
1
+ {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"AAOA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsCpD"}
@@ -1,8 +1,10 @@
1
- import { loadLeaderboard } from '../storage/index.js';
2
- import { rpgHeader, rpgInfo } from '../shared/ui.js';
1
+ import { loadLeaderboard, saveLeaderboardReport } from '../storage/index.js';
2
+ import { generateLeaderboardHTML } from '../report/index.js';
3
+ import { rpgHeader, rpgInfo, rpgSuccess, rpgLog } from '../shared/ui.js';
3
4
  import { diagLog } from '../shared/diagnostics.js';
4
5
  import chalk from 'chalk';
5
- export function runLeaderboard() {
6
+ import open from 'open';
7
+ export async function runLeaderboard() {
6
8
  const entries = loadLeaderboard();
7
9
  diagLog('Loaded leaderboard entries', {
8
10
  entryCount: entries.length,
@@ -13,14 +15,16 @@ export function runLeaderboard() {
13
15
  rpgInfo('No players yet. Run quackscore create {user} to get started!');
14
16
  return;
15
17
  }
18
+ const leaderboardPath = saveLeaderboardReport(generateLeaderboardHTML(entries));
16
19
  const medals = ['🥇', '🥈', '🥉'];
17
20
  console.log(chalk.dim('─'.repeat(60)));
18
- console.log(chalk.bold(`${'#'.padEnd(4)} ${'Username'.padEnd(25)} ${'Points'.padStart(10)} ${'Level'.padStart(8)}`));
21
+ console.log(chalk.bold(`${'#'.padEnd(4)} ${'Username'.padEnd(30)} ${'Points'.padStart(10)} ${'Level'.padStart(8)}`));
19
22
  console.log(chalk.dim('─'.repeat(60)));
20
23
  for (let i = 0; i < entries.length; i++) {
21
24
  const e = entries[i];
22
25
  const medal = medals[i] || `${i + 1}.`;
23
- const row = `${(medal + ' ').padEnd(4)} ${e.username.padEnd(25)} ${String(e.totalPoints).padStart(10)} ${('Lv.' + e.level).padStart(8)}`;
26
+ const label = e.username.slice(0, 30);
27
+ const row = `${(medal + ' ').padEnd(4)} ${label.padEnd(30)} ${String(e.totalPoints).padStart(10)} ${('Lv.' + e.level).padStart(8)}`;
24
28
  if (i === 0)
25
29
  console.log(chalk.yellow(row));
26
30
  else if (i === 1)
@@ -32,5 +36,8 @@ export function runLeaderboard() {
32
36
  }
33
37
  console.log(chalk.dim('─'.repeat(60)));
34
38
  console.log(chalk.dim(`\n${entries.length} player(s) on the board.`));
39
+ rpgSuccess(`Leaderboard saved: ${leaderboardPath}`);
40
+ rpgLog('Opening the hall of champions...');
41
+ await open(leaderboardPath);
35
42
  }
36
43
  //# sourceMappingURL=leaderboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,OAAO,CAAC,4BAA4B,EAAE;QACpC,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;KAClD,CAAC,CAAC;IACH,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,8DAA8D,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAC5F,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzI,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACvC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1C,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;YACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,0BAA0B,CAAC,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ const MOCK_PR_BLUEPRINTS = [
17
17
  complexity: 8,
18
18
  areas: ['web_frontend', 'sre'],
19
19
  types: ['bugfix', 'refactor'],
20
- technologies: ['typescript', 'react', 'testing'],
20
+ technologies: ['typescript', 'react'],
21
21
  summary: 'Reduced hydration mismatches, delayed analytics bootstrapping, and improved test coverage around first-load rendering paths.',
22
22
  },
23
23
  {
@@ -29,7 +29,7 @@ const MOCK_PR_BLUEPRINTS = [
29
29
  complexity: 7,
30
30
  areas: ['devops'],
31
31
  types: ['new_development', 'documentation'],
32
- technologies: ['ci_cd', 'cloud', 'bash'],
32
+ technologies: ['cloud', 'bash'],
33
33
  summary: 'Introduced shared GitHub Actions templates for build, test, release, and rollback flows used across multiple repositories.',
34
34
  },
35
35
  {
@@ -41,7 +41,7 @@ const MOCK_PR_BLUEPRINTS = [
41
41
  complexity: 8,
42
42
  areas: ['backend'],
43
43
  types: ['new_development'],
44
- technologies: ['typescript', 'nodejs', 'api'],
44
+ technologies: ['typescript', 'nodejs'],
45
45
  summary: 'Added idempotent webhook processing, duplicate-event guards, and stronger observability for failed payment notifications.',
46
46
  },
47
47
  {
@@ -65,7 +65,7 @@ const MOCK_PR_BLUEPRINTS = [
65
65
  complexity: 6,
66
66
  areas: ['qa', 'web_frontend'],
67
67
  types: ['bugfix', 'refactor'],
68
- technologies: ['testing', 'typescript'],
68
+ technologies: ['typescript'],
69
69
  summary: 'Removed timing-sensitive test setup by introducing seeded fixtures and clearer synchronization for end-to-end scenarios.',
70
70
  },
71
71
  {
@@ -77,7 +77,7 @@ const MOCK_PR_BLUEPRINTS = [
77
77
  complexity: 9,
78
78
  areas: ['web_frontend', 'backend'],
79
79
  types: ['new_development'],
80
- technologies: ['typescript', 'react', 'api'],
80
+ technologies: ['typescript', 'react', 'nodejs'],
81
81
  summary: 'Delivered a full feature-flag management flow including admin screens, contract updates, and audit-oriented access checks.',
82
82
  },
83
83
  {
@@ -89,7 +89,7 @@ const MOCK_PR_BLUEPRINTS = [
89
89
  complexity: 4,
90
90
  areas: ['sre', 'devops'],
91
91
  types: ['documentation'],
92
- technologies: ['markdown', 'ci_cd'],
92
+ technologies: [],
93
93
  summary: 'Added a practical release-failure playbook with rollback criteria, ownership handoff notes, and communication templates.',
94
94
  },
95
95
  {
@@ -101,7 +101,7 @@ const MOCK_PR_BLUEPRINTS = [
101
101
  complexity: 7,
102
102
  areas: ['backend'],
103
103
  types: ['refactor', 'bugfix'],
104
- technologies: ['typescript', 'nodejs', 'api'],
104
+ technologies: ['typescript', 'nodejs'],
105
105
  summary: 'Reduced N+1 query pressure in customer overview resolvers and improved backend latency under peak dashboard traffic.',
106
106
  },
107
107
  {
@@ -125,7 +125,7 @@ const MOCK_PR_BLUEPRINTS = [
125
125
  complexity: 7,
126
126
  areas: ['devops', 'sre'],
127
127
  types: ['refactor'],
128
- technologies: ['terraform', 'cloud', 'ci_cd'],
128
+ technologies: ['terraform', 'cloud'],
129
129
  summary: 'Reworked infrastructure modules to support predictable preview environment provisioning and cleaner teardown semantics.',
130
130
  },
131
131
  {
@@ -137,7 +137,7 @@ const MOCK_PR_BLUEPRINTS = [
137
137
  complexity: 6,
138
138
  areas: ['backend', 'qa'],
139
139
  types: ['new_development'],
140
- technologies: ['typescript', 'nodejs', 'testing'],
140
+ technologies: ['typescript', 'nodejs'],
141
141
  summary: 'Added API contract tests to catch schema drift earlier and keep the notification service aligned with consuming clients.',
142
142
  },
143
143
  {
@@ -173,7 +173,7 @@ const MOCK_PR_BLUEPRINTS = [
173
173
  complexity: 4,
174
174
  areas: ['devops', 'scripts'],
175
175
  types: ['documentation', 'refactor'],
176
- technologies: ['docker', 'bash', 'markdown'],
176
+ technologies: ['docker', 'bash'],
177
177
  summary: 'Smoothed local onboarding by simplifying dev container startup and documenting common environment troubleshooting steps.',
178
178
  },
179
179
  {
@@ -185,7 +185,7 @@ const MOCK_PR_BLUEPRINTS = [
185
185
  complexity: 6,
186
186
  areas: ['backend'],
187
187
  types: ['new_development'],
188
- technologies: ['typescript', 'nodejs', 'api'],
188
+ technologies: ['typescript', 'nodejs'],
189
189
  summary: 'Added pagination and cursor-based retrieval for customer events so larger accounts remain usable in the timeline view.',
190
190
  },
191
191
  {
@@ -209,7 +209,7 @@ const MOCK_PR_BLUEPRINTS = [
209
209
  complexity: 8,
210
210
  areas: ['sre', 'web_frontend'],
211
211
  types: ['new_development'],
212
- technologies: ['typescript', 'react', 'api'],
212
+ technologies: ['typescript', 'react'],
213
213
  summary: 'Added alert routing configuration to the ops console with policy editing, preview validation, and safer default fallbacks.',
214
214
  },
215
215
  {
@@ -233,7 +233,7 @@ const MOCK_PR_BLUEPRINTS = [
233
233
  complexity: 9,
234
234
  areas: ['devops', 'web_frontend'],
235
235
  types: ['new_development'],
236
- technologies: ['typescript', 'react', 'cloud', 'ci_cd'],
236
+ technologies: ['typescript', 'react', 'cloud'],
237
237
  summary: 'Delivered self-serve workspace provisioning with approval hooks, status tracking, and reusable deployment templates.',
238
238
  },
239
239
  {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-report.js","sourceRoot":"","sources":["../../src/commands/mock-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-report.js","sourceRoot":"","sources":["../../src/commands/mock-report.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type Provider = 'anthropic' | 'openai' | 'google' | 'openrouter' | 'minimax' | 'ollama';
1
+ export type Provider = 'anthropic' | 'openai' | 'google' | 'openrouter' | 'minimax' | 'ollama' | 'litellm';
2
2
  /** Shared API key environment variable for all remote LLM providers */
3
3
  export declare const LLM_API_KEY_ENV = "QUACKSCORE_LLM_API_KEY";
4
4
  /** Default model for each provider (used when --model is omitted from init) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,QAAQ,CAAC;AAEb,uEAAuE;AACvE,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAOtD,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAO9D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,uEAAuE;AACvE,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQtD,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQ9D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -8,6 +8,7 @@ export const PROVIDER_DEFAULTS = {
8
8
  openrouter: 'anthropic/claude-haiku-4',
9
9
  minimax: 'MiniMax-M2.7',
10
10
  ollama: 'llama3.2',
11
+ litellm: 'azure/gpt-4o-mini',
11
12
  };
12
13
  /** Well-known models shown as examples during init */
13
14
  export const PROVIDER_EXAMPLE_MODELS = {
@@ -17,5 +18,6 @@ export const PROVIDER_EXAMPLE_MODELS = {
17
18
  openrouter: ['anthropic/claude-opus-4', 'google/gemini-2.0-flash', 'meta-llama/llama-3.3-70b-instruct'],
18
19
  minimax: ['MiniMax-M2.7', 'MiniMax-M2.7-highspeed', 'MiniMax-M2.5'],
19
20
  ollama: ['llama3.2', 'mistral', 'codestral', 'deepseek-coder'],
21
+ litellm: ['azure/gpt-4o', 'azure/gpt-4o-mini', 'bedrock/claude-3-5-sonnet'],
20
22
  };
21
23
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAQA,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,SAAS,EAAE,2BAA2B;IACtC,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAA+B;IACjE,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,CAAC;IAChF,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC;IAC5C,MAAM,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;IAClE,UAAU,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,mCAAmC,CAAC;IACvG,OAAO,EAAE,CAAC,cAAc,EAAE,wBAAwB,EAAE,cAAc,CAAC;IACnE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;CAC/D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AASA,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,SAAS,EAAE,2BAA2B;IACtC,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAA+B;IACjE,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,CAAC;IAChF,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC;IAC5C,MAAM,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;IAClE,UAAU,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,mCAAmC,CAAC;IACvG,OAAO,EAAE,CAAC,cAAc,EAAE,wBAAwB,EAAE,cAAc,CAAC;IACnE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;IAC9D,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,2BAA2B,CAAC;CAC5E,CAAC"}
package/dist/index.js CHANGED
@@ -14,11 +14,11 @@ function withDiagnosticsOption(command) {
14
14
  program
15
15
  .name('quackscore')
16
16
  .description('🦆 Transform your GitHub activity into a Duck RPG player card')
17
- .version('0.1.0');
17
+ .version('0.1.2');
18
18
  withDiagnosticsOption(program
19
19
  .command('init')
20
20
  .description('Configure the LLM provider and model (run once before first use)')
21
- .requiredOption('--provider <provider>', 'LLM provider: anthropic | openai | google | openrouter | minimax | ollama')
21
+ .requiredOption('--provider <provider>', 'LLM provider: anthropic | openai | google | openrouter | minimax | ollama | litellm')
22
22
  .option('--model <model>', 'Model name (defaults to recommended for provider)')
23
23
  .option('--base-url <url>', 'Custom base URL (for Ollama or OpenAI-compatible endpoints)')
24
24
  .action(async (options) => {
@@ -79,12 +79,12 @@ withDiagnosticsOption(program
79
79
  }));
80
80
  withDiagnosticsOption(program
81
81
  .command('leaderboard')
82
- .description('Show local leaderboard sorted by total points')
83
- .action((options) => {
82
+ .description('Open a leaderboard built from all generated local reports')
83
+ .action(async (options) => {
84
84
  configureDiagnostics(Boolean(options.diagnostics), {
85
85
  command: 'leaderboard',
86
86
  });
87
- runLeaderboard();
87
+ await runLeaderboard();
88
88
  }));
89
89
  program.parseAsync(process.argv).catch((err) => {
90
90
  console.error('💀', err.message);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5F,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAoEhD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAoC3G"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5F,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAyEhD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAoC3G"}
@@ -46,11 +46,16 @@ Examples:
46
46
  - rails -> ruby
47
47
  - postgresql, sqlite, mariadb -> sql
48
48
  - mongodb, redis, kafka, rabbitmq -> data
49
- - graphql, grpc, openapi -> api
50
- - github_actions, jenkins, circleci -> ci_cd
51
49
  - feature, enhancement -> new_development
52
50
  - fix, hotfix -> bugfix
53
51
 
52
+ Technology rules:
53
+ - Only return implementation stack items such as languages, runtimes, frameworks, databases, cloud, or infra platforms
54
+ - Do NOT return process/capability labels like api, ci_cd, testing, markdown, docs, or other
55
+ - GraphQL, gRPC, OpenAPI, and REST are interface styles, not technologies for this field
56
+ - GitHub Actions, Jenkins, and CircleCI describe delivery workflow, not product stack, so capture that in areas/types instead
57
+ - Jest, Vitest, Playwright, Cypress, and similar tools should push the area toward qa, not appear in technologies
58
+
54
59
  For the "summary" field:
55
60
  - Describe WHAT was actually done and WHY it matters in one concise sentence
56
61
  - Name the subsystem, workflow, or problem that changed
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAe,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO;;YAEG,EAAE,CAAC,KAAK;cACN,EAAE,CAAC,IAAI;aACR,EAAE,CAAC,SAAS;aACZ,EAAE,CAAC,SAAS;;EAEvB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,oBAAoB;;;;;;;;;;;;;iBAarD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;8BACX,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC3C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA4CD,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,YAAsB,EAAE,UAAoB;IACjG,OAAO;;aAEI,QAAQ;;;EAGnB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oCAAoC;;;EAGnH,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B7I,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAe,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO;;YAEG,EAAE,CAAC,KAAK;cACN,EAAE,CAAC,IAAI;aACR,EAAE,CAAC,SAAS;aACZ,EAAE,CAAC,SAAS;;EAEvB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,oBAAoB;;;;;;;;;;;;;iBAarD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;8BACX,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC3C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAiDD,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,YAAsB,EAAE,UAAoB;IACjG,OAAO;;aAEI,QAAQ;;;EAGnB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oCAAoC;;;EAGnH,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B7I,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/llm/providers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGvE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAoD7D"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/llm/providers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGvE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CA+D7D"}
@@ -11,7 +11,7 @@ import { diagLog } from '../shared/diagnostics.js';
11
11
  * (never stored in config). Ollama requires no API key.
12
12
  */
13
13
  export function getModel(config) {
14
- const apiKey = config.provider === 'ollama' ? undefined : getSharedApiKey();
14
+ const apiKey = (config.provider === 'ollama' || config.provider === 'litellm') ? undefined : getSharedApiKey();
15
15
  diagLog('Resolving language model provider', {
16
16
  provider: config.provider,
17
17
  model: config.model,
@@ -50,6 +50,16 @@ export function getModel(config) {
50
50
  const ol = createOllama({ baseURL: config.baseUrl ?? 'http://localhost:11434/api' });
51
51
  return ol(config.model);
52
52
  }
53
+ case 'litellm': {
54
+ const litellmKey = process.env[LLM_API_KEY_ENV];
55
+ const ll = createOpenAI({
56
+ baseURL: config.baseUrl ?? 'http://localhost:4000',
57
+ apiKey: litellmKey ?? 'no-key',
58
+ compatibility: 'compatible',
59
+ name: 'litellm',
60
+ });
61
+ return ll(config.model);
62
+ }
53
63
  default: {
54
64
  const p = config.provider;
55
65
  throw new Error(`Unsupported provider: ${p}`);
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/llm/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/llm/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC/G,OAAO,CAAC,mCAAmC,EAAE;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;IAEH,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnD,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7F,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnB,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5D,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,GAAG,YAAY,CAAC;gBACtB,OAAO,EAAE,8BAA8B;gBACvC,MAAM;gBACN,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,YAAY,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;gBACtD,MAAM;gBACN,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,4BAA4B,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,YAAY,CAAC;gBACtB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;gBAClD,MAAM,EAAE,UAAU,IAAI,QAAQ;gBAC9B,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,eAAe,+BAA+B,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,8CAA8C,EAAE;QACtD,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,MAAM,CAAC,MAAM;KACzB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/report/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA2M3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAs0CnD"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/report/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAwO3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAo0CnD"}
@@ -128,10 +128,35 @@ function renderPlayerName(name) {
128
128
  function polarPoint(angle, radius, cx, cy) {
129
129
  return { x: cx + Math.cos(angle) * radius, y: cy + Math.sin(angle) * radius };
130
130
  }
131
- function renderRadarChart(areaEntries, areaTotal) {
131
+ function buildTechnologyTotals(prs, fallbackTechnologies) {
132
+ const totals = {};
133
+ for (const pr of prs) {
134
+ if (!pr.analysis || pr.analysis.skipped || pr.points == null)
135
+ continue;
136
+ for (const technology of normalizeTechnologies(pr.analysis.technologies)) {
137
+ totals[technology] = (totals[technology] || 0) + pr.points;
138
+ }
139
+ }
140
+ if (Object.keys(totals).length === 0) {
141
+ for (const [technology, value] of Object.entries(fallbackTechnologies)) {
142
+ for (const normalized of normalizeTechnologies([technology])) {
143
+ totals[normalized] = (totals[normalized] || 0) + value;
144
+ }
145
+ }
146
+ }
147
+ return Object.entries(totals).sort(([, left], [, right]) => right - left);
148
+ }
149
+ function renderRadarChart(areaEntries) {
132
150
  const map = new Map(areaEntries);
133
151
  const keys = Array.from(new Set([...areaEntries.map(([key]) => key), ...RADAR_FALLBACK_KEYS])).slice(0, 6);
134
- const items = keys.map((key) => ({ label: formatLabel(key), share: areaTotal === 0 ? 0 : Number(pct(map.get(key) ?? 0, areaTotal)) }));
152
+ const strongestAreaValue = Math.max(1, ...areaEntries.map(([, value]) => value), 0);
153
+ const items = keys.map((key) => {
154
+ const value = map.get(key) ?? 0;
155
+ return {
156
+ label: formatLabel(key),
157
+ share: value === 0 ? 0 : Number(((value / strongestAreaValue) * 100).toFixed(1)),
158
+ };
159
+ });
135
160
  const cx = 160;
136
161
  const cy = 138;
137
162
  const radius = 92;
@@ -160,7 +185,7 @@ function renderRadarChart(areaEntries, areaTotal) {
160
185
  const markers = items
161
186
  .map((item, index) => {
162
187
  const point = polarPoint(-Math.PI / 2 + (index * Math.PI * 2) / items.length, radius * (item.share / 100), cx, cy);
163
- return `<circle cx="${point.x.toFixed(2)}" cy="${point.y.toFixed(2)}" r="3.5" fill="#f59e0b" stroke="#171717" stroke-width="2"><title>${escapeHtml(item.label)}: ${item.share.toFixed(1)}%</title></circle>`;
188
+ return `<circle cx="${point.x.toFixed(2)}" cy="${point.y.toFixed(2)}" r="3.5" fill="#f59e0b" stroke="#171717" stroke-width="2"><title>${escapeHtml(item.label)}: ${item.share.toFixed(1)}% of strongest area</title></circle>`;
164
189
  })
165
190
  .join('');
166
191
  return `<svg viewBox="0 0 320 280" role="img" aria-label="Specialization radar chart">${grid}${axes}<polygon points="${polygon}" fill="rgba(245,158,11,0.35)" stroke="#f59e0b" stroke-width="2" />${markers}</svg>`;
@@ -209,10 +234,9 @@ export function generateHTML(data) {
209
234
  characterPresent: Boolean(character),
210
235
  });
211
236
  const sortedPRs = [...prs].sort((left, right) => Date.parse(right.mergedAt) - Date.parse(left.mergedAt));
212
- const topTechs = Object.entries(technologies).sort(([, left], [, right]) => right - left).slice(0, TECH_PALETTE.length);
237
+ const topTechs = buildTechnologyTotals(sortedPRs, technologies).slice(0, TECH_PALETTE.length);
213
238
  const areaEntries = Object.entries(areas).sort(([, left], [, right]) => right - left);
214
239
  const typeEntries = Object.entries(types).sort(([, left], [, right]) => right - left);
215
- const areaTotal = areaEntries.reduce((sum, [, value]) => sum + value, 0);
216
240
  const typeTotal = typeEntries.reduce((sum, [, value]) => sum + value, 0);
217
241
  const weekRangeStart = weeklyContributions[0]?.week.slice(5) ?? 'N/A';
218
242
  const weekRangeEnd = weeklyContributions[weeklyContributions.length - 1]?.week.slice(5) ?? 'N/A';
@@ -341,13 +365,12 @@ a { color: inherit; }
341
365
 
342
366
  .header-cards {
343
367
  display: flex;
344
- flex-wrap: wrap;
368
+ flex-wrap: nowrap;
345
369
  gap: 16px;
346
370
  justify-content: flex-end;
347
371
  }
348
372
 
349
373
  .info-card {
350
- min-width: 180px;
351
374
  padding: 14px 18px;
352
375
  border-radius: 12px;
353
376
  border: 1px solid var(--border-soft);
@@ -1486,8 +1509,8 @@ ${styles}
1486
1509
  </aside>
1487
1510
  <div class="main">
1488
1511
  <div class="top-panels">
1489
- <section class="panel visual-panel"><div class="panel-head"><div class="panel-title-row"><span class="panel-icon radar">&#9889;</span><h2 class="panel-title">Specialization Radar</h2></div></div><div class="panel-chart">${renderRadarChart(areaEntries, areaTotal)}</div></section>
1490
- <section class="panel visual-panel"><span class="panel-ornament tech" aria-hidden="true">&#60;/&#62;</span><div class="panel-head"><div class="panel-title-row"><span class="panel-icon tech">&#60;/&#62;</span><h2 class="panel-title">Tech Stack</h2></div></div><div class="panel-chart">${renderTechDonut(topTechs)}</div></section>
1512
+ <section class="panel visual-panel"><div class="panel-head"><div class="panel-title-row"><span class="panel-icon radar">&#9889;</span><h2 class="panel-title">Specialization Radar</h2></div><div class="panel-note">Scaled to the strongest area</div></div><div class="panel-chart">${renderRadarChart(areaEntries)}</div></section>
1513
+ <section class="panel visual-panel"><span class="panel-ornament tech" aria-hidden="true">&#60;/&#62;</span><div class="panel-head"><div class="panel-title-row"><span class="panel-icon tech">&#60;/&#62;</span><h2 class="panel-title">Tech Stack</h2></div><div class="panel-note">Languages, runtimes, and platforms only</div></div><div class="panel-chart">${renderTechDonut(topTechs)}</div></section>
1491
1514
  </div>
1492
1515
  <section class="panel"><div class="panel-head compact"><div><h2 class="panel-title">Contribution Types</h2></div></div><div class="type-list">${renderContributionTypes(typeEntries, typeTotal)}</div></section>
1493
1516
  <section class="panel"><div class="panel-head"><div><div class="mono">Activity</div><h2 class="panel-title">Weekly XP Gains</h2></div><div class="weekly-note">${activeWeeks} active weeks between ${escapeHtml(weekRangeStart)} and ${escapeHtml(weekRangeEnd)}</div></div><div class="weekly-chart">${weeklyChartSvg}</div></section>