@untools/commitgen 0.4.3 → 0.4.5

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  **The AI-Powered Commit Generator**
4
4
 
5
- CommitGen is a powerful CLI tool that leverages AI to generate conventional commit messages from your staged changes. It works with 50 free credits (no key required) or your own Google AI API key.
5
+ CommitGen is a powerful CLI tool that leverages AI to generate conventional commit messages from your staged changes. It works with 50 free credits (no key required) or your own Google AI API key. It now displays detailed credit usage and cost per generation.
6
6
 
7
7
  ## Installation
8
8
 
@@ -73,6 +73,12 @@ commitgen --multi-commit
73
73
 
74
74
  _The CLI will prompt you to confirm the split groups before proceeding._
75
75
 
76
+ ### šŸ”„ Regeneration with Hints
77
+
78
+ Don't like the suggestions? You can ask the AI to try again, optionally providing a **hint** to guide the generation (e.g., "Use emojis", "Focus on the UI changes", "Be more descriptive").
79
+
80
+ Select **"šŸ”„ Regenerate suggestions"** from the interactive menu.
81
+
76
82
  ### 🧠 History Learning
77
83
 
78
84
  The tool learns from your previous commit messages to match your personal or team's style. This is enabled by default.
@@ -1 +1 @@
1
- export declare function buyCreditsCommand(): Promise<void>;
1
+ export declare function buyCreditsCommand(): Promise<boolean>;
@@ -12,32 +12,37 @@ async function buyCreditsCommand() {
12
12
  const providerConfig = configManager.getProviderConfig();
13
13
  const token = providerConfig.apiKey;
14
14
  console.log(chalk_1.default.cyan("\nšŸ’Ž Buy CommitGen Credits\n"));
15
- const { amount } = await inquirer_1.default.prompt([
16
- {
17
- type: "list",
18
- name: "amount",
19
- message: "Select credit pack:",
20
- choices: [
21
- { name: "Standard Pack (80 Credits) - $1.00", value: 80 },
22
- { name: "Pro Pack (450 Credits) - $5.00", value: 450 },
23
- { name: "Mega Pack (1000 Credits) - $10.00", value: 1000 },
24
- ],
25
- },
26
- ]);
27
- const { provider } = await inquirer_1.default.prompt([
28
- {
29
- type: "list",
30
- name: "provider",
31
- message: "Select payment provider:",
32
- choices: [
33
- { name: "Paystack", value: "paystack" },
34
- { name: "100Pay", value: "100pay" },
35
- ],
36
- },
37
- ]);
38
- console.log(chalk_1.default.yellow("\nInitializing payment..."));
39
15
  const WEB_APP_URL = process.env.COMMITGEN_WEB_URL || "https://commitgen.aevr.space";
40
16
  try {
17
+ const packagesResponse = await fetch(`${WEB_APP_URL}/api/credits/packages`);
18
+ if (!packagesResponse.ok) {
19
+ throw new Error("Failed to fetch credit packages");
20
+ }
21
+ const packages = await packagesResponse.json();
22
+ const choices = packages.map((pkg) => ({
23
+ name: pkg.label,
24
+ value: pkg.value,
25
+ }));
26
+ const { amount } = await inquirer_1.default.prompt([
27
+ {
28
+ type: "list",
29
+ name: "amount",
30
+ message: "Select credit pack:",
31
+ choices: choices,
32
+ },
33
+ ]);
34
+ const { provider } = await inquirer_1.default.prompt([
35
+ {
36
+ type: "list",
37
+ name: "provider",
38
+ message: "Select payment provider:",
39
+ choices: [
40
+ { name: "Paystack", value: "paystack" },
41
+ { name: "100Pay", value: "100pay" },
42
+ ],
43
+ },
44
+ ]);
45
+ console.log(chalk_1.default.yellow("\nInitializing payment..."));
41
46
  const response = await fetch(`${WEB_APP_URL}/api/payment/initialize`, {
42
47
  method: "POST",
43
48
  headers: {
@@ -68,37 +73,47 @@ async function buyCreditsCommand() {
68
73
  console.log("\n");
69
74
  if (data.reference) {
70
75
  console.log(chalk_1.default.yellow("ā³ Waiting for payment confirmation..."));
71
- const pollInterval = setInterval(async () => {
72
- try {
73
- const statusRes = await fetch(`${WEB_APP_URL}/api/payment/status?reference=${data.reference}`);
74
- if (statusRes.ok) {
75
- const statusData = await statusRes.json();
76
- if (statusData.status === "confirmed") {
77
- clearInterval(pollInterval);
78
- console.log(chalk_1.default.green("\nšŸŽ‰ Payment confirmed! You can now generate commits."));
79
- process.exit(0);
76
+ return new Promise((resolve) => {
77
+ const pollInterval = setInterval(async () => {
78
+ try {
79
+ const statusRes = await fetch(`${WEB_APP_URL}/api/payment/status?reference=${data.reference}`);
80
+ if (statusRes.ok) {
81
+ const statusData = await statusRes.json();
82
+ if (statusData.status === "confirmed") {
83
+ clearInterval(pollInterval);
84
+ console.log(chalk_1.default.green("\nšŸŽ‰ Payment confirmed! You can now generate commits."));
85
+ resolve(true);
86
+ }
80
87
  }
81
88
  }
82
- }
83
- catch (e) {
84
- // ignore errors during poll
85
- }
86
- }, 3000);
87
- // Timeout after 5 minutes
88
- setTimeout(() => {
89
- clearInterval(pollInterval);
90
- console.log(chalk_1.default.red("\nāŒ Polling timed out. Please check your dashboard for status."));
91
- process.exit(1);
92
- }, 300000);
89
+ catch (e) {
90
+ // ignore errors during poll
91
+ }
92
+ }, 3000);
93
+ // Timeout after 5 minutes
94
+ setTimeout(() => {
95
+ clearInterval(pollInterval);
96
+ console.log(chalk_1.default.red("\nāŒ Polling timed out. Please check your dashboard for status."));
97
+ resolve(false);
98
+ }, 300000);
99
+ });
93
100
  }
94
101
  }
102
+ return false;
95
103
  }
96
104
  catch (error) {
105
+ // Gracefully handle SIGINT / Force close
106
+ if (error.message.includes("User force closed") ||
107
+ error.name === "ExitPromptError") {
108
+ console.log(chalk_1.default.yellow("\n\nšŸ‘‹ Cancelled by user"));
109
+ return false;
110
+ }
97
111
  console.error(chalk_1.default.red(`āŒ Error: ${error.message}`));
98
112
  if (error.message.includes("unauthorized") ||
99
113
  error.message.includes("Missing required fields")) {
100
114
  console.log(chalk_1.default.yellow("šŸ’” Please make sure you are logged in. Run 'commitgen login'"));
101
115
  }
116
+ return false;
102
117
  }
103
118
  }
104
119
  //# sourceMappingURL=buy-credits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buy-credits.js","sourceRoot":"","sources":["../../src/commands/buy-credits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buy-credits.js","sourceRoot":"","sources":["../../src/commands/buy-credits.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -237,103 +237,138 @@ class CommitGen {
237
237
  }
238
238
  let suggestions = [];
239
239
  let usingFallback = false;
240
+ let hint = undefined;
240
241
  if (options.useAi) {
241
- try {
242
- const configManager = new config_1.ConfigManager();
243
- let providerConfig = configManager.getProviderConfig();
244
- // Override model if specified in options
245
- if (options.model) {
246
- providerConfig = { ...providerConfig, model: options.model };
247
- console.log(chalk_1.default.blue(`šŸŽÆ Using model: ${options.model}`));
248
- }
249
- if (!providerConfig.apiKey &&
250
- !this.hasEnvironmentApiKey(providerConfig.provider)) {
251
- console.log(chalk_1.default.yellow("\nāš ļø API key not found for the selected provider."));
252
- const result = await safePrompt([
253
- {
254
- type: "confirm",
255
- name: "shouldConfigure",
256
- message: "Would you like to configure your API key now?",
257
- default: true,
258
- },
259
- ]);
260
- if (!result)
261
- return;
262
- if (result.shouldConfigure) {
263
- await (0, configure_1.configureCommand)();
264
- providerConfig = configManager.getProviderConfig();
265
- }
266
- else {
267
- console.log(chalk_1.default.gray("Falling back to rule-based suggestions...\n"));
268
- suggestions = this.getFallbackSuggestions(analysis);
269
- usingFallback = true;
270
- }
271
- }
272
- if (!usingFallback) {
273
- const modelDisplay = providerConfig.model || "default";
274
- const provider = (0, providers_1.createProvider)(providerConfig);
275
- suggestions = await (0, loading_1.withLoading)(`Generating commit messages using ${providerConfig.provider} (${modelDisplay})...`, async () => await provider.generateCommitMessage(analysis), "Commit messages generated");
276
- if (!suggestions || suggestions.length === 0) {
277
- throw new Error("No suggestions generated");
278
- }
279
- // Personalize suggestions based on history
280
- if (historyPattern) {
281
- suggestions = suggestions.map((msg) => this.historyAnalyzer.personalizeCommitMessage(msg, historyPattern));
242
+ let activeLoop = true;
243
+ while (activeLoop) {
244
+ activeLoop = false; // Default to exit unless regenerate/retry
245
+ try {
246
+ const configManager = new config_1.ConfigManager();
247
+ let providerConfig = configManager.getProviderConfig();
248
+ // Override model if specified in options
249
+ if (options.model) {
250
+ providerConfig = { ...providerConfig, model: options.model };
251
+ console.log(chalk_1.default.blue(`šŸŽÆ Using model: ${options.model}`));
282
252
  }
283
- // Adjust type based on issue if available
284
- if (issueRef) {
285
- suggestions = suggestions.map((msg) => ({
286
- ...msg,
287
- type: this.issueTracker.suggestTypeFromIssue(issueRef, msg.type),
288
- }));
253
+ if (!providerConfig.apiKey &&
254
+ !this.hasEnvironmentApiKey(providerConfig.provider)) {
255
+ console.log(chalk_1.default.yellow("\nāš ļø API key not found for the selected provider."));
256
+ const result = await safePrompt([
257
+ {
258
+ type: "confirm",
259
+ name: "shouldConfigure",
260
+ message: "Would you like to configure your API key now?",
261
+ default: true,
262
+ },
263
+ ]);
264
+ if (!result)
265
+ return;
266
+ if (result.shouldConfigure) {
267
+ await (0, configure_1.configureCommand)();
268
+ providerConfig = configManager.getProviderConfig();
269
+ activeLoop = true;
270
+ continue;
271
+ }
272
+ else {
273
+ console.log(chalk_1.default.gray("Falling back to rule-based suggestions...\n"));
274
+ suggestions = this.getFallbackSuggestions(analysis);
275
+ usingFallback = true;
276
+ }
289
277
  }
290
- }
291
- }
292
- catch (error) {
293
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
294
- // Check if it's an API overload error
295
- if (errorMessage.includes("overloaded") ||
296
- errorMessage.includes("503")) {
297
- console.warn(chalk_1.default.yellow(`\nāš ļø ${errorMessage}`));
298
- console.log(chalk_1.default.blue("šŸ’” Tip: You can use 'commitgen --no-use-ai' to skip AI generation"));
299
- }
300
- else if (errorMessage.includes("API key")) {
301
- console.warn(chalk_1.default.yellow(`\nāš ļø ${errorMessage}`));
302
- const result = await safePrompt([
303
- {
304
- type: "confirm",
305
- name: "shouldReconfigure",
306
- message: "Would you like to reconfigure your API key?",
307
- default: true,
308
- },
309
- ]);
310
- if (!result)
311
- return;
312
- if (result.shouldReconfigure) {
313
- // Assuming 'program' is available in this scope or passed as an argument
314
- // This part of the diff seems to be misplaced or refers to a different context.
315
- // I'm placing the login/config checks here as per the instruction,
316
- // but noting that `program.opts()` might not be directly accessible here.
317
- // If `options` passed to `run` already contains these, then `program.opts()` is redundant.
318
- // For now, I'll assume `options` already contains `login` and `config` flags.
319
- if (options.login) {
320
- await (0, login_1.loginCommand)();
321
- process.exit(0);
278
+ if (!usingFallback) {
279
+ const modelDisplay = providerConfig.model || "default";
280
+ const provider = (0, providers_1.createProvider)(providerConfig);
281
+ const { messages: generatedMessages, usage } = await (0, loading_1.withLoading)(`Generating commit messages using ${providerConfig.provider} (${modelDisplay})...`, async () => await provider.generateCommitMessage(analysis, hint ? { hint } : undefined), "Commit messages generated");
282
+ suggestions = generatedMessages;
283
+ if (!suggestions || suggestions.length === 0) {
284
+ throw new Error("No suggestions generated");
322
285
  }
323
- if (options.config) {
324
- await (0, configure_1.configureCommand)();
325
- process.exit(0);
286
+ if (usage) {
287
+ console.log(chalk_1.default.gray(` šŸ’Ž Credits: ${chalk_1.default.yellow(usage.cost)} used | ${chalk_1.default.green(usage.remaining)} remaining` +
288
+ (usage.tier ? ` (${usage.tier})` : "")));
289
+ }
290
+ // Personalize suggestions based on history
291
+ if (historyPattern) {
292
+ suggestions = suggestions.map((msg) => this.historyAnalyzer.personalizeCommitMessage(msg, historyPattern));
326
293
  }
327
- console.log(chalk_1.default.blue("\nšŸ”„ Please run the command again with your new configuration."));
294
+ // Adjust type based on issue if available
295
+ if (issueRef) {
296
+ suggestions = suggestions.map((msg) => ({
297
+ ...msg,
298
+ type: this.issueTracker.suggestTypeFromIssue(issueRef, msg.type),
299
+ }));
300
+ }
301
+ // Interactive commit selection
302
+ const result = await this.commitInteractive(suggestions, analysis, issueRef, options);
303
+ if (result.action === "regenerate") {
304
+ activeLoop = true;
305
+ hint = result.hint;
306
+ console.log(chalk_1.default.blue("\nšŸ”„ Regenerating with hint..."));
307
+ continue;
308
+ }
309
+ // If we are here, we are done
328
310
  return;
329
311
  }
330
312
  }
331
- else {
332
- console.warn(chalk_1.default.yellow(`\nāš ļø AI generation failed: ${errorMessage}`));
313
+ catch (error) {
314
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
315
+ // Check if it's an API overload error
316
+ if (errorMessage.includes("overloaded") ||
317
+ errorMessage.includes("503")) {
318
+ console.warn(chalk_1.default.yellow(`\nāš ļø ${errorMessage}`));
319
+ console.log(chalk_1.default.blue("šŸ’” Tip: You can use 'commitgen --no-use-ai' to skip AI generation"));
320
+ }
321
+ else if (errorMessage.includes("Insufficient credits")) {
322
+ console.warn(chalk_1.default.yellow(`\nāš ļø ${errorMessage}`));
323
+ const result = await safePrompt([
324
+ {
325
+ type: "confirm",
326
+ name: "buyCredits",
327
+ message: "Would you like to buy credits now?",
328
+ default: true,
329
+ },
330
+ ]);
331
+ if (result && result.buyCredits) {
332
+ const purchased = await (0, buy_credits_1.buyCreditsCommand)();
333
+ if (purchased) {
334
+ activeLoop = true;
335
+ continue; // Retry the loop
336
+ }
337
+ }
338
+ }
339
+ else if (errorMessage.includes("API key")) {
340
+ console.warn(chalk_1.default.yellow(`\nāš ļø ${errorMessage}`));
341
+ const result = await safePrompt([
342
+ {
343
+ type: "confirm",
344
+ name: "shouldReconfigure",
345
+ message: "Would you like to reconfigure your API key?",
346
+ default: true,
347
+ },
348
+ ]);
349
+ if (!result)
350
+ return;
351
+ if (result.shouldReconfigure) {
352
+ if (options.login) {
353
+ await (0, login_1.loginCommand)();
354
+ process.exit(0);
355
+ }
356
+ if (options.config) {
357
+ await (0, configure_1.configureCommand)();
358
+ process.exit(0);
359
+ }
360
+ console.log(chalk_1.default.blue("\nšŸ”„ Please run the command again with your new configuration."));
361
+ return;
362
+ }
363
+ }
364
+ else {
365
+ console.warn(chalk_1.default.yellow(`\nāš ļø AI generation failed: ${errorMessage}`));
366
+ }
367
+ console.log(chalk_1.default.gray("\nFalling back to rule-based suggestions...\n"));
368
+ suggestions = this.getFallbackSuggestions(analysis);
369
+ usingFallback = true;
370
+ // Loop breaks, falls through to non-AI completion
333
371
  }
334
- console.log(chalk_1.default.gray("\nFalling back to rule-based suggestions...\n"));
335
- suggestions = this.getFallbackSuggestions(analysis);
336
- usingFallback = true;
337
372
  }
338
373
  }
339
374
  else {
@@ -341,6 +376,7 @@ class CommitGen {
341
376
  suggestions = this.getFallbackSuggestions(analysis);
342
377
  usingFallback = true;
343
378
  }
379
+ // Fallback path or failed AI path
344
380
  await this.commitInteractive(suggestions, analysis, issueRef, options);
345
381
  }
346
382
  async runMultiCommit(analysis, options) {
@@ -367,36 +403,47 @@ class CommitGen {
367
403
  for (let i = 0; i < groups.length; i++) {
368
404
  const group = groups[i];
369
405
  console.log(chalk_1.default.cyan.bold(`\nšŸ“ Commit ${i + 1}/${groups.length}: ${group.reason}`));
370
- // Generate suggestions for this group
371
- let suggestions = [group.suggestedMessage];
372
- if (options.useAi) {
373
- try {
374
- const configManager = new config_1.ConfigManager();
375
- let providerConfig = configManager.getProviderConfig();
376
- // Override model if specified
377
- if (options.model) {
378
- providerConfig = { ...providerConfig, model: options.model };
379
- }
380
- if (providerConfig.apiKey ||
381
- this.hasEnvironmentApiKey(providerConfig.provider)) {
382
- const provider = (0, providers_1.createProvider)(providerConfig);
383
- const loader = new loading_1.LoadingIndicator("Generating commit message...");
384
- loader.start();
385
- try {
386
- suggestions = await provider.generateCommitMessage(group.analysis);
387
- loader.succeed("Generated");
406
+ let activeLoop = true;
407
+ let hint = undefined;
408
+ while (activeLoop) {
409
+ activeLoop = false;
410
+ // Generate suggestions for this group
411
+ let suggestions = [group.suggestedMessage];
412
+ if (options.useAi) {
413
+ try {
414
+ const configManager = new config_1.ConfigManager();
415
+ let providerConfig = configManager.getProviderConfig();
416
+ // Override model if specified
417
+ if (options.model) {
418
+ providerConfig = { ...providerConfig, model: options.model };
388
419
  }
389
- catch (err) {
390
- loader.stop();
391
- throw err;
420
+ if (providerConfig.apiKey ||
421
+ this.hasEnvironmentApiKey(providerConfig.provider)) {
422
+ const provider = (0, providers_1.createProvider)(providerConfig);
423
+ const loader = new loading_1.LoadingIndicator("Generating commit message...");
424
+ loader.start();
425
+ try {
426
+ const { messages } = await provider.generateCommitMessage(group.analysis, hint ? { hint } : undefined);
427
+ suggestions = messages;
428
+ loader.succeed("Generated");
429
+ }
430
+ catch (err) {
431
+ loader.stop();
432
+ throw err;
433
+ }
392
434
  }
393
435
  }
436
+ catch (error) {
437
+ console.log(chalk_1.default.gray("Using suggested message for this commit"));
438
+ }
394
439
  }
395
- catch (error) {
396
- console.log(chalk_1.default.gray("Using suggested message for this commit"));
440
+ const result = await this.commitInteractive(suggestions, group.analysis, null, options, group.files);
441
+ if (result.action === "regenerate") {
442
+ activeLoop = true;
443
+ hint = result.hint;
444
+ console.log(chalk_1.default.blue("\nšŸ”„ Regenerating with hint..."));
397
445
  }
398
446
  }
399
- await this.commitInteractive(suggestions, group.analysis, null, options, group.files);
400
447
  }
401
448
  console.log(chalk_1.default.green.bold("\nāœ… All commits completed!"));
402
449
  }
@@ -417,9 +464,9 @@ class CommitGen {
417
464
  short: "Combined",
418
465
  });
419
466
  choices.push({
420
- name: chalk_1.default.gray("āœļø Write custom message"),
421
- value: -2,
422
- short: "Custom message",
467
+ name: chalk_1.default.yellow("šŸ”„ Regenerate suggestions"),
468
+ value: -3,
469
+ short: "Regenerate",
423
470
  });
424
471
  const result = await safePrompt([
425
472
  {
@@ -431,7 +478,7 @@ class CommitGen {
431
478
  },
432
479
  ]);
433
480
  if (!result)
434
- return;
481
+ return { action: "done" };
435
482
  const { selectedIndex } = result;
436
483
  let commitMessage;
437
484
  if (selectedIndex === -1) {
@@ -452,7 +499,7 @@ class CommitGen {
452
499
  },
453
500
  ]);
454
501
  if (!actionResult)
455
- return;
502
+ return { action: "done" };
456
503
  if (actionResult.action === "back") {
457
504
  return this.commitInteractive(suggestions, analysis, issueRef, options, specificFiles);
458
505
  }
@@ -471,7 +518,7 @@ class CommitGen {
471
518
  },
472
519
  ]);
473
520
  if (!editResult)
474
- return;
521
+ return { action: "done" };
475
522
  commitMessage = editResult.edited;
476
523
  }
477
524
  else {
@@ -492,9 +539,19 @@ class CommitGen {
492
539
  },
493
540
  ]);
494
541
  if (!customResult)
495
- return;
542
+ return { action: "done" };
496
543
  commitMessage = customResult.customMessage;
497
544
  }
545
+ else if (selectedIndex === -3) {
546
+ const hintResult = await safePrompt([
547
+ {
548
+ type: "input",
549
+ name: "hint",
550
+ message: "Enter custom instructions (optional):",
551
+ },
552
+ ]);
553
+ return { action: "regenerate", hint: hintResult === null || hintResult === void 0 ? void 0 : hintResult.hint };
554
+ }
498
555
  else {
499
556
  let selected = suggestions[selectedIndex];
500
557
  // Add issue reference if available
@@ -515,7 +572,7 @@ class CommitGen {
515
572
  },
516
573
  ]);
517
574
  if (!actionResult)
518
- return;
575
+ return { action: "done" };
519
576
  if (actionResult.action === "back") {
520
577
  return this.commitInteractive(suggestions, analysis, issueRef, options, specificFiles);
521
578
  }
@@ -534,7 +591,7 @@ class CommitGen {
534
591
  },
535
592
  ]);
536
593
  if (!editResult)
537
- return;
594
+ return { action: "done" };
538
595
  commitMessage = editResult.edited;
539
596
  }
540
597
  else {
@@ -543,7 +600,7 @@ class CommitGen {
543
600
  }
544
601
  if (!commitMessage.trim()) {
545
602
  console.log(chalk_1.default.red("\nāŒ Commit cancelled - empty message"));
546
- return;
603
+ return { action: "done" };
547
604
  }
548
605
  try {
549
606
  let commitCmd = specificFiles
@@ -567,6 +624,7 @@ class CommitGen {
567
624
  console.error(chalk_1.default.red("āŒ Commit failed:"), error);
568
625
  process.exit(1);
569
626
  }
627
+ return { action: "done" };
570
628
  }
571
629
  getFallbackSuggestions(analysis) {
572
630
  const { filesChanged, additions, deletions } = analysis;
@@ -657,7 +715,9 @@ program
657
715
  program
658
716
  .command("buy-credits")
659
717
  .description("Buy credits for CommitGen")
660
- .action(buy_credits_1.buyCreditsCommand);
718
+ .action(async () => {
719
+ await (0, buy_credits_1.buyCreditsCommand)();
720
+ });
661
721
  program
662
722
  .command("dashboard")
663
723
  .alias("dash")
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,7 +1,7 @@
1
- import { CommitMessage, GitAnalysis } from "../types";
1
+ import { GitAnalysis, GenerationResult, GenerateOptions } from "../types";
2
2
  export declare abstract class BaseProvider {
3
3
  protected analysis: GitAnalysis | null;
4
- abstract generateCommitMessage(analysis: GitAnalysis): Promise<CommitMessage[]>;
4
+ abstract generateCommitMessage(analysis: GitAnalysis, options?: GenerateOptions): Promise<GenerationResult>;
5
5
  protected inferFeatureType(files: string[]): string;
6
6
  protected inferScope(files: string[]): string;
7
7
  protected buildSystemPrompt(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { AIProvider } from "../types";
2
- import { GitAnalysis, CommitMessage, CommitGenProviderConfig } from "../types";
2
+ import { GitAnalysis, CommitGenProviderConfig, GenerationResult, GenerateOptions } from "../types";
3
3
  export declare class CommitGenProvider implements AIProvider {
4
4
  name: string;
5
5
  private token;
6
6
  private apiUrl;
7
7
  constructor(config: CommitGenProviderConfig);
8
- generateCommitMessage(analysis: GitAnalysis): Promise<CommitMessage[]>;
8
+ generateCommitMessage(analysis: GitAnalysis, options?: GenerateOptions): Promise<GenerationResult>;
9
9
  }
@@ -11,7 +11,8 @@ class CommitGenProvider {
11
11
  this.apiUrl =
12
12
  process.env.COMMITGEN_API_URL || "https://commitgen.aevr.space";
13
13
  }
14
- async generateCommitMessage(analysis) {
14
+ async generateCommitMessage(analysis, options) {
15
+ var _a;
15
16
  if (!this.token) {
16
17
  throw new Error("Authorization token is required for CommitGen provider");
17
18
  }
@@ -24,6 +25,7 @@ class CommitGenProvider {
24
25
  },
25
26
  body: JSON.stringify({
26
27
  diff: analysis.diff,
28
+ hint: options === null || options === void 0 ? void 0 : options.hint,
27
29
  }),
28
30
  });
29
31
  if (!response.ok) {
@@ -37,32 +39,48 @@ class CommitGenProvider {
37
39
  throw new Error(errorData.error || `API Error: ${response.statusText}`);
38
40
  }
39
41
  const data = (await response.json());
40
- const message = data.message;
42
+ let message = data.message;
43
+ // Clean up conversational prefixes
44
+ message = message
45
+ .replace(/^(Here is|Here's) (the|a) commit message.*:\s*/i, "")
46
+ .replace(/^Sure, here is.*\n/i, "")
47
+ .replace(/^Title:\s*/i, "")
48
+ .replace(/^Commit Message:\s*/i, "")
49
+ .trim();
41
50
  // Parse the message into CommitMessage format
42
51
  // Expected format from prompt: <type>(<scope>): <subject>\n\n<body>
43
52
  const firstLineMatch = message.match(/^(\w+)(?:\(([^)]+)\))?: (.+)$/m);
44
53
  if (!firstLineMatch) {
45
54
  // Fallback or simple parsing
46
- return [
47
- {
48
- type: "chore",
49
- subject: message.split("\n")[0],
50
- body: message.split("\n").slice(1).join("\n").trim(),
51
- },
52
- ];
55
+ return {
56
+ messages: [
57
+ {
58
+ type: "chore",
59
+ subject: message.split("\n")[0],
60
+ body: message.split("\n").slice(1).join("\n").trim(),
61
+ },
62
+ ],
63
+ };
53
64
  }
54
65
  const type = firstLineMatch[1];
55
66
  const scope = firstLineMatch[2];
56
67
  const subject = firstLineMatch[3];
57
68
  const body = message.substring(firstLineMatch[0].length).trim();
58
- return [
59
- {
60
- type,
61
- scope,
62
- subject,
63
- body,
69
+ return {
70
+ messages: [
71
+ {
72
+ type,
73
+ scope,
74
+ subject,
75
+ body,
76
+ },
77
+ ],
78
+ usage: {
79
+ cost: data.creditsUsed || 0,
80
+ remaining: data.creditsRemaining || 0,
81
+ tier: (_a = data.usage) === null || _a === void 0 ? void 0 : _a.tier,
64
82
  },
65
- ];
83
+ };
66
84
  }
67
85
  catch (error) {
68
86
  if (error instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"commitgen.js","sourceRoot":"","sources":["../../src/providers/commitgen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitgen.js","sourceRoot":"","sources":["../../src/providers/commitgen.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { BaseProvider } from "./base";
2
- import { GitAnalysis, CommitMessage, AIProvider } from "../types";
2
+ import { GitAnalysis, AIProvider, GenerationResult, GenerateOptions } from "../types";
3
3
  export declare class VercelGoogleProvider extends BaseProvider implements AIProvider {
4
4
  name: string;
5
5
  private apiKey;
6
6
  private model;
7
7
  constructor(apiKey?: string, model?: string);
8
- generateCommitMessage(analysis: GitAnalysis): Promise<CommitMessage[]>;
8
+ generateCommitMessage(analysis: GitAnalysis, options?: GenerateOptions): Promise<GenerationResult>;
9
9
  private getFallbackSuggestions;
10
10
  }
@@ -15,15 +15,19 @@ class VercelGoogleProvider extends base_1.BaseProvider {
15
15
  throw new Error("Google API key is required. Set GOOGLE_GENERATIVE_AI_API_KEY environment variable or pass it in config.");
16
16
  }
17
17
  }
18
- async generateCommitMessage(analysis) {
18
+ async generateCommitMessage(analysis, options) {
19
19
  this.analysis = analysis;
20
20
  try {
21
21
  const google = (0, google_1.createGoogleGenerativeAI)({
22
22
  apiKey: this.apiKey,
23
23
  });
24
+ let systemPrompt = this.buildSystemPrompt();
25
+ if (options === null || options === void 0 ? void 0 : options.hint) {
26
+ systemPrompt += `\n\n## User Instructions\nThe user has provided the following specific instructions/hint. You MUST incorporate this into your generation:\n"${options.hint}"`;
27
+ }
24
28
  const { text } = await (0, ai_1.generateText)({
25
29
  model: google(this.model),
26
- system: this.buildSystemPrompt(),
30
+ system: systemPrompt,
27
31
  prompt: this.buildAnalysisPrompt(analysis),
28
32
  temperature: 0.7,
29
33
  maxRetries: 2, // Reduce retries to fail faster
@@ -34,7 +38,7 @@ class VercelGoogleProvider extends base_1.BaseProvider {
34
38
  throw new Error("Failed to parse AI response");
35
39
  }
36
40
  const suggestions = JSON.parse(jsonMatch[0]);
37
- return suggestions.slice(0, 5);
41
+ return { messages: suggestions.slice(0, 5) };
38
42
  }
39
43
  catch (error) {
40
44
  // Check for specific error types
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-google.js","sourceRoot":"","sources":["../../src/providers/vercel-google.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vercel-google.js","sourceRoot":"","sources":["../../src/providers/vercel-google.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -5,10 +5,6 @@ export interface CommitMessage {
5
5
  body?: string;
6
6
  breaking?: boolean;
7
7
  }
8
- export interface AIProvider {
9
- name: string;
10
- generateCommitMessage(analysis: GitAnalysis): Promise<CommitMessage[]>;
11
- }
12
8
  export interface ProviderConfig {
13
9
  provider: "vercel-google" | "vercel-openai" | "groq" | "openai" | "google" | "local" | "commitgen";
14
10
  apiKey?: string;
@@ -47,7 +43,19 @@ export interface GitAnalysis {
47
43
  hasUnstaged: boolean;
48
44
  diff: string;
49
45
  }
46
+ export interface GenerationUsage {
47
+ cost: number;
48
+ remaining: number;
49
+ tier?: string;
50
+ }
51
+ export interface GenerationResult {
52
+ messages: CommitMessage[];
53
+ usage?: GenerationUsage;
54
+ }
55
+ export interface GenerateOptions {
56
+ hint?: string;
57
+ }
50
58
  export interface AIProvider {
51
59
  name: string;
52
- generateCommitMessage(analysis: GitAnalysis): Promise<CommitMessage[]>;
60
+ generateCommitMessage(analysis: GitAnalysis, options?: GenerateOptions): Promise<GenerationResult>;
53
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untools/commitgen",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "CLI to create generate commit messages",
5
5
  "main": "dist/index.js",
6
6
  "bin": {