geeto 0.6.6 → 0.9.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 (198) hide show
  1. package/README.md +23 -9
  2. package/lib/api/copilot-adapter.d.ts +14 -5
  3. package/lib/api/copilot-adapter.d.ts.map +1 -1
  4. package/lib/api/copilot-adapter.js +15 -21
  5. package/lib/api/copilot-adapter.js.map +1 -1
  6. package/lib/api/copilot-sdk.d.ts +3 -16
  7. package/lib/api/copilot-sdk.d.ts.map +1 -1
  8. package/lib/api/copilot-sdk.js +166 -456
  9. package/lib/api/copilot-sdk.js.map +1 -1
  10. package/lib/api/copilot.d.ts +3 -4
  11. package/lib/api/copilot.d.ts.map +1 -1
  12. package/lib/api/copilot.js +28 -28
  13. package/lib/api/copilot.js.map +1 -1
  14. package/lib/api/gemini-sdk.d.ts.map +1 -1
  15. package/lib/api/gemini-sdk.js +11 -77
  16. package/lib/api/gemini-sdk.js.map +1 -1
  17. package/lib/api/gemini.d.ts +2 -2
  18. package/lib/api/gemini.d.ts.map +1 -1
  19. package/lib/api/gemini.js +24 -19
  20. package/lib/api/gemini.js.map +1 -1
  21. package/lib/api/gitlab.d.ts +80 -0
  22. package/lib/api/gitlab.d.ts.map +1 -0
  23. package/lib/api/gitlab.js +192 -0
  24. package/lib/api/gitlab.js.map +1 -0
  25. package/lib/api/openrouter-sdk.d.ts.map +1 -1
  26. package/lib/api/openrouter-sdk.js +11 -76
  27. package/lib/api/openrouter-sdk.js.map +1 -1
  28. package/lib/api/openrouter.d.ts.map +1 -1
  29. package/lib/api/openrouter.js +2 -16
  30. package/lib/api/openrouter.js.map +1 -1
  31. package/lib/api/platform.d.ts +78 -0
  32. package/lib/api/platform.d.ts.map +1 -0
  33. package/lib/api/platform.js +218 -0
  34. package/lib/api/platform.js.map +1 -0
  35. package/lib/cli/input.d.ts +2 -2
  36. package/lib/cli/input.d.ts.map +1 -1
  37. package/lib/cli/input.js +23 -27
  38. package/lib/cli/input.js.map +1 -1
  39. package/lib/cli/menu.d.ts +1 -1
  40. package/lib/cli/menu.d.ts.map +1 -1
  41. package/lib/cli/menu.js +123 -100
  42. package/lib/cli/menu.js.map +1 -1
  43. package/lib/core/copilot-setup.d.ts +8 -7
  44. package/lib/core/copilot-setup.d.ts.map +1 -1
  45. package/lib/core/copilot-setup.js +59 -230
  46. package/lib/core/copilot-setup.js.map +1 -1
  47. package/lib/core/gemini-setup.js +7 -7
  48. package/lib/core/gemini-setup.js.map +1 -1
  49. package/lib/core/gitlab-setup.d.ts +5 -0
  50. package/lib/core/gitlab-setup.d.ts.map +1 -0
  51. package/lib/core/gitlab-setup.js +85 -0
  52. package/lib/core/gitlab-setup.js.map +1 -0
  53. package/lib/core/openrouter-setup.d.ts.map +1 -1
  54. package/lib/core/openrouter-setup.js +17 -0
  55. package/lib/core/openrouter-setup.js.map +1 -1
  56. package/lib/index.js +501 -704
  57. package/lib/index.js.map +1 -1
  58. package/lib/types/index.d.ts +10 -6
  59. package/lib/types/index.d.ts.map +1 -1
  60. package/lib/utils/ai-provider-helpers.d.ts +5 -0
  61. package/lib/utils/ai-provider-helpers.d.ts.map +1 -0
  62. package/lib/utils/ai-provider-helpers.js +23 -0
  63. package/lib/utils/ai-provider-helpers.js.map +1 -0
  64. package/lib/utils/ai-text.d.ts +23 -0
  65. package/lib/utils/ai-text.d.ts.map +1 -0
  66. package/lib/utils/ai-text.js +57 -0
  67. package/lib/utils/ai-text.js.map +1 -0
  68. package/lib/utils/ai-workflow.d.ts +18 -0
  69. package/lib/utils/ai-workflow.d.ts.map +1 -0
  70. package/lib/utils/ai-workflow.js +66 -0
  71. package/lib/utils/ai-workflow.js.map +1 -0
  72. package/lib/utils/branch-naming.d.ts.map +1 -1
  73. package/lib/utils/branch-naming.js +1 -3
  74. package/lib/utils/branch-naming.js.map +1 -1
  75. package/lib/utils/config.d.ts +13 -1
  76. package/lib/utils/config.d.ts.map +1 -1
  77. package/lib/utils/config.js +38 -1
  78. package/lib/utils/config.js.map +1 -1
  79. package/lib/utils/display.d.ts.map +1 -1
  80. package/lib/utils/display.js +4 -3
  81. package/lib/utils/display.js.map +1 -1
  82. package/lib/utils/git-ai.js +13 -13
  83. package/lib/utils/git-ai.js.map +1 -1
  84. package/lib/utils/git-errors.d.ts.map +1 -1
  85. package/lib/utils/git-errors.js +2 -6
  86. package/lib/utils/git-errors.js.map +1 -1
  87. package/lib/utils/git.d.ts.map +1 -1
  88. package/lib/utils/git.js +5 -0
  89. package/lib/utils/git.js.map +1 -1
  90. package/lib/utils/github-helpers.d.ts +33 -0
  91. package/lib/utils/github-helpers.d.ts.map +1 -0
  92. package/lib/utils/github-helpers.js +101 -0
  93. package/lib/utils/github-helpers.js.map +1 -0
  94. package/lib/utils/prompt-loader.d.ts +9 -0
  95. package/lib/utils/prompt-loader.d.ts.map +1 -0
  96. package/lib/utils/prompt-loader.js +42 -0
  97. package/lib/utils/prompt-loader.js.map +1 -0
  98. package/lib/utils/prompts-embedded.d.ts +2 -0
  99. package/lib/utils/prompts-embedded.d.ts.map +1 -0
  100. package/lib/utils/prompts-embedded.js +255 -0
  101. package/lib/utils/prompts-embedded.js.map +1 -0
  102. package/lib/utils/scramble.d.ts +9 -86
  103. package/lib/utils/scramble.d.ts.map +1 -1
  104. package/lib/utils/scramble.js +27 -279
  105. package/lib/utils/scramble.js.map +1 -1
  106. package/lib/version.d.ts +1 -1
  107. package/lib/version.js +1 -1
  108. package/lib/workflows/alias.d.ts.map +1 -1
  109. package/lib/workflows/alias.js +1 -0
  110. package/lib/workflows/alias.js.map +1 -1
  111. package/lib/workflows/amend.d.ts.map +1 -1
  112. package/lib/workflows/amend.js +1 -5
  113. package/lib/workflows/amend.js.map +1 -1
  114. package/lib/workflows/branch-helpers.d.ts.map +1 -1
  115. package/lib/workflows/branch-helpers.js +0 -1
  116. package/lib/workflows/branch-helpers.js.map +1 -1
  117. package/lib/workflows/commit.d.ts.map +1 -1
  118. package/lib/workflows/commit.js +160 -187
  119. package/lib/workflows/commit.js.map +1 -1
  120. package/lib/workflows/doctor.d.ts +7 -0
  121. package/lib/workflows/doctor.d.ts.map +1 -0
  122. package/lib/workflows/doctor.js +284 -0
  123. package/lib/workflows/doctor.js.map +1 -0
  124. package/lib/workflows/issue.d.ts +1 -1
  125. package/lib/workflows/issue.d.ts.map +1 -1
  126. package/lib/workflows/issue.js +28 -115
  127. package/lib/workflows/issue.js.map +1 -1
  128. package/lib/workflows/main-helpers.d.ts +34 -0
  129. package/lib/workflows/main-helpers.d.ts.map +1 -0
  130. package/lib/workflows/main-helpers.js +346 -0
  131. package/lib/workflows/main-helpers.js.map +1 -0
  132. package/lib/workflows/main-steps.d.ts.map +1 -1
  133. package/lib/workflows/main-steps.js +9 -134
  134. package/lib/workflows/main-steps.js.map +1 -1
  135. package/lib/workflows/main.d.ts +2 -6
  136. package/lib/workflows/main.d.ts.map +1 -1
  137. package/lib/workflows/main.js +44 -381
  138. package/lib/workflows/main.js.map +1 -1
  139. package/lib/workflows/pr.d.ts +2 -2
  140. package/lib/workflows/pr.d.ts.map +1 -1
  141. package/lib/workflows/pr.js +49 -137
  142. package/lib/workflows/pr.js.map +1 -1
  143. package/lib/workflows/prune.d.ts.map +1 -1
  144. package/lib/workflows/prune.js +2 -10
  145. package/lib/workflows/prune.js.map +1 -1
  146. package/lib/workflows/pull.d.ts.map +1 -1
  147. package/lib/workflows/pull.js +2 -24
  148. package/lib/workflows/pull.js.map +1 -1
  149. package/lib/workflows/release-merge.d.ts +12 -0
  150. package/lib/workflows/release-merge.d.ts.map +1 -0
  151. package/lib/workflows/release-merge.js +569 -0
  152. package/lib/workflows/release-merge.js.map +1 -0
  153. package/lib/workflows/release-notes.d.ts +13 -0
  154. package/lib/workflows/release-notes.d.ts.map +1 -0
  155. package/lib/workflows/release-notes.js +141 -0
  156. package/lib/workflows/release-notes.js.map +1 -0
  157. package/lib/workflows/release-recover.d.ts +5 -0
  158. package/lib/workflows/release-recover.d.ts.map +1 -0
  159. package/lib/workflows/release-recover.js +137 -0
  160. package/lib/workflows/release-recover.js.map +1 -0
  161. package/lib/workflows/release-sync.d.ts +7 -0
  162. package/lib/workflows/release-sync.d.ts.map +1 -0
  163. package/lib/workflows/release-sync.js +321 -0
  164. package/lib/workflows/release-sync.js.map +1 -0
  165. package/lib/workflows/release-utils.d.ts +36 -0
  166. package/lib/workflows/release-utils.d.ts.map +1 -0
  167. package/lib/workflows/release-utils.js +150 -0
  168. package/lib/workflows/release-utils.js.map +1 -0
  169. package/lib/workflows/release.d.ts.map +1 -1
  170. package/lib/workflows/release.js +92 -719
  171. package/lib/workflows/release.js.map +1 -1
  172. package/lib/workflows/repo-settings.d.ts +2 -2
  173. package/lib/workflows/repo-settings.d.ts.map +1 -1
  174. package/lib/workflows/repo-settings.js +33 -24
  175. package/lib/workflows/repo-settings.js.map +1 -1
  176. package/lib/workflows/reword.d.ts.map +1 -1
  177. package/lib/workflows/reword.js +154 -151
  178. package/lib/workflows/reword.js.map +1 -1
  179. package/lib/workflows/security-gate.d.ts.map +1 -1
  180. package/lib/workflows/security-gate.js +15 -75
  181. package/lib/workflows/security-gate.js.map +1 -1
  182. package/lib/workflows/settings.d.ts +2 -1
  183. package/lib/workflows/settings.d.ts.map +1 -1
  184. package/lib/workflows/settings.js +289 -19
  185. package/lib/workflows/settings.js.map +1 -1
  186. package/lib/workflows/trello-menu.d.ts +2 -5
  187. package/lib/workflows/trello-menu.d.ts.map +1 -1
  188. package/lib/workflows/trello-menu.js +67 -228
  189. package/lib/workflows/trello-menu.js.map +1 -1
  190. package/package.json +3 -6
  191. package/prompts/branch-name-prompt.md +4 -0
  192. package/prompts/commit-message-prompt.md +12 -0
  193. package/prompts/issue-prompt.md +19 -0
  194. package/prompts/issue-review.with-context.prompt.yml +77 -0
  195. package/prompts/pr-prompt.md +14 -0
  196. package/prompts/release-notes-prompt.md +35 -0
  197. package/prompts/repo-description-prompt.md +1 -0
  198. package/prompts/security-gate-prompt.md +80 -0
