commic 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MainOrchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/MainOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MainOrchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/MainOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -88,9 +88,8 @@ export declare class UIManager {
88
88
  /**
89
89
  * Display AI generation info
90
90
  * @param model Model name being used
91
- * @param suggestionCount Number of suggestions generated
92
91
  */
93
- showAIGenerationInfo(model: string, suggestionCount: number): void;
92
+ showAIGenerationInfo(model: string): void;
94
93
  /**
95
94
  * Prompt user for API key
96
95
  * @returns Entered API key
@@ -114,5 +113,10 @@ export declare class UIManager {
114
113
  * @returns true if confirmed, false otherwise
115
114
  */
116
115
  promptForConfirmation(message: string): Promise<boolean>;
116
+ /**
117
+ * Prompt user for custom instruction to regenerate commit messages
118
+ * @returns Custom instruction string or empty string if cancelled
119
+ */
120
+ promptForCustomInstruction(): Promise<string>;
117
121
  }
118
122
  //# sourceMappingURL=UIManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UIManager.d.ts","sourceRoot":"","sources":["../../src/ui/UIManager.ts"],"names":[],"mappings":"AAGA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF;;OAEG;IACH,WAAW,IAAI,IAAI;IA0CnB;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;OAIG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKlE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAQjC;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;;;;OAMG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI;IAgBP;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA6B7F;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAUlE;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBxC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BvD;;;;OAIG;IACG,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAiFhF;;;;OAIG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAY/D"}
