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
package/README.md CHANGED
@@ -9,16 +9,15 @@
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
11
11
 
12
- Geeto automates your entire Git workflow — from staging to cleanup — with AI-powered branch naming, commit messages, release management, and Trello integration. Supports Gemini, Copilot, and OpenRouter.
12
+ Geeto automates your entire Git workflow — from staging to cleanup — with AI-powered branch naming, commit messages, release management, and Trello integration. Supports Gemini, GitHub Copilot, OpenRouter, and Groq.
13
13
 
14
14
  ---
15
15
 
16
16
  ## Highlights
17
17
 
18
- - **AI-Powered** — Branch names, commit messages, and release notes generated by Gemini, Copilot, or OpenRouter
18
+ - **AI-Powered** — Branch names, commit messages, and release notes generated by Gemini, GitHub Copilot, OpenRouter, or Groq
19
19
  - **Full Git Workflow** — Stage → Branch → Commit → Push → Merge → Cleanup in one command
20
20
  - **Release Manager** — Semver bumping (stable + alpha/beta/rc), CHANGELOG.md, RELEASE.MD, GitHub/GitLab Releases, tag recovery
21
- - **Inline Editor** — Built-in terminal editor with syntax highlighting (no vim needed)
22
21
  - **Trello Integration** — Link branches to cards, generate AI agent task lists
23
22
  - **GitHub + GitLab** — Pull Requests / Merge Requests, Issues, repo settings, all from the terminal
24
23
  - **Git Toolkit** — Branch cleanup, switcher, compare, cherry-pick, stash, amend, undo, stats, history
@@ -39,7 +38,20 @@ brew install geeto
39
38
  ### APT (Debian / Ubuntu)
40
39
 
41
40
  ```bash
42
- curl -fsSL "https://github.com/rust142/geeto/releases/latest/download/geeto_$(curl -s https://api.github.com/repos/rust142/geeto/releases/latest | grep tag_name | cut -d '"' -f4 | tr -d v)_amd64.deb" -o geeto.deb
41
+ ARCH="$(dpkg --print-architecture)"
42
+ case "$ARCH" in
43
+ amd64|arm64) ;;
44
+ *) echo "Unsupported architecture: $ARCH"; exit 1 ;;
45
+ esac
46
+
47
+ DEB_URL="$(
48
+ curl -fsSL https://api.github.com/repos/rust142/geeto/releases/latest \
49
+ | grep -Eo "https://github.com/rust142/geeto/releases/download/[^\"]+/geeto_[^\"]+_${ARCH}\.deb" \
50
+ | head -n 1
51
+ )"
52
+ [ -n "$DEB_URL" ] || { echo "Could not find latest Geeto .deb for ${ARCH}"; exit 1; }
53
+
54
+ curl -fL "$DEB_URL" -o geeto.deb
43
55
  sudo dpkg -i geeto.deb
44
56
  rm geeto.deb
45
57
  ```
@@ -142,11 +154,12 @@ geeto
142
154
 
143
155
  On first run, Geeto guides you through AI provider setup:
144
156
 
