quackscore 0.1.1 → 0.1.3

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
@@ -25,8 +25,8 @@ That's it. Quack.
25
25
  ## Requirements
26
26
 
27
27
  - Node.js 18+
28
- - `QUACKSCORE_GH_TOKEN` — a GitHub personal access token
29
- - `QUACKSCORE_LLM_API_KEY` — API key for your chosen LLM provider
28
+ - `QUACKSCORE_GH_TOKEN` — a GitHub personal access token. See [GitHub fine-grained token setup](./docs/github-fine-grained-pat.md)
29
+ - `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.
30
30
 
31
31
  ---
32
32
 
@@ -46,16 +46,19 @@ 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 |
58
+
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).
57
60
 
58
- All remote providers use `QUACKSCORE_LLM_API_KEY`. Ollama needs no key.
61
+ Need setup help? See [LLM provider setup](./docs/llm-provider-setup.md).
59
62
 
60
63
  ---
61
64
 
@@ -63,6 +66,8 @@ All remote providers use `QUACKSCORE_LLM_API_KEY`. Ollama needs no key.
63
66
 
64
67
  ### 1. Set environment variables
65
68
 
69
+ Need a GitHub token first? Follow [GitHub fine-grained token setup](./docs/github-fine-grained-pat.md).
70
+
66
71
  ```bash
67
72
  export QUACKSCORE_GH_TOKEN=<your-github-token>
68
73
  export QUACKSCORE_LLM_API_KEY=<your-llm-api-key>
@@ -70,6 +75,8 @@ export QUACKSCORE_LLM_API_KEY=<your-llm-api-key>
70
75
 
71
76
  ### 2. Pick your LLM provider
72
77
 
78
+ Need help choosing or configuring a provider? See [LLM provider setup](./docs/llm-provider-setup.md).
79
+
73
80
  ```bash
74
81
  quackscore init --provider anthropic --model claude-haiku-4-5-20251001
75
82
  ```
@@ -133,6 +140,25 @@ quackscore init --provider minimax --model MiniMax-M2.7
133
140
 
134
141
  # Ollama (local)
135
142
  quackscore init --provider ollama --model llama3.2
143
+
144
+ # LiteLLM proxy — Azure OpenAI
145
+ quackscore init --provider litellm --model azure/gpt-4o-mini --base-url http://localhost:4000
146
+
147
+ # LiteLLM proxy — AWS Bedrock
148
+ quackscore init --provider litellm --model bedrock/claude-3-5-sonnet --base-url http://localhost:4000
149
+ ```
150
+
151
+ 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:
152
+
153
+ ```bash
154
+ pip install litellm
155
+ litellm --model azure/gpt-4o-mini # or whichever backend you want
156
+ ```
157
+
158
+ Then set your key if the proxy requires auth:
159
+
160
+ ```bash
161
+ export QUACKSCORE_LLM_API_KEY=<your-litellm-master-key>
136
162
  ```
137
163
 
138
164
  ---
@@ -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 +1 @@
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
+ {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"AAOA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCpD"}
@@ -1,10 +1,11 @@
1
- import { loadLeaderboard, saveLeaderboardReport } from '../storage/index.js';
1
+ import { loadLeaderboard, loadLeaderboardProfiles, saveLeaderboardReport } from '../storage/index.js';
2
2
  import { generateLeaderboardHTML } from '../report/index.js';
3
3
  import { rpgHeader, rpgInfo, rpgSuccess, rpgLog } from '../shared/ui.js';
4
4
  import { diagLog } from '../shared/diagnostics.js';
5
5
  import chalk from 'chalk';
6
6
  import open from 'open';
7
7
  export async function runLeaderboard() {
8
+ const profiles = loadLeaderboardProfiles();
8
9
  const entries = loadLeaderboard();
9
10
  diagLog('Loaded leaderboard entries', {
10
11
  entryCount: entries.length,
@@ -15,7 +16,7 @@ export async function runLeaderboard() {
15
16
  rpgInfo('No players yet. Run quackscore create {user} to get started!');
16
17
  return;
17
18
  }
18
- const leaderboardPath = saveLeaderboardReport(generateLeaderboardHTML(entries));
19
+ const leaderboardPath = saveLeaderboardReport(generateLeaderboardHTML(profiles));
19
20
  const medals = ['🥇', '🥈', '🥉'];
20
21
  console.log(chalk.dim('─'.repeat(60)));
21
22
  console.log(chalk.bold(`${'#'.padEnd(4)} ${'Username'.padEnd(30)} ${'Points'.padStart(10)} ${'Level'.padStart(8)}`));
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/commands/leaderboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/commands/leaderboard.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) => {
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":"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":"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"}
@@ -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;AAwO3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAo0CnD"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/report/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,QAAQ,EAAsB,MAAM,oBAAoB,CAAC;AAue/E,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAi5CnD"}