smart-commit-copilot-cli 0.1.6 → 0.1.8

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 (95) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +46 -4
  3. package/docs/configuration.md +99 -7
  4. package/docs/contracts.md +68 -2
  5. package/docs/getting-started.md +4 -1
  6. package/docs/publish.md +1 -1
  7. package/docs/releases/0.1.7-draft.md +55 -0
  8. package/docs/releases/0.1.8-draft.md +80 -0
  9. package/docs/roadmap.md +1 -1
  10. package/docs/verification.md +1 -0
  11. package/examples/config/smart-commit.json +32 -5
  12. package/out/cliApp.js +53 -6
  13. package/out/cliApp.js.map +1 -1
  14. package/out/commands/bridge.js +189 -6
  15. package/out/commands/bridge.js.map +1 -1
  16. package/out/commands/pullRequest.js +176 -0
  17. package/out/commands/pullRequest.js.map +1 -0
  18. package/out/commitMessage/index.js +2 -1
  19. package/out/commitMessage/index.js.map +1 -1
  20. package/out/commitMessage/prompt.js +58 -10
  21. package/out/commitMessage/prompt.js.map +1 -1
  22. package/out/commitMessage/protocol.js +168 -16
  23. package/out/commitMessage/protocol.js.map +1 -1
  24. package/out/config/cliArgs.js +114 -0
  25. package/out/config/cliArgs.js.map +1 -1
  26. package/out/config/constants.js +10 -1
  27. package/out/config/constants.js.map +1 -1
  28. package/out/config/env.js +90 -0
  29. package/out/config/env.js.map +1 -1
  30. package/out/config/file.js +113 -0
  31. package/out/config/file.js.map +1 -1
  32. package/out/config/legacySmartCommit.js +118 -9
  33. package/out/config/legacySmartCommit.js.map +1 -1
  34. package/out/config/merge.js +18 -0
  35. package/out/config/merge.js.map +1 -1
  36. package/out/config/schema.js +79 -7
  37. package/out/config/schema.js.map +1 -1
  38. package/out/contracts.js +174 -7
  39. package/out/contracts.js.map +1 -1
  40. package/out/git.js +108 -2
  41. package/out/git.js.map +1 -1
  42. package/out/output.js +4 -0
  43. package/out/output.js.map +1 -1
  44. package/out/pullRequest/api.js +528 -0
  45. package/out/pullRequest/api.js.map +1 -0
  46. package/out/pullRequest/client.js +17 -0
  47. package/out/pullRequest/client.js.map +1 -0
  48. package/out/pullRequest/config.js +18 -0
  49. package/out/pullRequest/config.js.map +1 -0
  50. package/out/pullRequest/contentPrompt.js +116 -0
  51. package/out/pullRequest/contentPrompt.js.map +1 -0
  52. package/out/pullRequest/contentService.js +77 -0
  53. package/out/pullRequest/contentService.js.map +1 -0
  54. package/out/pullRequest/index.js +25 -0
  55. package/out/pullRequest/index.js.map +1 -0
  56. package/out/pullRequest/platform.js +101 -0
  57. package/out/pullRequest/platform.js.map +1 -0
  58. package/out/pullRequest/redact.js +15 -0
  59. package/out/pullRequest/redact.js.map +1 -0
  60. package/out/pullRequest/workflow.js +153 -0
  61. package/out/pullRequest/workflow.js.map +1 -0
  62. package/out/renderOutput.js +31 -1
  63. package/out/renderOutput.js.map +1 -1
  64. package/out/reporting/aggregate.js +1 -1
  65. package/out/reporting/aggregate.js.map +1 -1
  66. package/out/reporting/mockProvider.js +5 -1
  67. package/out/reporting/mockProvider.js.map +1 -1
  68. package/out/reporting/openaiProvider.js +5 -1
  69. package/out/reporting/openaiProvider.js.map +1 -1
  70. package/out/reporting/prompt.js +145 -20
  71. package/out/reporting/prompt.js.map +1 -1
  72. package/out/reporting/render.js +24 -22
  73. package/out/reporting/render.js.map +1 -1
  74. package/out/reporting/timeWindow.js +101 -36
  75. package/out/reporting/timeWindow.js.map +1 -1
  76. package/out/reporting/types.js +3 -0
  77. package/out/reporting/types.js.map +1 -1
  78. package/out/review/mockProvider.js +25 -1
  79. package/out/review/mockProvider.js.map +1 -1
  80. package/out/stagedChangeSummary/index.js +53 -0
  81. package/out/stagedChangeSummary/index.js.map +1 -0
  82. package/out/stagedChangeSummary/mockProvider.js +24 -0
  83. package/out/stagedChangeSummary/mockProvider.js.map +1 -0
  84. package/out/stagedChangeSummary/openaiProvider.js +19 -0
  85. package/out/stagedChangeSummary/openaiProvider.js.map +1 -0
  86. package/out/stagedChangeSummary/prompt.js +138 -0
  87. package/out/stagedChangeSummary/prompt.js.map +1 -0
  88. package/out/stagedChangeSummary/provider.js +3 -0
  89. package/out/stagedChangeSummary/provider.js.map +1 -0
  90. package/out/stagedChangeSummary/render.js +74 -0
  91. package/out/stagedChangeSummary/render.js.map +1 -0
  92. package/package.json +1 -1
  93. package/src/git-commit-message-skills/conventional/SKILL.md +3 -3
  94. package/src/git-commit-message-skills/gitmoji/SKILL.md +3 -3
  95. package/src/git-commit-message-skills/semantic/SKILL.md +3 -3
