megabuff 0.4.0 → 0.6.0
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 +142 -50
- package/dist/config.d.ts +11 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +25 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +307 -71
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +5 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +38 -0
- package/dist/models.js.map +1 -0
- package/megabuff-0.5.0.tgz +0 -0
- package/megabuff-0.6.0.tgz +0 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
# MegaBuff
|
|
2
2
|
|
|
3
|
-
AI prompt optimizer CLI -
|
|
3
|
+
AI-powered prompt optimizer CLI with multi-provider support (OpenAI, Anthropic & Google Gemini). Improve your prompts with BYOK (Bring Your Own Key) and flexible input/output options.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Install MegaBuff globally:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g megabuff
|
|
11
|
+
megabuff optimize "Rewrite this prompt to be clearer"
|
|
12
|
+
```
|
|
4
13
|
|
|
5
14
|
## Table of Contents
|
|
6
15
|
|
|
@@ -42,22 +51,13 @@ AI prompt optimizer CLI - improve your prompts with multiple input/output option
|
|
|
42
51
|
- [What Gets Published](#what-gets-published)
|
|
43
52
|
- [After Publishing](#after-publishing)
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Install MegaBuff globally:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npm install -g megabuff
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Or for development:
|
|
54
|
+
Local installation:
|
|
54
55
|
|
|
55
56
|
```bash
|
|
56
57
|
git clone https://github.com/thesupermegabuff/megabuff-cli.git
|
|
57
58
|
cd megabuff-cli
|
|
59
|
+
nvm use 22
|
|
58
60
|
npm install
|
|
59
|
-
|
|
60
|
-
# Originally used nvm use 22
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
## Setup
|
|
@@ -114,43 +114,63 @@ MegaBuff can also use **Anthropic (Claude)** if you provide your own Anthropic A
|
|
|
114
114
|
- Copy and store it somewhere secure
|
|
115
115
|
- Anthropic keys typically start with `sk-ant-`
|
|
116
116
|
|
|
117
|
+
### Getting Your Google Gemini API Key (BYOK)
|
|
118
|
+
|
|
119
|
+
MegaBuff also supports **Google Gemini** with your own API key.
|
|
120
|
+
|
|
121
|
+
**Steps to get your Google Gemini API Key:**
|
|
122
|
+
|
|
123
|
+
1. **Go to Google AI Studio**
|
|
124
|
+
- Visit [Google AI Studio](https://aistudio.google.com/app/apikey)
|
|
125
|
+
- Sign in with your Google account
|
|
126
|
+
https://aistudio.google.com/app/api-keys
|
|
127
|
+
2. **Create an API key**
|
|
128
|
+
- Click **Get API Key** or **Create API Key**
|
|
129
|
+
- Choose an existing Google Cloud project or create a new one
|
|
130
|
+
- Your API key will be generated
|
|
131
|
+
|
|
132
|
+
3. **Save your key immediately**
|
|
133
|
+
- Copy and store it securely
|
|
134
|
+
- You'll need this key to use Gemini models
|
|
135
|
+
|
|
136
|
+
4. **Enable billing (if needed)**
|
|
137
|
+
- Free tier is available for testing
|
|
138
|
+
- For production usage, you may need to enable billing in Google Cloud Console
|
|
139
|
+
|
|
117
140
|
### Configuring Your API Key
|
|
118
141
|
|
|
119
142
|
Once you have your provider API key, configure it using one of these methods:
|
|
120
143
|
|
|
121
|
-
#### Option 1:
|
|
144
|
+
#### Option 1: Interactive Setup (Recommended)
|
|
122
145
|
|
|
123
146
|
The easiest way to get started:
|
|
124
147
|
|
|
125
148
|
```bash
|
|
126
|
-
# Interactive
|
|
127
|
-
|
|
128
|
-
# - paste token
|
|
129
|
-
megabuff config set
|
|
130
|
-
|
|
131
|
-
# Interactive setup with provider pre-selected
|
|
132
|
-
megabuff config set --provider anthropic
|
|
133
|
-
|
|
134
|
-
# Save an OpenAI key to config file (default provider is openai)
|
|
135
|
-
megabuff config set sk-your-api-key-here
|
|
149
|
+
# Interactive configuration menu
|
|
150
|
+
megabuff config
|
|
136
151
|
|
|
137
|
-
#
|
|
138
|
-
|
|
152
|
+
# Then choose:
|
|
153
|
+
# 1) Set API token for a provider
|
|
154
|
+
# Pick OpenAI, Anthropic, or Google, paste your key, choose storage method
|
|
139
155
|
|
|
140
|
-
#
|
|
141
|
-
megabuff config
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
megabuff config set --provider anthropic sk-ant-your-api-key-here --keychain
|
|
156
|
+
# Or use the direct token command
|
|
157
|
+
megabuff config token sk-your-api-key-here --provider openai
|
|
158
|
+
megabuff config token sk-ant-your-key --provider anthropic --keychain
|
|
159
|
+
megabuff config token your-google-key --provider google
|
|
145
160
|
```
|
|
146
161
|
|
|
147
162
|
This saves your key for future use. You only need to do this once!
|
|
148
163
|
|
|
164
|
+
**Storage Options:**
|
|
165
|
+
- **Config file** (default): `~/.megabuff/config.json`
|
|
166
|
+
- **System keychain** (more secure): macOS Keychain, Windows Credential Manager, or Linux Secret Service
|
|
167
|
+
|
|
149
168
|
#### Option 2: Environment Variable
|
|
150
169
|
|
|
151
170
|
```bash
|
|
152
171
|
export OPENAI_API_KEY="sk-your-api-key-here"
|
|
153
172
|
export ANTHROPIC_API_KEY="sk-ant-your-api-key-here"
|
|
173
|
+
export GOOGLE_API_KEY="your-google-api-key-here"
|
|
154
174
|
```
|
|
155
175
|
|
|
156
176
|
Add to your shell profile (`.bashrc`, `.zshrc`, etc.) to persist across sessions.
|
|
@@ -160,6 +180,7 @@ Add to your shell profile (`.bashrc`, `.zshrc`, etc.) to persist across sessions
|
|
|
160
180
|
```bash
|
|
161
181
|
megabuff optimize "your prompt" --api-key sk-your-key-here
|
|
162
182
|
megabuff optimize --provider anthropic "your prompt" --api-key sk-ant-your-key-here
|
|
183
|
+
megabuff optimize --provider google "your prompt" --api-key your-google-key-here
|
|
163
184
|
```
|
|
164
185
|
|
|
165
186
|
### API Key Priority
|
|
@@ -172,32 +193,75 @@ The CLI checks for your token in this order (per provider):
|
|
|
172
193
|
|
|
173
194
|
## Configuration Commands
|
|
174
195
|
|
|
196
|
+
### Interactive Config Menu
|
|
197
|
+
|
|
198
|
+
Run `megabuff config` for an interactive configuration menu:
|
|
199
|
+
|
|
175
200
|
```bash
|
|
176
|
-
|
|
177
|
-
|
|
201
|
+
megabuff config
|
|
202
|
+
|
|
203
|
+
# Shows:
|
|
204
|
+
# ╭─────────────────────────────────────╮
|
|
205
|
+
# │ MegaBuff Configuration Setup │
|
|
206
|
+
# ╰─────────────────────────────────────╯
|
|
207
|
+
#
|
|
208
|
+
# What would you like to configure?
|
|
209
|
+
#
|
|
210
|
+
# 1) Set API token for a provider
|
|
211
|
+
# 2) Set default provider
|
|
212
|
+
# 3) Set model (auto-selects provider)
|
|
213
|
+
# 4) View current configuration
|
|
214
|
+
# 5) Exit
|
|
215
|
+
```
|
|
178
216
|
|
|
179
|
-
|
|
180
|
-
megabuff config set --provider anthropic
|
|
217
|
+
### Direct Commands
|
|
181
218
|
|
|
182
|
-
|
|
183
|
-
|
|
219
|
+
```bash
|
|
220
|
+
# Set API token for a provider
|
|
221
|
+
megabuff config token sk-your-api-key-here --provider openai
|
|
222
|
+
megabuff config token sk-ant-... --provider anthropic --keychain
|
|
184
223
|
|
|
185
|
-
#
|
|
186
|
-
megabuff config
|
|
224
|
+
# Set default provider
|
|
225
|
+
megabuff config provider anthropic
|
|
226
|
+
megabuff config provider # show current provider
|
|
187
227
|
|
|
188
|
-
#
|
|
189
|
-
megabuff config
|
|
228
|
+
# Set model (automatically sets provider)
|
|
229
|
+
megabuff config model claude-sonnet-4-5 # sets provider to anthropic
|
|
230
|
+
megabuff config model gpt-4o # sets provider to openai
|
|
231
|
+
megabuff config model gemini-1.5-pro # sets provider to google
|
|
232
|
+
megabuff config model # show current model
|
|
190
233
|
|
|
191
|
-
# Show
|
|
234
|
+
# Show all configuration
|
|
192
235
|
megabuff config show
|
|
193
236
|
|
|
194
|
-
# Remove a saved
|
|
195
|
-
megabuff config remove
|
|
196
|
-
|
|
197
|
-
# Remove a saved Anthropic key
|
|
237
|
+
# Remove a saved token
|
|
198
238
|
megabuff config remove --provider anthropic
|
|
199
239
|
```
|
|
200
240
|
|
|
241
|
+
### Available Models
|
|
242
|
+
|
|
243
|
+
**OpenAI:**
|
|
244
|
+
- `gpt-4o`
|
|
245
|
+
- `gpt-4o-mini` (default)
|
|
246
|
+
- `gpt-4-turbo`
|
|
247
|
+
- `gpt-4`
|
|
248
|
+
- `gpt-3.5-turbo`
|
|
249
|
+
|
|
250
|
+
**Anthropic:**
|
|
251
|
+
- `claude-sonnet-4-5-20250929` (latest)
|
|
252
|
+
- `claude-sonnet-4-5`
|
|
253
|
+
- `claude-sonnet-4`
|
|
254
|
+
- `claude-3-5-sonnet-20241022`
|
|
255
|
+
- `claude-3-opus-20240229`
|
|
256
|
+
- `claude-3-sonnet-20240229`
|
|
257
|
+
- `claude-3-haiku-20240307`
|
|
258
|
+
|
|
259
|
+
**Google Gemini:**
|
|
260
|
+
- `gemini-2.0-flash-exp` (experimental)
|
|
261
|
+
- `gemini-1.5-pro`
|
|
262
|
+
- `gemini-1.5-flash` (default for Google)
|
|
263
|
+
- `gemini-1.0-pro`
|
|
264
|
+
|
|
201
265
|
## Development
|
|
202
266
|
|
|
203
267
|
Test your CLI during development:
|
|
@@ -315,9 +379,15 @@ megabuff optimize "your prompt" | grep "specific"
|
|
|
315
379
|
## Examples
|
|
316
380
|
|
|
317
381
|
```bash
|
|
318
|
-
# Quick inline optimization (auto-copies to clipboard)
|
|
382
|
+
# Quick inline optimization with OpenAI (auto-copies to clipboard)
|
|
319
383
|
megabuff optimize "Write code for user auth"
|
|
320
384
|
|
|
385
|
+
# Use Anthropic (Claude) instead
|
|
386
|
+
megabuff optimize --provider anthropic "Write code for user auth"
|
|
387
|
+
|
|
388
|
+
# Use Google Gemini
|
|
389
|
+
megabuff optimize --provider google "Write code for user auth"
|
|
390
|
+
|
|
321
391
|
# From file with interactive view (auto-copies)
|
|
322
392
|
megabuff optimize --file my-prompt.txt --interactive
|
|
323
393
|
|
|
@@ -330,23 +400,43 @@ megabuff optimize "Your prompt" --no-copy
|
|
|
330
400
|
# Save to file without clipboard
|
|
331
401
|
megabuff optimize --file prompt.txt --output result.txt --no-copy
|
|
332
402
|
|
|
333
|
-
# Use specific API key
|
|
403
|
+
# Use specific API key (overrides config)
|
|
334
404
|
megabuff optimize "Your prompt" --api-key sk-your-key-here
|
|
335
405
|
|
|
336
|
-
#
|
|
337
|
-
megabuff
|
|
406
|
+
# Set default provider to Anthropic, then optimize
|
|
407
|
+
megabuff config provider anthropic
|
|
408
|
+
megabuff optimize "Rewrite this prompt to be clearer"
|
|
409
|
+
|
|
410
|
+
# Set a specific model (auto-sets provider)
|
|
411
|
+
megabuff config model claude-sonnet-4-5
|
|
412
|
+
megabuff optimize "Explain quantum computing"
|
|
413
|
+
|
|
414
|
+
# Or use Gemini model
|
|
415
|
+
megabuff config model gemini-1.5-pro
|
|
416
|
+
megabuff optimize "Explain quantum computing"
|
|
338
417
|
```
|
|
339
418
|
|
|
340
419
|
## How It Works
|
|
341
420
|
|
|
342
|
-
|
|
421
|
+
MegaBuff supports multiple AI providers to optimize your prompts:
|
|
343
422
|
|
|
423
|
+
**Providers:**
|
|
424
|
+
- **OpenAI** (default): Uses GPT-4o-mini for fast, cost-effective optimization
|
|
425
|
+
- **Anthropic**: Uses Claude Sonnet 4.5 for advanced reasoning and optimization
|
|
426
|
+
- **Google Gemini**: Uses Gemini 1.5 Flash for efficient, high-quality optimization
|
|
427
|
+
|
|
428
|
+
The optimization process:
|
|
344
429
|
1. Identifies ambiguities or unclear instructions
|
|
345
430
|
2. Adds relevant context that would improve results
|
|
346
431
|
3. Structures the prompt for clarity
|
|
347
432
|
4. Specifies expected output format if not present
|
|
348
433
|
5. Makes the prompt more specific and actionable
|
|
349
434
|
|
|
435
|
+
**Model Selection:**
|
|
436
|
+
- Set a specific model with `megabuff config model <model-name>`
|
|
437
|
+
- Provider is automatically selected based on the model
|
|
438
|
+
- Or explicitly choose provider with `--provider` flag
|
|
439
|
+
|
|
350
440
|
## VS Code Integration
|
|
351
441
|
|
|
352
442
|
MegaBuff integrates seamlessly with VS Code in multiple ways:
|
|
@@ -436,6 +526,7 @@ Want a feature or want to contribute one? Please open an issue here:
|
|
|
436
526
|
|
|
437
527
|
2. **Build the project**:
|
|
438
528
|
```bash
|
|
529
|
+
npm version minor
|
|
439
530
|
npm run build
|
|
440
531
|
```
|
|
441
532
|
This compiles TypeScript to JavaScript in the `dist/` folder
|
|
@@ -448,6 +539,7 @@ Want a feature or want to contribute one? Please open an issue here:
|
|
|
448
539
|
|
|
449
540
|
4. **Publish to npm**:
|
|
450
541
|
```bash
|
|
542
|
+
git push
|
|
451
543
|
npm publish
|
|
452
544
|
```
|
|
453
545
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { MODEL_PROVIDER_MAP } from "./models.js";
|
|
1
2
|
export type Provider = "openai" | "anthropic" | "google" | "azure-openai";
|
|
2
3
|
export declare const PROVIDERS: readonly Provider[];
|
|
4
|
+
export { MODEL_PROVIDER_MAP };
|
|
5
|
+
export declare function getProviderForModel(model: string): Provider | undefined;
|
|
3
6
|
export declare function normalizeProvider(input: string | undefined): Provider | undefined;
|
|
4
7
|
interface Config {
|
|
5
8
|
provider?: Provider;
|
|
@@ -16,6 +19,14 @@ export declare function getProvider(cliProvider?: string): Promise<Provider>;
|
|
|
16
19
|
* Persist the selected provider in config (does not validate key presence)
|
|
17
20
|
*/
|
|
18
21
|
export declare function setProvider(provider: Provider): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Set the model and automatically set the provider based on the model
|
|
24
|
+
*/
|
|
25
|
+
export declare function setModel(model: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Get the configured model (or undefined if not set)
|
|
28
|
+
*/
|
|
29
|
+
export declare function getModel(): Promise<string | undefined>;
|
|
19
30
|
/**
|
|
20
31
|
* Get API key with priority:
|
|
21
32
|
* 1. Command line flag
|
|
@@ -53,5 +64,4 @@ export declare function removeApiKey(provider: Provider): Promise<void>;
|
|
|
53
64
|
* Check if API key is configured
|
|
54
65
|
*/
|
|
55
66
|
export declare function hasApiKey(provider: Provider): Promise<boolean>;
|
|
56
|
-
export {};
|
|
57
67
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQjD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE1E,eAAO,MAAM,SAAS,EAAE,SAAS,QAAQ,EAA+D,CAAC;AAEzG,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAQjF;AAMD,UAAU,MAAM;IAEZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AA2ED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3D;AAED;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG5D;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4BhG;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,CA4BpD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/G;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAapE"}
|
package/dist/config.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import * as fs from "fs/promises";
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
+
import { MODEL_PROVIDER_MAP } from "./models.js";
|
|
4
5
|
const CONFIG_DIR = path.join(homedir(), ".megabuff");
|
|
5
6
|
const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
|
|
6
7
|
const SERVICE_NAME = "megabuff-cli";
|
|
7
8
|
// Legacy (pre-provider) keychain account name for backwards compatibility
|
|
8
9
|
const LEGACY_ACCOUNT_NAME = "openai-api-key";
|
|
9
10
|
export const PROVIDERS = ["openai", "anthropic", "google", "azure-openai"];
|
|
11
|
+
export { MODEL_PROVIDER_MAP };
|
|
12
|
+
export function getProviderForModel(model) {
|
|
13
|
+
return MODEL_PROVIDER_MAP[model];
|
|
14
|
+
}
|
|
10
15
|
export function normalizeProvider(input) {
|
|
11
16
|
if (!input)
|
|
12
17
|
return undefined;
|
|
@@ -113,6 +118,26 @@ export async function setProvider(provider) {
|
|
|
113
118
|
config.provider = provider;
|
|
114
119
|
await writeConfig(config);
|
|
115
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Set the model and automatically set the provider based on the model
|
|
123
|
+
*/
|
|
124
|
+
export async function setModel(model) {
|
|
125
|
+
const config = await readConfig();
|
|
126
|
+
config.model = model;
|
|
127
|
+
// Automatically set provider based on model
|
|
128
|
+
const provider = getProviderForModel(model);
|
|
129
|
+
if (provider) {
|
|
130
|
+
config.provider = provider;
|
|
131
|
+
}
|
|
132
|
+
await writeConfig(config);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the configured model (or undefined if not set)
|
|
136
|
+
*/
|
|
137
|
+
export async function getModel() {
|
|
138
|
+
const config = await readConfig();
|
|
139
|
+
return config.model;
|
|
140
|
+
}
|
|
116
141
|
/**
|
|
117
142
|
* Get API key with priority:
|
|
118
143
|
* 1. Command line flag
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,10 @@ import * as fs from "fs/promises";
|
|
|
4
4
|
import * as readline from "readline/promises";
|
|
5
5
|
import OpenAI from "openai";
|
|
6
6
|
import Anthropic from "@anthropic-ai/sdk";
|
|
7
|
+
import { GoogleGenerativeAI } from "@google/generative-ai";
|
|
7
8
|
import * as clipboardy from "clipboardy";
|
|
8
|
-
import { getApiKeyInfo, setApiKey, removeApiKey, hasApiKey, getConfig, getProvider, normalizeProvider, PROVIDERS } from "./config.js";
|
|
9
|
+
import { getApiKeyInfo, setApiKey, removeApiKey, hasApiKey, getConfig, getProvider, setProvider, setModel, getModel, normalizeProvider, getProviderForModel, MODEL_PROVIDER_MAP, PROVIDERS } from "./config.js";
|
|
10
|
+
import { getDefaultModel } from "./models.js";
|
|
9
11
|
const program = new Command();
|
|
10
12
|
function isDevMode() {
|
|
11
13
|
// `npm run dev` sets npm_lifecycle_event=dev
|
|
@@ -86,8 +88,9 @@ async function getInput(inlinePrompt, options) {
|
|
|
86
88
|
/**
|
|
87
89
|
* Optimize a prompt using OpenAI
|
|
88
90
|
*/
|
|
89
|
-
async function optimizePromptOpenAI(prompt, apiKey) {
|
|
91
|
+
async function optimizePromptOpenAI(prompt, apiKey, model) {
|
|
90
92
|
const openai = new OpenAI({ apiKey });
|
|
93
|
+
const selectedModel = model ?? getDefaultModel("openai");
|
|
91
94
|
const systemPrompt = `You are an expert prompt engineer. Your task is to analyze and optimize prompts for AI language models.
|
|
92
95
|
|
|
93
96
|
When given a prompt, you should:
|
|
@@ -99,9 +102,9 @@ When given a prompt, you should:
|
|
|
99
102
|
|
|
100
103
|
Return ONLY the optimized prompt, without explanations or meta-commentary.`;
|
|
101
104
|
try {
|
|
102
|
-
debugLog("openai.request.start", { model:
|
|
105
|
+
debugLog("openai.request.start", { model: selectedModel, promptLength: prompt.length });
|
|
103
106
|
const response = await openai.chat.completions.create({
|
|
104
|
-
model:
|
|
107
|
+
model: selectedModel,
|
|
105
108
|
messages: [
|
|
106
109
|
{ role: "system", content: systemPrompt },
|
|
107
110
|
{ role: "user", content: `Optimize this prompt:\n\n${prompt}` }
|
|
@@ -121,8 +124,9 @@ Return ONLY the optimized prompt, without explanations or meta-commentary.`;
|
|
|
121
124
|
/**
|
|
122
125
|
* Optimize a prompt using Anthropic Claude
|
|
123
126
|
*/
|
|
124
|
-
async function optimizePromptAnthropic(prompt, apiKey) {
|
|
127
|
+
async function optimizePromptAnthropic(prompt, apiKey, model) {
|
|
125
128
|
const anthropic = new Anthropic({ apiKey });
|
|
129
|
+
const selectedModel = model ?? getDefaultModel("anthropic");
|
|
126
130
|
const systemPrompt = `You are an expert prompt engineer. Your task is to analyze and optimize prompts for AI language models.
|
|
127
131
|
|
|
128
132
|
When given a prompt, you should:
|
|
@@ -134,9 +138,9 @@ When given a prompt, you should:
|
|
|
134
138
|
|
|
135
139
|
Return ONLY the optimized prompt without explanations or meta-commentary.`;
|
|
136
140
|
try {
|
|
137
|
-
debugLog("anthropic.request.start", { model:
|
|
141
|
+
debugLog("anthropic.request.start", { model: selectedModel, promptLength: prompt.length });
|
|
138
142
|
const response = await anthropic.messages.create({
|
|
139
|
-
model:
|
|
143
|
+
model: selectedModel,
|
|
140
144
|
max_tokens: 4096,
|
|
141
145
|
system: systemPrompt,
|
|
142
146
|
messages: [
|
|
@@ -160,6 +164,44 @@ Return ONLY the optimized prompt without explanations or meta-commentary.`;
|
|
|
160
164
|
throw error;
|
|
161
165
|
}
|
|
162
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Optimize a prompt using Google Gemini
|
|
169
|
+
*/
|
|
170
|
+
async function optimizePromptGemini(prompt, apiKey, modelName) {
|
|
171
|
+
const genAI = new GoogleGenerativeAI(apiKey);
|
|
172
|
+
const selectedModel = modelName ?? getDefaultModel("google");
|
|
173
|
+
const systemPrompt = `You are an expert prompt engineer. Your task is to analyze and optimize prompts for AI language models.
|
|
174
|
+
|
|
175
|
+
When given a prompt, you should:
|
|
176
|
+
1. Identify ambiguities or unclear instructions
|
|
177
|
+
2. Add relevant context that would improve results
|
|
178
|
+
3. Structure the prompt for better clarity
|
|
179
|
+
4. Ensure the prompt follows best practices
|
|
180
|
+
5. Make it more specific and actionable
|
|
181
|
+
|
|
182
|
+
Return ONLY the optimized prompt without explanations or meta-commentary.`;
|
|
183
|
+
try {
|
|
184
|
+
debugLog("gemini.request.start", { model: selectedModel, promptLength: prompt.length });
|
|
185
|
+
const model = genAI.getGenerativeModel({
|
|
186
|
+
model: selectedModel,
|
|
187
|
+
systemInstruction: systemPrompt
|
|
188
|
+
});
|
|
189
|
+
const result = await model.generateContent(`Optimize this prompt:\n\n${prompt}`);
|
|
190
|
+
const response = result.response;
|
|
191
|
+
const text = response.text();
|
|
192
|
+
debugLog("gemini.request.done", { responseLength: text.length });
|
|
193
|
+
if (!text) {
|
|
194
|
+
throw new Error("No response from Gemini API");
|
|
195
|
+
}
|
|
196
|
+
return text;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (error instanceof Error) {
|
|
200
|
+
throw new Error(`Gemini API error: ${error.message}`);
|
|
201
|
+
}
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
163
205
|
function formatProviderName(provider) {
|
|
164
206
|
if (provider === "openai")
|
|
165
207
|
return "OpenAI";
|
|
@@ -220,7 +262,7 @@ function formatProviderLabel(p) {
|
|
|
220
262
|
if (p === "anthropic")
|
|
221
263
|
return "Anthropic";
|
|
222
264
|
if (p === "google")
|
|
223
|
-
return "Google Gemini
|
|
265
|
+
return "Google Gemini";
|
|
224
266
|
if (p === "azure-openai")
|
|
225
267
|
return "Azure OpenAI (coming soon)";
|
|
226
268
|
return p;
|
|
@@ -262,42 +304,6 @@ async function promptFirstRunConfig() {
|
|
|
262
304
|
rl.close();
|
|
263
305
|
}
|
|
264
306
|
}
|
|
265
|
-
async function promptTokenConfig(defaultProvider) {
|
|
266
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
267
|
-
try {
|
|
268
|
-
console.log("\nConfigure BYOK token");
|
|
269
|
-
let provider = defaultProvider;
|
|
270
|
-
if (!provider) {
|
|
271
|
-
console.log("Select the provider that will supply the token:\n");
|
|
272
|
-
PROVIDERS.forEach((p, idx) => {
|
|
273
|
-
console.log(` ${idx + 1}) ${formatProviderLabel(p)}`);
|
|
274
|
-
});
|
|
275
|
-
while (!provider) {
|
|
276
|
-
const raw = await rl.question("\nProvider (number or name): ");
|
|
277
|
-
const trimmed = raw.trim();
|
|
278
|
-
const asNum = Number(trimmed);
|
|
279
|
-
if (Number.isFinite(asNum) && asNum >= 1 && asNum <= PROVIDERS.length) {
|
|
280
|
-
provider = PROVIDERS[asNum - 1];
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
provider = normalizeProvider(trimmed);
|
|
284
|
-
if (!provider)
|
|
285
|
-
console.log(`Please choose one of: ${PROVIDERS.join(", ")}`);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
const apiKey = (await rl.question("Enter your BYOK token: ")).trim();
|
|
289
|
-
if (!apiKey)
|
|
290
|
-
throw new Error("No token provided.");
|
|
291
|
-
const store = (await rl.question("Store in system keychain? (Y/n): ")).trim().toLowerCase();
|
|
292
|
-
const useKeychain = store === "" || store === "y" || store === "yes";
|
|
293
|
-
if (!provider)
|
|
294
|
-
throw new Error("No provider selected.");
|
|
295
|
-
return { provider, apiKey, useKeychain };
|
|
296
|
-
}
|
|
297
|
-
finally {
|
|
298
|
-
rl.close();
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
307
|
/**
|
|
302
308
|
* Output the result based on options
|
|
303
309
|
*/
|
|
@@ -342,39 +348,199 @@ async function outputResult(original, optimized, options) {
|
|
|
342
348
|
// Default: print to stdout (pipeable)
|
|
343
349
|
console.log(optimized);
|
|
344
350
|
}
|
|
351
|
+
// Helper function to get available models by provider
|
|
352
|
+
function getModelsByProvider(provider) {
|
|
353
|
+
return Object.entries(MODEL_PROVIDER_MAP)
|
|
354
|
+
.filter(([_, p]) => p === provider)
|
|
355
|
+
.map(([model]) => model);
|
|
356
|
+
}
|
|
357
|
+
// Interactive config setup
|
|
358
|
+
async function interactiveConfig() {
|
|
359
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
360
|
+
try {
|
|
361
|
+
console.log("\n╭─────────────────────────────────────╮");
|
|
362
|
+
console.log("│ MegaBuff Configuration Setup │");
|
|
363
|
+
console.log("╰─────────────────────────────────────╯\n");
|
|
364
|
+
console.log("What would you like to configure?\n");
|
|
365
|
+
console.log(" 1) Set API token for a provider");
|
|
366
|
+
console.log(" 2) Set default provider");
|
|
367
|
+
console.log(" 3) Set model (auto-selects provider)");
|
|
368
|
+
console.log(" 4) View current configuration");
|
|
369
|
+
console.log(" 5) Exit\n");
|
|
370
|
+
const choice = await rl.question("Enter your choice (1-5): ");
|
|
371
|
+
switch (choice.trim()) {
|
|
372
|
+
case "1": {
|
|
373
|
+
// Set token
|
|
374
|
+
console.log("\nSelect provider:\n");
|
|
375
|
+
PROVIDERS.forEach((p, idx) => {
|
|
376
|
+
console.log(` ${idx + 1}) ${formatProviderLabel(p)}`);
|
|
377
|
+
});
|
|
378
|
+
const providerChoice = await rl.question("\nProvider (number or name): ");
|
|
379
|
+
const providerNum = Number(providerChoice);
|
|
380
|
+
let provider;
|
|
381
|
+
if (Number.isFinite(providerNum) && providerNum >= 1 && providerNum <= PROVIDERS.length) {
|
|
382
|
+
provider = PROVIDERS[providerNum - 1];
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
provider = normalizeProvider(providerChoice);
|
|
386
|
+
}
|
|
387
|
+
if (!provider) {
|
|
388
|
+
console.error(`Error: Invalid provider. Valid options: ${PROVIDERS.join(", ")}`);
|
|
389
|
+
process.exit(1);
|
|
390
|
+
}
|
|
391
|
+
const token = (await rl.question("Enter your API token: ")).trim();
|
|
392
|
+
if (!token) {
|
|
393
|
+
console.error("Error: No token provided");
|
|
394
|
+
process.exit(1);
|
|
395
|
+
}
|
|
396
|
+
const store = (await rl.question("Store in system keychain? (Y/n): ")).trim().toLowerCase();
|
|
397
|
+
const useKeychain = store === "" || store === "y" || store === "yes";
|
|
398
|
+
await setApiKey(provider, token, useKeychain);
|
|
399
|
+
console.log(`\n✓ ${provider} token saved${useKeychain ? " securely in system keychain" : " to config file"}`);
|
|
400
|
+
if (!useKeychain) {
|
|
401
|
+
console.log(" Tip: Run with --keychain flag next time for more secure storage");
|
|
402
|
+
}
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
405
|
+
case "2": {
|
|
406
|
+
// Set default provider
|
|
407
|
+
console.log("\nSelect default provider:\n");
|
|
408
|
+
PROVIDERS.forEach((p, idx) => {
|
|
409
|
+
console.log(` ${idx + 1}) ${formatProviderLabel(p)}`);
|
|
410
|
+
});
|
|
411
|
+
const providerChoice = await rl.question("\nProvider (number or name): ");
|
|
412
|
+
const providerNum = Number(providerChoice);
|
|
413
|
+
let provider;
|
|
414
|
+
if (Number.isFinite(providerNum) && providerNum >= 1 && providerNum <= PROVIDERS.length) {
|
|
415
|
+
provider = PROVIDERS[providerNum - 1];
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
provider = normalizeProvider(providerChoice);
|
|
419
|
+
}
|
|
420
|
+
if (!provider) {
|
|
421
|
+
console.error(`Error: Invalid provider. Valid options: ${PROVIDERS.join(", ")}`);
|
|
422
|
+
process.exit(1);
|
|
423
|
+
}
|
|
424
|
+
await setProvider(provider);
|
|
425
|
+
console.log(`\n✓ Default provider set to: ${provider}`);
|
|
426
|
+
break;
|
|
427
|
+
}
|
|
428
|
+
case "3": {
|
|
429
|
+
// Set model (auto-selects provider)
|
|
430
|
+
console.log("\nAvailable models by provider:\n");
|
|
431
|
+
PROVIDERS.forEach((provider) => {
|
|
432
|
+
const models = getModelsByProvider(provider);
|
|
433
|
+
if (models.length > 0) {
|
|
434
|
+
console.log(`${formatProviderName(provider)}:`);
|
|
435
|
+
models.forEach(model => console.log(` - ${model}`));
|
|
436
|
+
console.log();
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
const modelInput = (await rl.question("Enter model name: ")).trim();
|
|
440
|
+
if (!modelInput) {
|
|
441
|
+
console.error("Error: No model provided");
|
|
442
|
+
process.exit(1);
|
|
443
|
+
}
|
|
444
|
+
const provider = getProviderForModel(modelInput);
|
|
445
|
+
if (!provider) {
|
|
446
|
+
console.error(`Error: Unknown model '${modelInput}'`);
|
|
447
|
+
console.error("Tip: Use one of the models listed above");
|
|
448
|
+
process.exit(1);
|
|
449
|
+
}
|
|
450
|
+
await setModel(modelInput);
|
|
451
|
+
console.log(`\n✓ Model set to: ${modelInput}`);
|
|
452
|
+
console.log(`✓ Provider auto-set to: ${provider}`);
|
|
453
|
+
break;
|
|
454
|
+
}
|
|
455
|
+
case "4": {
|
|
456
|
+
// Show config
|
|
457
|
+
const config = await getConfig();
|
|
458
|
+
const currentProvider = await getProvider();
|
|
459
|
+
const currentModel = await getModel();
|
|
460
|
+
const effectiveModel = currentModel ?? getDefaultModel(currentProvider);
|
|
461
|
+
const providerStatuses = await Promise.all(PROVIDERS.map(async (p) => [p, await hasApiKey(p)]));
|
|
462
|
+
console.log("\n╭─────────────────────────────────────╮");
|
|
463
|
+
console.log("│ Current Configuration │");
|
|
464
|
+
console.log("╰─────────────────────────────────────╯\n");
|
|
465
|
+
console.log(`Provider: ${currentProvider}`);
|
|
466
|
+
console.log(`Model: ${currentModel ? effectiveModel : `${effectiveModel} (default for provider)`}`);
|
|
467
|
+
console.log(`Storage: ${config.useKeychain ? "System Keychain" : "Config File"}`);
|
|
468
|
+
console.log("\nAPI Tokens:");
|
|
469
|
+
for (const [p, ok] of providerStatuses) {
|
|
470
|
+
console.log(` ${p}: ${ok ? "✓ Configured" : "✗ Not configured"}`);
|
|
471
|
+
}
|
|
472
|
+
console.log(`\nConfig file: ~/.megabuff/config.json`);
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
case "5": {
|
|
476
|
+
console.log("\nExiting...");
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
default: {
|
|
480
|
+
console.error("Invalid choice. Please enter 1-5.");
|
|
481
|
+
process.exit(1);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
finally {
|
|
486
|
+
rl.close();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
345
489
|
// Config command
|
|
346
490
|
const configCmd = program
|
|
347
491
|
.command("config")
|
|
348
|
-
.description("Manage configuration")
|
|
492
|
+
.description("Manage configuration (run without arguments for interactive setup)")
|
|
493
|
+
.action(async () => {
|
|
494
|
+
// Interactive mode when no subcommand
|
|
495
|
+
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
496
|
+
await interactiveConfig();
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
console.error("Error: Interactive mode requires a TTY. Use subcommands instead:");
|
|
500
|
+
console.error(" megabuff config token <token> --provider <provider>");
|
|
501
|
+
console.error(" megabuff config provider <provider>");
|
|
502
|
+
console.error(" megabuff config model <model>");
|
|
503
|
+
console.error(" megabuff config show");
|
|
504
|
+
process.exit(1);
|
|
505
|
+
}
|
|
506
|
+
});
|
|
349
507
|
configCmd
|
|
350
|
-
.command("
|
|
351
|
-
.description("Set
|
|
352
|
-
.argument("[token]", "
|
|
353
|
-
.option("-p, --provider <provider>", `Provider (${PROVIDERS.join(", ")})
|
|
508
|
+
.command("token")
|
|
509
|
+
.description("Set API token for a provider")
|
|
510
|
+
.argument("[token]", "API token (omit to be prompted)")
|
|
511
|
+
.option("-p, --provider <provider>", `Provider (${PROVIDERS.join(", ")})`, "openai")
|
|
354
512
|
.option("--keychain", "Store in system keychain (more secure)")
|
|
355
513
|
.action(async (token, options) => {
|
|
356
514
|
try {
|
|
357
|
-
|
|
358
|
-
if (!
|
|
359
|
-
|
|
360
|
-
|
|
515
|
+
const provider = normalizeProvider(options.provider);
|
|
516
|
+
if (!provider) {
|
|
517
|
+
console.error(`Error: Invalid provider '${options.provider}'. Valid options: ${PROVIDERS.join(", ")}`);
|
|
518
|
+
process.exit(1);
|
|
519
|
+
}
|
|
520
|
+
let finalToken = token;
|
|
521
|
+
if (!finalToken) {
|
|
522
|
+
if (!process.stdin.isTTY) {
|
|
523
|
+
console.error("Error: Missing token argument. Provide it inline or run in an interactive terminal.");
|
|
524
|
+
process.exit(1);
|
|
361
525
|
}
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
526
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
527
|
+
try {
|
|
528
|
+
finalToken = (await rl.question("Enter your API token: ")).trim();
|
|
529
|
+
}
|
|
530
|
+
finally {
|
|
531
|
+
rl.close();
|
|
368
532
|
}
|
|
369
|
-
return;
|
|
370
533
|
}
|
|
371
|
-
|
|
372
|
-
|
|
534
|
+
if (!finalToken) {
|
|
535
|
+
console.error("Error: No token provided");
|
|
536
|
+
process.exit(1);
|
|
537
|
+
}
|
|
538
|
+
await setApiKey(provider, finalToken, options.keychain || false);
|
|
373
539
|
if (options.keychain) {
|
|
374
540
|
console.log(`✓ ${provider} token saved securely in system keychain`);
|
|
375
541
|
}
|
|
376
542
|
else {
|
|
377
|
-
console.log(`✓ ${provider} token saved to config file
|
|
543
|
+
console.log(`✓ ${provider} token saved to config file`);
|
|
378
544
|
console.log(" Tip: Use --keychain flag for more secure storage");
|
|
379
545
|
}
|
|
380
546
|
}
|
|
@@ -383,6 +549,66 @@ configCmd
|
|
|
383
549
|
process.exit(1);
|
|
384
550
|
}
|
|
385
551
|
});
|
|
552
|
+
configCmd
|
|
553
|
+
.command("provider")
|
|
554
|
+
.description("Get or set the default provider")
|
|
555
|
+
.argument("[provider]", `Provider (${PROVIDERS.join(", ")})`)
|
|
556
|
+
.action(async (providerArg) => {
|
|
557
|
+
try {
|
|
558
|
+
if (!providerArg) {
|
|
559
|
+
const p = await getProvider();
|
|
560
|
+
console.log(`Default provider: ${p}`);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
const p = normalizeProvider(providerArg);
|
|
564
|
+
if (!p) {
|
|
565
|
+
console.error(`Error: Invalid provider '${providerArg}'. Valid options: ${PROVIDERS.join(", ")}`);
|
|
566
|
+
process.exit(1);
|
|
567
|
+
}
|
|
568
|
+
await setProvider(p);
|
|
569
|
+
console.log(`✓ Default provider set to: ${p}`);
|
|
570
|
+
}
|
|
571
|
+
catch (error) {
|
|
572
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
573
|
+
process.exit(1);
|
|
574
|
+
}
|
|
575
|
+
});
|
|
576
|
+
configCmd
|
|
577
|
+
.command("model")
|
|
578
|
+
.description("Get or set the model (auto-sets provider)")
|
|
579
|
+
.argument("[model]", "Model name (e.g., gpt-4o, claude-sonnet-4-5)")
|
|
580
|
+
.action(async (modelArg) => {
|
|
581
|
+
try {
|
|
582
|
+
if (!modelArg) {
|
|
583
|
+
const m = await getModel();
|
|
584
|
+
const p = await getProvider();
|
|
585
|
+
const effectiveModel = m ?? getDefaultModel(p);
|
|
586
|
+
console.log(`Current model: ${m ? effectiveModel : `${effectiveModel} (default for provider)`}`);
|
|
587
|
+
console.log(`Current provider: ${p}`);
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
const provider = getProviderForModel(modelArg);
|
|
591
|
+
if (!provider) {
|
|
592
|
+
console.error(`Error: Unknown model '${modelArg}'`);
|
|
593
|
+
console.error("\nAvailable models:");
|
|
594
|
+
PROVIDERS.forEach(p => {
|
|
595
|
+
const models = getModelsByProvider(p);
|
|
596
|
+
if (models.length > 0) {
|
|
597
|
+
console.error(`\n${formatProviderName(p)}:`);
|
|
598
|
+
models.forEach(m => console.error(` - ${m}`));
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
process.exit(1);
|
|
602
|
+
}
|
|
603
|
+
await setModel(modelArg);
|
|
604
|
+
console.log(`✓ Model set to: ${modelArg}`);
|
|
605
|
+
console.log(`✓ Provider auto-set to: ${provider}`);
|
|
606
|
+
}
|
|
607
|
+
catch (error) {
|
|
608
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
609
|
+
process.exit(1);
|
|
610
|
+
}
|
|
611
|
+
});
|
|
386
612
|
configCmd
|
|
387
613
|
.command("show")
|
|
388
614
|
.description("Show current configuration")
|
|
@@ -390,14 +616,17 @@ configCmd
|
|
|
390
616
|
try {
|
|
391
617
|
const config = await getConfig();
|
|
392
618
|
const selectedProvider = await getProvider();
|
|
619
|
+
const selectedModel = await getModel();
|
|
620
|
+
const effectiveModel = selectedModel ?? getDefaultModel(selectedProvider);
|
|
393
621
|
const providerStatuses = await Promise.all(PROVIDERS.map(async (p) => [p, await hasApiKey(p)]));
|
|
394
622
|
console.log("Current configuration:");
|
|
395
623
|
console.log(` Provider: ${selectedProvider}`);
|
|
624
|
+
console.log(` Model: ${selectedModel ? effectiveModel : `${effectiveModel} (default for provider)`}`);
|
|
625
|
+
console.log(` Storage: ${config.useKeychain ? "System Keychain" : "Config File"}`);
|
|
626
|
+
console.log("\nAPI Tokens:");
|
|
396
627
|
for (const [p, ok] of providerStatuses) {
|
|
397
|
-
console.log(` ${p}
|
|
628
|
+
console.log(` ${p}: ${ok ? "✓ Configured" : "✗ Not configured"}`);
|
|
398
629
|
}
|
|
399
|
-
console.log(` Storage: ${config.useKeychain ? "System Keychain" : "Config File"}`);
|
|
400
|
-
console.log(` Model: ${config.model || "gpt-4o-mini (default)"}`);
|
|
401
630
|
console.log(`\nConfig location: ~/.megabuff/config.json`);
|
|
402
631
|
}
|
|
403
632
|
catch (error) {
|
|
@@ -407,7 +636,7 @@ configCmd
|
|
|
407
636
|
});
|
|
408
637
|
configCmd
|
|
409
638
|
.command("remove")
|
|
410
|
-
.description("Remove saved token")
|
|
639
|
+
.description("Remove saved token for a provider")
|
|
411
640
|
.option("-p, --provider <provider>", `Provider (${PROVIDERS.join(", ")})`)
|
|
412
641
|
.action(async (options) => {
|
|
413
642
|
try {
|
|
@@ -463,21 +692,28 @@ program
|
|
|
463
692
|
`Run: megabuff config set --provider ${provider} <token> ` +
|
|
464
693
|
`or set the appropriate environment variable.`);
|
|
465
694
|
}
|
|
695
|
+
// Get the configured model (if any) for this provider
|
|
696
|
+
const configuredModel = await getModel();
|
|
697
|
+
const modelToUse = configuredModel && getProviderForModel(configuredModel) === provider ? configuredModel : undefined;
|
|
698
|
+
debugLog("model.selected", { configuredModel, modelToUse, provider });
|
|
466
699
|
// Route to the appropriate provider's optimization function
|
|
467
|
-
const spinner = createSpinner(`Optimizing with ${formatProviderName(provider)}...`);
|
|
700
|
+
const spinner = createSpinner(`Optimizing with ${formatProviderName(provider)}${modelToUse ? ` (${modelToUse})` : ""}...`);
|
|
468
701
|
spinner.start();
|
|
469
702
|
let optimized;
|
|
470
703
|
const t0 = Date.now();
|
|
471
704
|
try {
|
|
472
705
|
if (provider === "openai") {
|
|
473
|
-
optimized = await optimizePromptOpenAI(original, apiKey);
|
|
706
|
+
optimized = await optimizePromptOpenAI(original, apiKey, modelToUse);
|
|
474
707
|
}
|
|
475
708
|
else if (provider === "anthropic") {
|
|
476
|
-
optimized = await optimizePromptAnthropic(original, apiKey);
|
|
709
|
+
optimized = await optimizePromptAnthropic(original, apiKey, modelToUse);
|
|
710
|
+
}
|
|
711
|
+
else if (provider === "google") {
|
|
712
|
+
optimized = await optimizePromptGemini(original, apiKey, modelToUse);
|
|
477
713
|
}
|
|
478
714
|
else {
|
|
479
715
|
throw new Error(`Provider '${provider}' is not supported yet in optimize. ` +
|
|
480
|
-
`Supported providers: openai, anthropic`);
|
|
716
|
+
`Supported providers: openai, anthropic, google`);
|
|
481
717
|
}
|
|
482
718
|
debugLog("optimize.done", { provider, ms: Date.now() - t0, optimizedLength: optimized.length });
|
|
483
719
|
spinner.stop(`✓ Optimized with ${formatProviderName(provider)}`);
|
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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"}
|
package/dist/models.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Provider } from "./config.js";
|
|
2
|
+
export declare const MODEL_PROVIDER_MAP: Record<string, Provider>;
|
|
3
|
+
export declare const DEFAULT_MODEL_BY_PROVIDER: Record<Provider, string>;
|
|
4
|
+
export declare function getDefaultModel(provider: Provider): string;
|
|
5
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAyBvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAM9D,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE1D"}
|
package/dist/models.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Model to provider mapping
|
|
2
|
+
export const MODEL_PROVIDER_MAP = {
|
|
3
|
+
// OpenAI models
|
|
4
|
+
"gpt-5.2": "openai",
|
|
5
|
+
"gpt-4o-mini": "openai",
|
|
6
|
+
"gpt-4-turbo": "openai",
|
|
7
|
+
"gpt-4": "openai",
|
|
8
|
+
"gpt-3.5-turbo": "openai",
|
|
9
|
+
// Anthropic models
|
|
10
|
+
"claude-opus-4-5": "anthropic",
|
|
11
|
+
"claude-sonnet-4-5": "anthropic",
|
|
12
|
+
"claude-sonnet-4": "anthropic",
|
|
13
|
+
"claude-3-5-sonnet-20241022": "anthropic",
|
|
14
|
+
"claude-sonnet-4-5-20250929": "anthropic",
|
|
15
|
+
"claude-3-opus-20240229": "anthropic",
|
|
16
|
+
"claude-3-sonnet-20240229": "anthropic",
|
|
17
|
+
"claude-3-haiku-20240307": "anthropic",
|
|
18
|
+
// Google Gemini models
|
|
19
|
+
"gemini-flash-latest": "google",
|
|
20
|
+
"gemini-2.5-flash": "google",
|
|
21
|
+
"gemini-3-flash-preview": "google",
|
|
22
|
+
"gemini-3-pro-preview": "google",
|
|
23
|
+
"gemini-2.5-flash-lite": "google",
|
|
24
|
+
"gemini-2.5-pro": "google",
|
|
25
|
+
"gemini-2.0-flash": "google",
|
|
26
|
+
"gemini-2.0-flash-lite": "google",
|
|
27
|
+
};
|
|
28
|
+
export const DEFAULT_MODEL_BY_PROVIDER = {
|
|
29
|
+
openai: "gpt-5.2",
|
|
30
|
+
anthropic: "claude-opus-4-5",
|
|
31
|
+
google: "gemini-2.5-flash",
|
|
32
|
+
// Placeholder until Azure OpenAI is supported end-to-end in this CLI
|
|
33
|
+
"azure-openai": "gpt-4o-mini",
|
|
34
|
+
};
|
|
35
|
+
export function getDefaultModel(provider) {
|
|
36
|
+
return DEFAULT_MODEL_BY_PROVIDER[provider];
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAEA,4BAA4B;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IACxD,gBAAgB;IAChB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,OAAO,EAAE,QAAQ;IACjB,eAAe,EAAE,QAAQ;IACzB,mBAAmB;IACnB,iBAAiB,EAAE,WAAW;IAC9B,mBAAmB,EAAE,WAAW;IAChC,iBAAiB,EAAE,WAAW;IAC9B,4BAA4B,EAAE,WAAW;IACzC,4BAA4B,EAAE,WAAW;IACzC,wBAAwB,EAAE,WAAW;IACrC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,WAAW;IACtC,uBAAuB;IACvB,qBAAqB,EAAE,QAAQ;IAC/B,kBAAkB,EAAE,QAAQ;IAC5B,wBAAwB,EAAE,QAAQ;IAClC,sBAAsB,EAAE,QAAQ;IAChC,uBAAuB,EAAE,QAAQ;IACjC,gBAAgB,EAAE,QAAQ;IAC1B,kBAAkB,EAAE,QAAQ;IAC5B,uBAAuB,EAAE,QAAQ;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IAC/D,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,kBAAkB;IAC1B,qEAAqE;IACrE,cAAc,EAAE,aAAa;CAChC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,QAAkB;IAC9C,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "megabuff",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AI-powered prompt optimizer CLI with BYOK (Bring Your Own Key) support for OpenAI and
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "AI-powered prompt optimizer CLI with BYOK (Bring Your Own Key) support for OpenAI, Anthropic, and Google Gemini",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"scripts": {
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
"optimizer",
|
|
17
17
|
"openai",
|
|
18
18
|
"anthropic",
|
|
19
|
+
"google",
|
|
20
|
+
"gemini",
|
|
19
21
|
"claude",
|
|
20
22
|
"cli",
|
|
21
23
|
"chatgpt",
|
|
@@ -36,6 +38,7 @@
|
|
|
36
38
|
"homepage": "https://github.com/thesupermegabuff/megabuff-cli#readme",
|
|
37
39
|
"dependencies": {
|
|
38
40
|
"@anthropic-ai/sdk": "^0.32.1",
|
|
41
|
+
"@google/generative-ai": "^0.21.0",
|
|
39
42
|
"commander": "^14.0.2",
|
|
40
43
|
"openai": "^4.77.3",
|
|
41
44
|
"keytar": "^7.9.0",
|