geeto 0.9.0 → 0.10.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.
Files changed (166) hide show
  1. package/README.md +77 -18
  2. package/lib/api/copilot-sdk.d.ts.map +1 -1
  3. package/lib/api/copilot-sdk.js +63 -36
  4. package/lib/api/copilot-sdk.js.map +1 -1
  5. package/lib/api/copilot.d.ts.map +1 -1
  6. package/lib/api/copilot.js +6 -6
  7. package/lib/api/copilot.js.map +1 -1
  8. package/lib/api/gemini.d.ts.map +1 -1
  9. package/lib/api/gemini.js +2 -2
  10. package/lib/api/gemini.js.map +1 -1
  11. package/lib/api/groq-sdk.d.ts +11 -0
  12. package/lib/api/groq-sdk.d.ts.map +1 -0
  13. package/lib/api/groq-sdk.js +131 -0
  14. package/lib/api/groq-sdk.js.map +1 -0
  15. package/lib/api/groq.d.ts +10 -0
  16. package/lib/api/groq.d.ts.map +1 -0
  17. package/lib/api/groq.js +36 -0
  18. package/lib/api/groq.js.map +1 -0
  19. package/lib/api/openrouter-sdk.d.ts.map +1 -1
  20. package/lib/api/openrouter-sdk.js +58 -73
  21. package/lib/api/openrouter-sdk.js.map +1 -1
  22. package/lib/api/openrouter.d.ts.map +1 -1
  23. package/lib/api/openrouter.js +2 -2
  24. package/lib/api/openrouter.js.map +1 -1
  25. package/lib/api/trello.d.ts +16 -1
  26. package/lib/api/trello.d.ts.map +1 -1
  27. package/lib/api/trello.js +90 -2
  28. package/lib/api/trello.js.map +1 -1
  29. package/lib/cli/input.d.ts +1 -9
  30. package/lib/cli/input.d.ts.map +1 -1
  31. package/lib/cli/input.js +428 -169
  32. package/lib/cli/input.js.map +1 -1
  33. package/lib/cli/menu.d.ts.map +1 -1
  34. package/lib/cli/menu.js +33 -20
  35. package/lib/cli/menu.js.map +1 -1
  36. package/lib/core/copilot-setup.d.ts +6 -1
  37. package/lib/core/copilot-setup.d.ts.map +1 -1
  38. package/lib/core/copilot-setup.js +40 -34
  39. package/lib/core/copilot-setup.js.map +1 -1
  40. package/lib/core/gemini-setup.d.ts.map +1 -1
  41. package/lib/core/gemini-setup.js +7 -13
  42. package/lib/core/gemini-setup.js.map +1 -1
  43. package/lib/core/github-setup.d.ts.map +1 -1
  44. package/lib/core/github-setup.js +13 -7
  45. package/lib/core/github-setup.js.map +1 -1
  46. package/lib/core/gitlab-setup.d.ts.map +1 -1
  47. package/lib/core/gitlab-setup.js +13 -6
  48. package/lib/core/gitlab-setup.js.map +1 -1
  49. package/lib/core/groq-setup.d.ts +5 -0
  50. package/lib/core/groq-setup.d.ts.map +1 -0
  51. package/lib/core/groq-setup.js +67 -0
  52. package/lib/core/groq-setup.js.map +1 -0
  53. package/lib/core/openrouter-setup.d.ts.map +1 -1
  54. package/lib/core/openrouter-setup.js +11 -21
  55. package/lib/core/openrouter-setup.js.map +1 -1
  56. package/lib/core/setup.d.ts +2 -1
  57. package/lib/core/setup.d.ts.map +1 -1
  58. package/lib/core/setup.js +44 -7
  59. package/lib/core/setup.js.map +1 -1
  60. package/lib/index.js +25 -0
  61. package/lib/index.js.map +1 -1
  62. package/lib/types/index.d.ts +9 -1
  63. package/lib/types/index.d.ts.map +1 -1
  64. package/lib/utils/ai-workflow.d.ts +10 -2
  65. package/lib/utils/ai-workflow.d.ts.map +1 -1
  66. package/lib/utils/ai-workflow.js +15 -0
  67. package/lib/utils/ai-workflow.js.map +1 -1
  68. package/lib/utils/branch-naming.d.ts +2 -1
  69. package/lib/utils/branch-naming.d.ts.map +1 -1
  70. package/lib/utils/branch-naming.js +114 -68
  71. package/lib/utils/branch-naming.js.map +1 -1
  72. package/lib/utils/config.d.ts +11 -3
  73. package/lib/utils/config.d.ts.map +1 -1
  74. package/lib/utils/config.js +46 -18
  75. package/lib/utils/config.js.map +1 -1
  76. package/lib/utils/exec.d.ts.map +1 -1
  77. package/lib/utils/exec.js +10 -2
  78. package/lib/utils/exec.js.map +1 -1
  79. package/lib/utils/git-ai-errors.d.ts.map +1 -1
  80. package/lib/utils/git-ai-errors.js +5 -1
  81. package/lib/utils/git-ai-errors.js.map +1 -1
  82. package/lib/utils/git-ai.d.ts +8 -7
  83. package/lib/utils/git-ai.d.ts.map +1 -1
  84. package/lib/utils/git-ai.js +239 -117
  85. package/lib/utils/git-ai.js.map +1 -1
  86. package/lib/utils/logging.d.ts.map +1 -1
  87. package/lib/utils/logging.js +14 -3
  88. package/lib/utils/logging.js.map +1 -1
  89. package/lib/utils/menu-builders.js +1 -1
  90. package/lib/utils/menu-builders.js.map +1 -1
  91. package/lib/utils/prompts-embedded.d.ts.map +1 -1
  92. package/lib/utils/prompts-embedded.js +0 -81
  93. package/lib/utils/prompts-embedded.js.map +1 -1
  94. package/lib/utils/scramble.d.ts.map +1 -1
  95. package/lib/utils/scramble.js +14 -3
  96. package/lib/utils/scramble.js.map +1 -1
  97. package/lib/utils/state.d.ts.map +1 -1
  98. package/lib/utils/state.js +12 -1
  99. package/lib/utils/state.js.map +1 -1
  100. package/lib/version.d.ts +1 -1
  101. package/lib/version.d.ts.map +1 -1
  102. package/lib/version.js +1 -1
  103. package/lib/version.js.map +1 -1
  104. package/lib/workflows/ai-provider.d.ts +3 -1
  105. package/lib/workflows/ai-provider.d.ts.map +1 -1
  106. package/lib/workflows/ai-provider.js +8 -2
  107. package/lib/workflows/ai-provider.js.map +1 -1
  108. package/lib/workflows/branch-helpers.d.ts.map +1 -1
  109. package/lib/workflows/branch-helpers.js +142 -71
  110. package/lib/workflows/branch-helpers.js.map +1 -1
  111. package/lib/workflows/branch.d.ts.map +1 -1
  112. package/lib/workflows/branch.js +97 -58
  113. package/lib/workflows/branch.js.map +1 -1
  114. package/lib/workflows/commit.d.ts +1 -1
  115. package/lib/workflows/commit.d.ts.map +1 -1
  116. package/lib/workflows/commit.js +97 -35
  117. package/lib/workflows/commit.js.map +1 -1
  118. package/lib/workflows/dry-run.d.ts.map +1 -1
  119. package/lib/workflows/dry-run.js +6 -0
  120. package/lib/workflows/dry-run.js.map +1 -1
  121. package/lib/workflows/issue.d.ts.map +1 -1
  122. package/lib/workflows/issue.js +12 -12
  123. package/lib/workflows/issue.js.map +1 -1
  124. package/lib/workflows/main-helpers.d.ts +3 -1
  125. package/lib/workflows/main-helpers.d.ts.map +1 -1
  126. package/lib/workflows/main-helpers.js +30 -26
  127. package/lib/workflows/main-helpers.js.map +1 -1
  128. package/lib/workflows/main.d.ts.map +1 -1
  129. package/lib/workflows/main.js +164 -13
  130. package/lib/workflows/main.js.map +1 -1
  131. package/lib/workflows/pr.d.ts.map +1 -1
  132. package/lib/workflows/pr.js +12 -12
  133. package/lib/workflows/pr.js.map +1 -1
  134. package/lib/workflows/release-merge.d.ts.map +1 -1
  135. package/lib/workflows/release-merge.js +65 -11
  136. package/lib/workflows/release-merge.js.map +1 -1
  137. package/lib/workflows/release-sync.d.ts.map +1 -1
  138. package/lib/workflows/release-sync.js +87 -12
  139. package/lib/workflows/release-sync.js.map +1 -1
  140. package/lib/workflows/release.d.ts.map +1 -1
  141. package/lib/workflows/release.js +130 -15
  142. package/lib/workflows/release.js.map +1 -1
  143. package/lib/workflows/repo-settings.d.ts.map +1 -1
  144. package/lib/workflows/repo-settings.js +35 -8
  145. package/lib/workflows/repo-settings.js.map +1 -1
  146. package/lib/workflows/reword.d.ts.map +1 -1
  147. package/lib/workflows/reword.js +60 -17
  148. package/lib/workflows/reword.js.map +1 -1
  149. package/lib/workflows/settings.d.ts +3 -1
  150. package/lib/workflows/settings.d.ts.map +1 -1
  151. package/lib/workflows/settings.js +393 -75
  152. package/lib/workflows/settings.js.map +1 -1
  153. package/lib/workflows/submodules.d.ts +6 -0
  154. package/lib/workflows/submodules.d.ts.map +1 -0
  155. package/lib/workflows/submodules.js +344 -0
  156. package/lib/workflows/submodules.js.map +1 -0
  157. package/lib/workflows/trello-menu.d.ts +0 -3
  158. package/lib/workflows/trello-menu.d.ts.map +1 -1
  159. package/lib/workflows/trello-menu.js +349 -19
  160. package/lib/workflows/trello-menu.js.map +1 -1
  161. package/package.json +13 -2
  162. package/lib/workflows/security-gate.d.ts +0 -8
  163. package/lib/workflows/security-gate.d.ts.map +0 -1
  164. package/lib/workflows/security-gate.js +0 -455
  165. package/lib/workflows/security-gate.js.map +0 -1
  166. package/prompts/security-gate-prompt.md +0 -80
