quackscore 0.1.10 → 0.2.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.
package/README.md CHANGED
@@ -26,8 +26,8 @@ That's it. Quack.
26
26
  ## Requirements
27
27
 
28
28
  - Node.js 18+
29
- - `QUACKSCORE_GH_TOKEN` a GitHub personal access token. See [GitHub fine-grained token setup](./docs/github-fine-grained-pat.md)
30
- - `QUACKSCORE_LLM_API_KEY` API key for your chosen LLM provider. See [LLM provider setup](./docs/llm-provider-setup.md). Not required for Ollama or unauthenticated LiteLLM proxies.
29
+ - A GitHub personal access token — set via `QUACKSCORE_GH_TOKEN` env var or `--github-token` flag. See [GitHub fine-grained token setup](./docs/github-fine-grained-pat.md)
30
+ - An LLM API key set via `QUACKSCORE_LLM_API_KEY` env var or `--llm-api-key` flag. See [LLM provider setup](./docs/llm-provider-setup.md). Not required for Ollama or unauthenticated LiteLLM proxies.
31
31
 
32
32
  ---
33
33
 
@@ -65,15 +65,25 @@ Need setup help? See [LLM provider setup](./docs/llm-provider-setup.md).
65
65
 
66
66
  ## Quick start
67
67
 
68
- ### 1. Set environment variables
68
+ ### 1. Set credentials
69
69
 
70
70
  Need a GitHub token first? Follow [GitHub fine-grained token setup](./docs/github-fine-grained-pat.md).
71
71
 
72
+ **Option A — environment variables (recommended for repeated use):**
73
+
72
74
  ```bash
73
75
  export QUACKSCORE_GH_TOKEN=<your-github-token>
74
76
  export QUACKSCORE_LLM_API_KEY=<your-llm-api-key>
75
77
  ```
76
78
 
79
+ **Option B — CLI flags (useful for one-off runs or CI):**
80
+
81
+ ```bash
82
+ quackscore create <github-username> \
83
+ --github-token <your-github-token> \
84
+ --llm-api-key <your-llm-api-key>
85
+ ```
86
+
77
87
  ### 2. Pick your LLM provider
78
88
 
79
89
  Need help choosing or configuring a provider? See [LLM provider setup](./docs/llm-provider-setup.md).
@@ -98,6 +108,12 @@ Filter by org or repo:
98
108
  quackscore create <github-username> --organisation <org> --repository <repo>
99
109
  ```
100
110
 
111
+ Limit to the last N weeks of PRs (useful for developers with large PR histories):
112
+
113
+ ```bash
114
+ quackscore create <github-username> --weeks 30
115
+ ```
116
+
101
117
  ### 4. Update later (only new PRs)
102
118
 
103
119
  ```bash
@@ -106,6 +122,12 @@ quackscore update <github-username>
106
122
 
107
123
  Fetches only PRs merged since the last run, analyzes them, and updates your stats, level, and charts. Your existing profile summary is left untouched — use `update-summary` when you want to regenerate it.
108
124
 
125
+ You can also limit the update window to a specific number of weeks:
126
+
127
+ ```bash
128
+ quackscore update <github-username> --weeks 12
129
+ ```
130
+
109
131
  ### 5. Refresh your profile summary
110
132
 
111
133
  ```bash
@@ -120,13 +142,21 @@ Regenerates the RPG title and written summary by sending your full PR history to
120
142
  quackscore show <github-username>
121
143
  ```
122
144
 
123
- ### 7. Leaderboard
145
+ ### 7. Remove a profile
146
+
147
+ ```bash
148
+ quackscore remove <github-username>
149
+ ```
150
+
151
+ Deletes the locally stored JSON data and HTML report for the given user. Useful for cleaning up or starting fresh. Does not affect GitHub or any remote data.
152
+
153
+ ### 8. Leaderboard
124
154
 
125
155
  ```bash
126
156
  quackscore leaderboard
127
157
  ```
128
158
 
129
- ### 8. Try it without credentials
159
+ ### 9. Try it without credentials
130
160
 