@@ -0,0 +1,528 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestApiError = void 0;
4
+ exports.findExistingPullRequests = findExistingPullRequests;
5
+ exports.getRemoteBranchComparison = getRemoteBranchComparison;
6
+ exports.createPullRequest = createPullRequest;
7
+ const redact_1 = require("./redact");
8
+ class PullRequestApiError extends Error {
9
+ details;
10
+ constructor(message, details) {
11
+ super(message);
12
+ this.details = details;
13
+ this.name = "PullRequestApiError";
14
+ }
15
+ }
16
+ exports.PullRequestApiError = PullRequestApiError;
17
+ async function findExistingPullRequests(input) {
18
+ if (input.platform.kind === "github") {
19
+ return findExistingGitHubPullRequests(input);
20
+ }
21
+ return findExistingGitLabMergeRequests(input);
22
+ }
23
+ async function getRemoteBranchComparison(input) {
24
+ if (input.platform.kind === "github") {
25
+ return getGitHubBranchComparison(input);
26
+ }
27
+ return getGitLabBranchComparison(input);
28
+ }
29
+ async function createPullRequest(input) {
30
+ if (input.platform.kind === "github") {
31
+ return createGitHubPullRequest(input);
32
+ }
33
+ return createGitLabMergeRequest(input);
34
+ }
35
+ async function getGitHubBranchComparison(input) {
36
+ const response = await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/compare/${encodeCompareRef(input.targetBranch)}...${encodeCompareRef(input.sourceBranch)}`, {
37
+ method: "GET",
38
+ headers: buildGitHubHeaders(input.config.authToken),
39
+ signal: input.signal,
40
+ timeoutMs: input.timeoutMs,
41
+ platform: "GitHub",
42
+ operation: "Compare pull request branches"
43
+ });
44
+ const diff = (response.files ?? [])
45
+ .map((file) => formatGitHubCompareFileDiff(file))
46
+ .filter((section) => section.trim().length > 0)
47
+ .join("\n");
48
+ const changedFiles = (response.files ?? [])
49
+ .map((file) => file.filename)
50
+ .filter((file) => typeof file === "string" && file.length > 0);
51
+ return {
52
+ fullDiff: diff,
53
+ fullDiffChars: diff.length,
54
+ changedFiles,
55
+ commitsText: formatGitHubCompareCommits(response.commits ?? [])
56
+ };
57
+ }
58
+ async function getGitLabBranchComparison(input) {
59
+ const query = new URLSearchParams({
60
+ from: input.targetBranch,
61
+ to: input.sourceBranch,
62
+ straight: "false"
63
+ });
64
+ const response = await requestJson(`${input.platform.apiBaseUrl}/projects/${encodeProjectPath(input.platform.projectPath)}/repository/compare?${query}`, {
65
+ method: "GET",
66
+ headers: buildGitLabHeaders(input.config.authToken),
67
+ signal: input.signal,
68
+ timeoutMs: input.timeoutMs,
69
+ platform: "GitLab",
70
+ operation: "Compare merge request branches"
71
+ });
72
+ const diff = (response.diffs ?? [])
73
+ .map((file) => formatGitLabCompareFileDiff(file))
74
+ .filter((section) => section.trim().length > 0)
75
+ .join("\n");
76
+ const changedFiles = (response.diffs ?? [])
77
+ .map((file) => file.new_path || file.old_path)
78
+ .filter((file) => typeof file === "string" && file.length > 0);
79
+ return {
80
+ fullDiff: diff,
81
+ fullDiffChars: diff.length,
82
+ changedFiles,
83
+ commitsText: formatGitLabCompareCommits(response.commits ?? [])
84
+ };
85
+ }
86
+ function buildGitHubHeaders(token) {
87
+ return {
88
+ Accept: "application/vnd.github+json",
89
+ Authorization: `Bearer ${token}`,
90
+ "Content-Type": "application/json",
91
+ "X-GitHub-Api-Version": "2022-11-28"
92
+ };
93
+ }
94
+ function buildGitLabHeaders(token) {
95
+ return {
96
+ "Content-Type": "application/json",
97
+ "PRIVATE-TOKEN": token
98
+ };
99
+ }
100
+ async function findExistingGitHubPullRequests(input) {
101
+ const query = new URLSearchParams({
102
+ state: "open",
103
+ head: `${input.platform.owner}:${input.sourceBranch}`,
104
+ base: input.targetBranch
105
+ });
106
+ const response = await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/pulls?${query}`, {
107
+ method: "GET",
108
+ headers: buildGitHubHeaders(input.config.authToken),
109
+ signal: input.signal,
110
+ timeoutMs: input.timeoutMs,
111
+ platform: "GitHub",
112
+ operation: "Check existing pull requests"
113
+ });
114
+ return response.map((item) => ({
115
+ title: item.title || "(untitled)",
116
+ url: item.html_url || item.url || ""
117
+ })).filter((item) => item.url.length > 0);
118
+ }
119
+ async function createGitHubPullRequest(input) {
120
+ const headers = buildGitHubHeaders(input.config.authToken);
121
+ const pull = await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/pulls`, {
122
+ method: "POST",
123
+ headers,
124
+ body: JSON.stringify({
125
+ title: input.content.title,
126
+ body: input.content.description,
127
+ head: input.sourceBranch,
128
+ base: input.targetBranch,
129
+ draft: input.config.draft
130
+ }),
131
+ signal: input.signal,
132
+ timeoutMs: input.timeoutMs,
133
+ platform: "GitHub",
134
+ operation: "Create pull request"
135
+ });
136
+ const warnings = [];
137
+ const issueNumber = pull.number;
138
+ if (typeof issueNumber === "number") {
139
+ await collectWarning(warnings, () => updateGitHubAssignees(input, headers, issueNumber), "GitHub assignees");
140
+ await collectWarning(warnings, () => updateGitHubLabels(input, headers, issueNumber), "GitHub labels");
141
+ await collectWarning(warnings, () => updateGitHubReviewers(input, headers, issueNumber), "GitHub reviewers");
142
+ await collectWarning(warnings, () => updateGitHubMilestone(input, headers, issueNumber), "GitHub milestone");
143
+ }
144
+ return {
145
+ title: pull.title || input.content.title,
146
+ url: pull.html_url || pull.url || "",
147
+ warnings
148
+ };
149
+ }
150
+ async function updateGitHubAssignees(input, headers, issueNumber) {
151
+ if (input.config.assignees.length === 0) {
152
+ return;
153
+ }
154
+ await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/issues/${issueNumber}/assignees`, {
155
+ method: "POST",
156
+ headers,
157
+ body: JSON.stringify({ assignees: input.config.assignees }),
158
+ signal: input.signal,
159
+ timeoutMs: input.timeoutMs,
160
+ platform: "GitHub",
161
+ operation: "Set pull request assignees"
162
+ });
163
+ }
164
+ async function updateGitHubLabels(input, headers, issueNumber) {
165
+ if (input.config.labels.length === 0) {
166
+ return;
167
+ }
168
+ await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/issues/${issueNumber}/labels`, {
169
+ method: "POST",
170
+ headers,
171
+ body: JSON.stringify({ labels: input.config.labels }),
172
+ signal: input.signal,
173
+ timeoutMs: input.timeoutMs,
174
+ platform: "GitHub",
175
+ operation: "Set pull request labels"
176
+ });
177
+ }
178
+ async function updateGitHubReviewers(input, headers, pullNumber) {
179
+ if (input.config.reviewers.length === 0) {
180
+ return;
181
+ }
182
+ const reviewers = [];
183
+ const teamReviewers = [];
184
+ for (const reviewer of input.config.reviewers) {
185
+ if (reviewer.includes("/")) {
186
+ teamReviewers.push(reviewer.split("/").filter(Boolean).pop() ?? reviewer);
187
+ }
188
+ else {
189
+ reviewers.push(reviewer);
190
+ }
191
+ }
192
+ await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/pulls/${pullNumber}/requested_reviewers`, {
193
+ method: "POST",
194
+ headers,
195
+ body: JSON.stringify({ reviewers, team_reviewers: teamReviewers }),
196
+ signal: input.signal,
197
+ timeoutMs: input.timeoutMs,
198
+ platform: "GitHub",
199
+ operation: "Request pull request reviewers"
200
+ });
201
+ }
202
+ async function updateGitHubMilestone(input, headers, issueNumber) {
203
+ const milestone = input.config.milestone.trim();
204
+ if (!milestone) {
205
+ return;
206
+ }
207
+ const milestoneNumber = await resolveGitHubMilestoneNumber(input, headers, milestone);
208
+ await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/issues/${issueNumber}`, {
209
+ method: "PATCH",
210
+ headers,
211
+ body: JSON.stringify({ milestone: milestoneNumber }),
212
+ signal: input.signal,
213
+ timeoutMs: input.timeoutMs,
214
+ platform: "GitHub",
215
+ operation: "Set pull request milestone"
216
+ });
217
+ }
218
+ async function resolveGitHubMilestoneNumber(input, headers, milestone) {
219
+ if (/^\d+$/.test(milestone)) {
220
+ return Number(milestone);
221
+ }
222
+ const query = new URLSearchParams({ state: "open", per_page: "100" });
223
+ const milestones = await requestJson(`${input.platform.apiBaseUrl}/repos/${encodePathSegment(input.platform.owner)}/${encodePathSegment(input.platform.repository)}/milestones?${query}`, {
224
+ method: "GET",
225
+ headers,
226
+ signal: input.signal,
227
+ timeoutMs: input.timeoutMs,
228
+ platform: "GitHub",
229
+ operation: "Find pull request milestone"
230
+ });
231
+ const match = milestones.find((item) => item.title === milestone);
232
+ if (!match) {
233
+ throw new Error(`GitHub milestone not found: ${milestone}`);
234
+ }
235
+ return match.number;
236
+ }
237
+ async function findExistingGitLabMergeRequests(input) {
238
+ const query = new URLSearchParams({
239
+ state: "opened",
240
+ source_branch: input.sourceBranch,
241
+ target_branch: input.targetBranch
242
+ });
243
+ const response = await requestJson(`${input.platform.apiBaseUrl}/projects/${encodeProjectPath(input.platform.projectPath)}/merge_requests?${query}`, {
244
+ method: "GET",
245
+ headers: buildGitLabHeaders(input.config.authToken),
246
+ signal: input.signal,
247
+ timeoutMs: input.timeoutMs,
248
+ platform: "GitLab",
249
+ operation: "Check existing merge requests"
250
+ });
251
+ return response.map((item) => ({
252
+ title: item.title || "(untitled)",
253
+ url: item.web_url || ""
254
+ })).filter((item) => item.url.length > 0);
255
+ }
256
+ async function createGitLabMergeRequest(input) {
257
+ const headers = buildGitLabHeaders(input.config.authToken);
258
+ const [assigneeIds, reviewerIds, milestoneId] = await Promise.all([
259
+ resolveGitLabUserIds(input, headers, input.config.assignees, "assignee"),
260
+ resolveGitLabUserIds(input, headers, input.config.reviewers, "reviewer"),
261
+ resolveGitLabMilestoneId(input, headers, input.config.milestone)
262
+ ]);
263
+ const mergeRequest = await requestJson(`${input.platform.apiBaseUrl}/projects/${encodeProjectPath(input.platform.projectPath)}/merge_requests`, {
264
+ method: "POST",
265
+ headers,
266
+ body: JSON.stringify({
267
+ source_branch: input.sourceBranch,
268
+ target_branch: input.targetBranch,
269
+ title: input.content.title,
270
+ description: input.content.description,
271
+ draft: input.config.draft,
272
+ remove_source_branch: input.config.removeSourceBranch,
273
+ labels: input.config.labels.join(","),
274
+ assignee_ids: assigneeIds,
275
+ reviewer_ids: reviewerIds,
276
+ milestone_id: milestoneId
277
+ }),
278
+ signal: input.signal,
279
+ timeoutMs: input.timeoutMs,
280
+ platform: "GitLab",
281
+ operation: "Create merge request"
282
+ });
283
+ return {
284
+ title: mergeRequest.title || input.content.title,
285
+ url: mergeRequest.web_url || "",
286
+ warnings: []
287
+ };
288
+ }
289
+ async function resolveGitLabUserIds(input, headers, usernames, role) {
290
+ const ids = [];
291
+ for (const username of usernames) {
292
+ const query = new URLSearchParams({ username });
293
+ const users = await requestJson(`${input.platform.apiBaseUrl}/users?${query}`, {
294
+ method: "GET",
295
+ headers,
296
+ signal: input.signal,
297
+ timeoutMs: input.timeoutMs,
298
+ platform: "GitLab",
299
+ operation: `Find merge request ${role}`
300
+ });
301
+ const match = users.find((user) => user.username === username);
302
+ if (!match) {
303
+ throw new Error(`GitLab ${role} not found: ${username}`);
304
+ }
305
+ ids.push(match.id);
306
+ }
307
+ return ids;
308
+ }
309
+ async function resolveGitLabMilestoneId(input, headers, milestone) {
310
+ const trimmed = milestone.trim();
311
+ if (!trimmed) {
312
+ return undefined;
313
+ }
314
+ if (/^\d+$/.test(trimmed)) {
315
+ return Number(trimmed);
316
+ }
317
+ const query = new URLSearchParams({ search: trimmed, state: "active" });
318
+ const milestones = await requestJson(`${input.platform.apiBaseUrl}/projects/${encodeProjectPath(input.platform.projectPath)}/milestones?${query}`, {
319
+ method: "GET",
320
+ headers,
321
+ signal: input.signal,
322
+ timeoutMs: input.timeoutMs,
323
+ platform: "GitLab",
324
+ operation: "Find merge request milestone"
325
+ });
326
+ const match = milestones.find((item) => item.title === trimmed);
327
+ if (!match) {
328
+ throw new Error(`GitLab milestone not found: ${trimmed}`);
329
+ }
330
+ return match.id;
331
+ }
332
+ async function requestJson(url, options) {
333
+ const controller = new AbortController();
334
+ const abortHandler = () => controller.abort(options.signal?.reason);
335
+ if (options.signal?.aborted) {
336
+ throw new PullRequestApiError(`${options.operation} was cancelled.`, {
337
+ platform: options.platform,
338
+ operation: options.operation
339
+ });
340
+ }
341
+ options.signal?.addEventListener("abort", abortHandler);
342
+ const timeout = setTimeout(() => controller.abort(new Error(`${options.operation} timed out.`)), options.timeoutMs);
343
+ try {
344
+ const response = await fetch(url, {
345
+ method: options.method,
346
+ headers: options.headers,
347
+ body: options.body,
348
+ signal: controller.signal
349
+ });
350
+ const text = await response.text();
351
+ if (!response.ok) {
352
+ throw buildApiError(response, text, options);
353
+ }
354
+ if (!text.trim()) {
355
+ return undefined;
356
+ }
357
+ return JSON.parse(text);
358
+ }
359
+ catch (error) {
360
+ if (error instanceof PullRequestApiError) {
361
+ throw error;
362
+ }
363
+ if (controller.signal.aborted) {
364
+ throw new PullRequestApiError(`${options.operation} was cancelled or timed out.`, {
365
+ platform: options.platform,
366
+ operation: options.operation
367
+ });
368
+ }
369
+ const message = (0, redact_1.redactSensitiveText)(error instanceof Error ? error.message : String(error), collectHeaderSecrets(options.headers));
370
+ throw new PullRequestApiError(`${options.operation} failed: ${message}`, {
371
+ platform: options.platform,
372
+ operation: options.operation
373
+ });
374
+ }
375
+ finally {
376
+ clearTimeout(timeout);
377
+ options.signal?.removeEventListener("abort", abortHandler);
378
+ }
379
+ }
380
+ function buildApiError(response, responseText, options) {
381
+ const requestId = response.headers.get("x-request-id") ?? response.headers.get("x-github-request-id") ?? undefined;
382
+ const secrets = collectHeaderSecrets(options.headers);
383
+ const apiMessage = (0, redact_1.redactSensitiveText)(extractApiErrorMessage(responseText), secrets);
384
+ const message = (0, redact_1.redactSensitiveText)([
385
+ `${options.operation} failed on ${options.platform} with HTTP ${response.status}.`,
386
+ apiMessage,
387
+ requestId ? `Request id: ${requestId}.` : "",
388
+ buildSuggestion(response.status)
389
+ ].filter(Boolean).join(" "), secrets);
390
+ return new PullRequestApiError(message, {
391
+ platform: options.platform,
392
+ operation: options.operation,
393
+ status: response.status,
394
+ requestId,
395
+ responseText: (0, redact_1.redactSensitiveText)(responseText, secrets)
396
+ });
397
+ }
398
+ function extractApiErrorMessage(responseText) {
399
+ if (!responseText.trim()) {
400
+ return "";
401
+ }
402
+ try {
403
+ const parsed = JSON.parse(responseText);
404
+ const message = typeof parsed.message === "string" ? parsed.message : "";
405
+ const error = typeof parsed.error === "string" ? parsed.error : "";
406
+ const errors = formatErrorsField(parsed.errors);
407
+ return [message, error, errors].filter(Boolean).join(" ");
408
+ }
409
+ catch {
410
+ return responseText.trim();
411
+ }
412
+ }
413
+ function formatErrorsField(errors) {
414
+ if (!errors) {
415
+ return "";
416
+ }
417
+ if (typeof errors === "string") {
418
+ return errors;
419
+ }
420
+ if (Array.isArray(errors)) {
421
+ return errors.map((item) => typeof item === "string" ? item : JSON.stringify(item)).join("; ");
422
+ }
423
+ if (typeof errors === "object") {
424
+ return Object.entries(errors)
425
+ .map(([key, value]) => `${key}: ${Array.isArray(value) ? value.join(", ") : String(value)}`)
426
+ .join("; ");
427
+ }
428
+ return String(errors);
429
+ }
430
+ function buildSuggestion(status) {
431
+ if (status === 401 || status === 403) {
432
+ return "Check the configured token permissions and repository access.";
433
+ }
434
+ if (status === 404) {
435
+ return "Check the repository, branch names, and token project access.";
436
+ }
437
+ if (status === 422 || status === 400) {
438
+ return "Check target branch, assignees, reviewers, labels, and milestone settings.";
439
+ }
440
+ return "";
441
+ }
442
+ function collectHeaderSecrets(headers) {
443
+ const secrets = [];
444
+ for (const [name, value] of Object.entries(headers)) {
445
+ const trimmed = value.trim();
446
+ if (!trimmed) {
447
+ continue;
448
+ }
449
+ if (name.toLowerCase() === "authorization") {
450
+ secrets.push(trimmed, ...trimmed.split(/\s+/).filter((part) => part.length > 0));
451
+ }
452
+ else if (name.toLowerCase() === "private-token") {
453
+ secrets.push(trimmed);
454
+ }
455
+ }
456
+ return secrets;
457
+ }
458
+ async function collectWarning(warnings, action, label) {
459
+ try {
460
+ await action();
461
+ }
462
+ catch (error) {
463
+ const message = error instanceof Error ? error.message : String(error);
464
+ warnings.push(`${label}: ${message}`);
465
+ }
466
+ }
467
+ function encodePathSegment(value) {
468
+ return encodeURIComponent(value);
469
+ }
470
+ function encodeCompareRef(ref) {
471
+ return encodeURIComponent(ref);
472
+ }
473
+ function encodeProjectPath(projectPath) {
474
+ return encodeURIComponent(projectPath);
475
+ }
476
+ function formatGitHubCompareFileDiff(file) {
477
+ if (!file.filename || !file.patch) {
478
+ return "";
479
+ }
480
+ return [
481
+ `diff --git a/${file.filename} b/${file.filename}`,
482
+ `--- a/${file.filename}`,
483
+ `+++ b/${file.filename}`,
484
+ file.patch
485
+ ].join("\n");
486
+ }
487
+ function formatGitLabCompareFileDiff(file) {
488
+ const oldPath = file.old_path || file.new_path || "unknown";
489
+ const newPath = file.new_path || file.old_path || "unknown";
490
+ if (!file.diff) {
491
+ return "";
492
+ }
493
+ return [
494
+ `diff --git a/${oldPath} b/${newPath}`,
495
+ `--- a/${oldPath}`,
496
+ `+++ b/${newPath}`,
497
+ file.diff
498
+ ].join("\n");
499
+ }
500
+ function formatGitHubCompareCommits(commits) {
501
+ return commits
502
+ .map((commit, index) => {
503
+ const message = commit.commit?.message ?? "";
504
+ const [subject = "", ...bodyLines] = message.split(/\r?\n/);
505
+ const body = bodyLines.join("\n").trim();
506
+ return [
507
+ `Commit ${index + 1}: ${commit.sha ?? "(unknown)"}`,
508
+ `Subject: ${subject.trim() || "(empty)"}`,
509
+ body ? `Body:\n${body}` : "Body: (empty)"
510
+ ].join("\n");
511
+ })
512
+ .join("\n\n");
513
+ }
514
+ function formatGitLabCompareCommits(commits) {
515
+ return commits
516
+ .map((commit, index) => {
517
+ const message = commit.message ?? "";
518
+ const [subject = commit.title ?? "", ...bodyLines] = message.split(/\r?\n/);
519
+ const body = bodyLines.join("\n").trim();
520
+ return [
521
+ `Commit ${index + 1}: ${commit.id ?? "(unknown)"}`,
522
+ `Subject: ${subject.trim() || "(empty)"}`,
523
+ body ? `Body:\n${body}` : "Body: (empty)"
524
+ ].join("\n");
525
+ })
526
+ .join("\n\n");
527
+ }
528
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/pullRequest/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOpenAICompatiblePullRequestContentClient = createOpenAICompatiblePullRequestContentClient;
4
+ const openaiCompatible_1 = require("../openaiCompatible");
5
+ function createOpenAICompatiblePullRequestContentClient(config) {
6
+ return {
7
+ async complete(messages) {
8
+ return (0, openaiCompatible_1.requestOpenAICompatibleText)({
9
+ config,
10
+ messages,
11
+ temperature: 0.2,
12
+ taskLabel: "pull-request"
13
+ });
14
+ }
15
+ };
16
+ }
17
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/pullRequest/client.ts"],"names":[],"mappings":";;AAIA,wGAWC;AAdD,0DAAkE;AAGlE,SAAgB,8CAA8C,CAAC,MAAiB;IAC9E,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACrB,OAAO,IAAA,8CAA2B,EAAC;gBACjC,MAAM;gBACN,QAAQ;gBACR,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePullRequestCreationConfig = validatePullRequestCreationConfig;
4
+ function validatePullRequestCreationConfig(config) {
5
+ if (!config.targetBranch.trim()) {
6
+ throw new Error("pullRequest.targetBranch is required.");
7
+ }
8
+ if (!config.authToken.trim()) {
9
+ throw new Error("pullRequest.authToken is required. Use SMART_COMMIT_PULL_REQUEST_AUTH_TOKEN or authToken: env:VAR_NAME.");
10
+ }
11
+ if (config.provider !== "auto" && config.provider !== "github" && config.provider !== "gitlab") {
12
+ throw new Error("pullRequest.provider must be one of: auto, github, gitlab.");
13
+ }
14
+ if (!Number.isInteger(config.maxDiffChars) || config.maxDiffChars < 1000) {
15
+ throw new Error("pullRequest.maxDiffChars must be an integer greater than or equal to 1000.");
16
+ }
17
+ }
18
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/pullRequest/config.ts"],"names":[],"mappings":";;AAIA,8EAgBC;AAhBD,SAAgB,iCAAiC,CAAC,MAAiC;IACjF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;IAC7H,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;AACH,CAAC"}