@@ -23,11 +23,14 @@ export function getAIProviderDisplayName(aiProvider) {
23
23
  return 'Gemini';
24
24
  }
25
25
  case 'copilot': {
26
- return 'GitHub (Recommended)';
26
+ return 'GitHub Copilot';
27
27
  }
28
28
  case 'openrouter': {
29
29
  return 'OpenRouter';
30
30
  }
31
+ case 'groq': {
32
+ return 'Groq';
33
+ }
31
34
  default: {
32
35
  return 'Manual';
33
36
  }
@@ -40,11 +43,14 @@ export function getAIProviderShortName(aiProvider) {
40
43
  return 'Gemini';
41
44
  }
42
45
  case 'copilot': {
43
- return 'Copilot';
46
+ return 'GitHub Copilot';
44
47
  }
45
48
  case 'openrouter': {
46
49
  return 'OpenRouter';
47
50
  }
51
+ case 'groq': {
52
+ return 'Groq';
53
+ }
48
54
  default: {
49
55
  return 'Manual';
50
56
  }
@@ -62,7 +68,7 @@ export function getModelDisplayName(aiProvider, model) {
62
68
  return model;
63
69
  }
64
70
  /** Ask the right provider to generate a branch-name suffix. */
65
- export async function generateBranchNameWithProvider(aiProvider, title, correction, copilotModel, openrouterModel, geminiModel) {
71
+ export async function generateBranchNameWithProvider(aiProvider, title, correction, copilotModel, openrouterModel, geminiModel, groqModel) {
66
72
  switch (aiProvider) {
67
73
  case 'gemini': {
68
74
  const { generateBranchName } = await import('../api/gemini.js');
@@ -72,13 +78,17 @@ export async function generateBranchNameWithProvider(aiProvider, title, correcti
72
78
  const { generateBranchName } = await import('../api/copilot.js');
73
79
  return generateBranchName(title, correction, copilotModel);
74
80
  }
81
+ case 'groq': {
82
+ const { generateBranchName } = await import('../api/groq.js');
83
+ return generateBranchName(title, correction, groqModel);
84
+ }
75
85
  default: {
76
86
  const { generateBranchName } = await import('../api/openrouter.js');
77
87
  return generateBranchName(title, correction, openrouterModel);
78
88
  }
79
89
  }
80
90
  }
81
- export async function generateReleaseNotesWithProvider(aiProvider, commits, language, correction, copilotModel, openrouterModel, geminiModel) {
91
+ export async function generateReleaseNotesWithProvider(aiProvider, commits, language, correction, copilotModel, openrouterModel, geminiModel, groqModel) {
82
92
  switch (aiProvider) {
83
93
  case 'gemini': {
84
94
  const { generateReleaseNotes } = await import('../api/gemini.js');
@@ -88,6 +98,10 @@ export async function generateReleaseNotesWithProvider(aiProvider, commits, lang
88
98
  const { generateReleaseNotes } = await import('../api/copilot.js');
89
99
  return generateReleaseNotes(commits, language, correction, copilotModel);
90
100
  }
101
+ case 'groq': {
102
+ const { generateReleaseNotes } = await import('../api/groq.js');
103
+ return generateReleaseNotes(commits, language, correction, groqModel);
104
+ }
91
105
  default: {
92
106
  const { generateReleaseNotes } = await import('../api/openrouter.js');
93
107
  return generateReleaseNotes(commits, language, correction, openrouterModel);
@@ -95,7 +109,7 @@ export async function generateReleaseNotesWithProvider(aiProvider, commits, lang
95
109
  }
96
110
  }
97
111
  /** Send a raw text prompt to the configured AI provider and return the response. */
98
- export async function generateTextWithProvider(aiProvider, prompt, copilotModel, openrouterModel, geminiModel) {
112
+ export async function generateTextWithProvider(aiProvider, prompt, copilotModel, openrouterModel, geminiModel, groqModel) {
99
113
  switch (aiProvider) {
100
114
  case 'gemini': {
101
115
  const { generateText } = await import('../api/gemini.js');
@@ -105,6 +119,10 @@ export async function generateTextWithProvider(aiProvider, prompt, copilotModel,
105
119
  const { generateText } = await import('../api/copilot.js');
106
120
  return generateText(prompt, copilotModel);
107
121
  }
122
+ case 'groq': {
123
+ const { generateText } = await import('../api/groq.js');
124
+ return generateText(prompt, groqModel);
125
+ }
108
126
  default: {
109
127
  const { generateText } = await import('../api/openrouter.js');
110
128
  return generateText(prompt, openrouterModel);
@@ -112,7 +130,7 @@ export async function generateTextWithProvider(aiProvider, prompt, copilotModel,
112
130
  }
113
131
  }
114
132
  /** Ask the right provider to generate a commit message from a diff. */
115
- export async function generateCommitMessageWithProvider(aiProvider, diff, correction, copilotModel, openrouterModel, geminiModel) {
133
+ export async function generateCommitMessageWithProvider(aiProvider, diff, correction, copilotModel, openrouterModel, geminiModel, groqModel) {
116
134
  switch (aiProvider) {
117
135
  case 'gemini': {
118
136
  const { generateCommitMessage } = await import('../api/gemini.js');
@@ -122,6 +140,10 @@ export async function generateCommitMessageWithProvider(aiProvider, diff, correc
122
140
  const { generateCommitMessage } = await import('../api/copilot.js');
123
141
  return generateCommitMessage(diff, correction, copilotModel);
124
142
  }
143
+ case 'groq': {
144
+ const { generateCommitMessage } = await import('../api/groq.js');
145
+ return generateCommitMessage(diff, correction, groqModel);
146
+ }
125
147
  default: {
126
148
  const { generateCommitMessage } = await import('../api/openrouter.js');
127
149
  return generateCommitMessage(diff, correction, openrouterModel);
@@ -331,6 +353,22 @@ export async function interactiveAIFallback(currentSuffix, aiProvider, model, di
331
353
  spinner.stop();
332
354
  break;
333
355
  }
356
+ case 'groq': {
357
+ const groqApi = await import('../api/groq.js');
358
+ const { generateBranchName, generateCommitMessage } = groqApi;
359
+ const spinner = new ScrambleProgress();
360
+ spinner.start([
361
+ `Retrying with Groq${getModelValue(currentModel) ? ` (${getModelValue(currentModel)})` : ''}`,
362
+ ]);
363
+ if (isCommit) {
364
+ aiSuffix = await generateCommitMessage(diff || 'Code changes', correction, currentModel);
365
+ }
366
+ else {
367
+ aiSuffix = await generateBranchName(diff || 'Code changes', correction, currentModel);
368
+ }
369
+ spinner.stop();
370
+ break;
371
+ }
334
372
  default: {
335
373
  break;
336
374
  }
@@ -381,7 +419,7 @@ export async function interactiveAIFallback(currentSuffix, aiProvider, model, di
381
419
  const copOptions = models.some((m) => m.value === 'back')
382
420
  ? models
383
421
  : [...models, { label: 'Back to try again model selection', value: 'back' }];
384
- const chosen = await select('Choose a different Copilot model:', copOptions);
422
+ const chosen = await select('Choose a different GitHub Copilot model:', copOptions);
385
423
  if (chosen === 'back') {
386
424
  continue; // Go back to try again model selection
387
425
  }
@@ -390,7 +428,7 @@ export async function interactiveAIFallback(currentSuffix, aiProvider, model, di
390
428
  updateModel?.('copilot', chosen);
391
429
  const spinner = new ScrambleProgress();
392
430
  spinner.start([
393
- `${isCommit ? 'Generating commit message' : 'Generating branch name'} with GitHub (${chosen})`,
431
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with GitHub Copilot (${chosen})`,
394
432
  ]);
395
433
  if (isCommit) {
396
434
  const res = await generateCommitMessage(diff, correction, chosen);
@@ -437,132 +475,197 @@ export async function interactiveAIFallback(currentSuffix, aiProvider, model, di
437
475
  }
438
476
  continue;
439
477
  }
440
- }
441
- if (pick === 'different-provider') {
442
- const providers = ['gemini', 'copilot', 'openrouter'].filter((p) => p !== aiProvider);
443
- const providerOptions = providers.map((p) => ({
444
- label: getAIProviderDisplayName(p),
445
- value: p,
446
- }));
447
- const provOptionsWithBack = providerOptions.some((p) => p.value === 'back')
448
- ? providerOptions
449
- : [...providerOptions, { label: 'Back to try again model selection', value: 'back' }];
450
- const pickProv = await select('Choose AI provider:', provOptionsWithBack);
451
- if (pickProv === 'back') {
452
- continue; // return to try-again model selection
453
- }
454
- if (pickProv === 'gemini') {
455
- // user selected Gemini provider — allow model choice and apply immediately
456
- log.info(`Selected AI Provider: Gemini`);
457
- const { ensureAIProvider } = await import('../core/setup.js');
458
- const geminiReady = await ensureAIProvider('gemini');
459
- if (!geminiReady) {
460
- continue;
461
- }
462
- const gem = await import('../api/gemini.js');
463
- const models = await gem.getGeminiModels();
464
- const gemOptions = models.some((m) => m.value === 'back')
465
- ? models
466
- : [...models, { label: 'Back to try again model selection', value: 'back' }];
467
- const chosenModel = await select('Choose Gemini model:', gemOptions);
468
- if (chosenModel === 'back') {
469
- continue; // Go back to try again model selection
470
- }
471
- // set active provider + model for subsequent retries
472
- aiProvider = 'gemini';
473
- currentModel = chosenModel;
474
- updateModel?.('gemini', chosenModel);
475
- const spinner = new ScrambleProgress();
476
- spinner.start([
477
- `${isCommit ? 'Generating commit message' : 'Generating branch name'} with Gemini (${chosenModel})`,
478
- ]);
479
- if (isCommit) {
480
- // Use built-in Gemini API for commit generation
481
- const res = await gem.generateCommitMessage(diff, correction, chosenModel);
482
- aiSuffix = res;
483
- }
484
- else {
485
- const res = await gem.generateBranchName(diff, correction, chosenModel);
486
- aiSuffix = res;
487
- }
488
- spinner.stop();
489
- }
490
- else if (pickProv === 'copilot') {
491
- log.info(`Selected AI Provider: Copilot`);
492
- const { ensureAIProvider } = await import('../core/setup.js');
493
- const copilotReady = await ensureAIProvider('copilot');
494
- if (!copilotReady) {
495
- continue;
496
- }
497
- const cop = await import('../api/copilot.js');
498
- const { getCopilotModels, generateBranchName, generateCommitMessage } = cop;
499
- const models = await getCopilotModels();
500
- const copOptions = models.some((m) => m.value === 'back')
478
+ if (aiProvider === 'groq') {
479
+ const groqApi = await import('../api/groq.js');
480
+ const { generateBranchName, generateCommitMessage, getGroqModels } = groqApi;
481
+ const models = await getGroqModels();
482
+ const groqOptions = models.some((m) => m.value === 'back')
501
483
  ? models
502
484
  : [...models, { label: 'Back to try again model selection', value: 'back' }];
503
- const chosen = await select('Choose Copilot model:', copOptions);
485
+ const chosen = await select('Choose a different Groq model:', groqOptions);
504
486
  if (chosen === 'back') {
505
- continue; // Go back to try again model selection
487
+ continue;
506
488
  }
507
- // user already selected a model from the menu — apply it immediately
508
- aiProvider = 'copilot';
509
489
  currentModel = chosen;
510
- updateModel?.('copilot', chosen);
490
+ updateModel?.('groq', chosen);
511
491
  const spinner = new ScrambleProgress();
512
492
  spinner.start([
513
- `${isCommit ? 'Generating commit message' : 'Generating branch name'} with GitHub (${chosen})`,
493
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with Groq (${chosen})`,
514
494
  ]);
515
495
  if (isCommit) {
516
- const res = await generateCommitMessage(diff, correction, chosen);
517
- aiSuffix = res;
496
+ aiSuffix = await generateCommitMessage(diff, correction, chosen);
518
497
  }
519
498
  else {
520
- const res = await generateBranchName(diff, correction, chosen);
521
- aiSuffix = res;
499
+ aiSuffix = await generateBranchName(diff || 'Code changes', correction, chosen);
522
500
  }
523
501
  spinner.stop();
502
+ if (isTransientFailure(aiSuffix)) {
503
+ failedModels.add(chosen);
504
+ }
505
+ continue;
524
506
  }
525
- else {
526
- log.info(`Selected AI Provider: OpenRouter`);
527
- const { ensureAIProvider } = await import('../core/setup.js');
528
- const openrouterReady = await ensureAIProvider('openrouter');
529
- if (!openrouterReady) {
530
- continue;
507
+ }
508
+ if (pick === 'different-provider') {
509
+ const providers = ['gemini', 'copilot', 'openrouter', 'groq'].filter((p) => p !== aiProvider);
510
+ const providerOptions = providers.map((p) => ({
511
+ label: getAIProviderDisplayName(p),
512
+ value: p,
513
+ }));
514
+ const provOptionsWithBack = providerOptions.some((p) => p.value === 'back')
515
+ ? providerOptions
516
+ : [...providerOptions, { label: 'Back to try again model selection', value: 'back' }];
517
+ const pickProv = await select('Choose AI provider:', provOptionsWithBack);
518
+ if (pickProv === 'back') {
519
+ continue; // return to try-again model selection
520
+ }
521
+ switch (pickProv) {
522
+ case 'gemini': {
523
+ // user selected Gemini provider — allow model choice and apply immediately
524
+ log.info(`Selected AI Provider: Gemini`);
525
+ const { ensureAIProvider } = await import('../core/setup.js');
526
+ const geminiReady = await ensureAIProvider('gemini');
527
+ if (!geminiReady) {
528
+ continue;
529
+ }
530
+ const gem = await import('../api/gemini.js');
531
+ const models = await gem.getGeminiModels();
532
+ const gemOptions = models.some((m) => m.value === 'back')
533
+ ? models
534
+ : [...models, { label: 'Back to try again model selection', value: 'back' }];
535
+ const chosenModel = await select('Choose Gemini model:', gemOptions);
536
+ if (chosenModel === 'back') {
537
+ continue; // Go back to try again model selection
538
+ }
539
+ // set active provider + model for subsequent retries
540
+ aiProvider = 'gemini';
541
+ currentModel = chosenModel;
542
+ updateModel?.('gemini', chosenModel);
543
+ const spinner = new ScrambleProgress();
544
+ spinner.start([
545
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with Gemini (${chosenModel})`,
546
+ ]);
547
+ if (isCommit) {
548
+ // Use built-in Gemini API for commit generation
549
+ const res = await gem.generateCommitMessage(diff, correction, chosenModel);
550
+ aiSuffix = res;
551
+ }
552
+ else {
553
+ const res = await gem.generateBranchName(diff, correction, chosenModel);
554
+ aiSuffix = res;
555
+ }
556
+ spinner.stop();
557
+ break;
531
558
  }
532
- const or = await import('../api/openrouter.js');
533
- const { generateBranchName, generateCommitMessage, getOpenRouterModels } = or;
534
- const models = await getOpenRouterModels();
535
- const orOptions = models.some((m) => m.value === 'back')
536
- ? models
537
- : [...models, { label: 'Back to try again model selection', value: 'back' }];
538
- const chosen = await select('Choose OpenRouter Model:', orOptions);
539
- if (chosen === 'back') {
540
- continue; // Go back to try again model selection
559
+ case 'copilot': {
560
+ log.info(`Selected AI Provider: GitHub Copilot`);
561
+ const { ensureAIProvider } = await import('../core/setup.js');
562
+ const copilotReady = await ensureAIProvider('copilot');
563
+ if (!copilotReady) {
564
+ continue;
565
+ }
566
+ const cop = await import('../api/copilot.js');
567
+ const { getCopilotModels, generateBranchName, generateCommitMessage } = cop;
568
+ const models = await getCopilotModels();
569
+ const copOptions = models.some((m) => m.value === 'back')
570
+ ? models
571
+ : [...models, { label: 'Back to try again model selection', value: 'back' }];
572
+ const chosen = await select('Choose GitHub Copilot model:', copOptions);
573
+ if (chosen === 'back') {
574
+ continue; // Go back to try again model selection
575
+ }
576
+ // user already selected a model from the menu — apply it immediately
577
+ aiProvider = 'copilot';
578
+ currentModel = chosen;
579
+ updateModel?.('copilot', chosen);
580
+ const spinner = new ScrambleProgress();
581
+ spinner.start([
582
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with GitHub Copilot (${chosen})`,
583
+ ]);
584
+ if (isCommit) {
585
+ const res = await generateCommitMessage(diff, correction, chosen);
586
+ aiSuffix = res;
587
+ }
588
+ else {
589
+ const res = await generateBranchName(diff, correction, chosen);
590
+ aiSuffix = res;
591
+ }
592
+ spinner.stop();
593
+ break;
541
594
  }
542
- // user already selected a model from the menu — apply it immediately
543
- aiProvider = 'openrouter';
544
- currentModel = chosen;
545
- updateModel?.('openrouter', chosen);
546
- const spinner = new ScrambleProgress();
547
- spinner.start([
548
- `${isCommit ? 'Generating commit message' : 'Generating branch name'} with OpenRouter (${chosen})`,
549
- ]);
550
- if (isCommit) {
551
- const res = await generateCommitMessage(diff, correction, chosen);
552
- aiSuffix = res;
595
+ case 'openrouter': {
596
+ log.info(`Selected AI Provider: OpenRouter`);
597
+ const { ensureAIProvider } = await import('../core/setup.js');
598
+ const openrouterReady = await ensureAIProvider('openrouter');
599
+ if (!openrouterReady) {
600
+ continue;
601
+ }
602
+ const or = await import('../api/openrouter.js');
603
+ const { generateBranchName, generateCommitMessage, getOpenRouterModels } = or;
604
+ const models = await getOpenRouterModels();
605
+ const orOptions = models.some((m) => m.value === 'back')
606
+ ? models
607
+ : [...models, { label: 'Back to try again model selection', value: 'back' }];
608
+ const chosen = await select('Choose OpenRouter Model:', orOptions);
609
+ if (chosen === 'back') {
610
+ continue;
611
+ }
612
+ aiProvider = 'openrouter';
613
+ currentModel = chosen;
614
+ updateModel?.('openrouter', chosen);
615
+ const spinner = new ScrambleProgress();
616
+ spinner.start([
617
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with OpenRouter (${chosen})`,
618
+ ]);
619
+ if (isCommit) {
620
+ aiSuffix = await generateCommitMessage(diff, correction, chosen);
621
+ }
622
+ else {
623
+ aiSuffix = await generateBranchName(diff, correction, chosen);
624
+ }
625
+ spinner.stop();
626
+ break;
553
627
  }
554
- else {
555
- const res = await generateBranchName(diff, correction, chosen);
556
- aiSuffix = res;
628
+ case 'groq': {
629
+ log.info(`Selected AI Provider: Groq`);
630
+ const { ensureAIProvider } = await import('../core/setup.js');
631
+ const groqReady = await ensureAIProvider('groq');
632
+ if (!groqReady) {
633
+ continue;
634
+ }
635
+ const groqApi = await import('../api/groq.js');
636
+ const { generateBranchName, generateCommitMessage, getGroqModels } = groqApi;
637
+ const models = await getGroqModels();
638
+ const groqOptions = models.some((m) => m.value === 'back')
639
+ ? models
640
+ : [...models, { label: 'Back to try again model selection', value: 'back' }];
641
+ const chosen = await select('Choose Groq model:', groqOptions);
642
+ if (chosen === 'back') {
643
+ continue;
644
+ }
645
+ aiProvider = 'groq';
646
+ currentModel = chosen;
647
+ updateModel?.('groq', chosen);
648
+ const spinner = new ScrambleProgress();
649
+ spinner.start([
650
+ `${isCommit ? 'Generating commit message' : 'Generating branch name'} with Groq (${chosen})`,
651
+ ]);
652
+ if (isCommit) {
653
+ aiSuffix = await generateCommitMessage(diff, correction, chosen);
654
+ }
655
+ else {
656
+ aiSuffix = await generateBranchName(diff, correction, chosen);
657
+ }
658
+ spinner.stop();
659
+ break;
557
660
  }
558
- spinner.stop();
661
+ // No default
559
662
  }
560
663
  continue;
561
664
  }
562
665
  }
563
666
  }
564
- export async function getBranchNameFromDiffUsingProvider(provider, diff, correction, copilotModel, openrouterModel) {
565
- return generateBranchNameWithProvider(provider, diff, correction, copilotModel, openrouterModel);
667
+ export async function getBranchNameFromDiffUsingProvider(provider, diff, correction, copilotModel, openrouterModel, geminiModel, groqModel) {
668
+ return generateBranchNameWithProvider(provider, diff, correction, copilotModel, openrouterModel, geminiModel, groqModel);
566
669
  }
567
670
  /**
568
671
  * Ensure provider setup and prompt the user to choose a model for that provider.
@@ -570,7 +673,7 @@ export async function getBranchNameFromDiffUsingProvider(provider, diff, correct
570
673
  */
571
674
  export async function chooseModelForProvider(provider, prompt, backLabel) {
572
675
  if (provider === 'copilot') {
573
- log.info(`Selected AI Provider: Copilot`);
676
+ log.info(`Selected AI Provider: GitHub Copilot`);
574
677
  const { ensureAIProvider } = await import('../core/setup.js');
575
678
  const ready = await ensureAIProvider(provider);
576
679
  if (!ready) {
@@ -580,12 +683,12 @@ export async function chooseModelForProvider(provider, prompt, backLabel) {
580
683
  const models = (await cop.getCopilotModels());
581
684
  // Check if no models are available (SDK not installed or not functioning)
582
685
  if (models.length === 0) {
583
- log.warn('Copilot SDK not available.');
686
+ log.warn('GitHub Copilot API not accessible.');
584
687
  console.log('');
585
- log.info('The Copilot CLI is required to use Copilot models.');
688
+ log.info('A GitHub account with Copilot access (free tier or subscription) is required.');
586
689
  console.log('');
587
690
  const { confirm } = await import('../cli/input.js');
588
- const shouldInstall = confirm('Setup Copilot CLI now?');
691
+ const shouldInstall = confirm('Setup GitHub Copilot now?');
589
692
  if (shouldInstall) {
590
693
  console.log('');
591
694
  // Use the comprehensive setup helper instead of manual exec
@@ -601,7 +704,7 @@ export async function chooseModelForProvider(provider, prompt, backLabel) {
601
704
  ? modelsAfterInstall
602
705
  : [...modelsAfterInstall, { label: backLabel ?? 'Back', value: 'back' }];
603
706
  const { select } = await import('../cli/menu.js');
604
- const chosen = await select(prompt ?? 'Choose Copilot model:', options);
707
+ const chosen = await select(prompt ?? 'Choose GitHub Copilot model:', options);
605
708
  return chosen;
606
709
  }
607
710
  else {
@@ -624,7 +727,7 @@ export async function chooseModelForProvider(provider, prompt, backLabel) {
624
727
  ? models
625
728
  : [...models, { label: backLabel ?? 'Back', value: 'back' }];
626
729
  const { select } = await import('../cli/menu.js');
627
- const chosen = await select(prompt ?? 'Choose Copilot model:', options);
730
+ const chosen = await select(prompt ?? 'Choose GitHub Copilot model:', options);
628
731
  return chosen;
629
732
  }
630
733
  if (provider === 'openrouter') {
@@ -648,6 +751,25 @@ export async function chooseModelForProvider(provider, prompt, backLabel) {
648
751
  const chosen = await select(prompt ?? 'Choose OpenRouter model:', options);
649
752
  return chosen;
650
753
  }
754
+ if (provider === 'groq') {
755
+ log.info(`Selected AI Provider: Groq`);
756
+ const { ensureAIProvider } = await import('../core/setup.js');
757
+ const ready = await ensureAIProvider('groq');
758
+ if (!ready)
759
+ return undefined;
760
+ const groqApi = await import('../api/groq.js');
761
+ const models = await groqApi.getGroqModels();
762
+ if (models.length === 0) {
763
+ log.warn('No Groq models available.');
764
+ return undefined;
765
+ }
766
+ const options = models.some((m) => m.value === 'back')
767
+ ? models
768
+ : [...models, { label: backLabel ?? 'Back', value: 'back' }];
769
+ const { select } = await import('../cli/menu.js');
770
+ const chosen = await select(prompt ?? 'Choose Groq model:', options);
771
+ return chosen;
772
+ }
651
773
  // Gemini
652
774
  log.info(`Selected AI Provider: Gemini`);
653
775
  const { ensureAIProvider } = await import('../core/setup.js');
@@ -1 +1 @@
1
- {"version":3,"file":"git-ai.js","sourceRoot":"","sources":["../../src/utils/git-ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-ai.js","sourceRoot":"","sources":["../../src/utils/git-ai.ts"],"names":[],"mappings":"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"}