megabuff 0.15.0 โ 0.16.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 +30 -8
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -49
- package/dist/index.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +12 -1
- package/dist/shell.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,6 +57,7 @@ megabuff optimize "Rewrite this prompt to be clearer"
|
|
|
57
57
|
- ๐ **Secure Storage** - Keychain support for API keys
|
|
58
58
|
- ๐ฏ **Smart Model Selection** - Auto-detects provider from model name
|
|
59
59
|
- ๐ **Stats Tracking** - See word count changes and improvements
|
|
60
|
+
- ๐ **Error Logging** - All errors saved to `~/.megabuff/errors.log` for easy debugging
|
|
60
61
|
- ๐ **Beautiful Output** - Themed, formatted, fun to use!
|
|
61
62
|
|
|
62
63
|
---
|
|
@@ -98,9 +99,12 @@ megabuff config token YOUR_API_KEY --provider openai
|
|
|
98
99
|
|
|
99
100
|
# 3. Start optimizing!
|
|
100
101
|
megabuff optimize "Write a function to validate emails"
|
|
102
|
+
|
|
103
|
+
# 4. Or use interactive mode for multiple commands!
|
|
104
|
+
megabuff shell
|
|
101
105
|
```
|
|
102
106
|
|
|
103
|
-
> ๐ก **Pro Tip:**
|
|
107
|
+
> ๐ก **Pro Tip:** Use `megabuff shell` for an interactive session with guided wizards!
|
|
104
108
|
|
|
105
109
|
---
|
|
106
110
|
|
|
@@ -337,26 +341,40 @@ megabuff config show
|
|
|
337
341
|
### ๐ค Available Models
|
|
338
342
|
|
|
339
343
|
**OpenAI:**
|
|
344
|
+
- `gpt-5.2` (default)
|
|
340
345
|
- `gpt-4o`
|
|
341
|
-
- `gpt-4o-mini`
|
|
346
|
+
- `gpt-4o-mini`
|
|
342
347
|
- `gpt-4-turbo`
|
|
343
348
|
- `gpt-4`
|
|
344
349
|
- `gpt-3.5-turbo`
|
|
345
350
|
|
|
346
351
|
**Anthropic:**
|
|
347
|
-
- `claude-
|
|
352
|
+
- `claude-opus-4-5` (default)
|
|
348
353
|
- `claude-sonnet-4-5`
|
|
349
|
-
- `claude-sonnet-4`
|
|
354
|
+
- `claude-sonnet-4-0`
|
|
355
|
+
- `claude-sonnet-4-5-20250929`
|
|
350
356
|
- `claude-3-5-sonnet-20241022`
|
|
351
357
|
- `claude-3-opus-20240229`
|
|
352
358
|
- `claude-3-sonnet-20240229`
|
|
353
359
|
- `claude-3-haiku-20240307`
|
|
354
360
|
|
|
355
361
|
**Google Gemini:**
|
|
356
|
-
- `gemini-2.
|
|
357
|
-
- `gemini-
|
|
358
|
-
- `gemini-
|
|
359
|
-
- `gemini-
|
|
362
|
+
- `gemini-2.5-flash` (default)
|
|
363
|
+
- `gemini-2.5-pro`
|
|
364
|
+
- `gemini-2.5-flash-lite`
|
|
365
|
+
- `gemini-2.0-flash`
|
|
366
|
+
- `gemini-2.0-flash-lite`
|
|
367
|
+
- `gemini-3-flash-preview`
|
|
368
|
+
- `gemini-3-pro-preview`
|
|
369
|
+
- `gemini-flash-latest`
|
|
370
|
+
|
|
371
|
+
**xAI (Grok):**
|
|
372
|
+
- `grok-beta` (default)
|
|
373
|
+
- `grok-vision-beta`
|
|
374
|
+
|
|
375
|
+
**DeepSeek:**
|
|
376
|
+
- `deepseek-chat` (default)
|
|
377
|
+
- `deepseek-reasoner`
|
|
360
378
|
|
|
361
379
|
---
|
|
362
380
|
|
|
@@ -450,8 +468,10 @@ megabuff> exit
|
|
|
450
468
|
|
|
451
469
|
**Features:**
|
|
452
470
|
- โก **Faster workflow** - Skip typing `megabuff` for every command
|
|
471
|
+
- ๐ง **Guided wizards** - Type `optimize` or `analyze` without arguments to start a step-by-step wizard
|
|
453
472
|
- ๐ **Command history** - Use arrow keys (โ/โ) to recall previous commands
|
|
454
473
|
- ๐ **Session persistence** - API keys and config loaded once
|
|
474
|
+
- ๐ **Error logging** - All errors saved to `~/.megabuff/errors.log` for debugging
|
|
455
475
|
- ๐ก **Built-in help** - Type `help` anytime
|
|
456
476
|
- ๐งน **Clear screen** - Type `clear` to refresh
|
|
457
477
|
- ๐ช **Easy exit** - Type `exit`, `quit`, or `q` to leave
|
|
@@ -459,6 +479,8 @@ megabuff> exit
|
|
|
459
479
|
**Pro Tips:**
|
|
460
480
|
- All regular commands work: `optimize`, `analyze`, `config`, `theme`
|
|
461
481
|
- All flags work: `--provider`, `--style`, `--iterations`, `--show-cost`, etc.
|
|
482
|
+
- Guided wizards only show providers with configured API tokens
|
|
483
|
+
- Compare mode in wizards only shows providers you've set up
|
|
462
484
|
- Press Ctrl+C twice to exit immediately
|
|
463
485
|
- Perfect for batch operations and experimentation
|
|
464
486
|
|
package/dist/config.d.ts
CHANGED
|
@@ -74,4 +74,12 @@ export declare function getThemeName(): Promise<ThemeName>;
|
|
|
74
74
|
* Set the theme
|
|
75
75
|
*/
|
|
76
76
|
export declare function setThemeName(theme: ThemeName): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Log an error to the errors.log file
|
|
79
|
+
*/
|
|
80
|
+
export declare function logError(error: Error | string, context?: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Get the path to the error log file
|
|
83
|
+
*/
|
|
84
|
+
export declare function getErrorLogPath(): string;
|
|
77
85
|
//# 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":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;AAE/F,eAAO,MAAM,SAAS,EAAE,SAAS,QAAQ,EAAkF,CAAC;AAE5H,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,CAUjF;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;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;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,CA8BhG;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,CA8BpD;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;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAGvD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlE"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -309,4 +309,38 @@ export async function setThemeName(theme) {
|
|
|
309
309
|
config.theme = theme;
|
|
310
310
|
await writeConfig(config);
|
|
311
311
|
}
|
|
312
|
+
// ============================================================================
|
|
313
|
+
// ERROR LOGGING
|
|
314
|
+
// ============================================================================
|
|
315
|
+
const ERROR_LOG_FILE = path.join(CONFIG_DIR, "errors.log");
|
|
316
|
+
/**
|
|
317
|
+
* Log an error to the errors.log file
|
|
318
|
+
*/
|
|
319
|
+
export async function logError(error, context) {
|
|
320
|
+
try {
|
|
321
|
+
await ensureConfigDir();
|
|
322
|
+
const timestamp = new Date().toISOString();
|
|
323
|
+
const errorMessage = error instanceof Error ? error.message : error;
|
|
324
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
325
|
+
let logEntry = `[${timestamp}]`;
|
|
326
|
+
if (context) {
|
|
327
|
+
logEntry += ` [${context}]`;
|
|
328
|
+
}
|
|
329
|
+
logEntry += ` ${errorMessage}`;
|
|
330
|
+
if (errorStack) {
|
|
331
|
+
logEntry += `\n${errorStack}`;
|
|
332
|
+
}
|
|
333
|
+
logEntry += "\n\n";
|
|
334
|
+
await fs.appendFile(ERROR_LOG_FILE, logEntry, "utf-8");
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
// Silently fail if we can't write to the log file
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Get the path to the error log file
|
|
342
|
+
*/
|
|
343
|
+
export function getErrorLogPath() {
|
|
344
|
+
return ERROR_LOG_FILE;
|
|
345
|
+
}
|
|
312
346
|
//# sourceMappingURL=config.js.map
|
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;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAI7C,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AAE5H,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC7C,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC;IACjE,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB;IACtC,OAAO,GAAG,QAAQ,UAAU,CAAC;AACjC,CAAC;AAcD;;GAEG;AACH,KAAK,UAAU,eAAe;IAC1B,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,wCAAwC;IAC5C,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU;IACrB,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,MAAc;IACrC,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,QAAkB;IAC5C,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5D,yEAAyE;QACzE,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,kCAAkC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE,MAAc;IAC5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IAC/C,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,sBAAsB;IAC1B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAoB;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,OAAO,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAkB;IAChD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAErB,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB,EAAE,MAAe;IAC/D,uBAAuB;IACvB,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC3F,IAAI,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACpG,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC3F,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAClF,IAAI,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACjG,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAE7G,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,uBAAuB;IACvB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACvB,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,uDAAuD;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAChD,OAAO,SAAS,CAAC;AACrB,CAAC;AAID;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,QAAkB,EAClB,MAAe;IAEf,uBAAuB;IACvB,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtH,IAAI,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/H,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtH,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7G,IAAI,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5H,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAExI,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,uBAAuB;IACvB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvD,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,WAAW;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAClE,IAAI,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB,EAAE,MAAc,EAAE,cAAuB,KAAK;IAC5F,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE3B,IAAI,WAAW,EAAE,CAAC;QACd,oBAAoB;QACpB,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,uEAAuE;QACvE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC9B,CAAC;SAAM,CAAC;QACJ,uBAAuB;QACvB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAClC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,uCAAuC;QACvC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,yDAAyD;IACzD,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAExC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,OAAO,MAAM,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAwB;IACvD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAkB;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,iDAAiD;IACjD,IAAI,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,qEAAqE;IACrE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7B,uDAAuD;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,OAAO,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAgB;IAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAe/D,eAAO,MAAM,OAAO,SAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAe/D,eAAO,MAAM,OAAO,SAAgB,CAAC;AAiSrC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiO/E;AAoKD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0G9E;AAwGD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6H5E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH7E"}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { xai } from "@ai-sdk/xai";
|
|
|
9
9
|
import { generateText } from "ai";
|
|
10
10
|
import * as clipboardy from "clipboardy";
|
|
11
11
|
import chalk from "chalk";
|
|
12
|
-
import { getApiKeyInfo, setApiKey, removeApiKey, hasApiKey, getConfig, getProvider, setProvider, setModel, getModel, normalizeProvider, getProviderForModel, MODEL_PROVIDER_MAP, PROVIDERS, getThemeName, setThemeName } from "./config.js";
|
|
12
|
+
import { getApiKeyInfo, setApiKey, removeApiKey, hasApiKey, getConfig, getProvider, setProvider, setModel, getModel, normalizeProvider, getProviderForModel, MODEL_PROVIDER_MAP, PROVIDERS, getThemeName, setThemeName, logError, getErrorLogPath } from "./config.js";
|
|
13
13
|
import { getDefaultModel } from "./models.js";
|
|
14
14
|
import { themes, getAllThemeNames, isValidTheme } from "./themes.js";
|
|
15
15
|
import { getCurrentTheme, clearThemeCache } from "./theme-utils.js";
|
|
@@ -55,11 +55,17 @@ function maskSecret(secret) {
|
|
|
55
55
|
* Exit or throw error based on shell mode.
|
|
56
56
|
* In shell mode, throws an error so the shell can catch it and continue.
|
|
57
57
|
* Outside shell mode, calls process.exit(1).
|
|
58
|
+
* All errors are logged to ~/.megabuff/errors.log
|
|
58
59
|
*/
|
|
59
|
-
function exitOrThrow(message) {
|
|
60
|
+
function exitOrThrow(message, context) {
|
|
61
|
+
// Log the error to file
|
|
62
|
+
const errorMessage = message || "Command failed";
|
|
63
|
+
logError(errorMessage, context).catch(() => {
|
|
64
|
+
// Ignore logging errors
|
|
65
|
+
});
|
|
60
66
|
if (isInShellMode()) {
|
|
61
67
|
// In shell mode, throw error so the shell can catch it and continue
|
|
62
|
-
const err = new Error(
|
|
68
|
+
const err = new Error(errorMessage);
|
|
63
69
|
// Mark it so the shell knows to suppress the error message (already printed)
|
|
64
70
|
err.alreadyPrinted = true;
|
|
65
71
|
throw err;
|
|
@@ -354,7 +360,15 @@ export async function guidedOptimize(shellRl) {
|
|
|
354
360
|
showCost = await wizardConfirm(rl, "Show cost estimates?", false);
|
|
355
361
|
// Step 8: Output file (optional)
|
|
356
362
|
wizardStep(8, totalSteps, "Output options");
|
|
357
|
-
|
|
363
|
+
const defaultOutputFile = `./megabuff-output-${new Date().toISOString().slice(0, 10)}.txt`;
|
|
364
|
+
console.log(theme.colors.dim(` Default: ${defaultOutputFile}`));
|
|
365
|
+
const outputInput = await wizardPrompt(rl, "Save to file? (path, 'yes' for default, or Enter to skip)");
|
|
366
|
+
if (outputInput.toLowerCase() === 'yes' || outputInput.toLowerCase() === 'y') {
|
|
367
|
+
outputFile = defaultOutputFile;
|
|
368
|
+
}
|
|
369
|
+
else if (outputInput.trim()) {
|
|
370
|
+
outputFile = outputInput;
|
|
371
|
+
}
|
|
358
372
|
}
|
|
359
373
|
// Show summary
|
|
360
374
|
const summaryItems = [
|
|
@@ -376,8 +390,6 @@ export async function guidedOptimize(shellRl) {
|
|
|
376
390
|
return;
|
|
377
391
|
}
|
|
378
392
|
}
|
|
379
|
-
// Close readline before running the actual command
|
|
380
|
-
rl.close();
|
|
381
393
|
// Build options object and run optimize
|
|
382
394
|
const options = {
|
|
383
395
|
provider: selectedProvider,
|
|
@@ -397,28 +409,20 @@ export async function guidedOptimize(shellRl) {
|
|
|
397
409
|
options.compare = true;
|
|
398
410
|
options.providers = compareProviders.join(",");
|
|
399
411
|
}
|
|
400
|
-
//
|
|
401
|
-
//
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
args.push("--style", options.style);
|
|
407
|
-
if (options.iterations)
|
|
408
|
-
args.push("--iterations", options.iterations);
|
|
409
|
-
if (options.showCost)
|
|
410
|
-
args.push("--show-cost");
|
|
411
|
-
if (options.output)
|
|
412
|
-
args.push("--output", options.output);
|
|
413
|
-
if (options.compare) {
|
|
414
|
-
args.push("--compare");
|
|
415
|
-
if (options.providers)
|
|
416
|
-
args.push("--providers", options.providers);
|
|
412
|
+
// Determine if we need to keep readline open for iteration prompts
|
|
413
|
+
// In interactive shell mode, always prompt for iterations in compare mode
|
|
414
|
+
const needsIterationPrompts = useCompare && compareProviders.length >= 2 && iterations > 1;
|
|
415
|
+
// Close readline before running the actual command (unless we need it for iteration prompts)
|
|
416
|
+
if (!needsIterationPrompts) {
|
|
417
|
+
rl.close();
|
|
417
418
|
}
|
|
418
419
|
console.log(theme.colors.dim("\n๐ Running optimization...\n"));
|
|
419
|
-
//
|
|
420
|
-
|
|
421
|
-
|
|
420
|
+
// Pass the readline if we need iteration prompts in shell mode
|
|
421
|
+
await runOptimizeWithOptions(promptText, options, needsIterationPrompts ? rl : undefined);
|
|
422
|
+
// Close readline after if we kept it open
|
|
423
|
+
if (needsIterationPrompts) {
|
|
424
|
+
rl.close();
|
|
425
|
+
}
|
|
422
426
|
}
|
|
423
427
|
catch (error) {
|
|
424
428
|
rl.close();
|
|
@@ -428,7 +432,7 @@ export async function guidedOptimize(shellRl) {
|
|
|
428
432
|
/**
|
|
429
433
|
* Core optimize logic extracted for use by guided wizard
|
|
430
434
|
*/
|
|
431
|
-
async function runOptimizeWithOptions(promptText, options) {
|
|
435
|
+
async function runOptimizeWithOptions(promptText, options, shellRl) {
|
|
432
436
|
const provider = await getProvider(options.provider);
|
|
433
437
|
const { apiKey } = await getApiKeyInfo(provider, options.apiKey);
|
|
434
438
|
if (!apiKey) {
|
|
@@ -446,7 +450,7 @@ async function runOptimizeWithOptions(promptText, options) {
|
|
|
446
450
|
models: options.models,
|
|
447
451
|
verbose: options.verbose,
|
|
448
452
|
showCost: options.showCost
|
|
449
|
-
});
|
|
453
|
+
}, shellRl);
|
|
450
454
|
return;
|
|
451
455
|
}
|
|
452
456
|
// Cost estimation
|
|
@@ -596,7 +600,16 @@ export async function guidedAnalyze(shellRl) {
|
|
|
596
600
|
const showCost = await wizardConfirm(rl, "Show cost estimates?", false);
|
|
597
601
|
// Step 4: Output file (optional)
|
|
598
602
|
wizardStep(4, totalSteps, "Output options");
|
|
599
|
-
const
|
|
603
|
+
const defaultOutputFile = `./megabuff-analysis-${new Date().toISOString().slice(0, 10)}.txt`;
|
|
604
|
+
console.log(theme.colors.dim(` Default: ${defaultOutputFile}`));
|
|
605
|
+
const outputInput = await wizardPrompt(rl, "Save analysis to file? (path, 'yes' for default, or Enter to skip)");
|
|
606
|
+
let outputFile = "";
|
|
607
|
+
if (outputInput.toLowerCase() === 'yes' || outputInput.toLowerCase() === 'y') {
|
|
608
|
+
outputFile = defaultOutputFile;
|
|
609
|
+
}
|
|
610
|
+
else if (outputInput.trim()) {
|
|
611
|
+
outputFile = outputInput;
|
|
612
|
+
}
|
|
600
613
|
// Step 5: Confirmation
|
|
601
614
|
wizardStep(5, totalSteps, "Confirm");
|
|
602
615
|
const summaryItems = [
|
|
@@ -2369,7 +2382,7 @@ themeCmd
|
|
|
2369
2382
|
}
|
|
2370
2383
|
});
|
|
2371
2384
|
// Comparison mode function
|
|
2372
|
-
async function runComparisonMode(original, style, customPrompt, iterations, options) {
|
|
2385
|
+
async function runComparisonMode(original, style, customPrompt, iterations, options, shellRl) {
|
|
2373
2386
|
console.log("");
|
|
2374
2387
|
console.log(theme.colors.primary("๐ Comparison Mode") + theme.colors.dim(" - Testing multiple providers..."));
|
|
2375
2388
|
console.log("");
|
|
@@ -2526,7 +2539,8 @@ async function runComparisonMode(original, style, customPrompt, iterations, opti
|
|
|
2526
2539
|
}
|
|
2527
2540
|
// Run optimization for each provider
|
|
2528
2541
|
// Use sequential execution if we need interactive prompts for iterations
|
|
2529
|
-
|
|
2542
|
+
// Always run sequentially with prompts when there are multiple iterations in TTY mode
|
|
2543
|
+
const needsSequentialExecution = iterations > 1 && process.stdin.isTTY && process.stdout.isTTY;
|
|
2530
2544
|
const results = [];
|
|
2531
2545
|
const processProvider = async (provider) => {
|
|
2532
2546
|
const providerEmoji = provider === "openai" ? "๐ค" : provider === "anthropic" ? "๐ง " : provider === "google" ? "โจ" : provider === "xai" ? "๐" : provider === "deepseek" ? "๐ฎ" : "๐ง";
|
|
@@ -2553,6 +2567,47 @@ async function runComparisonMode(original, style, customPrompt, iterations, opti
|
|
|
2553
2567
|
}
|
|
2554
2568
|
// Run iterations for this provider
|
|
2555
2569
|
for (let i = 0; i < iterations; i++) {
|
|
2570
|
+
// Prompt before FIRST iteration with multiple iterations (both CLI and shell mode)
|
|
2571
|
+
if (i === 0 && iterations > 1 && process.stdin.isTTY && process.stdout.isTTY) {
|
|
2572
|
+
spinner.stop();
|
|
2573
|
+
// Show cost estimate for first iteration
|
|
2574
|
+
if (options.showCost) {
|
|
2575
|
+
const actualModel = modelToUse || getDefaultModelForProvider(provider);
|
|
2576
|
+
const firstIterationEstimate = estimateOptimizationCost(optimized, actualModel, 1);
|
|
2577
|
+
console.log("");
|
|
2578
|
+
console.log(theme.colors.primary(`๐ฐ ${formatProviderName(provider)} - Iteration 1/${iterations} Cost Estimate`));
|
|
2579
|
+
console.log(theme.colors.dim("โ".repeat(80)));
|
|
2580
|
+
console.log(theme.colors.info(` Model: `) + theme.colors.secondary(actualModel));
|
|
2581
|
+
console.log(theme.colors.info(` Estimated input tokens: `) + theme.colors.secondary(formatTokens(firstIterationEstimate.inputTokens)));
|
|
2582
|
+
console.log(theme.colors.info(` Estimated output tokens: `) + theme.colors.secondary(formatTokens(firstIterationEstimate.outputTokens)));
|
|
2583
|
+
console.log(theme.colors.info(` Estimated cost: `) + theme.colors.accent(formatCost(firstIterationEstimate.estimatedCost)));
|
|
2584
|
+
console.log(theme.colors.dim("โ".repeat(80)));
|
|
2585
|
+
console.log("");
|
|
2586
|
+
}
|
|
2587
|
+
let answer;
|
|
2588
|
+
if (shellRl) {
|
|
2589
|
+
// Use the shell's readline interface
|
|
2590
|
+
answer = await shellRl.question(theme.colors.warning(`${formatProviderName(provider)}: Start iteration 1/${iterations}? (Y/n): `));
|
|
2591
|
+
}
|
|
2592
|
+
else {
|
|
2593
|
+
// Create a new readline for CLI mode
|
|
2594
|
+
const rl = readline.createInterface({
|
|
2595
|
+
input: process.stdin,
|
|
2596
|
+
output: process.stdout
|
|
2597
|
+
});
|
|
2598
|
+
answer = await rl.question(theme.colors.warning(`${formatProviderName(provider)}: Start iteration 1/${iterations}? (Y/n): `));
|
|
2599
|
+
rl.close();
|
|
2600
|
+
}
|
|
2601
|
+
// Default to 'yes' if user just presses Enter (since they explicitly requested multiple iterations)
|
|
2602
|
+
if (answer.trim() !== '' && answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
2603
|
+
console.log("");
|
|
2604
|
+
console.log(theme.colors.dim(`${formatProviderName(provider)}: Skipped.`));
|
|
2605
|
+
console.log("");
|
|
2606
|
+
break;
|
|
2607
|
+
}
|
|
2608
|
+
console.log("");
|
|
2609
|
+
spinner.start();
|
|
2610
|
+
}
|
|
2556
2611
|
// Update spinner to show current iteration
|
|
2557
2612
|
if (iterations > 1) {
|
|
2558
2613
|
spinner.update(`${providerEmoji} ${formatProviderName(provider)} - iteration ${i + 1}/${iterations}...`);
|
|
@@ -2592,8 +2647,8 @@ async function runComparisonMode(original, style, customPrompt, iterations, opti
|
|
|
2592
2647
|
if (iterations > 1) {
|
|
2593
2648
|
spinner.stop();
|
|
2594
2649
|
}
|
|
2595
|
-
// Show iteration output if verbose mode is enabled
|
|
2596
|
-
if (options.verbose && iterations > 1) {
|
|
2650
|
+
// Show iteration output if verbose mode is enabled OR if --show-cost is used (so user can see what they're paying for)
|
|
2651
|
+
if ((options.verbose || options.showCost) && iterations > 1) {
|
|
2597
2652
|
console.log("");
|
|
2598
2653
|
console.log(theme.colors.primary(`๐ ${formatProviderName(provider)} - Iteration ${i + 1}/${iterations} Output:`));
|
|
2599
2654
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
@@ -2612,32 +2667,44 @@ async function runComparisonMode(original, style, customPrompt, iterations, opti
|
|
|
2612
2667
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
2613
2668
|
console.log("");
|
|
2614
2669
|
}
|
|
2615
|
-
// Show cost estimate for NEXT iteration
|
|
2670
|
+
// Show cost estimate for NEXT iteration (if --show-cost enabled)
|
|
2616
2671
|
if (options.showCost && iterations > 1 && i < iterations - 1) {
|
|
2617
2672
|
const nextIterationEstimate = estimateOptimizationCost(optimized, actualModel, 1);
|
|
2618
2673
|
console.log("");
|
|
2619
2674
|
console.log(theme.colors.primary(`๐ฐ ${formatProviderName(provider)} - Iteration ${i + 2}/${iterations} Cost Estimate`));
|
|
2620
2675
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
2621
2676
|
console.log(theme.colors.info(` Model: `) + theme.colors.secondary(actualModel));
|
|
2677
|
+
console.log(theme.colors.info(` Estimated input tokens: `) + theme.colors.secondary(formatTokens(nextIterationEstimate.inputTokens)));
|
|
2678
|
+
console.log(theme.colors.info(` Estimated output tokens: `) + theme.colors.secondary(formatTokens(nextIterationEstimate.outputTokens)));
|
|
2622
2679
|
console.log(theme.colors.info(` Estimated cost: `) + theme.colors.accent(formatCost(nextIterationEstimate.estimatedCost)));
|
|
2623
2680
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
2624
2681
|
console.log("");
|
|
2625
|
-
|
|
2626
|
-
|
|
2682
|
+
}
|
|
2683
|
+
// Prompt user to confirm proceeding with next iteration (if not the last iteration)
|
|
2684
|
+
// Always prompt in TTY mode when there are multiple iterations
|
|
2685
|
+
if (iterations > 1 && i < iterations - 1 && process.stdin.isTTY && process.stdout.isTTY) {
|
|
2686
|
+
let answer;
|
|
2687
|
+
if (shellRl) {
|
|
2688
|
+
// Use the shell's readline interface (WizardReadline has async question)
|
|
2689
|
+
answer = await shellRl.question(theme.colors.warning(`${formatProviderName(provider)}: Continue with iteration ${i + 2}/${iterations}? (Y/n): `));
|
|
2690
|
+
}
|
|
2691
|
+
else {
|
|
2692
|
+
// Create a new readline for CLI mode
|
|
2627
2693
|
const rl = readline.createInterface({
|
|
2628
2694
|
input: process.stdin,
|
|
2629
2695
|
output: process.stdout
|
|
2630
2696
|
});
|
|
2631
|
-
|
|
2697
|
+
answer = await rl.question(theme.colors.warning(`${formatProviderName(provider)}: Continue with iteration ${i + 2}/${iterations}? (Y/n): `));
|
|
2632
2698
|
rl.close();
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
console.log("");
|
|
2637
|
-
break;
|
|
2638
|
-
}
|
|
2699
|
+
}
|
|
2700
|
+
// Default to 'yes' if user just presses Enter (since they explicitly requested multiple iterations)
|
|
2701
|
+
if (answer.trim() !== '' && answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
2639
2702
|
console.log("");
|
|
2703
|
+
console.log(theme.colors.dim(`${formatProviderName(provider)}: Stopped after ${i + 1} iteration(s).`));
|
|
2704
|
+
console.log("");
|
|
2705
|
+
break;
|
|
2640
2706
|
}
|
|
2707
|
+
console.log("");
|
|
2641
2708
|
}
|
|
2642
2709
|
// Restart spinner for next iteration
|
|
2643
2710
|
if (iterations > 1 && i < iterations - 1) {
|
|
@@ -2648,6 +2715,11 @@ async function runComparisonMode(original, style, customPrompt, iterations, opti
|
|
|
2648
2715
|
const actualModel = modelToUse || getDefaultModelForProvider(provider);
|
|
2649
2716
|
const actualCost = calculateCost(totalInputTokens, totalOutputTokens, actualModel);
|
|
2650
2717
|
spinner.stop(`โจ ${formatProviderName(provider)} complete in ${(duration / 1000).toFixed(1)}s`);
|
|
2718
|
+
// Show completion message for multiple iterations
|
|
2719
|
+
if (iterations > 1) {
|
|
2720
|
+
console.log(theme.colors.success(`๐ ${formatProviderName(provider)}: All ${iterations} iterations complete!`));
|
|
2721
|
+
console.log("");
|
|
2722
|
+
}
|
|
2651
2723
|
const resultData = {
|
|
2652
2724
|
provider,
|
|
2653
2725
|
result: optimized,
|
|
@@ -3069,8 +3141,8 @@ program
|
|
|
3069
3141
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
3070
3142
|
console.log("");
|
|
3071
3143
|
}
|
|
3072
|
-
// Show iteration output if verbose mode is enabled
|
|
3073
|
-
if (options.verbose && iterations > 1) {
|
|
3144
|
+
// Show iteration output if verbose mode is enabled OR if --show-cost is used (so user can see what they're paying for)
|
|
3145
|
+
if ((options.verbose || options.showCost) && iterations > 1) {
|
|
3074
3146
|
console.log("");
|
|
3075
3147
|
console.log(theme.colors.primary(`๐ Iteration ${i}/${iterations} Output:`));
|
|
3076
3148
|
console.log(theme.colors.dim("โ".repeat(80)));
|
|
@@ -3162,10 +3234,13 @@ program
|
|
|
3162
3234
|
await outputResult(original, optimized, options);
|
|
3163
3235
|
}
|
|
3164
3236
|
catch (error) {
|
|
3237
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
3238
|
+
await logError(error instanceof Error ? error : errorMessage, "optimize");
|
|
3165
3239
|
console.error("");
|
|
3166
|
-
console.error(theme.colors.error("โ Error: ") + theme.colors.warning(
|
|
3240
|
+
console.error(theme.colors.error("โ Error: ") + theme.colors.warning(errorMessage));
|
|
3241
|
+
console.error(theme.colors.dim(` Error logged to: ~/.megabuff/errors.log`));
|
|
3167
3242
|
console.error("");
|
|
3168
|
-
exitOrThrow();
|
|
3243
|
+
exitOrThrow(errorMessage, "optimize");
|
|
3169
3244
|
}
|
|
3170
3245
|
});
|
|
3171
3246
|
// Analyze command - get detailed feedback on a prompt
|
|
@@ -3356,10 +3431,13 @@ program
|
|
|
3356
3431
|
}
|
|
3357
3432
|
}
|
|
3358
3433
|
catch (error) {
|
|
3434
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
3435
|
+
await logError(error instanceof Error ? error : errorMessage, "analyze");
|
|
3359
3436
|
console.error("");
|
|
3360
|
-
console.error(theme.colors.error("โ Error: ") + theme.colors.warning(
|
|
3437
|
+
console.error(theme.colors.error("โ Error: ") + theme.colors.warning(errorMessage));
|
|
3438
|
+
console.error(theme.colors.dim(` Error logged to: ~/.megabuff/errors.log`));
|
|
3361
3439
|
console.error("");
|
|
3362
|
-
exitOrThrow();
|
|
3440
|
+
exitOrThrow(errorMessage, "analyze");
|
|
3363
3441
|
}
|
|
3364
3442
|
});
|
|
3365
3443
|
// Interactive shell command
|