145
- | Provider | Setup |
146
- | -------------- | ------------------------------------------------------------------------------- |
147
- | **Gemini** | Enter API key from [Google AI Studio](https://makersuite.google.com/app/apikey) |
148
- | **OpenRouter** | Enter API key from [OpenRouter](https://openrouter.ai/keys) |
149
- | **Copilot** | Auto-configured via [GitHub CLI](https://cli.github.com/) |
157
+ | Provider | Setup |
158
+ | ------------------ | --------------------------------------------------------------------------------------------------------------- |
159
+ | **Gemini** | Enter API key from [Google AI Studio](https://makersuite.google.com/app/apikey) |
160
+ | **OpenRouter** | Enter API key from [OpenRouter](https://openrouter.ai/keys) |
161
+ | **GitHub Copilot** | Uses Copilot REST API via [GitHub CLI](https://cli.github.com/) token — requires Copilot access (free or paid). |
162
+ | **Groq** | Free API key from [console.groq.com/keys](https://console.groq.com/keys) — free models: Llama, Gemma, Mixtral. |
150
163
 
151
164
  All config is saved locally in `.geeto/`.
152
165
 
@@ -224,6 +237,7 @@ Each step can also be run individually.
224
237
  | -------------------------- | ---------------------------- |
225
238
  | `geeto --setup-gemini` | Configure Gemini AI |
226
239
  | `geeto --setup-openrouter` | Configure OpenRouter AI |
240
+ | `geeto --setup-copilot` | Configure GitHub Copilot |
227
241
  | `geeto --setup-github` | Configure GitHub token |
228
242
  | `geeto --setup-gitlab` | Configure GitLab token |
229
243
  | `geeto --setup-trello` | Configure Trello integration |
@@ -231,16 +245,15 @@ Each step can also be run individually.
231
245
  | `geeto --sync-models` | Fetch latest model list |
232
246
  | `geeto --separator` | Set branch name separator |
233
247
 
234
- ### Editor & Options
248
+ ### Options
235
249
 
236
- | Command | Description |
237
- | ---------------------- | --------------------------------------------------- |
238
- | `geeto <file>` | Open file in inline editor with syntax highlighting |
239
- | `geeto -f, --fresh` | Start fresh (ignore checkpoint) |
240
- | `geeto -r, --resume` | Resume from last checkpoint |
241
- | `geeto -dr, --dry-run` | Simulate commands without executing |
242
- | `geeto -v, --version` | Show version |
243
- | `geeto -h, --help` | Show help |
250
+ | Command | Description |
251
+ | ---------------------- | ----------------------------------- |
252
+ | `geeto -f, --fresh` | Start fresh (ignore checkpoint) |
253
+ | `geeto -r, --resume` | Resume from last checkpoint |
254
+ | `geeto -dr, --dry-run` | Simulate commands without executing |
255
+ | `geeto -v, --version` | Show version |
256
+ | `geeto -h, --help` | Show help |
244
257
 
245
258
  ---
246
259
 
@@ -256,6 +269,52 @@ Creates `.github/instructions/tasks.instructions.md` with structured task lists
256
269
 
257
270
  ---
258
271
 
272
+ ## `.geeto/` Directory
273
+
274
+ > **v0.10.0+** — `.geeto/` is the only supported config location. Any config from previous versions outside this directory is no longer read.
275
+
276
+ Geeto supports two config locations with **local priority**:
277
+
278
+ | Location | Scope | Priority |
279
+ | ----------- | --------------------- | ----------------------------------- |
280
+ | `.geeto/` | Project-local | **Higher** — overrides global |
281
+ | `~/.geeto/` | Global (all projects) | Fallback when no local config found |
282
+
283
+ Set up once globally, every new project picks it up automatically. Override per-project by creating a local `.geeto/` config.
284
+
285
+ **New project setup:** run any `--setup-*` command and choose "Save globally" when prompted — no copy-paste needed.
286
+
287
+ **Already have local config?** Open Settings (`geeto --settings` or via main menu) → AI → **Save AI config globally (~/.geeto/)** — moves all local AI config files to global in one step.
288
+
289
+ The `.geeto/` folder is automatically added to `.gitignore` on first run (never committed). `~/.geeto/` lives outside any repo.
290
+
291
+ ### Config files
292
+
293
+ | File | Created by | Purpose |
294
+ | ---------------------- | ------------------------- | ------------------------------------------------------------------------- |
295
+ | `gemini.toml` | `--setup-gemini` | Gemini API key |
296
+ | `openrouter.toml` | `--setup-openrouter` | OpenRouter API key |
297
+ | `groq.toml` | `--setup-groq` | Groq API key |
298
+ | `github.toml` | `--setup-github` | GitHub personal access token |
299
+ | `gitlab.toml` | `--setup-gitlab` | GitLab token + instance URL |
300
+ | `trello.toml` | `--setup-trello` | Trello API key, token, board ID |
301
+ | `branch-strategy.toml` | `--separator` / first run | Branch separator char and last naming strategy (project-only, not global) |
302
+
303
+ ### State & cache files
304
+
305
+ These are always project-local — not read from `~/.geeto/`.
306
+
307
+ | File | Created by | Purpose |
308
+ | ------------------------- | ----------------------------------- | ------------------------------------------------------------------------ |
309
+ | `geeto-state.json` | Automatically | Checkpoint state for workflow recovery (`-r, --resume`) |
310
+ | `openrouter-model.json` | `--sync-models` | Persisted OpenRouter model list (filtered, text/code only) |
311
+ | `gemini-model.json` | `--sync-models` | Persisted Gemini model list |
312
+ | `groq-model.json` | `--sync-models` | Persisted Groq model list |
313
+ | `copilot-model.json` | `--setup-copilot` / `--sync-models` | Persisted GitHub Copilot model list |
314
+ | `last-ai-suggestion.json` | Every AI call | Last raw AI response — inspect when branch/commit suggestions look wrong |
315
+
316
+ ---
317
+
259
318
  ## Development
260
319
 
261
320
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-sdk.d.ts","sourceRoot":"","sources":["../../src/api/copilot-sdk.ts"],"names":[],"mappings":"AA0HA;;GAEG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,OAAO,CAanD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,IAAI,CAE/C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAmBvB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBvB,CAAA;AAED;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,0BAA0B,QAAa,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAwD/E,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,iBAAiB,MAAM;WA4B/B,MAAM;WAAS,MAAM;IAqB3D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAavB,CAAA;AAED,iEAAiE;AACjE,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAQxF,CAAA;;+BAxMO,MAAM,eACC,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;kCAsBjB,MAAM,eACC,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;oCAgJd,MAAM,YACL,IAAI,GAAG,IAAI,eACR,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;2BAgBkB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;AAU1F,wBAKC"}
1
+ {"version":3,"file":"copilot-sdk.d.ts","sourceRoot":"","sources":["../../src/api/copilot-sdk.ts"],"names":[],"mappings":"AAqJA;;GAEG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,OAAO,CAanD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,IAAI,CAE/C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAmBvB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBvB,CAAA;AAED;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,0BAA0B,QAAa,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAwD/E,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,iBAAiB,MAAM;WA4B/B,MAAM;WAAS,MAAM;IAqB3D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAavB,CAAA;AAED,iEAAiE;AACjE,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAQxF,CAAA;;+BAxMO,MAAM,eACC,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;kCAsBjB,MAAM,eACC,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;oCAgJd,MAAM,YACL,IAAI,GAAG,IAAI,eACR,MAAM,UACX,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;2BAgBkB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;AAU1F,wBAKC"}
@@ -2,11 +2,7 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
4
4
  /**
5
- * Copilot AI provider — direct REST API client.
6
- *
7
- * Uses GitHub Copilot Chat Completions API (api.individual.githubcopilot.com)
8
- * instead of the @github/copilot-sdk. This removes the dependency on the
9
- * Copilot CLI binary and avoids protocol version mismatch issues.
5
+ * Copilot AI provider — uses openai package with GitHub Copilot REST API.
10
6
  *
11
7
  * Auth: uses `gh auth token` (GitHub CLI) or GITHUB_TOKEN env var.
12
8
  */
@@ -17,6 +13,14 @@ import { log } from '../utils/logging.js';
17
13
  const COPILOT_API_BASE = 'https://api.individual.githubcopilot.com';
18
14
  const CHAT_ENDPOINT = `${COPILOT_API_BASE}/chat/completions`;
19
15
  const MODELS_ENDPOINT = `${COPILOT_API_BASE}/models`;
16
+ // Required by the Copilot API — requests without these headers get 403
17
+ const COPILOT_HEADERS = {
18
+ 'Copilot-Integration-Id': 'vscode-chat',
19
+ 'Editor-Version': 'vscode/1.96.0',
20
+ 'Editor-Plugin-Version': 'copilot-chat/0.24.0',
21
+ 'User-Agent': 'GitHubCopilotChat/0.24.0',
22
+ 'Openai-Intent': 'conversation-panel',
23
+ };
20
24
  // ── Token Management ────────────────────────────────────────────────────
21
25
  let cachedToken = null;
22
26
  /**
@@ -51,42 +55,65 @@ const chatCompletion = async (messages, model) => {
51
55
  log.warn('No GitHub token available. Run `gh auth login` to authenticate.');
52
56
  return null;
53
57
  }
54
- const body = {
55
- model: model ?? 'gpt-5-mini',
56
- messages,
57
- };
58
- try {
59
- const res = await fetch(CHAT_ENDPOINT, {
60
- method: 'POST',
61
- headers: {
62
- 'Authorization': `Bearer ${token}`,
63
- 'Content-Type': 'application/json',
64
- 'Accept': 'application/json',
65
- },
66
- body: JSON.stringify(body),
67
- });
68
- if (!res.ok) {
69
- const errorText = await res.text().catch(() => '');
70
- if (res.status === 401 || res.status === 403) {
71
- cachedToken = null;
58
+ const maxRetries = 1;
59
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
60
+ try {
61
+ const controller = new AbortController();
62
+ const timeoutId = setTimeout(() => {
63
+ controller.abort();
64
+ }, 30_000);
65
+ const res = await fetch(CHAT_ENDPOINT, {
66
+ method: 'POST',
67
+ headers: {
68
+ ...COPILOT_HEADERS,
69
+ 'Authorization': `Bearer ${token}`,
70
+ 'Content-Type': 'application/json',
71
+ 'Accept': 'application/json',
72
+ },
73
+ body: JSON.stringify({ model: model ?? 'gpt-5-mini', messages }),
74
+ signal: controller.signal,
75
+ });
76
+ clearTimeout(timeoutId);
77
+ if (!res.ok) {
78
+ const errorText = await res.text().catch(() => '');
79
+ if (res.status === 429 && attempt < maxRetries) {
80
+ await new Promise((resolve) => setTimeout(resolve, 1000));
81
+ continue;
82
+ }
83
+ if (res.status === 429) {
84
+ log.clearLine();
85
+ log.warn('GitHub Copilot quota exceeded or rate limited. Switch model or try later.');
86
+ return null;
87
+ }
88
+ if (res.status === 401 || res.status === 403) {
89
+ cachedToken = null;
90
+ log.clearLine();
91
+ log.warn('GitHub token expired or unauthorized. Run `gh auth login`.');
92
+ return null;
93
+ }
72
94
  log.clearLine();
73
- log.warn('GitHub token expired or unauthorized. Run `gh auth login` to re-authenticate.');
95
+ log.warn(`Copilot API error (${res.status}): ${errorText.slice(0, 200)}`);
96
+ return null;
97
+ }
98
+ const data = (await res.json());
99
+ return data.choices?.[0]?.message?.content ?? null;
100
+ }
101
+ catch (error) {
102
+ if (attempt < maxRetries && !(error instanceof DOMException)) {
103
+ await new Promise((resolve) => setTimeout(resolve, 1000));
104
+ continue;
74
105
  }
75
- else {
106
+ if (error instanceof DOMException) {
76
107
  log.clearLine();
77
- log.warn(`Copilot API error (${res.status}): ${errorText.slice(0, 200)}`);
108
+ log.warn('Copilot request timed out (30s). Try again or switch to a faster model.');
109
+ return null;
78
110
  }
111
+ log.clearLine();
112
+ log.error('Copilot request failed: ' + String(error));
79
113
  return null;
80
114
  }
81
- const data = (await res.json());
82
- const content = data.choices?.[0]?.message?.content;
83
- return content ?? null;
84
- }
85
- catch (error) {
86
- log.clearLine();
87
- log.error('Copilot API request failed: ' + String(error));
88
- return null;
89
115
  }
116
+ return null;
90
117
  };
91
118
  // ── Public API (same exports as before) ─────────────────────────────────
92
119
  /**
@@ -99,7 +126,7 @@ export const isAvailable = async () => {
99
126
  try {
100
127
  const res = await fetch(MODELS_ENDPOINT, {
101
128
  method: 'GET',
102
- headers: { Authorization: `Bearer ${token}` },
129
+ headers: { ...COPILOT_HEADERS, Authorization: `Bearer ${token}` },
103
130
  });
104
131
  return res.ok;
105
132
  }
@@ -156,7 +183,7 @@ export const getAvailableModelsDetailed = async () => {
156
183
  return null;
157
184
  try {
158
185
  const res = await fetch(MODELS_ENDPOINT, {
159
- headers: { Authorization: `Bearer ${token}` },
186
+ headers: { ...COPILOT_HEADERS, Authorization: `Bearer ${token}` },
160
187
  });
161
188
  if (!res.ok)
162
189
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-sdk.js","sourceRoot":"","sources":["../../src/api/copilot-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-sdk.js","sourceRoot":"","sources":["../../src/api/copilot-sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/api/copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAC/C,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,CAmC9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,YAA2B,KACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAuBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,YAA2B,KACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,YAA2B,KACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAcvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,YAA2B,KACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/api/copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAC/C,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,CAmC9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,YAAwB,KAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAuBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,YAAwB,KAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,YAAwB,KAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAcvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,YAAwB,KAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Copilot integration for AI-powered branch naming and commit messages
3
3
  */
4
- import path from 'node:path';
5
4
  import { generateBranchName as sdkGenerateBranchName, generateCommitMessage as sdkGenerateCommitMessage, generateReleaseNotes as sdkGenerateReleaseNotes, generateText as sdkGenerateText, getAvailableModelChoices as sdkGetAvailableModels, isAvailable as sdkIsAvailable, } from './copilot-sdk.js';
6
5
  import { saveAISuggestion } from '../utils/ai-provider-helpers.js';
6
+ import { resolveConfigPath } from '../utils/config.js';
7
7
  import { log } from '../utils/logging.js';
8
8
  /**
9
9
  * Return Copilot model choices — persisted file first, fallback to live API.
@@ -12,7 +12,7 @@ export const getCopilotModels = async () => {
12
12
  // Check persisted file first
13
13
  try {
14
14
  const fs = await import('node:fs');
15
- const modelFile = path.join(process.cwd(), '.geeto', 'copilot-model.json');
15
+ const modelFile = resolveConfigPath('copilot-model.json');
16
16
  if (fs.existsSync(modelFile)) {
17
17
  const data = JSON.parse(fs.readFileSync(modelFile, 'utf8'));
18
18
  if (Array.isArray(data) && data.length > 0) {
@@ -44,7 +44,7 @@ export const getCopilotModels = async () => {
44
44
  /**
45
45
  * Generate branch name from title using Copilot API
46
46
  */
47
- export const generateBranchName = async (text, correction, model = 'gpt-5-mini') => {
47
+ export const generateBranchName = async (text, correction, model = 'GPT-4.1') => {
48
48
  try {
49
49
  const ok = await sdkIsAvailable();
50
50
  if (!ok) {
@@ -69,7 +69,7 @@ export const generateBranchName = async (text, correction, model = 'gpt-5-mini')
69
69
  /**
70
70
  * Generate commit message from git diff using Copilot API
71
71
  */
72
- export const generateCommitMessage = async (diff, correction, model = 'gpt-5-mini') => {
72
+ export const generateCommitMessage = async (diff, correction, model = 'GPT-4.1') => {
73
73
  try {
74
74
  const ok = await sdkIsAvailable();
75
75
  if (!ok) {
@@ -86,7 +86,7 @@ export const generateCommitMessage = async (diff, correction, model = 'gpt-5-min
86
86
  return null;
87
87
  }
88
88
  };
89
- export const generateReleaseNotes = async (commits, language, correction, model = 'gpt-5-mini') => {
89
+ export const generateReleaseNotes = async (commits, language, correction, model = 'GPT-4.1') => {
90
90
  try {
91
91
  const ok = await sdkIsAvailable();
92
92
  if (!ok) {
@@ -102,7 +102,7 @@ export const generateReleaseNotes = async (commits, language, correction, model
102
102
  return null;
103
103
  }
104
104
  };
105
- export const generateText = async (prompt, model = 'gpt-5-mini') => {
105
+ export const generateText = async (prompt, model = 'GPT-4.1') => {
106
106
  try {
107
107
  const ok = await sdkIsAvailable();
108
108
  if (!ok)
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/api/copilot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/api/copilot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/api/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC,CAoC5F,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAsBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAcvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/api/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC,CAoC5F,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAsBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAcvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,WAAgC,KACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
package/lib/api/gemini.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Gemini integration for AI-powered branch naming and commit messages
3
3
  */
4
- import path from 'node:path';
5
4
  import { generateBranchName as sdkGenerateBranchName, generateCommitMessage as sdkGenerateCommitMessage, generateReleaseNotes as sdkGenerateReleaseNotes, generateText as sdkGenerateText, getAvailableModelChoices as sdkGetAvailableModels, isAvailable as sdkIsAvailable, } from './gemini-sdk.js';
6
5
  import { saveAISuggestion } from '../utils/ai-provider-helpers.js';
6
+ import { resolveConfigPath } from '../utils/config.js';
7
7
  import { log } from '../utils/logging.js';
8
8
  /**
9
9
  * Return Gemini model choices.
@@ -13,7 +13,7 @@ export const getGeminiModels = async () => {
13
13
  try {
14
14
  // Check persisted favorites first
15
15
  const fs = await import('node:fs');
16
- const cfgPath = path.join(process.cwd(), '.geeto', 'gemini-model.json');
16
+ const cfgPath = resolveConfigPath('gemini-model.json');
17
17
  if (fs.existsSync(cfgPath)) {
18
18
  try {
19
19
  const raw = fs.readFileSync(cfgPath, 'utf8');
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/api/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/api/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type GroqModel = string;
2
+ export declare const isAvailable: () => boolean;
3
+ export declare const generateBranchName: (text: string, correction?: string, model?: GroqModel) => Promise<string | null>;
4
+ export declare const generateCommitMessage: (diff: string, correction?: string, model?: GroqModel) => Promise<string | null>;
5
+ export declare const generateReleaseNotes: (commits: string, language: "en" | "id", correction?: string, model?: GroqModel) => Promise<string | null>;
6
+ export declare const generateText: (prompt: string, model?: GroqModel) => Promise<string | null>;
7
+ export declare const getGroqModels: () => Promise<Array<{
8
+ label: string;
9
+ value: string;
10
+ }>>;
11
+ //# sourceMappingURL=groq-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groq-sdk.d.ts","sourceRoot":"","sources":["../../src/api/groq-sdk.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAiB9B,eAAO,MAAM,WAAW,QAAO,OAAyB,CAAA;AAExD,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,SAAS,KAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAqBvB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAQ,SAAS,KAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAgBvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAQ,SAAS,KAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAgBvB,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,EAAE,QAAQ,SAAS,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAa3F,CAAA;AASD,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBrF,CAAA"}
@@ -0,0 +1,131 @@
1
+ import OpenAI from 'openai';
2
+ import { buildPromptWithCorrection, buildReleaseNotesPrompt, cleanAIContent, MIN_AI_RESPONSE_LENGTH, normalizeBranchName, } from '../utils/ai-text.js';
3
+ import { getGroqConfig } from '../utils/config.js';
4
+ import { log } from '../utils/logging.js';
5
+ const GROQ_BASE = 'https://api.groq.com/openai/v1';
6
+ const DEFAULT_MODEL = 'llama-3.3-70b-versatile';
7
+ let client = null;
8
+ const ensureClient = () => {
9
+ if (client)
10
+ return true;
11
+ try {
12
+ const { apiKey } = getGroqConfig();
13
+ if (!apiKey)
14
+ return false;
15
+ client = new OpenAI({ baseURL: GROQ_BASE, apiKey });
16
+ return true;
17
+ }
18
+ catch {
19
+ client = null;
20
+ return false;
21
+ }
22
+ };
23
+ export const isAvailable = () => ensureClient();
24
+ export const generateBranchName = async (text, correction, model) => {
25
+ if (!ensureClient())
26
+ return null;
27
+ const prompt = buildPromptWithCorrection('branch-name-prompt.md', text, 'Input', correction);
28
+ try {
29
+ const res = await client.chat.completions.create({
30
+ model: model ?? DEFAULT_MODEL,
31
+ messages: [{ role: 'user', content: prompt }],
32
+ });
33
+ const content = res.choices[0]?.message?.content;
34
+ if (!content)
35
+ return null;
36
+ const first = content
37
+ .trim()
38
+ .split('\n')
39
+ .find((l) => !!l) ?? '';
40
+ return normalizeBranchName(first) || null;
41
+ }
42
+ catch (error) {
43
+ log.clearLine();
44
+ log.warn('Groq Error: ' + String(error));
45
+ return null;
46
+ }
47
+ };
48
+ export const generateCommitMessage = async (diff, correction, model) => {
49
+ if (!ensureClient())
50
+ return null;
51
+ const prompt = buildPromptWithCorrection('commit-message-prompt.md', diff, 'Diff', correction);
52
+ try {
53
+ const res = await client.chat.completions.create({
54
+ model: model ?? DEFAULT_MODEL,
55
+ messages: [{ role: 'user', content: prompt }],
56
+ });
57
+ const content = res.choices[0]?.message?.content;
58
+ if (!content)
59
+ return null;
60
+ return cleanAIContent(content, { normalizeBlankLines: true, minLength: MIN_AI_RESPONSE_LENGTH });
61
+ }
62
+ catch (error) {
63
+ log.clearLine();
64
+ log.warn('Groq Error: ' + String(error));
65
+ return null;
66
+ }
67
+ };
68
+ export const generateReleaseNotes = async (commits, language, correction, model) => {
69
+ if (!ensureClient())
70
+ return null;
71
+ const prompt = buildReleaseNotesPrompt(commits, language, correction);
72
+ try {
73
+ const res = await client.chat.completions.create({
74
+ model: model ?? DEFAULT_MODEL,
75
+ messages: [{ role: 'user', content: prompt }],
76
+ });
77
+ const content = res.choices[0]?.message?.content;
78
+ if (!content)
79
+ return null;
80
+ return cleanAIContent(content);
81
+ }
82
+ catch (error) {
83
+ log.clearLine();
84
+ log.warn('Groq Error: ' + String(error));
85
+ return null;
86
+ }
87
+ };
88
+ export const generateText = async (prompt, model) => {
89
+ if (!ensureClient())
90
+ return null;
91
+ try {
92
+ const res = await client.chat.completions.create({
93
+ model: model ?? DEFAULT_MODEL,
94
+ messages: [{ role: 'user', content: prompt }],
95
+ });
96
+ const content = res.choices[0]?.message?.content;
97
+ if (!content)
98
+ return null;
99
+ return cleanAIContent(content);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ };
105
+ const FALLBACK_MODELS = [
106
+ { label: 'llama-3.3-70b-versatile (recommended)', value: 'llama-3.3-70b-versatile' },
107
+ { label: 'llama-3.1-8b-instant (fastest)', value: 'llama-3.1-8b-instant' },
108
+ { label: 'gemma2-9b-it', value: 'gemma2-9b-it' },
109
+ { label: 'mixtral-8x7b-32768', value: 'mixtral-8x7b-32768' },
110
+ ];
111
+ export const getGroqModels = async () => {
112
+ if (!ensureClient())
113
+ return FALLBACK_MODELS;
114
+ try {
115
+ const res = await client.models.list();
116
+ const models = res.data
117
+ .filter((m) => m.id.includes('llama') ||
118
+ m.id.includes('mixtral') ||
119
+ m.id.includes('gemma') ||
120
+ m.id.includes('qwen') ||
121
+ m.id.includes('deepseek'))
122
+ // eslint-disable-next-line unicorn/no-array-sort
123
+ .sort((a, b) => a.id.localeCompare(b.id))
124
+ .map((m) => ({ label: m.id, value: m.id }));
125
+ return models.length > 0 ? models : FALLBACK_MODELS;
126
+ }
127
+ catch {
128
+ return FALLBACK_MODELS;
129
+ }
130
+ };
131
+ //# sourceMappingURL=groq-sdk.js.map