@@ -0,0 +1,192 @@
1
+ /**
2
+ * GitLab API integration (REST API v4)
3
+ */
4
+ import { getGitlabConfig } from '../utils/config.js';
5
+ import { log } from '../utils/logging.js';
6
+ /**
7
+ * Parse namespace/project from git remote URL.
8
+ * Supports nested groups (e.g. group/subgroup/project).
9
+ */
10
+ export const parseGitlabRepoFromUrl = (remoteUrl) => {
11
+ // Handle SSH: git@gitlab.com:namespace/project.git
12
+ // Also handles custom hosts: git@custom-gitlab.example.com:group/subgroup/project.git
13
+ const sshMatch = remoteUrl.match(/git@[^:]+:(.+?)(?:\.git)?\s*$/);
14
+ if (sshMatch?.[1]) {
15
+ const fullPath = sshMatch[1];
16
+ const lastSlash = fullPath.lastIndexOf('/');
17
+ if (lastSlash > 0) {
18
+ return {
19
+ namespace: fullPath.slice(0, lastSlash),
20
+ project: fullPath.slice(lastSlash + 1),
21
+ };
22
+ }
23
+ }
24
+ // Handle HTTPS: https://gitlab.com/namespace/project.git
25
+ // Also handles custom hosts: https://custom.gitlab.com/group/subgroup/project.git
26
+ const httpsMatch = remoteUrl.match(/https?:\/\/[^/]+\/(.+?)(?:\.git)?\s*$/);
27
+ if (httpsMatch?.[1]) {
28
+ const fullPath = httpsMatch[1];
29
+ const lastSlash = fullPath.lastIndexOf('/');
30
+ if (lastSlash > 0) {
31
+ return {
32
+ namespace: fullPath.slice(0, lastSlash),
33
+ project: fullPath.slice(lastSlash + 1),
34
+ };
35
+ }
36
+ }
37
+ return null;
38
+ };
39
+ /**
40
+ * URL-encode a project path for use in GitLab API endpoints.
41
+ */
42
+ export const encodeProjectPath = (namespace, project) => {
43
+ return encodeURIComponent(`${namespace}/${project}`);
44
+ };
45
+ /**
46
+ * Make a GitLab API v4 request
47
+ */
48
+ const gitlabFetch = async (endpoint, options = {}) => {
49
+ const config = getGitlabConfig();
50
+ if (!config.token) {
51
+ throw new Error('GitLab token not configured');
52
+ }
53
+ const baseUrl = (config.url ?? 'https://gitlab.com').replace(/\/+$/, '');
54
+ const url = endpoint.startsWith('https://') ? endpoint : `${baseUrl}/api/v4${endpoint}`;
55
+ return fetch(url, {
56
+ ...options,
57
+ headers: {
58
+ 'Accept': 'application/json',
59
+ 'PRIVATE-TOKEN': config.token,
60
+ 'Content-Type': 'application/json',
61
+ ...options.headers,
62
+ },
63
+ });
64
+ };
65
+ /**
66
+ * Create a Merge Request
67
+ */
68
+ export const createMergeRequest = async (params) => {
69
+ try {
70
+ const response = await gitlabFetch(`/projects/${params.projectPath}/merge_requests`, {
71
+ method: 'POST',
72
+ body: JSON.stringify({
73
+ title: params.title,
74
+ description: params.description,
75
+ source_branch: params.sourceBranch,
76
+ target_branch: params.targetBranch,
77
+ draft: params.draft ?? false,
78
+ }),
79
+ });
80
+ if (!response.ok) {
81
+ const error = (await response.json());
82
+ const detail = Array.isArray(error.message)
83
+ ? error.message.join(', ')
84
+ : (error.message ?? error.error ?? response.statusText);
85
+ log.clearLine();
86
+ log.gap();
87
+ log.error(`GitLab API error: ${response.status} - ${detail}`);
88
+ return null;
89
+ }
90
+ return (await response.json());
91
+ }
92
+ catch (error) {
93
+ const msg = error instanceof Error ? error.message : String(error);
94
+ log.clearLine();
95
+ log.gap();
96
+ log.error(`Failed to create MR: ${msg}`);
97
+ return null;
98
+ }
99
+ };
100
+ /**
101
+ * List open Merge Requests for the project
102
+ */
103
+ export const listMergeRequests = async (projectPath, sourceBranch) => {
104
+ try {
105
+ const params = new URLSearchParams({
106
+ state: 'opened',
107
+ per_page: '30',
108
+ });
109
+ if (sourceBranch) {
110
+ params.set('source_branch', sourceBranch);
111
+ }
112
+ const response = await gitlabFetch(`/projects/${projectPath}/merge_requests?${params.toString()}`);
113
+ if (!response.ok) {
114
+ log.clearLine();
115
+ log.gap();
116
+ log.warn(`GitLab API error: ${response.status} ${response.statusText}`);
117
+ return [];
118
+ }
119
+ return (await response.json());
120
+ }
121
+ catch (error) {
122
+ const msg = error instanceof Error ? error.message : String(error);
123
+ log.clearLine();
124
+ log.gap();
125
+ log.warn(`Failed to list MRs: ${msg}`);
126
+ return [];
127
+ }
128
+ };
129
+ /**
130
+ * Get default branch of the project
131
+ */
132
+ export const getDefaultBranch = async (projectPath) => {
133
+ try {
134
+ const response = await gitlabFetch(`/projects/${projectPath}`);
135
+ if (!response.ok)
136
+ return null;
137
+ const data = (await response.json());
138
+ return data.default_branch ?? null;
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ };
144
+ /**
145
+ * Create a GitLab Issue
146
+ */
147
+ export const createIssue = async (params) => {
148
+ try {
149
+ const response = await gitlabFetch(`/projects/${params.projectPath}/issues`, {
150
+ method: 'POST',
151
+ body: JSON.stringify({
152
+ title: params.title,
153
+ description: params.description,
154
+ labels: params.labels?.join(',') ?? '',
155
+ assignee_ids: params.assignee_ids ?? [],
156
+ }),
157
+ });
158
+ if (!response.ok) {
159
+ const error = (await response.json());
160
+ const detail = Array.isArray(error.message)
161
+ ? error.message.join(', ')
162
+ : (error.message ?? error.error ?? response.statusText);
163
+ log.clearLine();
164
+ log.gap();
165
+ log.error(`GitLab API error: ${response.status} - ${detail}`);
166
+ return null;
167
+ }
168
+ return (await response.json());
169
+ }
170
+ catch (error) {
171
+ const msg = error instanceof Error ? error.message : String(error);
172
+ log.clearLine();
173
+ log.gap();
174
+ log.error(`Failed to create issue: ${msg}`);
175
+ return null;
176
+ }
177
+ };
178
+ /**
179
+ * List labels for a project
180
+ */
181
+ export const listLabels = async (projectPath) => {
182
+ try {
183
+ const response = await gitlabFetch(`/projects/${projectPath}/labels?per_page=100`);
184
+ if (!response.ok)
185
+ return [];
186
+ return (await response.json());
187
+ }
188
+ catch {
189
+ return [];
190
+ }
191
+ };
192
+ //# sourceMappingURL=gitlab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/api/gitlab.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-sdk.d.ts","sourceRoot":"","sources":["../../src/api/openrouter-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter-sdk.d.ts","sourceRoot":"","sources":["../../src/api/openrouter-sdk.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
4
4
  import { OpenRouter } from '@openrouter/sdk';
5
+ import { buildPromptWithCorrection, buildReleaseNotesPrompt, cleanAIContent, MIN_AI_RESPONSE_LENGTH, normalizeBranchName, } from '../utils/ai-text.js';
5
6
  import { getOpenRouterConfig } from '../utils/config.js';
6
7
  import { log } from '../utils/logging.js';
7
8
  // OpenRouter SDK wrapper (lazy-load, optional)
@@ -36,10 +37,7 @@ export const isAvailable = () => {
36
37
  return ensureClient();
37
38
  };
38
39
  export const generateBranchName = async (text, correction, model) => {
39
- const promptBase = `Generate a git branch name suffix from this input. Output ONLY the kebab-case suffix (lowercase-with-hyphens), 3-50 chars, nothing else.`;
40
- const prompt = correction
41
- ? `${promptBase}\n\nInput:\n${text}\n\nAdjustment: ${correction}`
42
- : `${promptBase}\n\nInput:\n${text}`;
40
+ const prompt = buildPromptWithCorrection('branch-name-prompt.md', text, 'Input', correction);
43
41
  const completion = await client?.chat.send({
44
42
  model: model ?? 'gemini-2.5-flash',
45
43
  messages: [
@@ -55,14 +53,7 @@ export const generateBranchName = async (text, correction, model) => {
55
53
  .trim()
56
54
  .split('\n')
57
55
  .find((l) => !!l) ?? '';
58
- // sanitize to kebab-case
59
- const cleaned = String(first)
60
- .toLowerCase()
61
- .replaceAll(/[^\d\sa-z-]/g, ' ')
62
- .trim()
63
- .replaceAll(/\s+/g, '-')
64
- .replaceAll(/-+/g, '-')
65
- .replaceAll(/^-|-$/g, '');
56
+ const cleaned = normalizeBranchName(first);
66
57
  return cleaned || null;
67
58
  }
68
59
  catch (error) {
@@ -73,17 +64,7 @@ export const generateBranchName = async (text, correction, model) => {
73
64
  }
74
65
  };
75
66
  export const generateCommitMessage = async (diff, correction, model) => {
76
- const promptBase = `Generate a conventional commit message from this git diff. Output ONLY the commit message in this format:\n\n<type>(<scope>): <short summary>\n\n<Detailed multi-line body explaining the change. Wrap lines at ~72 characters. LIMITS: subject max 100 chars; body max 360 chars. Include why the change was made and any important notes. Separate subject and body by a single blank line. Do not include any extraneous commentary or markers. Use imperative mood.
77
-
78
- Example:
79
- refactor(ai): migrate providers to SDKs
80
-
81
- Replaces direct API/CLI calls for Copilot and Gemini with SDK integrations.
82
- This simplifies code, improves maintainability, and adds dynamic model
83
- fetching. Updates .gitignore for geeto binaries.`;
84
- const prompt = correction
85
- ? `${promptBase}\n\nDiff:\n${diff}\n\nAdjustment: ${correction}`
86
- : `${promptBase}\n\nDiff:\n${diff}`;
67
+ const prompt = buildPromptWithCorrection('commit-message-prompt.md', diff, 'Diff', correction);
87
68
  const completion = await client?.chat.send({
88
69
  model: model ?? 'gemini-2.5-flash',
89
70
  messages: [
@@ -95,12 +76,10 @@ fetching. Updates .gitignore for geeto binaries.`;
95
76
  });
96
77
  try {
97
78
  const content = completion?.choices[0]?.message?.content;
98
- const cleaned = String(content)
99
- .replaceAll(/```[\S\s]*?```/g, '')
100
- .replaceAll(/^"+|"+$/g, '')
101
- .trim();
102
- const normalized = cleaned.replaceAll(/\n\s*\n+/g, '\n\n').trim();
103
- return normalized && normalized.length >= 8 ? normalized : null;
79
+ return cleanAIContent(String(content), {
80
+ normalizeBlankLines: true,
81
+ minLength: MIN_AI_RESPONSE_LENGTH,
82
+ });
104
83
  }
105
84
  catch (error) {
106
85
  log.clearLine();
@@ -337,43 +316,7 @@ export const getAvailableModelChoices = async () => {
337
316
  return choices;
338
317
  };
339
318
  export const generateReleaseNotes = async (commits, language, correction, model) => {
340
- const langLabel = language === 'id' ? 'Indonesian (Bahasa Indonesia)' : 'English';
341
- const promptBase = `You are a release notes writer. Given a list of git commit messages, generate user-friendly release notes in ${langLabel}. Output ONLY the release notes content (no title/heading, no version number, no date — those are added separately).
342
-
343
- Rules:
344
- - Start with "### What's New?" as the top-level section
345
- - Group changes into subsections: "#### New Features", "#### Bug Fixes", "#### Other Improvements"
346
- - Only include subsections that have items (skip empty ones)
347
- - Use simple, non-technical language that end users can understand
348
- - Each item should be a bullet point starting with "-"
349
- - Strip conventional commit prefixes (feat:, fix:, chore:, etc.)
350
- - Keep it concise but informative
351
- - If there are breaking changes, add a "#### Breaking Changes" subsection at the top
352
- - Do NOT include commit hashes or author names
353
-
354
- Formatting (follow EXACTLY — this is markdownlint-compliant):
355
- - Always put ONE blank line after EVERY heading (### or ####) before the first bullet
356
- - Always put ONE blank line after the last bullet in a section before the next #### heading
357
- - Never have more than one consecutive blank line
358
- - Example output:
359
-
360
- ### What's New?
361
-
362
- #### New Features
363
-
364
- - Feature description here
365
- - Another feature
366
-
367
- #### Bug Fixes
368
-
369
- - Fix description here
370
-
371
- #### Other Improvements
372
-
373
- - Improvement here`;
374
- const prompt = correction
375
- ? `${promptBase}\n\nCommits:\n${commits}\n\nAdjustment: ${correction}`
376
- : `${promptBase}\n\nCommits:\n${commits}`;
319
+ const prompt = buildReleaseNotesPrompt(commits, language, correction);
377
320
  const completion = await client?.chat.send({
378
321
  model: model ?? 'gemini-2.5-flash',
379
322
  messages: [
@@ -385,11 +328,7 @@ Formatting (follow EXACTLY — this is markdownlint-compliant):
385
328
  });
386
329
  try {
387
330
  const content = completion?.choices[0]?.message?.content;
388
- const cleaned = String(content)
389
- .replaceAll(/```[\S\s]*?```/g, '')
390
- .replaceAll(/^"+|"+$/g, '')
391
- .trim();
392
- return cleaned || null;
331
+ return cleanAIContent(String(content));
393
332
  }
394
333
  catch (error) {
395
334
  log.clearLine();
@@ -408,11 +347,7 @@ export const generateText = async (prompt, model) => {
408
347
  });
409
348
  try {
410
349
  const content = completion?.choices[0]?.message?.content;
411
- const cleaned = String(content)
412
- .replaceAll(/```[\S\s]*?```/g, '')
413
- .replaceAll(/^"+|"+$/g, '')
414
- .trim();
415
- return cleaned || null;
350
+ return cleanAIContent(String(content));
416
351
  }
417
352
  catch {
418
353
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-sdk.js","sourceRoot":"","sources":["../../src/api/openrouter-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter-sdk.js","sourceRoot":"","sources":["../../src/api/openrouter-sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/api/openrouter.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAClD,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAAC,CA2BjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CA8DvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAgBvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/api/openrouter.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAClD,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAAC,CA2BjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CA6CvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,UAAU,IAAI,GAAG,IAAI,EACrB,aAAa,MAAM,EACnB,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAgBvB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,eAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAA"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import path from 'node:path';
5
5
  import { generateBranchName as sdkGenerateBranchName, generateCommitMessage as sdkGenerateCommitMessage, generateReleaseNotes as sdkGenerateReleaseNotes, generateText as sdkGenerateText, isAvailable as sdkIsAvailable, } from './openrouter-sdk.js';
6
+ import { saveAISuggestion } from '../utils/ai-provider-helpers.js';
6
7
  import { log } from '../utils/logging.js';
7
8
  /**
8
9
  * Return OpenRouter model choices from the SDK in realtime.
@@ -66,22 +67,7 @@ export const generateBranchName = async (text, correction, model = 'gemini-2.5-f
66
67
  .replaceAll(/^-|-$/g, ''); // Remove leading/trailing hyphens
67
68
  const branchName = cleaned;
68
69
  // Persist original provider response so the user can inspect the unmodified AI output.
69
- try {
70
- const fs = await import('node:fs/promises');
71
- const outDir = path.join(process.cwd(), '.geeto');
72
- await fs.mkdir(outDir, { recursive: true });
73
- const payload = {
74
- provider: 'openrouter',
75
- model,
76
- raw: sdkRes,
77
- cleaned: cleaned,
78
- timestamp: new Date().toISOString(),
79
- };
80
- await fs.writeFile(path.join(outDir, 'last-ai-suggestion.json'), JSON.stringify(payload, null, 2));
81
- }
82
- catch {
83
- /* ignore file write failures */
84
- }
70
+ await saveAISuggestion('openrouter', model, sdkRes, cleaned);
85
71
  return branchName && branchName.length >= 3 ? branchName : null;
86
72
  }
87
73
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/api/openrouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,kBAAkB,IAAI,qBAAqB,EAC3C,qBAAqB,IAAI,wBAAwB,EACjD,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,IAAI,eAAe,EAC/B,WAAW,IAAI,cAAc,GAC9B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAEtC,EAAE;IACF,IAAI,CAAC;QACH,yEAAyE;QACzE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAA;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8C,CAAA;gBAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC3F,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,gDAAiD,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;gBACpF,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,GAAG,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAA;QACpF,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC9D,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,IAAY,EACZ,UAAmB,EACnB,QAAyB,kBAAkB,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;QAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CACN,sFAAsF,CACvF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QAED,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAE3B,sCAAsC;QACtC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAChD,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACnC,CAAC;QAED,6CAA6C;QAC7C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAEjD,OAAO,GAAG,OAAO;aACd,WAAW,EAAE;aACb,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,sCAAsC;aACnE,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,2BAA2B;aAClD,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA,CAAC,kCAAkC;QAE9D,MAAM,UAAU,GAAG,OAAO,CAAA;QAE1B,uFAAuF;QACvF,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;YACjD,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3C,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,YAAY;gBACtB,KAAK;gBACL,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAA;YACD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CACjC,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;QAED,OAAO,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,EAAE,CAAA;QACT,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,IAAY,EACZ,UAAmB,EACnB,QAAyB,kBAAkB,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;QAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CACN,sFAAsF,CACvF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;QACtE,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,EAAE,CAAA;QACT,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAe,EACf,QAAqB,EACrB,UAAmB,EACnB,QAAyB,kBAAkB,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;QAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CACN,sFAAsF,CACvF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,MAAM,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,EAAE,CAAA;QACT,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,QAAyB,kBAAkB,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;QAC3B,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACpB,OAAO,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/api/openrouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Platform abstraction layer — unifies GitHub and GitLab APIs
3
+ */
4
+ import type { Platform } from '../types/index.js';
5
+ export interface PlatformRepo {
6
+ platform: Platform;
7
+ /** For GitHub: "owner". For GitLab: "namespace" (may contain slashes for nested groups) */
8
+ owner: string;
9
+ /** Repository/project name */
10
+ repo: string;
11
+ /** For GitLab: URL-encoded project path. For GitHub: "owner/repo" */
12
+ projectPath: string;
13
+ }
14
+ export interface PlatformPRParams {
15
+ projectPath: string;
16
+ title: string;
17
+ body: string;
18
+ sourceBranch: string;
19
+ targetBranch: string;
20
+ draft?: boolean;
21
+ owner?: string;
22
+ repo?: string;
23
+ }
24
+ export interface PlatformPR {
25
+ number: number;
26
+ url: string;
27
+ title: string;
28
+ state: string;
29
+ sourceBranch: string;
30
+ targetBranch: string;
31
+ draft: boolean;
32
+ author: string;
33
+ createdAt: string;
34
+ }
35
+ export interface PlatformIssueParams {
36
+ projectPath: string;
37
+ title: string;
38
+ body: string;
39
+ labels?: string[];
40
+ assignees?: string[];
41
+ owner?: string;
42
+ repo?: string;
43
+ }
44
+ export interface PlatformIssue {
45
+ number: number;
46
+ url: string;
47
+ title: string;
48
+ state: string;
49
+ author: string;
50
+ createdAt: string;
51
+ labels: string[];
52
+ }
53
+ export interface PlatformLabel {
54
+ name: string;
55
+ color: string;
56
+ description: string | null;
57
+ }
58
+ export interface PlatformAPI {
59
+ platform: Platform;
60
+ createPR(params: PlatformPRParams): Promise<PlatformPR | null>;
61
+ listPRs(projectPath: string, sourceBranch?: string, owner?: string, repo?: string): Promise<PlatformPR[]>;
62
+ getDefaultBranch(projectPath: string, owner?: string, repo?: string): Promise<string | null>;
63
+ createIssue(params: PlatformIssueParams): Promise<PlatformIssue | null>;
64
+ listLabels(projectPath: string, owner?: string, repo?: string): Promise<PlatformLabel[]>;
65
+ }
66
+ /**
67
+ * Detect platform from git remote URL or fallback to config
68
+ */
69
+ export declare const detectPlatform: (remoteUrl: string) => Platform | null;
70
+ /**
71
+ * Parse remote URL into a unified PlatformRepo
72
+ */
73
+ export declare const parseRemoteUrl: (remoteUrl: string) => PlatformRepo | null;
74
+ /**
75
+ * Get platform API implementation by platform type
76
+ */
77
+ export declare const getPlatformAPI: (platform: Platform) => PlatformAPI;
78
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/api/platform.ts"],"names":[],"mappings":"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"}