1
+ {"version":3,"file":"UIManager.d.ts","sourceRoot":"","sources":["../../src/ui/UIManager.ts"],"names":[],"mappings":"AAGA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF;;OAEG;IACH,WAAW,IAAI,IAAI;IA0CnB;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;OAIG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKlE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAQjC;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;;;;OAMG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI;IAgBP;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA6B7F;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQzC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBxC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BvD;;;;OAIG;IACG,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAwFhF;;;;OAIG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa9D;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;CAiBpD"}
@@ -207,11 +207,10 @@ export class UIManager {
207
207
  /**
208
208
  * Display AI generation info
209
209
  * @param model Model name being used
210
- * @param suggestionCount Number of suggestions generated
211
210
  */
212
- showAIGenerationInfo(model, suggestionCount) {
211
+ showAIGenerationInfo(model) {
213
212
  console.log(this.colors.muted(` 🤖 Model: ${chalk.cyan.bold(model)}`));
214
- console.log(this.colors.muted(` 📝 Generating ${chalk.cyan.bold(suggestionCount)} commit message suggestions...`));
213
+ console.log(this.colors.muted(` 📝 Generating ${chalk.cyan.bold(5)} commit message suggestions...`));
215
214
  console.log();
216
215
  }
217
216
  /**
@@ -250,7 +249,7 @@ export class UIManager {
250
249
  name: 'model',
251
250
  message: 'Select Gemini model:',
252
251
  choices: models.map((model) => {
253
- if (model === 'gemini-2.5-flash') {
252
+ if (model === 'gemini-3-flash-preview') {
254
253
  return {
255
254
  name: `${model} ${chalk.gray('(stable)')}`,
256
255
  value: model,
@@ -311,6 +310,12 @@ export class UIManager {
311
310
  short: firstLine,
312
311
  };
313
312
  });
313
+ // Add regenerate with prompt option
314
+ choices.push({
315
+ name: chalk.cyan('🔄 Regenerate with prompt'),
316
+ value: -2,
317
+ short: 'Regenerate',
318
+ });
314
319
  // Add cancel option
315
320
  choices.push({
316
321
  name: chalk.red("✖ Cancel (don't commit)"),
@@ -327,8 +332,8 @@ export class UIManager {
327
332
  loop: false,
328
333
  },
329
334
  ]);
330
- // Show preview of selected message if not cancelled
331
- if (answer.selection !== -1) {
335
+ // Show preview of selected message if not cancelled and not regenerate
336
+ if (answer.selection !== -1 && answer.selection !== -2) {
332
337
  this.newLine();
333
338
  this.showSectionHeader('✅ Selected commit message');
334
339
  console.log();
@@ -365,5 +370,25 @@ export class UIManager {
365
370
  ]);
366
371
  return answer.confirmed;
367
372
  }
373
+ /**
374
+ * Prompt user for custom instruction to regenerate commit messages
375
+ * @returns Custom instruction string or empty string if cancelled
376
+ */
377
+ async promptForCustomInstruction() {
378
+ const answer = await inquirer.prompt([
379
+ {
380
+ type: 'input',
381
+ name: 'instruction',
382
+ message: 'Enter your instruction for regenerating commit messages:',
383
+ validate: (input) => {
384
+ if (!input || input.trim().length === 0) {
385
+ return 'Instruction cannot be empty';
386
+ }
387
+ return true;
388
+ },
389
+ },
390
+ ]);
391
+ return answer.instruction.trim();
392
+ }
368
393
  }
369
394
  //# sourceMappingURL=UIManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UIManager.js","sourceRoot":"","sources":["../../src/ui/UIManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UIManager.js","sourceRoot":"","sources":["../../src/ui/UIManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAiB,MAAM,KAAK,CAAC;AAGpC;;;GAGG;AACH,MAAM,OAAO,SAAS;IACH,MAAM,GAAG;QACxB,OAAO,EAAE,KAAK,CAAC,IAAI;QACnB,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,GAAG;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC;IAEF;;OAEG;IACH,WAAW;QACT,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzB,IAAI;YACJ,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC;YAClE,MAAM;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;YAChC,IAAI;YACJ,OAAO;YACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC;YAC1D,IAAI;YACJ,OAAO;YACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC;YACzD,IAAI;YACJ,OAAO;YACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC;YACxD,IAAI;YACJ,OAAO;YACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAC1C,MAAM;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACrC,IAAI;YACJ,iCAAiC;YACjC,IAAI;YACJ,4CAA4C;YAC5C,IAAI;YACJ,oCAAoC;YACpC,IAAI;YACJ,wCAAwC,CAAC;QAE3C,OAAO,CAAC,GAAG,CACT,IAAI;YACF,KAAK,CAAC,WAAW,EAAE;gBACjB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,MAAM;aACpB,CAAC;YACF,IAAI,CACP,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAAe;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAe,EAAE,OAAgB;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,OAAe,EAAE,UAAkB;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAAe;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,OAAe;QACzB,OAAO,GAAG,CAAC;YACT,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAa;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAe,EAAE,KAAc;QAC/C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,QAAgB,EAChB,MAAc,EACd,QAAgB,EAChB,SAAyB;QAEzB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,KAAsE;QACpF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEtD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,QAAQ,UAAU,CAAC,CAAC;QAExE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;QAC5C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,YAAY,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,KAAa;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAC1F,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,yBAAyB,CAAC;oBACnC,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACtB,OAAO,sDAAsD,CAAC;oBAChE,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,MAAgB;QACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,KAAK,KAAK,wBAAwB,EAAE,CAAC;wBACvC,OAAO;4BACL,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;4BAC1C,KAAK,EAAE,KAAK;yBACb,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,KAAK,qBAAqB,EAAE,CAAC;wBAC3C,OAAO;4BACL,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE;4BAC9D,KAAK,EAAE,KAAK;yBACb,CAAC;oBACJ,CAAC;oBACD,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK;qBACb,CAAC;gBACJ,CAAC,CAAC;gBACF,OAAO,EAAE,qBAAqB;aAC/B;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAAC,WAA+B;QAC5D,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,wCAAwC;QACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,OAAO,CAAC,GAAG,CACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CACpF,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACxE,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;YAC7C,KAAK,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,oBAAoB;QACpB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,0BAA0B;gBACnC,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,KAAK;aACZ;SACF,CAAC,CAAC;QAEH,uEAAuE;QACvE,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO;gBACP,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,0BAA0B;QAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,0DAA0D;gBACnE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,6BAA6B,CAAC;oBACvC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commic",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "AI-powered Git commit message generator with Conventional Commits support",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,4 +1,5 @@
1
1
  import { type GenerativeModel, GoogleGenerativeAI } from '@google/generative-ai';
2
+ import { buildCommitPrompt } from '../config/CommitPromptTemplate.js';
2
3
  import { APIError, ValidationError } from '../errors/CustomErrors.js';
3
4
  import type { CommitSuggestion, GitDiff } from '../types/index.js';
4
5
  import { ConventionalCommitsValidator } from '../validation/ConventionalCommitsValidator.js';
@@ -18,63 +19,11 @@ export class AIService {
18
19
  /**
19
20
  * Build prompt for Gemini API to generate commit messages
20
21
  * @param diff Git diff information
21
- * @param count Number of suggestions to generate (3-5)
22
+ * @param customInstruction Optional custom instruction to add to the prompt
22
23
  * @returns Formatted prompt string
23
24
  */
24
- private buildPrompt(diff: GitDiff, count: number): string {
25
- // Combine staged and unstaged diffs
26
- const combinedDiff = [diff.staged, diff.unstaged].filter((d) => d.length > 0).join('\n\n');
27
-
28
- // Truncate diff if too large (Gemini input token limit: 1,048,576 tokens)
29
- // Using ~800K characters (approx 200K-266K tokens) leaves plenty of room for prompt
30
- // 1 token ≈ 3-4 characters on average, so 800K chars ≈ 200K-266K tokens
31
- const maxDiffLength = 800000;
32
- const truncatedDiff =
33
- combinedDiff.length > maxDiffLength
34
- ? combinedDiff.substring(0, maxDiffLength) +
35
- '\n\n[... diff truncated due to size limit ...]'
36
- : combinedDiff;
37
-
38
- return `You are an expert Git commit message writer. Analyze the ENTIRE Git diff below and generate ${count} commit messages that summarize ALL changes together. Each commit message should cover the complete set of changes, not individual features.
39
-
40
- IMPORTANT:
41
- - Analyze ALL changes in the diff as a single commit
42
- - Each suggested message should describe the complete set of changes
43
- - Do NOT create separate messages for different parts of the diff
44
- - Consider all file changes, additions, deletions, and modifications together
45
- - Provide different perspectives/styles for the SAME set of changes
46
-
47
- CRITICAL RULES:
48
- 1. Format: type(scope)?: description
49
- 2. Valid types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
50
- 3. Use imperative mood (add, fix, update - NOT added, fixed, updated)
51
- 4. Description starts with lowercase
52
- 5. Single-line messages: max 72 chars, no body
53
- 6. Multi-line messages: blank line between subject and body
54
- 7. At least 2 messages should be single-line
55
- 8. Each message must summarize ALL changes in the diff
56
-
57
- OUTPUT FORMAT:
58
- Separate each commit message with exactly "---" on its own line.
59
- Return ONLY the messages, no explanations or numbering.
60
-
61
- EXAMPLES (each covers all changes):
62
- feat(auth): add JWT validation and user login flow
63
- ---
64
- fix: resolve authentication issues and update error handling
65
- ---
66
- refactor(auth): improve JWT implementation and error messages
67
-
68
- Update token validation logic and add comprehensive error handling
69
- ---
70
- feat: implement user authentication system
71
-
72
- Add JWT token validation, login endpoints, and error handling
73
-
74
- GIT DIFF:
75
- ${truncatedDiff}
76
-
77
- Generate ${count} commit messages that each describe ALL the changes above:`;
25
+ private buildPrompt(diff: GitDiff, customInstruction?: string): string {
26
+ return buildCommitPrompt(diff, customInstruction);
78
27
  }
79
28
 
80
29
  /**
@@ -242,15 +191,15 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
242
191
  /**
243
192
  * Generate commit message suggestions using Gemini API
244
193
  * @param diff Git diff information
245
- * @param count Number of suggestions to generate (3-5)
194
+ * @param customInstruction Optional custom instruction to add to the prompt
246
195
  * @returns Array of validated commit suggestions
247
196
  * @throws APIError if API request fails
248
197
  * @throws ValidationError if no valid suggestions generated
249
198
  */
250
- async generateCommitMessages(diff: GitDiff, count: number = 4): Promise<CommitSuggestion[]> {
251
- // Ensure count is within bounds
252
- const requestCount = Math.max(3, Math.min(5, count));
253
-
199
+ async generateCommitMessages(
200
+ diff: GitDiff,
201
+ customInstruction?: string
202
+ ): Promise<CommitSuggestion[]> {
254
203
  let attempts = 0;
255
204
  const maxAttempts = 3;
256
205
  let bestSuggestions: CommitSuggestion[] = [];
@@ -260,7 +209,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
260
209
 
261
210
  try {
262
211
  // Build prompt
263
- const prompt = this.buildPrompt(diff, requestCount);
212
+ const prompt = this.buildPrompt(diff, customInstruction);
264
213
 
265
214
  // Call Gemini API with timeout
266
215
  const timeoutPromise = new Promise<never>((_, reject) =>
@@ -290,13 +239,14 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
290
239
  if (validSuggestions.length > 0) {
291
240
  // If we meet minimum requirements, return them
292
241
  if (this.meetsMinimumRequirements(validSuggestions)) {
293
- // Limit to requested count, prioritizing single-line messages
242
+ // Prioritize single-line messages
294
243
  const sorted = validSuggestions.sort((a, b) => {
295
244
  if (a.type === 'single-line' && b.type !== 'single-line') return -1;
296
245
  if (a.type !== 'single-line' && b.type === 'single-line') return 1;
297
246
  return 0;
298
247
  });
299
- return sorted.slice(0, requestCount);
248
+ // Return up to 5 suggestions (as per prompt)
249
+ return sorted.slice(0, 5);
300
250
  }
301
251
 
302
252
  // Store best suggestions so far
@@ -313,7 +263,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
313
263
 
314
264
  // If we have at least 2 valid suggestions, return them even if not perfect
315
265
  if (validSuggestions.length >= 2) {
316
- return validSuggestions.slice(0, requestCount);
266
+ return validSuggestions.slice(0, 5);
317
267
  }
318
268
  } catch (error) {
319
269
  const errorMessage = (error as Error).message.toLowerCase();
@@ -347,7 +297,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
347
297
 
348
298
  // If we have some valid suggestions, return them as fallback
349
299
  if (bestSuggestions.length >= 1) {
350
- return bestSuggestions.slice(0, requestCount);
300
+ return bestSuggestions.slice(0, 5);
351
301
  }
352
302
 
353
303
  // Last resort: try to generate a simple fallback message
@@ -0,0 +1,93 @@
1
+ import type { GitDiff } from '../types/index.js';
2
+
3
+ /**
4
+ * Builds the prompt template for generating commit messages
5
+ * @param diff Git diff information
6
+ * @param customInstruction Optional custom instruction from user
7
+ * @returns Formatted prompt string
8
+ */
9
+ export function buildCommitPrompt(diff: GitDiff, customInstruction?: string): string {
10
+ // Combine staged and unstaged diffs
11
+ const combinedDiff = [diff.staged, diff.unstaged].filter((d) => d.length > 0).join('\n\n');
12
+
13
+ // Truncate diff if too large (Gemini input token limit: 1,048,576 tokens)
14
+ // Using ~800K characters (approx 200K-266K tokens) leaves plenty of room for prompt
15
+ // 1 token ≈ 3-4 characters on average, so 800K chars ≈ 200K-266K tokens
16
+ const maxDiffLength = 800000;
17
+ const truncatedDiff =
18
+ combinedDiff.length > maxDiffLength
19
+ ? `${combinedDiff.substring(0, maxDiffLength)}\n\n[... diff truncated due to size limit ...]`
20
+ : combinedDiff;
21
+
22
+ return `You are an expert Git commit message writer. Analyze the ENTIRE Git diff below and generate exactly 5 commit messages that summarize ALL changes together. Each commit message should cover the complete set of changes, not individual features.
23
+
24
+ IMPORTANT:
25
+ - Analyze ALL changes in the diff as a single commit
26
+ - Each suggested message should describe the complete set of changes
27
+ - Do NOT create separate messages for different parts of the diff
28
+ - Consider all file changes, additions, deletions, and modifications together
29
+ - Provide different perspectives/styles for the SAME set of changes
30
+
31
+ LANGUAGE:
32
+ - Output must be in English only.
33
+ - Commit subjects and bodies must be English, even if the diff content or comments are in another language.
34
+ - Do NOT include any non-English words unless they are proper nouns or exact identifiers from the diff.
35
+
36
+ FILE CONTEXT FIRST (NEW / RENAMED FILES):
37
+ - Treat added, removed, or renamed files as high-signal context.
38
+ - When a new file is added, first infer its purpose from:
39
+ 1) file path and directory (e.g., docs/, .github/, scripts/, src/, config/)
40
+ 2) file name and extension (e.g., CHANGELOG.md, README.md, package.json, *.yml)
41
+ 3) how or where it is referenced by other changes in the diff
42
+ - Only after that, use the file contents for details.
43
+ - Do NOT let incidental values inside the file override the primary change.
44
+
45
+ CONTEXT PRIORITY EXAMPLES:
46
+ - If CHANGELOG.md (or similar release notes) is added or newly introduced, the message must mention adding or updating the changelog as a primary change.
47
+ - For generated or aggregated artifacts (changelog entries, lockfiles, snapshots), summarize the artifact-level change rather than listing internal values.
48
+
49
+ ADDITIONAL CRITICAL RULE (TYPE CONSISTENCY):
50
+ - First, determine ONE primary commit type that best matches the ENTIRE diff.
51
+ - Then, ALL 5 suggested commit messages MUST use the SAME chosen type.
52
+ - Do NOT vary the type across suggestions.
53
+ - Vary only wording, style, emphasis, and optionally scope.
54
+
55
+ Type selection guidance (pick the single best fit for the whole diff):
56
+ - feat: new user-facing capability or new behavior
57
+ - fix: bug fix or incorrect behavior
58
+ - refactor: internal restructuring without behavior change
59
+ - perf: performance improvements
60
+ - docs: documentation-only changes (README, CHANGELOG, /docs)
61
+ - test: test-only changes
62
+ - ci: CI pipeline or workflow changes
63
+ - build: build system or dependency changes
64
+ - chore: maintenance, tooling, or non-functional changes
65
+ - style: formatting-only changes (no logic change)
66
+ If multiple apply, choose the most user-impacting one.
67
+ If unclear, choose chore.
68
+ Type selection must prioritize file context over content details.
69
+
70
+ Avoid overfitting to literal values (versions, numbers, dates) unless the main purpose of the diff is to change those values.
71
+
72
+ CRITICAL RULES:
73
+ 1. Format: <CHOSEN_TYPE>(scope)?: description
74
+ 2. Valid types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
75
+ 3. Use imperative mood (add, fix, update — NOT added, fixed, updated)
76
+ 4. Description must start with lowercase
77
+ 5. Single-line messages: max 72 characters, no body
78
+ 6. Multi-line messages: blank line between subject and body
79
+ 7. Output must include exactly:
80
+ - 3 single-line commit messages
81
+ - 2 multi-line commit messages
82
+ 8. Each message must summarize ALL changes in the diff
83
+ 9. Do NOT output the chosen type separately; it must only appear in the messages.
84
+
85
+ OUTPUT FORMAT:
86
+ - Separate each commit message with exactly "---" on its own line.
87
+ - Return ONLY the commit messages, no explanations, no numbering.
88
+
89
+ ${customInstruction ? `USER INSTRUCTION:\n${customInstruction}\n\n` : ''}GIT DIFF:
90
+ ${truncatedDiff}
91
+
92
+ Generate exactly 5 commit messages that each describe ALL the changes above:`;
93
+ }
@@ -129,7 +129,7 @@ export class ConfigManager {
129
129
  }
130
130
 
131
131
  // Prompt for model selection
132
- const availableModels = ['gemini-2.5-flash', 'gemini-flash-latest'];
132
+ const availableModels = ['gemini-3-flash-preview', 'gemini-flash-latest'];
133
133
  const model = await ui.promptForModel(availableModels);
134
134
 
135
135
  return {
@@ -206,12 +206,23 @@ export class GitService {
206
206
  }> {
207
207
  try {
208
208
  const git: SimpleGit = simpleGit(repoPath);
209
- const diffSummary = await git.diffSummary();
209
+
210
+ // Get staged changes stats
211
+ const stagedSummary = await git.diffSummary(['--cached']);
212
+
213
+ // Get unstaged changes stats
214
+ const unstagedSummary = await git.diffSummary();
215
+
216
+ // Combine both staged and unstaged stats
217
+ const allFiles = new Set([
218
+ ...stagedSummary.files.map((f) => f.file),
219
+ ...unstagedSummary.files.map((f) => f.file),
220
+ ]);
210
221
 
211
222
  return {
212
- filesChanged: diffSummary.files.length,
213
- insertions: diffSummary.insertions,
214
- deletions: diffSummary.deletions,
223
+ filesChanged: allFiles.size,
224
+ insertions: stagedSummary.insertions + unstagedSummary.insertions,
225
+ deletions: stagedSummary.deletions + unstagedSummary.deletions,
215
226
  };
216
227
  } catch (_error) {
217
228
  return {
@@ -32,14 +32,31 @@ export class MainOrchestrator {
32
32
  const repositoryPath = options.path || '.';
33
33
  const repository = await this.findAndValidateRepository(repositoryPath);
34
34
 
35
+ // Step 2.5: Stage all changes
36
+ await this.stageAllChanges(repository.rootPath);
37
+
35
38
  // Step 3: Get Git diff
36
39
  const diff = await this.getGitDiff(repository.rootPath);
37
40
 
38
41
  // Step 4: Generate commit suggestions
39
- const suggestions = await this.generateSuggestions(config, diff);
42
+ let suggestions = await this.generateSuggestions(config, diff);
43
+ let customInstruction: string | undefined;
44
+
45
+ // Step 5: Let user select a commit message (with regenerate option)
46
+ let selectedIndex = await this.uiManager.promptForCommitSelection(suggestions);
40
47
 
41
- // Step 5: Let user select a commit message
42
- const selectedIndex = await this.uiManager.promptForCommitSelection(suggestions);
48
+ // Handle regenerate with prompt loop
49
+ while (selectedIndex === -2) {
50
+ // Get custom instruction from user
51
+ customInstruction = await this.uiManager.promptForCustomInstruction();
52
+
53
+ // Regenerate suggestions with custom instruction
54
+ this.uiManager.newLine();
55
+ suggestions = await this.generateSuggestions(config, diff, customInstruction);
56
+
57
+ // Prompt again with new suggestions
58
+ selectedIndex = await this.uiManager.promptForCommitSelection(suggestions);
59
+ }
43
60
 
44
61
  // Handle cancellation
45
62
  if (selectedIndex === -1) {
@@ -47,10 +64,7 @@ export class MainOrchestrator {
47
64
  return;
48
65
  }
49
66
 
50
- // Step 6: Stage changes if needed
51
- await this.stageChangesIfNeeded(repository.rootPath, diff);
52
-
53
- // Step 7: Execute commit
67
+ // Step 6: Execute commit (changes already staged)
54
68
  const commitHash = await this.executeCommit(
55
69
  repository.rootPath,
56
70
  suggestions[selectedIndex].message
@@ -181,18 +195,19 @@ export class MainOrchestrator {
181
195
  * Generate commit message suggestions using AI
182
196
  * @param config Configuration with API key
183
197
  * @param diff Git diff
198
+ * @param customInstruction Optional custom instruction for regeneration
184
199
  * @returns Array of suggestions
185
200
  */
186
- private async generateSuggestions(config: Config, diff: any) {
201
+ private async generateSuggestions(config: Config, diff: any, customInstruction?: string) {
187
202
  this.uiManager.newLine();
188
203
  this.uiManager.showSectionHeader('🤖 AI Generation');
189
- this.uiManager.showAIGenerationInfo(config.model, 4);
204
+ this.uiManager.showAIGenerationInfo(config.model);
190
205
 
191
206
  const spinner = this.uiManager.showLoading(' Generating commit messages...');
192
207
 
193
208
  try {
194
209
  const aiService = new AIService(config.apiKey, config.model);
195
- const suggestions = await aiService.generateCommitMessages(diff, 4);
210
+ const suggestions = await aiService.generateCommitMessages(diff, customInstruction);
196
211
 
197
212
  spinner.succeed(` Generated ${suggestions.length} suggestions`);
198
213
  this.uiManager.newLine();
@@ -205,22 +220,18 @@ export class MainOrchestrator {
205
220
  }
206
221
 
207
222
  /**
208
- * Stage changes if there are unstaged changes
223
+ * Stage all changes in the repository
209
224
  * @param repoPath Repository root path
210
- * @param diff Git diff
211
225
  */
212
- private async stageChangesIfNeeded(repoPath: string, diff: any): Promise<void> {
213
- if (diff.unstaged && diff.unstaged.length > 0) {
226
+ private async stageAllChanges(repoPath: string): Promise<void> {
227
+ const spinner = this.uiManager.showLoading('Staging all changes...');
228
+ try {
229
+ await this.gitService.stageAll(repoPath);
230
+ spinner.succeed('All changes staged');
214
231
  this.uiManager.newLine();
215
- const spinner = this.uiManager.showLoading('Staging changes...');
216
- try {
217
- await this.gitService.stageAll(repoPath);
218
- spinner.succeed('Changes staged');
219
- this.uiManager.newLine();
220
- } catch (error) {
221
- spinner.fail('Failed to stage changes');
222
- throw error;
223
- }
232
+ } catch (error) {
233
+ spinner.fail('Failed to stage changes');
234
+ throw error;
224
235
  }
225
236
  }
226
237
 
@@ -241,14 +241,11 @@ export class UIManager {
241
241
  /**
242
242
  * Display AI generation info
243
243
  * @param model Model name being used
244
- * @param suggestionCount Number of suggestions generated
245
244
  */
246
- showAIGenerationInfo(model: string, suggestionCount: number): void {
245
+ showAIGenerationInfo(model: string): void {
247
246
  console.log(this.colors.muted(` 🤖 Model: ${chalk.cyan.bold(model)}`));
248
247
  console.log(
249
- this.colors.muted(
250
- ` 📝 Generating ${chalk.cyan.bold(suggestionCount)} commit message suggestions...`
251
- )
248
+ this.colors.muted(` 📝 Generating ${chalk.cyan.bold(5)} commit message suggestions...`)
252
249
  );
253
250
  console.log();
254
251
  }
@@ -291,7 +288,7 @@ export class UIManager {
291
288
  name: 'model',
292
289
  message: 'Select Gemini model:',
293
290
  choices: models.map((model) => {
294
- if (model === 'gemini-2.5-flash') {
291
+ if (model === 'gemini-3-flash-preview') {
295
292
  return {
296
293
  name: `${model} ${chalk.gray('(stable)')}`,
297
294
  value: model,
@@ -359,6 +356,13 @@ export class UIManager {
359
356
  };
360
357
  });
361
358
 
359
+ // Add regenerate with prompt option
360
+ choices.push({
361
+ name: chalk.cyan('🔄 Regenerate with prompt'),
362
+ value: -2,
363
+ short: 'Regenerate',
364
+ });
365
+
362
366
  // Add cancel option
363
367
  choices.push({
364
368
  name: chalk.red("✖ Cancel (don't commit)"),
@@ -377,8 +381,8 @@ export class UIManager {
377
381
  },
378
382
  ]);
379
383
 
380
- // Show preview of selected message if not cancelled
381
- if (answer.selection !== -1) {
384
+ // Show preview of selected message if not cancelled and not regenerate
385
+ if (answer.selection !== -1 && answer.selection !== -2) {
382
386
  this.newLine();
383
387
  this.showSectionHeader('✅ Selected commit message');
384
388
  console.log();
@@ -417,4 +421,26 @@ export class UIManager {
417
421
 
418
422
  return answer.confirmed;
419
423
  }
424
+
425
+ /**
426
+ * Prompt user for custom instruction to regenerate commit messages
427
+ * @returns Custom instruction string or empty string if cancelled
428
+ */
429
+ async promptForCustomInstruction(): Promise<string> {
430
+ const answer = await inquirer.prompt([
431
+ {
432
+ type: 'input',
433
+ name: 'instruction',
434
+ message: 'Enter your instruction for regenerating commit messages:',
435
+ validate: (input: string) => {
436
+ if (!input || input.trim().length === 0) {
437
+ return 'Instruction cannot be empty';
438
+ }
439
+ return true;
440
+ },
441
+ },
442
+ ]);
443
+
444
+ return answer.instruction.trim();
445
+ }
420
446
  }