131
161
  ```bash
132
162
  quackscore mock-report
@@ -192,6 +222,8 @@ Everything lives in `~/.quackscore/`:
192
222
  ## Notes
193
223
 
194
224
  - The GitHub token is required regardless of LLM setup.
195
- - API keys are read from environment variables only never written to disk.
225
+ - API keys passed via `--github-token` and `--llm-api-key` take precedence over environment variables and are never written to disk.
196
226
  - `create` always rebuilds from scratch; `update` only fetches and analyzes new PRs without touching the existing summary; `update-summary` regenerates the summary without touching PRs.
227
+ - Use `--weeks <n>` on `create` or `update` to limit PR fetching to the last N weeks — handy for developers with years of history who only want a recent snapshot.
228
+ - `remove` deletes only local files (`~/.quackscore/<username>.json` and `~/.quackscore/<username>.html`).
197
229
  - Add `--diagnostics` to any command for detailed internal tracing.
@@ -1,6 +1,9 @@
1
1
  export interface CreateOptions {
2
2
  org?: string;
3
3
  repository?: string;
4
+ weeks?: number;
5
+ githubToken?: string;
6
+ llmApiKey?: string;
4
7
  }
5
8
  export declare function runCreate(username: string, options: CreateOptions): Promise<void>;
6
9
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKvF"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyKvF"}
@@ -7,26 +7,30 @@ import { loadConfig } from '../config/index.js';
7
7
  import { rpgHeader, rpgLog, rpgInfo, rpgProgress, rpgSuccess, rpgError } from '../shared/ui.js';
8
8
  import { diagError, diagLog } from '../shared/diagnostics.js';
9
9
  import open from 'open';
10
+ function weeksToSinceISO(weeks) {
11
+ return new Date(Date.now() - weeks * 7 * 24 * 60 * 60 * 1000).toISOString();
12
+ }
10
13
  export async function runCreate(username, options) {
11
14
  diagLog('Starting create command', {
12
15
  username,
13
- options,
14
- githubTokenPresent: Boolean(process.env['QUACKSCORE_GH_TOKEN']),
16
+ options: { org: options.org, repository: options.repository },
17
+ githubTokenPresent: Boolean(options.githubToken ?? process.env['QUACKSCORE_GH_TOKEN']),
15
18
  });
16
19
  diagLog('Create command is running in full rebuild mode', {
17
20
  username,
21
+ weeks: options.weeks,
18
22
  checkpointStrategy: 'ignore-local-cache-and-recompute-from-fetched-prs',
19
23
  });
20
- const token = process.env['QUACKSCORE_GH_TOKEN'];
24
+ const token = options.githubToken ?? process.env['QUACKSCORE_GH_TOKEN'];
21
25
  if (!token) {
22
- rpgError('QUACKSCORE_GH_TOKEN environment variable not set');
26
+ rpgError('GitHub token not set. Use --github-token or set QUACKSCORE_GH_TOKEN.');
23
27
  process.exit(1);
24
28
  }
25
29
  let model;
26
30
  try {
27
31
  const config = loadConfig();
28
32
  diagLog('Loaded configuration for create', config);
29
- model = getModel(config);
33
+ model = getModel(config, options.llmApiKey);
30
34
  diagLog('Instantiated model for create');
31
35
  }
32
36
  catch (err) {
@@ -36,13 +40,20 @@ export async function runCreate(username, options) {
36
40
  }
37
41
  rpgHeader(`Quackscore — ${username}`);
38
42
  rpgLog('Sharpening the beak...');
39
- rpgInfo('Reading ancient PR scrolls...');
43
+ const since = options.weeks != null ? weeksToSinceISO(options.weeks) : undefined;
44
+ if (since) {
45
+ rpgInfo(`Limiting to PRs from the last ${options.weeks} week${options.weeks === 1 ? '' : 's'} (since ${new Date(since).toLocaleDateString()})...`);
46
+ }
47
+ else {
48
+ rpgInfo('Reading ancient PR scrolls...');
49
+ }
40
50
  let prs;
41
51
  try {
42
52
  const fetchStartedAt = Date.now();
43
53
  prs = await fetchUserPRs(username, token, {
44
54
  org: options.org,
45
55
  repo: options.repository,
56
+ since,
46
57
  });
47
58
  diagLog('Fetched PRs for create', {
48
59
  username,
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAUxB,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAsB;IACtE,OAAO,CAAC,yBAAyB,EAAE;QACjC,QAAQ;QACR,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;QAC7D,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;KACvF,CAAC,CAAC;IACH,OAAO,CAAC,gDAAgD,EAAE;QACxD,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,kBAAkB,EAAE,mDAAmD;KACxE,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,sEAAsE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAC1E,QAAQ,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,iCAAiC,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACrJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,UAAU;YACxB,KAAK;SACN,CAAC,CAAC;QACH,OAAO,CAAC,wBAAwB,EAAE;YAChC,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc;YACvC,QAAQ,EAAE,GAAG,CAAC,MAAM;YACpB,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,0CAA0C,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAClF,QAAQ,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,sDAAsD,CAAC,CAAC;QAChE,OAAO,CAAC,yFAAyF,EAAE;YACjG,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,4BAA4B,EAAE;gBACpC,KAAK,EAAE,CAAC,GAAG,CAAC;gBACZ,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,QAAQ,EAAE,EAAE,CAAC,MAAM;gBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC7B,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;aACjC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrC,EAAE,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACzC,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,qCAAqC,EAAE;oBAC7C,QAAQ,EAAE,EAAE,CAAC,MAAM;oBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB;oBAC1C,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO;oBAC5B,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU;oBAClC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;oBACxB,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;oBACxB,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY;oBACtC,MAAM,EAAE,EAAE,CAAC,MAAM;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,EAAE,CAAC,MAAM;oBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,KAAK,EAAE,EAAE,CAAC,KAAK;iBAChB,CAAC,CAAC;gBACH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,6BAA6B,EAAE;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;QAC1C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM;QACvD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;KAC3C,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC;IACd,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,mFAAmF,EAAE;YAC3F,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,CAAC,wCAAwC,EAAE;YAChD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB;YAC3C,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAa;QACzB,QAAQ;QACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,GAAG;QACH,KAAK;QACL,SAAS;KACV,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,CAAC,gCAAgC,EAAE;QACxC,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;QAC5B,KAAK,EAAE;YACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;YACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;SAC5B;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,uCAAuC,EAAE;QAC/C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe;QACxC,UAAU;QACV,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC,CAAC;IAEH,UAAU,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACvC,OAAO,CAAC,6CAA6C,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACvE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runRemove(username: string): Promise<void>;
2
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC/D"}
@@ -0,0 +1,35 @@
1
+ import fs from 'fs';
2
+ import { userFilePath, userReportPath } from '../storage/paths.js';
3
+ import { rpgHeader, rpgSuccess, rpgInfo, rpgError } from '../shared/ui.js';
4
+ import { diagLog } from '../shared/diagnostics.js';
5
+ export async function runRemove(username) {
6
+ diagLog('Starting remove command', { username });
7
+ rpgHeader(`Quackscore Remove — ${username}`);
8
+ const dataPath = userFilePath(username);
9
+ const reportPath = userReportPath(username);
10
+ let removed = 0;
11
+ if (fs.existsSync(dataPath)) {
12
+ fs.unlinkSync(dataPath);
13
+ rpgSuccess(`Removed data file: ${dataPath}`);
14
+ diagLog('Removed user data file', { path: dataPath });
15
+ removed++;
16
+ }
17
+ else {
18
+ rpgInfo(`No data file found: ${dataPath}`);
19
+ }
20
+ if (fs.existsSync(reportPath)) {
21
+ fs.unlinkSync(reportPath);
22
+ rpgSuccess(`Removed report file: ${reportPath}`);
23
+ diagLog('Removed user report file', { path: reportPath });
24
+ removed++;
25
+ }
26
+ else {
27
+ rpgInfo(`No report file found: ${reportPath}`);
28
+ }
29
+ if (removed === 0) {
30
+ rpgError(`No files found for "${username}". Nothing to remove.`);
31
+ process.exit(1);
32
+ }
33
+ rpgInfo(`Removed ${removed} file(s) for "${username}".`);
34
+ }
35
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,OAAO,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxB,UAAU,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1B,UAAU,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,QAAQ,CAAC,uBAAuB,QAAQ,uBAAuB,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,WAAW,OAAO,iBAAiB,QAAQ,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,2 +1,5 @@
1
- export declare function runUpdateSummary(username: string): Promise<void>;
1
+ export interface UpdateSummaryOptions {
2
+ llmApiKey?: string;
3
+ }
4
+ export declare function runUpdateSummary(username: string, options?: UpdateSummaryOptions): Promise<void>;
2
5
  //# sourceMappingURL=update-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-summary.d.ts","sourceRoot":"","sources":["../../src/commands/update-summary.ts"],"names":[],"mappings":"AAQA,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEtE"}
1
+ {"version":3,"file":"update-summary.d.ts","sourceRoot":"","sources":["../../src/commands/update-summary.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE1G"}
@@ -5,13 +5,13 @@ import { loadConfig } from '../config/index.js';
5
5
  import { rpgHeader, rpgLog, rpgSuccess, rpgError } from '../shared/ui.js';
6
6
  import { diagError, diagLog } from '../shared/diagnostics.js';
7
7
  import open from 'open';
8
- export async function runUpdateSummary(username) {
8
+ export async function runUpdateSummary(username, options = {}) {
9
9
  diagLog('Starting update-summary command', { username });
10
10
  let model;
11
11
  try {
12
12
  const config = loadConfig();
13
13
  diagLog('Loaded configuration for update-summary', config);
14
- model = getModel(config);
14
+ model = getModel(config, options.llmApiKey);
15
15
  diagLog('Instantiated model for update-summary');
16
16
  }
17
17
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-summary.js","sourceRoot":"","sources":["../../src/commands/update-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-summary.js","sourceRoot":"","sources":["../../src/commands/update-summary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgLvF"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwLvF"}
@@ -10,19 +10,19 @@ import open from 'open';
10
10
  export async function runUpdate(username, options) {
11
11
  diagLog('Starting update command', {
12
12
  username,
13
- options,
14
- githubTokenPresent: Boolean(process.env['QUACKSCORE_GH_TOKEN']),
13
+ options: { org: options.org, repository: options.repository },
14
+ githubTokenPresent: Boolean(options.githubToken ?? process.env['QUACKSCORE_GH_TOKEN']),
15
15
  });
16
- const token = process.env['QUACKSCORE_GH_TOKEN'];
16
+ const token = options.githubToken ?? process.env['QUACKSCORE_GH_TOKEN'];
17
17
  if (!token) {
18
- rpgError('QUACKSCORE_GH_TOKEN environment variable not set');
18
+ rpgError('GitHub token not set. Use --github-token or set QUACKSCORE_GH_TOKEN.');
19
19
  process.exit(1);
20
20
  }
21
21
  let model;
22
22
  try {
23
23
  const config = loadConfig();
24
24
  diagLog('Loaded configuration for update', config);
25
- model = getModel(config);
25
+ model = getModel(config, options.llmApiKey);
26
26
  diagLog('Instantiated model for update');
27
27
  }
28
28
  catch (err) {
@@ -48,19 +48,25 @@ export async function runUpdate(username, options) {
48
48
  });
49
49
  rpgLog(`Last updated: ${existing.lastUpdated}`);
50
50
  rpgInfo('Fetching new PR scrolls...');
51
+ const since = options.weeks != null
52
+ ? new Date(Date.now() - options.weeks * 7 * 24 * 60 * 60 * 1000).toISOString()
53
+ : existing.lastUpdated;
54
+ if (options.weeks != null) {
55
+ rpgInfo(`Limiting to PRs from the last ${options.weeks} week${options.weeks === 1 ? '' : 's'} (since ${new Date(since).toLocaleDateString()})...`);
56
+ }
51
57
  let newPRs;
52
58
  try {
53
59
  const fetchStartedAt = Date.now();
54
60
  newPRs = await fetchUserPRs(username, token, {
55
61
  org: options.org,
56
62
  repo: options.repository,
57
- since: existing.lastUpdated,
63
+ since,
58
64
  });
59
65
  diagLog('Fetched candidate PRs for update', {
60
66
  username,
61
67
  durationMs: Date.now() - fetchStartedAt,
62
68
  candidateCount: newPRs.length,
63
- since: existing.lastUpdated,
69
+ since,
64
70
  });
65
71
  }
66
72
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E,CAKA;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmE7C;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6InB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E,CAKA;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmE7C;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgEnB"}
@@ -102,34 +102,31 @@ export async function fetchUserPRs(username, token, options = {}) {
102
102
  prs.push(...items);
103
103
  }
104
104
  else if (options.org) {
105
- diagLog('Fetching PRs across organization repositories', {
105
+ // Use GitHub Search API with org: qualifier instead of enumerating all repos.
106
+ // This is dramatically faster for large orgs (1 search vs N repo listing calls).
107
+ // Note: GitHub Search API returns at most 1000 results per query.
108
+ const searchQuery = `type:pr author:${username} is:merged org:${options.org}${options.since ? ` merged:>=${options.since}` : ''}`;
109
+ diagLog('Searching for PRs in organization', {
106
110
  org: options.org,
107
- since: options.since,
111
+ searchQuery,
108
112
  });
109
- const repos = await octokit.paginate(octokit.repos.listForOrg, {
110
- org: options.org,
113
+ const results = await octokit.paginate(octokit.search.issuesAndPullRequests, {
114
+ q: searchQuery,
111
115
  per_page: 100,
116
+ sort: 'created',
117
+ order: 'desc',
112
118
  });
113
- diagLog('Fetched organization repository list', {
114
- org: options.org,
115
- repoCount: repos.length,
116
- repos: repos.map((repo) => repo.name),
117
- });
118
- for (const repo of repos) {
119
- diagLog('Fetching repository PRs within organization', {
120
- owner: options.org,
121
- repo: repo.name,
122
- });
123
- const items = await fetchPRsFromRepo(octokit, username, options.org, repo.name, options.since);
124
- prs.push(...items);
119
+ diagLog('Received organization search results', { resultCount: results.length });
120
+ if (results.length >= 1000) {
121
+ diagLog('WARNING: Search results may be truncated at 1000. Consider using --repository to narrow scope or providing a --since date.');
125
122
  }
123
+ const items = await hydrateSearchResults(octokit, results);
124
+ prs.push(...items);
126
125
  }
127
126
  else {
128
- const { data: user } = await octokit.users.getByUsername({ username });
129
127
  const searchQuery = `type:pr author:${username} is:merged${options.since ? ` merged:>=${options.since}` : ''}`;
130
128
  diagLog('Fetching PRs through GitHub search', {
131
129
  username,
132
- userId: user.id,
133
130
  searchQuery,
134
131
  });
135
132
  const results = await octokit.paginate(octokit.search.issuesAndPullRequests, {
@@ -138,88 +135,92 @@ export async function fetchUserPRs(username, token, options = {}) {
138
135
  sort: 'created',
139
136
  order: 'desc',
140
137
  });
141
- diagLog('Received GitHub search results', {
142
- resultCount: results.length,
138
+ diagLog('Received GitHub search results', { resultCount: results.length });
139
+ if (results.length >= 1000) {
140
+ diagLog('WARNING: Search results may be truncated at 1000.');
141
+ }
142
+ const items = await hydrateSearchResults(octokit, results);
143
+ prs.push(...items);
144
+ }
145
+ diagLog('Completed GitHub PR fetch', {
146
+ username,
147
+ totalPRs: prs.length,
148
+ repos: [...new Set(prs.map((pr) => pr.repo))],
149
+ });
150
+ return prs;
151
+ }
152
+ async function hydrateSearchResults(octokit, results) {
153
+ const prs = [];
154
+ for (const item of results) {
155
+ if (!item.pull_request?.merged_at)
156
+ continue;
157
+ const urlParts = item.repository_url.split('/');
158
+ const repoOwner = urlParts[urlParts.length - 2];
159
+ const repoName = urlParts[urlParts.length - 1];
160
+ diagLog('Hydrating PR from search result', {
161
+ repoOwner,
162
+ repoName,
163
+ prNumber: item.number,
143
164
  });
144
- for (const item of results) {
145
- if (!item.pull_request?.merged_at)
146
- continue;
147
- const urlParts = item.repository_url.split('/');
148
- const repoOwner = urlParts[urlParts.length - 2];
149
- const repoName = urlParts[urlParts.length - 1];
150
- diagLog('Hydrating PR from search result', {
151
- repoOwner,
152
- repoName,
153
- prNumber: item.number,
165
+ try {
166
+ const { data: pr } = await octokit.pulls.get({
167
+ owner: repoOwner,
168
+ repo: repoName,
169
+ pull_number: item.number,
154
170
  });
171
+ let diff;
172
+ let rawFileStats;
155
173
  try {
156
- const { data: pr } = await octokit.pulls.get({
174
+ const { data: diffData } = await octokit.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', {
157
175
  owner: repoOwner,
158
176
  repo: repoName,
159
177
  pull_number: item.number,
178
+ mediaType: { format: 'diff' },
160
179
  });
161
- let diff;
162
- let rawFileStats;
163
- try {
164
- const { data: diffData } = await octokit.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', {
165
- owner: repoOwner,
166
- repo: repoName,
167
- pull_number: item.number,
168
- mediaType: { format: 'diff' },
169
- });
170
- const prepared = prepareDiff(String(diffData));
171
- diff = prepared.trimmed;
172
- rawFileStats = prepared.rawFileStats;
173
- diagLog('Fetched diff for search result PR', {
174
- repoOwner,
175
- repoName,
176
- prNumber: item.number,
177
- diffLength: diff.length,
178
- });
179
- }
180
- catch {
181
- // diff unavailable
182
- diagLog('Diff unavailable for search result PR', {
183
- repoOwner,
184
- repoName,
185
- prNumber: item.number,
186
- });
187
- }
188
- prs.push({
189
- id: pr.id,
190
- number: pr.number,
191
- title: pr.title,
192
- url: pr.html_url,
193
- repo: `${repoOwner}/${repoName}`,
194
- mergedAt: pr.merged_at,
195
- additions: pr.additions,
196
- deletions: pr.deletions,
197
- diff,
198
- rawFileStats,
199
- });
200
- diagLog('Added PR from search results', {
201
- repo: `${repoOwner}/${repoName}`,
202
- prNumber: pr.number,
203
- additions: pr.additions,
204
- deletions: pr.deletions,
180
+ const prepared = prepareDiff(String(diffData));
181
+ diff = prepared.trimmed;
182
+ rawFileStats = prepared.rawFileStats;
183
+ diagLog('Fetched diff for search result PR', {
184
+ repoOwner,
185
+ repoName,
186
+ prNumber: item.number,
187
+ diffLength: diff.length,
205
188
  });
206
189
  }
207
- catch (err) {
208
- // skip inaccessible PR
209
- diagError('Skipping inaccessible PR from search results', err, {
190
+ catch {
191
+ diagLog('Diff unavailable for search result PR', {
210
192
  repoOwner,
211
193
  repoName,
212
194
  prNumber: item.number,
213
195
  });
214
196
  }
197
+ prs.push({
198
+ id: pr.id,
199
+ number: pr.number,
200
+ title: pr.title,
201
+ url: pr.html_url,
202
+ repo: `${repoOwner}/${repoName}`,
203
+ mergedAt: pr.merged_at,
204
+ additions: pr.additions,
205
+ deletions: pr.deletions,
206
+ diff,
207
+ rawFileStats,
208
+ });
209
+ diagLog('Added PR from search results', {
210
+ repo: `${repoOwner}/${repoName}`,
211
+ prNumber: pr.number,
212
+ additions: pr.additions,
213
+ deletions: pr.deletions,
214
+ });
215
+ }
216
+ catch (err) {
217
+ diagError('Skipping inaccessible PR from search results', err, {
218
+ repoOwner,
219
+ repoName,
220
+ prNumber: item.number,
221
+ });
215
222
  }
216
- void user;
217
223
  }
218
- diagLog('Completed GitHub PR fetch', {
219
- username,
220
- totalPRs: prs.length,
221
- repos: [...new Set(prs.map((pr) => pr.repo))],
222
- });
223
224
  return prs;
224
225
  }
225
226
  async function fetchPRsFromRepo(octokit, username, owner, repo, since) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ import { runUpdateSummary } from './commands/update-summary.js';
7
7
  import { runShow } from './commands/show.js';
8
8
  import { runLeaderboard } from './commands/leaderboard.js';
9
9
  import { runMockReport } from './commands/mock-report.js';
10
+ import { runRemove } from './commands/remove.js';
10
11
  import { configureDiagnostics } from './shared/diagnostics.js';
11
12
  const program = new Command();
12
13
  function withDiagnosticsOption(command) {
@@ -15,7 +16,7 @@ function withDiagnosticsOption(command) {
15
16
  program
16
17
  .name('quackscore')
17
18
  .description('🦆 Transform your GitHub activity into a Duck RPG player card')
18
- .version('0.1.4');
19
+ .version('0.2.2');
19
20
  withDiagnosticsOption(program
20
21
  .command('init')
21
22
  .description('Configure the LLM provider and model (run once before first use)')
@@ -36,38 +37,47 @@ withDiagnosticsOption(program
36
37
  .description('Analyze all PRs and generate a player card')
37
38
  .option('--organisation <org>', 'Limit to a specific organisation')
38
39
  .option('--repository <repo>', 'Limit to a specific repository (requires --organisation)')
40
+ .option('--weeks <number>', 'Limit to PRs merged in the last N weeks', parseInt)
41
+ .option('--github-token <token>', 'GitHub personal access token (overrides QUACKSCORE_GH_TOKEN)')
42
+ .option('--llm-api-key <key>', 'LLM API key (overrides QUACKSCORE_LLM_API_KEY)')
39
43
  .action(async (username, options) => {
40
44
  configureDiagnostics(Boolean(options.diagnostics), {
41
45
  command: 'create',
42
46
  username,
43
47
  organisation: options.organisation,
44
48
  repository: options.repository,
49
+ weeks: options.weeks,
45
50
  });
46
- await runCreate(username, { org: options.organisation, repository: options.repository });
51
+ await runCreate(username, { org: options.organisation, repository: options.repository, weeks: options.weeks, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
47
52
  }));
48
53
  withDiagnosticsOption(program
49
54
  .command('update <github_user>')
50
55
  .description('Analyze only new PRs since last run and regenerate card')
51
56
  .option('--organisation <org>', 'Limit to a specific organisation')
52
57
  .option('--repository <repo>', 'Limit to a specific repository (requires --organisation)')
58
+ .option('--weeks <number>', 'Limit to PRs merged in the last N weeks', parseInt)
59
+ .option('--github-token <token>', 'GitHub personal access token (overrides QUACKSCORE_GH_TOKEN)')
60
+ .option('--llm-api-key <key>', 'LLM API key (overrides QUACKSCORE_LLM_API_KEY)')
53
61
  .action(async (username, options) => {
54
62
  configureDiagnostics(Boolean(options.diagnostics), {
55
63
  command: 'update',
56
64
  username,
57
65
  organisation: options.organisation,
58
66
  repository: options.repository,
67
+ weeks: options.weeks,
59
68
  });
60
- await runUpdate(username, { org: options.organisation, repository: options.repository });
69
+ await runUpdate(username, { org: options.organisation, repository: options.repository, weeks: options.weeks, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
61
70
  }));
62
71
  withDiagnosticsOption(program
63
72
  .command('update-summary <github_user>')
64
73
  .description('Regenerate the profile summary without re-analyzing PRs')
74
+ .option('--llm-api-key <key>', 'LLM API key (overrides QUACKSCORE_LLM_API_KEY)')
65
75
  .action(async (username, options) => {
66
76
  configureDiagnostics(Boolean(options.diagnostics), {
67
77
  command: 'update-summary',
68
78
  username,
69
79
  });
70
- await runUpdateSummary(username);
80
+ await runUpdateSummary(username, { llmApiKey: options.llmApiKey });
71
81
  }));
72
82
  withDiagnosticsOption(program
73
83
  .command('mock-report')
@@ -97,6 +107,16 @@ withDiagnosticsOption(program
97
107
  });
98
108
  await runLeaderboard();
99
109
  }));
110
+ withDiagnosticsOption(program
111
+ .command('remove <github_user>')
112
+ .description('Remove all locally stored files for a user')
113
+ .action(async (username, options) => {
114
+ configureDiagnostics(Boolean(options.diagnostics), {
115
+ command: 'remove',
116
+ username,
117
+ });
118
+ await runRemove(username);
119
+ }));
100
120
  program.parseAsync(process.argv).catch((err) => {
101
121
  console.error('💀', err.message);
102
122
  process.exit(1);
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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"}
@@ -6,5 +6,5 @@ import { type QuackConfig } from '../config/types.js';
6
6
  * Remote provider API keys are read from QUACKSCORE_LLM_API_KEY
7
7
  * (never stored in config). Ollama requires no API key.
8
8
  */
9
- export declare function getModel(config: QuackConfig): LanguageModelV1;
9
+ export declare function getModel(config: QuackConfig, overrideApiKey?: string): LanguageModelV1;
10
10
  //# sourceMappingURL=providers.d.ts.map
@@ -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,CA+D7D"}
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,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CA+DtF"}
@@ -10,8 +10,8 @@ import { diagLog } from '../shared/diagnostics.js';
10
10
  * Remote provider API keys are read from QUACKSCORE_LLM_API_KEY
11
11
  * (never stored in config). Ollama requires no API key.
12
12
  */
13
- export function getModel(config) {
14
- const apiKey = (config.provider === 'ollama' || config.provider === 'litellm') ? undefined : getSharedApiKey();
13
+ export function getModel(config, overrideApiKey) {
14
+ const apiKey = (config.provider === 'ollama' || config.provider === 'litellm') ? undefined : getSharedApiKey(overrideApiKey);
15
15
  diagLog('Resolving language model provider', {
16
16
  provider: config.provider,
17
17
  model: config.model,
@@ -51,7 +51,7 @@ export function getModel(config) {
51
51
  return ol(config.model);
52
52
  }
53
53
  case 'litellm': {
54
- const litellmKey = process.env[LLM_API_KEY_ENV];
54
+ const litellmKey = overrideApiKey ?? process.env[LLM_API_KEY_ENV];
55
55
  const ll = createOpenAI({
56
56
  baseURL: config.baseUrl ?? 'http://localhost:4000',
57
57
  apiKey: litellmKey ?? 'no-key',
@@ -66,13 +66,13 @@ export function getModel(config) {
66
66
  }
67
67
  }
68
68
  }
69
- function getSharedApiKey() {
70
- const apiKey = process.env[LLM_API_KEY_ENV];
69
+ function getSharedApiKey(overrideApiKey) {
70
+ const apiKey = overrideApiKey ?? process.env[LLM_API_KEY_ENV];
71
71
  if (!apiKey) {
72
72
  throw new Error(`${LLM_API_KEY_ENV} environment variable not set`);
73
73
  }
74
- diagLog('Resolved shared LLM API key from environment', {
75
- envVar: LLM_API_KEY_ENV,
74
+ diagLog('Resolved shared LLM API key', {
75
+ source: overrideApiKey ? 'cli-flag' : 'environment',
76
76
  keyLength: apiKey.length,
77
77
  });
78
78
  return apiKey;
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA0L/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAs1B9E"}
1
+ {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA0L/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CA0hC9E"}
@@ -422,6 +422,97 @@ body {
422
422
  .filter-summary strong {
423
423
  color: var(--amber);
424
424
  }
425
+ .filter-date-input {
426
+ width: 100%;
427
+ padding: 14px 16px;
428
+ border-radius: 16px;
429
+ border: 1px solid rgba(255,255,255,0.1);
430
+ background: linear-gradient(180deg, rgba(34,34,34,0.96), rgba(25,25,25,0.96));
431
+ color: var(--text);
432
+ font: inherit;
433
+ cursor: pointer;
434
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
435
+ transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
436
+ }
437
+ .filter-date-input:hover {
438
+ border-color: rgba(125,162,255,0.22);
439
+ background: linear-gradient(180deg, rgba(38,38,38,0.98), rgba(28,28,28,0.98));
440
+ }
441
+ .filter-date-input:focus {
442
+ outline: none;
443
+ border-color: rgba(125,162,255,0.42);
444
+ box-shadow: 0 0 0 1px rgba(125,162,255,0.18), 0 18px 38px rgba(0,0,0,0.26);
445
+ }
446
+ .filter-date-input::-webkit-calendar-picker-indicator {
447
+ filter: invert(0.8) opacity(0.7);
448
+ cursor: pointer;
449
+ }
450
+ .modal-overlay {
451
+ position: fixed;
452
+ inset: 0;
453
+ z-index: 100;
454
+ display: grid;
455
+ place-items: center;
456
+ background: rgba(0,0,0,0.6);
457
+ backdrop-filter: blur(4px);
458
+ }
459
+ .modal-overlay[hidden] {
460
+ display: none;
461
+ }
462
+ .modal {
463
+ width: min(440px, calc(100vw - 40px));
464
+ padding: 28px;
465
+ border-radius: 24px;
466
+ border: 1px solid rgba(125,162,255,0.22);
467
+ background:
468
+ radial-gradient(circle at top right, rgba(125,162,255,0.1), transparent 34%),
469
+ linear-gradient(180deg, rgba(22,22,22,0.99), rgba(14,14,14,0.99));
470
+ box-shadow: 0 32px 64px rgba(0,0,0,0.56);
471
+ }
472
+ .modal h3 {
473
+ margin: 0 0 20px;
474
+ font-family: "Cinzel", ui-serif, Georgia, serif;
475
+ font-size: 1.1rem;
476
+ color: var(--amber);
477
+ }
478
+ .modal-fields {
479
+ display: grid;
480
+ grid-template-columns: 1fr 1fr;
481
+ gap: 14px;
482
+ margin-bottom: 22px;
483
+ }
484
+ .modal-field {
485
+ display: grid;
486
+ gap: 8px;
487
+ }
488
+ .modal-actions {
489
+ display: flex;
490
+ justify-content: flex-end;
491
+ gap: 10px;
492
+ }
493
+ .modal-btn {
494
+ padding: 10px 20px;
495
+ border-radius: 12px;
496
+ border: 1px solid rgba(255,255,255,0.1);
497
+ background: rgba(255,255,255,0.05);
498
+ color: var(--text);
499
+ font: inherit;
500
+ font-size: 0.9rem;
501
+ cursor: pointer;
502
+ transition: background 140ms ease, border-color 140ms ease;
503
+ }
504
+ .modal-btn:hover {
505
+ background: rgba(255,255,255,0.09);
506
+ }
507
+ .modal-btn.primary {
508
+ border-color: rgba(125,162,255,0.36);
509
+ background: linear-gradient(180deg, rgba(125,162,255,0.22), rgba(91,122,219,0.18));
510
+ color: #dbe5ff;
511
+ font-weight: 600;
512
+ }
513
+ .modal-btn.primary:hover {
514
+ background: linear-gradient(180deg, rgba(125,162,255,0.3), rgba(91,122,219,0.24));
515
+ }
425
516
  .board {
426
517
  display: grid;
427
518
  gap: 12px;
@@ -662,11 +753,14 @@ body {
662
753
  <section class="filters" aria-label="Leaderboard filters">
663
754
  <div class="filter-group">
664
755
  <label class="filter-label" for="time-filter">Time</label>
665
- ${renderFilterDropdown('time-filter', 'data-time-filter', 'All', [
666
- { value: 'all', label: 'All' },
756
+ ${renderFilterDropdown('time-filter', 'data-time-filter', 'All time', [
757
+ { value: 'all', label: 'All time' },
667
758
  { value: 'last_week', label: 'Last week' },
668
759
  { value: 'last_month', label: 'Last month' },
760
+ { value: 'last_3_months', label: 'Last 3 months' },
761
+ { value: 'last_6_months', label: 'Last 6 months' },
669
762
  { value: 'last_year', label: 'Last year' },
763
+ { value: 'custom', label: 'Custom range...' },
670
764
  ])}
671
765
  </div>
672
766
  <div class="filter-group">
@@ -685,6 +779,25 @@ body {
685
779
  <button class="page-btn" type="button" data-nav="next">Next</button>
686
780
  </div>
687
781
  </div>
782
+ <div class="modal-overlay" id="date-range-modal" hidden>
783
+ <div class="modal">
784
+ <h3>Custom Date Range</h3>
785
+ <div class="modal-fields">
786
+ <div class="modal-field">
787
+ <label class="filter-label" for="modal-from">From</label>
788
+ <input class="filter-date-input" type="date" id="modal-from" data-modal-from>
789
+ </div>
790
+ <div class="modal-field">
791
+ <label class="filter-label" for="modal-to">To</label>
792
+ <input class="filter-date-input" type="date" id="modal-to" data-modal-to>
793
+ </div>
794
+ </div>
795
+ <div class="modal-actions">
796
+ <button class="modal-btn" type="button" data-modal-cancel>Cancel</button>
797
+ <button class="modal-btn primary" type="button" data-modal-apply>Apply</button>
798
+ </div>
799
+ </div>
800
+ </div>
688
801
  <script id="leaderboard-data" type="application/json">${serializeForScript(profiles)}</script>
689
802
  <script>
690
803
  (function() {
@@ -695,6 +808,8 @@ body {
695
808
  all: 'all time',
696
809
  last_week: 'the last week',
697
810
  last_month: 'the last month',
811
+ last_3_months: 'the last 3 months',
812
+ last_6_months: 'the last 6 months',
698
813
  last_year: 'the last year',
699
814
  };
700
815
 
@@ -709,13 +824,23 @@ body {
709
824
  const nextButton = document.querySelector('[data-nav="next"]');
710
825
  const pageStatus = document.querySelector('[data-page-status]');
711
826
 
712
- if (!dataElement || !board || !timeFilter || !specializationFilter || !count || !filterSummary || !pagination || !prevButton || !nextButton || !pageStatus) {
827
+ const modalOverlay = document.getElementById('date-range-modal');
828
+ const modalFromInput = document.querySelector('[data-modal-from]');
829
+ const modalToInput = document.querySelector('[data-modal-to]');
830
+ const modalCancelBtn = document.querySelector('[data-modal-cancel]');
831
+ const modalApplyBtn = document.querySelector('[data-modal-apply]');
832
+
833
+ if (!dataElement || !board || !timeFilter || !specializationFilter || !count || !filterSummary || !pagination || !prevButton || !nextButton || !pageStatus || !modalOverlay || !modalFromInput || !modalToInput || !modalCancelBtn || !modalApplyBtn) {
713
834
  return;
714
835
  }
715
836
 
716
837
  const profiles = JSON.parse(dataElement.textContent || '[]');
717
838
  let currentPage = 1;
718
- const dropdowns = [setupDropdown(timeFilter), setupDropdown(specializationFilter)].filter(Boolean);
839
+ let customFrom = '';
840
+ let customTo = '';
841
+ let previousTimeValue = 'all';
842
+ const timeDropdown = setupDropdown(timeFilter);
843
+ const dropdowns = [timeDropdown, setupDropdown(specializationFilter)].filter(Boolean);
719
844
 
720
845
  document.addEventListener('click', (event) => {
721
846
  dropdowns.forEach((instance) => {
@@ -824,7 +949,7 @@ body {
824
949
  });
825
950
  });
826
951
 
827
- return { dropdown, close };
952
+ return { dropdown, close, setValue };
828
953
  }
829
954
 
830
955
  const calculateLevel = (totalPoints) => {
@@ -846,11 +971,13 @@ body {
846
971
  || left.username.localeCompare(right.username);
847
972
 
848
973
  const cutoffFor = (timeValue) => {
849
- if (timeValue === 'all') return null;
974
+ if (timeValue === 'all' || timeValue === 'custom') return null;
850
975
  const now = new Date();
851
976
  const cutoff = new Date(now);
852
977
  if (timeValue === 'last_week') cutoff.setDate(cutoff.getDate() - 7);
853
978
  if (timeValue === 'last_month') cutoff.setDate(cutoff.getDate() - 30);
979
+ if (timeValue === 'last_3_months') cutoff.setDate(cutoff.getDate() - 90);
980
+ if (timeValue === 'last_6_months') cutoff.setDate(cutoff.getDate() - 180);
854
981
  if (timeValue === 'last_year') cutoff.setDate(cutoff.getDate() - 365);
855
982
  return cutoff.getTime();
856
983
  };
@@ -878,10 +1005,14 @@ body {
878
1005
  }
879
1006
 
880
1007
  const cutoff = cutoffFor(timeValue);
1008
+ const customFromMs = timeValue === 'custom' && customFrom ? Date.parse(customFrom) : null;
1009
+ const customToMs = timeValue === 'custom' && customTo ? Date.parse(customTo + 'T23:59:59.999') : null;
881
1010
  const filtered = profile.contributions.filter((contribution) => {
882
1011
  const mergedAt = Date.parse(contribution.mergedAt);
883
1012
  if (Number.isNaN(mergedAt)) return false;
884
1013
  if (cutoff != null && mergedAt < cutoff) return false;
1014
+ if (customFromMs != null && mergedAt < customFromMs) return false;
1015
+ if (customToMs != null && mergedAt > customToMs) return false;
885
1016
  if (specializationValue !== 'all' && !contribution.areas.includes(specializationValue)) return false;
886
1017
  return true;
887
1018
  });
@@ -956,7 +1087,15 @@ body {
956
1087
  const renderEmptyState = () => {
957
1088
  const specializationValue = specializationFilter.value;
958
1089
  const specializationLabel = specializationValue === 'all' ? 'all specializations' : formatLabel(specializationValue);
959
- const timeLabel = TIME_LABELS[timeFilter.value] || 'all time';
1090
+ let timeLabel;
1091
+ if (timeFilter.value === 'custom') {
1092
+ const parts = [];
1093
+ if (customFrom) parts.push('from ' + formatDate(customFrom));
1094
+ if (customTo) parts.push('to ' + formatDate(customTo));
1095
+ timeLabel = parts.length ? parts.join(' ') : 'custom range';
1096
+ } else {
1097
+ timeLabel = TIME_LABELS[timeFilter.value] || 'all time';
1098
+ }
960
1099
  return '<div class="empty">No leaderboard entries match ' + escapeHtml(timeLabel) + ' and ' + escapeHtml(specializationLabel) + '.</div>';
961
1100
  };
962
1101
 
@@ -981,7 +1120,16 @@ body {
981
1120
 
982
1121
  const specializationValue = specializationFilter.value;
983
1122
  const specializationLabel = specializationValue === 'all' ? 'all specializations' : formatLabel(specializationValue);
984
- filterSummary.innerHTML = '<strong>' + entries.length + '</strong> profiles for ' + escapeHtml(TIME_LABELS[timeFilter.value] || 'all time') + ' across ' + escapeHtml(specializationLabel) + '.';
1123
+ let timeDescription;
1124
+ if (timeFilter.value === 'custom') {
1125
+ const parts = [];
1126
+ if (customFrom) parts.push('from ' + formatDate(customFrom));
1127
+ if (customTo) parts.push('to ' + formatDate(customTo));
1128
+ timeDescription = parts.length ? parts.join(' ') : 'custom range';
1129
+ } else {
1130
+ timeDescription = TIME_LABELS[timeFilter.value] || 'all time';
1131
+ }
1132
+ filterSummary.innerHTML = '<strong>' + entries.length + '</strong> profiles for ' + escapeHtml(timeDescription) + ' across ' + escapeHtml(specializationLabel) + '.';
985
1133
 
986
1134
  pagination.hidden = pageCount <= 1;
987
1135
  prevButton.disabled = currentPage === 1;
@@ -989,11 +1137,59 @@ body {
989
1137
  pageStatus.innerHTML = 'Page <strong>' + currentPage + '</strong> of ' + pageCount;
990
1138
  };
991
1139
 
1140
+ const openModal = () => {
1141
+ modalFromInput.value = customFrom;
1142
+ modalToInput.value = customTo;
1143
+ modalOverlay.hidden = false;
1144
+ modalFromInput.focus();
1145
+ };
1146
+
1147
+ const closeModal = () => {
1148
+ modalOverlay.hidden = true;
1149
+ };
1150
+
992
1151
  timeFilter.addEventListener('change', () => {
1152
+ if (timeFilter.value === 'custom') {
1153
+ openModal();
1154
+ } else {
1155
+ previousTimeValue = timeFilter.value;
1156
+ currentPage = 1;
1157
+ render();
1158
+ }
1159
+ });
1160
+
1161
+ modalCancelBtn.addEventListener('click', () => {
1162
+ closeModal();
1163
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1164
+ });
1165
+
1166
+ modalApplyBtn.addEventListener('click', () => {
1167
+ customFrom = modalFromInput.value;
1168
+ customTo = modalToInput.value;
1169
+ const parts = [];
1170
+ if (customFrom) parts.push(formatDate(customFrom));
1171
+ if (customTo) parts.push(formatDate(customTo));
1172
+ const label = timeFilter.closest('[data-filter-dropdown]')?.querySelector('[data-filter-label]');
1173
+ if (label) label.textContent = parts.length ? parts.join(' \u2013 ') : 'Custom range';
1174
+ closeModal();
993
1175
  currentPage = 1;
994
1176
  render();
995
1177
  });
996
1178
 
1179
+ modalOverlay.addEventListener('click', (event) => {
1180
+ if (event.target === modalOverlay) {
1181
+ closeModal();
1182
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1183
+ }
1184
+ });
1185
+
1186
+ document.addEventListener('keydown', (event) => {
1187
+ if (event.key === 'Escape' && !modalOverlay.hidden) {
1188
+ closeModal();
1189
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1190
+ }
1191
+ });
1192
+
997
1193
  specializationFilter.addEventListener('change', () => {
998
1194
  currentPage = 1;
999
1195
  render();
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quackscore",
3
- "version": "0.1.10",
3
+ "version": "0.2.2",
4
4
  "description": "Analyze GitHub activity and generate a Duck RPG-style developer card",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",