@elsikora/commitizen-plugin-commitlint-ai 2.1.1 → 2.2.0-dev.2

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 (43) hide show
  1. package/dist/cjs/application/use-case/edit-commit.use-case.d.ts +78 -0
  2. package/dist/cjs/application/use-case/edit-commit.use-case.js +273 -0
  3. package/dist/cjs/application/use-case/edit-commit.use-case.js.map +1 -0
  4. package/dist/cjs/application/use-case/index.d.ts +1 -0
  5. package/dist/cjs/domain/entity/commit-message.entity.d.ts +6 -0
  6. package/dist/cjs/domain/entity/commit-message.entity.js +15 -2
  7. package/dist/cjs/domain/entity/commit-message.entity.js.map +1 -1
  8. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts +9 -3
  9. package/dist/cjs/domain/value-object/commit-body.value-object.js +17 -8
  10. package/dist/cjs/domain/value-object/commit-body.value-object.js.map +1 -1
  11. package/dist/cjs/index.js +2 -0
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/infrastructure/di/container.d.ts +1 -0
  14. package/dist/cjs/infrastructure/di/container.js +7 -2
  15. package/dist/cjs/infrastructure/di/container.js.map +1 -1
  16. package/dist/cjs/infrastructure/llm/mock-llm.service.d.ts +35 -0
  17. package/dist/cjs/infrastructure/llm/mock-llm.service.js +203 -0
  18. package/dist/cjs/infrastructure/llm/mock-llm.service.js.map +1 -0
  19. package/dist/cjs/presentation/commitizen.adapter.d.ts +7 -0
  20. package/dist/cjs/presentation/commitizen.adapter.js +26 -8
  21. package/dist/cjs/presentation/commitizen.adapter.js.map +1 -1
  22. package/dist/esm/application/use-case/edit-commit.use-case.d.ts +78 -0
  23. package/dist/esm/application/use-case/edit-commit.use-case.js +271 -0
  24. package/dist/esm/application/use-case/edit-commit.use-case.js.map +1 -0
  25. package/dist/esm/application/use-case/index.d.ts +1 -0
  26. package/dist/esm/domain/entity/commit-message.entity.d.ts +6 -0
  27. package/dist/esm/domain/entity/commit-message.entity.js +15 -2
  28. package/dist/esm/domain/entity/commit-message.entity.js.map +1 -1
  29. package/dist/esm/domain/value-object/commit-body.value-object.d.ts +9 -3
  30. package/dist/esm/domain/value-object/commit-body.value-object.js +17 -8
  31. package/dist/esm/domain/value-object/commit-body.value-object.js.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/infrastructure/di/container.d.ts +1 -0
  35. package/dist/esm/infrastructure/di/container.js +7 -3
  36. package/dist/esm/infrastructure/di/container.js.map +1 -1
  37. package/dist/esm/infrastructure/llm/mock-llm.service.d.ts +35 -0
  38. package/dist/esm/infrastructure/llm/mock-llm.service.js +201 -0
  39. package/dist/esm/infrastructure/llm/mock-llm.service.js.map +1 -0
  40. package/dist/esm/presentation/commitizen.adapter.d.ts +7 -0
  41. package/dist/esm/presentation/commitizen.adapter.js +27 -9
  42. package/dist/esm/presentation/commitizen.adapter.js.map +1 -1
  43. package/package.json +2 -1
@@ -0,0 +1,35 @@
1
+ import type { ILlmPromptContext, ILlmService } from '../../application/interface/llm-service.interface';
2
+ import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
3
+ import { CommitMessage } from '../../domain/entity/commit-message.entity';
4
+ /**
5
+ * Mock LLM service for testing without real API calls
6
+ * Activated when MOCK_LLM environment variable is set to "true"
7
+ */
8
+ export declare class MockLlmService implements ILlmService {
9
+ /**
10
+ * Generate a mock commit message based on context analysis
11
+ * @param {ILlmPromptContext} context - The context for generating the commit message
12
+ * @param {LLMConfiguration} _configuration - The LLM configuration (unused in mock)
13
+ * @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
14
+ */
15
+ generateCommitMessage(context: ILlmPromptContext, _configuration: LLMConfiguration): Promise<CommitMessage>;
16
+ /**
17
+ * Check if the service supports the given configuration
18
+ * Mock service supports all providers when MOCK_LLM is enabled
19
+ * @param {LLMConfiguration} _configuration - The LLM configuration (unused)
20
+ * @returns {boolean} True if mock mode is enabled
21
+ */
22
+ supports(_configuration: LLMConfiguration): boolean;
23
+ /**
24
+ * Extract a numeric value from commitlint rules
25
+ * @param {unknown} rules - The commitlint rules
26
+ * @param {string} ruleName - The name of the rule to extract
27
+ * @returns {number | undefined} The numeric value or undefined
28
+ */
29
+ private extractRuleValue;
30
+ /**
31
+ * Check if mock mode is enabled via environment variable
32
+ * @returns {boolean} True if MOCK_LLM environment variable is set to "true" or "1"
33
+ */
34
+ private isMockEnabled;
35
+ }
@@ -0,0 +1,203 @@
1
+ 'use strict';
2
+
3
+ var commitMessage_entity = require('../../domain/entity/commit-message.entity.js');
4
+ var commitBody_valueObject = require('../../domain/value-object/commit-body.value-object.js');
5
+ var commitHeader_valueObject = require('../../domain/value-object/commit-header.value-object.js');
6
+
7
+ /**
8
+ * Mock LLM service for testing without real API calls
9
+ * Activated when MOCK_LLM environment variable is set to "true"
10
+ */
11
+ class MockLlmService {
12
+ /**
13
+ * Generate a mock commit message based on context analysis
14
+ * @param {ILlmPromptContext} context - The context for generating the commit message
15
+ * @param {LLMConfiguration} _configuration - The LLM configuration (unused in mock)
16
+ * @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
17
+ */
18
+ async generateCommitMessage(context, _configuration) {
19
+ process.stdout.write("🎭 Using MOCK LLM provider (no real API calls)\n");
20
+ // Simulate API delay
21
+ await new Promise((resolve) => setTimeout(resolve, 500));
22
+ const filesChanged = context.files ? context.files.split("\n").filter(Boolean) : [];
23
+ const diffContent = context.diff ?? "";
24
+ // Analyze changes to determine type
25
+ const hasNewFile = diffContent.includes("new file mode");
26
+ const hasDeletedFile = diffContent.includes("deleted file mode");
27
+ const hasTest = filesChanged.some((f) => f.includes("test") || f.includes("spec"));
28
+ const hasDocument = filesChanged.some((f) => f.includes("README") || f.includes(".md") || f.includes("doc"));
29
+ const hasSource = filesChanged.some((f) => f.includes("src/") || f.includes("lib/"));
30
+ const hasConfig = filesChanged.some((f) => f.includes("config") || f.includes(".json") || f.includes(".yml"));
31
+ // Determine type based on changes
32
+ let type = "chore";
33
+ if (hasNewFile && hasSource) {
34
+ type = "feat";
35
+ }
36
+ else if (hasDocument) {
37
+ type = "docs";
38
+ }
39
+ else if (hasTest) {
40
+ type = "test";
41
+ }
42
+ else if (hasSource && !hasNewFile) {
43
+ type = "fix";
44
+ }
45
+ else if (hasConfig) {
46
+ // eslint-disable-next-line @elsikora/sonar/no-redundant-assignments
47
+ type = "chore";
48
+ }
49
+ // Ensure type is in allowed enum
50
+ if (context.typeEnum && !context.typeEnum.includes(type)) {
51
+ type = context.typeEnum[0] ?? "feat";
52
+ }
53
+ // Determine scope from files - ALWAYS provide scope (scope-empty: never)
54
+ let scope = "core"; // Default scope if nothing else works
55
+ if (filesChanged.length > 0) {
56
+ const firstFile = filesChanged[0] ?? "";
57
+ const parts = firstFile.split("/");
58
+ if (parts.length > 1) {
59
+ // Take first directory as scope
60
+ const rawScope = parts[0]?.replace(/^\.+/, "").replaceAll(/[^\w-]/g, "-");
61
+ if (rawScope && rawScope.length > 0) {
62
+ scope = rawScope;
63
+ }
64
+ else if (parts.length > 1) {
65
+ // Try second part
66
+ const secondScope = parts[1]?.replaceAll(/[^\w-]/g, "-");
67
+ if (secondScope && secondScope.length > 0) {
68
+ scope = secondScope;
69
+ }
70
+ }
71
+ }
72
+ else if (parts[0]) {
73
+ // Single file without directory - use filename without extension
74
+ const filename = parts[0].split(".")[0] ?? "core";
75
+ const cleanFilename = filename.replaceAll(/[^\w-]/g, "-");
76
+ if (cleanFilename && cleanFilename.length > 0) {
77
+ scope = cleanFilename;
78
+ }
79
+ }
80
+ // Apply scope transformations
81
+ // Always lowercase (scope-case: lower-case)
82
+ scope = scope.toLowerCase();
83
+ // Apply scope max length (default 30)
84
+ const scopeMaxLength = this.extractRuleValue(context.rules, "scope-max-length") || 30;
85
+ if (scope.length > scopeMaxLength) {
86
+ scope = scope.slice(0, scopeMaxLength);
87
+ }
88
+ // Remove trailing/leading dashes
89
+ scope = scope.replaceAll(/^-+|-+$/g, "");
90
+ // If scope is empty after cleaning, use default
91
+ if (!scope || scope.length === 0) {
92
+ scope = "core";
93
+ }
94
+ }
95
+ // Generate subject - ALWAYS lowercase (subject-case: lower-case)
96
+ let subject = "";
97
+ if (hasNewFile) {
98
+ const lastFile = filesChanged.at(-1);
99
+ const fileName = lastFile ? lastFile.split("/").pop() : "files";
100
+ subject = filesChanged.length > 1 ? `add ${filesChanged.length} new files` : `add ${fileName}`;
101
+ }
102
+ else if (hasDeletedFile) {
103
+ subject = "remove obsolete files";
104
+ }
105
+ else if (hasDocument) {
106
+ subject = "update documentation";
107
+ }
108
+ else if (hasTest) {
109
+ subject = "update tests";
110
+ }
111
+ else {
112
+ subject = "update implementation";
113
+ }
114
+ // ALWAYS apply lowercase (subject-case: lower-case)
115
+ subject = subject.toLowerCase();
116
+ // Apply subject length rules (subject-max-length: 80, subject-min-length: 3)
117
+ const subjectMaxLength = context.subject.maxLength || 80;
118
+ const subjectMinLength = context.subject.minLength || 3;
119
+ // Ensure minimum length first
120
+ if (subject.length < subjectMinLength) {
121
+ subject = subject + " with changes";
122
+ }
123
+ // Then apply max length (header-max-length includes type + scope, so be conservative)
124
+ if (subject.length > subjectMaxLength) {
125
+ subject = subject.slice(0, subjectMaxLength);
126
+ }
127
+ // Remove any trailing periods (subject-full-stop: never)
128
+ subject = subject.replace(/\.+$/, "");
129
+ // Ensure the complete header doesn't exceed limits (header-max-length: 100)
130
+ // Format: type(scope): subject
131
+ const headerLength = type.length + scope.length + subject.length + 4; // 4 for "(", ")", ":", " "
132
+ if (headerLength > 100) {
133
+ // Reduce subject length to fit
134
+ const availableForSubject = 100 - type.length - scope.length - 4;
135
+ subject = subject.slice(0, Math.max(availableForSubject, subjectMinLength));
136
+ }
137
+ // Final check for header minimum length (header-min-length: 10)
138
+ if (headerLength < 10) {
139
+ subject = subject + " changes";
140
+ }
141
+ // Generate body (optional, but with strict formatting rules)
142
+ // body-full-stop: always "."
143
+ // body-max-line-length: 100
144
+ // body-leading-blank: always (handled by CommitMessage.toString())
145
+ let body;
146
+ if (filesChanged.length > 0 && filesChanged.length <= 10) {
147
+ // Only add body for reasonable number of files
148
+ const filesList = filesChanged
149
+ .slice(0, 5)
150
+ .map((f) => `- ${f}`)
151
+ .join("\n");
152
+ body = `modified files:\n${filesList}`;
153
+ if (filesChanged.length > 5) {
154
+ body += `\n- and ${filesChanged.length - 5} more files`;
155
+ }
156
+ // Add trailing period (body-full-stop: always)
157
+ if (!body.endsWith(".")) {
158
+ body += ".";
159
+ }
160
+ }
161
+ // Create commit message
162
+ const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
163
+ const commitBody = new commitBody_valueObject.CommitBody(body);
164
+ const commitMessage = new commitMessage_entity.CommitMessage(header, commitBody);
165
+ process.stdout.write(`🎭 Mock generated commit message:\n${commitMessage.toString()}\n\n`);
166
+ return commitMessage;
167
+ }
168
+ /**
169
+ * Check if the service supports the given configuration
170
+ * Mock service supports all providers when MOCK_LLM is enabled
171
+ * @param {LLMConfiguration} _configuration - The LLM configuration (unused)
172
+ * @returns {boolean} True if mock mode is enabled
173
+ */
174
+ supports(_configuration) {
175
+ return this.isMockEnabled();
176
+ }
177
+ /**
178
+ * Extract a numeric value from commitlint rules
179
+ * @param {unknown} rules - The commitlint rules
180
+ * @param {string} ruleName - The name of the rule to extract
181
+ * @returns {number | undefined} The numeric value or undefined
182
+ */
183
+ extractRuleValue(rules, ruleName) {
184
+ if (!Array.isArray(rules)) {
185
+ return undefined;
186
+ }
187
+ const rule = rules.find((r) => Array.isArray(r) && r[0] === ruleName);
188
+ if (rule && Array.isArray(rule) && rule.length > 2 && typeof rule[2] === "number") {
189
+ return rule[2];
190
+ }
191
+ return undefined;
192
+ }
193
+ /**
194
+ * Check if mock mode is enabled via environment variable
195
+ * @returns {boolean} True if MOCK_LLM environment variable is set to "true" or "1"
196
+ */
197
+ isMockEnabled() {
198
+ return process.env.MOCK_LLM === "true" || process.env.MOCK_LLM === "1";
199
+ }
200
+ }
201
+
202
+ exports.MockLlmService = MockLlmService;
203
+ //# sourceMappingURL=mock-llm.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-llm.service.js","sources":["../../../../../src/infrastructure/llm/mock-llm.service.ts"],"sourcesContent":[null],"names":["CommitHeader","CommitBody","CommitMessage"],"mappings":"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"}
@@ -11,6 +11,13 @@ export declare class CommitizenAdapter {
11
11
  * @param {TCommit} commit - Callback to execute with complete commit message
12
12
  */
13
13
  prompter(_inquirerIns: unknown, commit: TCommit): Promise<void>;
14
+ /**
15
+ * Execute commit or simulate it in mock mode
16
+ * @param {TCommit} commit - Callback to execute with complete commit message
17
+ * @param {string} message - The commit message to use
18
+ * @param {ICliInterfaceService} cliInterface - CLI interface for user interaction
19
+ */
20
+ private executeCommit;
14
21
  /**
15
22
  * Extract LLM prompt context from commitlint rules and prompts
16
23
  * @param {QualifiedRules} rules - The commitlint rules
@@ -32,10 +32,11 @@ class CommitizenAdapter {
32
32
  const generateCommitUseCase = this.CONTAINER.get(container.GenerateCommitMessageUseCaseToken);
33
33
  const validateCommitUseCase = this.CONTAINER.get(container.ValidateCommitMessageUseCaseToken);
34
34
  const manualCommitUseCase = this.CONTAINER.get(container.ManualCommitUseCaseToken);
35
+ const editCommitUseCase = this.CONTAINER.get(container.EditCommitUseCaseToken);
35
36
  const cliInterface = this.CONTAINER.get(container.CliInterfaceServiceToken);
36
37
  const commitRepository = this.CONTAINER.get(container.CommitRepositoryToken);
37
38
  const configService = this.CONTAINER.get(container.ConfigServiceToken);
38
- if (!configureLLMUseCase || !generateCommitUseCase || !validateCommitUseCase || !manualCommitUseCase || !cliInterface || !commitRepository || !configService) {
39
+ if (!configureLLMUseCase || !generateCommitUseCase || !validateCommitUseCase || !manualCommitUseCase || !editCommitUseCase || !cliInterface || !commitRepository || !configService) {
39
40
  throw new Error("Failed to initialize required services");
40
41
  }
41
42
  // Extract context from commitlint config
@@ -125,7 +126,7 @@ class CommitizenAdapter {
125
126
  if (llmConfig.isManualMode()) {
126
127
  cliInterface.info("Using manual commit mode...");
127
128
  const commitMessage = await manualCommitUseCase.execute(promptContext);
128
- commit(commitMessage.toString());
129
+ this.executeCommit(commit, commitMessage.toString(), cliInterface);
129
130
  return;
130
131
  }
131
132
  // Auto mode - set LLM configuration on validator if it supports it
@@ -169,7 +170,7 @@ class CommitizenAdapter {
169
170
  if (!validatedMessage) {
170
171
  cliInterface.warn("Could not generate a valid commit message. Switching to manual mode...");
171
172
  const commitMessage = await manualCommitUseCase.execute(promptContext);
172
- commit(commitMessage.toString());
173
+ this.executeCommit(commit, commitMessage.toString(), cliInterface);
173
174
  return;
174
175
  }
175
176
  // Show the generated message
@@ -178,12 +179,12 @@ class CommitizenAdapter {
178
179
  // Ask for confirmation
179
180
  const isConfirmed = await cliInterface.confirm("Do you want to proceed with this commit message?", true);
180
181
  if (isConfirmed) {
181
- commit(validatedMessage.toString());
182
+ this.executeCommit(commit, validatedMessage.toString(), cliInterface);
182
183
  }
183
184
  else {
184
- cliInterface.info("Switching to manual mode to edit the message...");
185
- const commitMessage = await manualCommitUseCase.execute(promptContext);
186
- commit(commitMessage.toString());
185
+ cliInterface.info("Opening edit menu...");
186
+ const editedMessage = await editCommitUseCase.execute(validatedMessage, promptContext, llmConfig);
187
+ this.executeCommit(commit, editedMessage.toString(), cliInterface);
187
188
  }
188
189
  }
189
190
  catch (error) {
@@ -196,7 +197,7 @@ class CommitizenAdapter {
196
197
  }
197
198
  cliInterface.warn("Falling back to manual commit entry...");
198
199
  const commitMessage = await manualCommitUseCase.execute(promptContext);
199
- commit(commitMessage.toString());
200
+ this.executeCommit(commit, commitMessage.toString(), cliInterface);
200
201
  }
201
202
  }
202
203
  catch (error) {
@@ -207,6 +208,23 @@ class CommitizenAdapter {
207
208
  throw error;
208
209
  }
209
210
  }
211
+ /**
212
+ * Execute commit or simulate it in mock mode
213
+ * @param {TCommit} commit - Callback to execute with complete commit message
214
+ * @param {string} message - The commit message to use
215
+ * @param {ICliInterfaceService} cliInterface - CLI interface for user interaction
216
+ */
217
+ executeCommit(commit, message, cliInterface) {
218
+ const isMockMode = process.env.MOCK_LLM === "true" || process.env.MOCK_LLM === "1";
219
+ if (isMockMode) {
220
+ cliInterface.success("🎭 Mock mode: Commit NOT executed (MOCK_LLM=true)");
221
+ cliInterface.note("Final commit message that would be used:", message);
222
+ cliInterface.info("In mock mode, staged files remain in staging area for manual cleanup");
223
+ }
224
+ else {
225
+ commit(message);
226
+ }
227
+ }
210
228
  /**
211
229
  * Extract LLM prompt context from commitlint rules and prompts
212
230
  * @param {QualifiedRules} rules - The commitlint rules
@@ -1 +1 @@
1
- {"version":3,"file":"commitizen.adapter.js","sources":["../../../../src/presentation/commitizen.adapter.ts"],"sourcesContent":[null],"names":["createAppContainer","ConfigureLLMUseCaseToken","GenerateCommitMessageUseCaseToken","ValidateCommitMessageUseCaseToken","ManualCommitUseCaseToken","CliInterfaceServiceToken","CommitRepositoryToken","ConfigServiceToken","ECommitMode","LLMConfiguration","ApiKey","DEFAULT_MAX_RETRIES","DEFAULT_VALIDATION_MAX_RETRIES","CommitValidatorToken","CommitlintValidatorService"],"mappings":"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"}
1
+ {"version":3,"file":"commitizen.adapter.js","sources":["../../../../src/presentation/commitizen.adapter.ts"],"sourcesContent":[null],"names":["createAppContainer","ConfigureLLMUseCaseToken","GenerateCommitMessageUseCaseToken","ValidateCommitMessageUseCaseToken","ManualCommitUseCaseToken","EditCommitUseCaseToken","CliInterfaceServiceToken","CommitRepositoryToken","ConfigServiceToken","ECommitMode","LLMConfiguration","ApiKey","DEFAULT_MAX_RETRIES","DEFAULT_VALIDATION_MAX_RETRIES","CommitValidatorToken","CommitlintValidatorService"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
2
+ import type { ICliInterfaceService } from '../interface/cli-interface-service.interface';
3
+ import type { ICommitValidator } from '../interface/commit-validator.interface';
4
+ import type { ILlmPromptContext } from '../interface/llm-service.interface';
5
+ import type { ILlmService } from '../interface/llm-service.interface';
6
+ import { CommitMessage } from '../../domain/entity/commit-message.entity';
7
+ /**
8
+ * Use case for editing existing commit messages with point editing capabilities
9
+ */
10
+ export declare class EditCommitUseCase {
11
+ private readonly CLI_INTERFACE;
12
+ private readonly LLM_SERVICES;
13
+ private readonly VALIDATOR;
14
+ constructor(cliInterface: ICliInterfaceService, validator: ICommitValidator, llmServices: Array<ILlmService>);
15
+ /**
16
+ * Execute the commit editing workflow
17
+ * @param {CommitMessage} commitMessage - The initial commit message to edit
18
+ * @param {ILlmPromptContext} context - The LLM prompt context
19
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration for regeneration
20
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
21
+ */
22
+ execute(commitMessage: CommitMessage, context: ILlmPromptContext, llmConfig?: LLMConfiguration): Promise<CommitMessage>;
23
+ /**
24
+ * Handle changing commit body
25
+ * @param {CommitMessage} commitMessage - The current commit message
26
+ * @param {ILlmPromptContext} context - The LLM prompt context
27
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
28
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
29
+ */
30
+ private handleChangeBody;
31
+ /**
32
+ * Handle changing commit scope
33
+ * @param {CommitMessage} commitMessage - The current commit message
34
+ * @param {ILlmPromptContext} context - The LLM prompt context
35
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
36
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
37
+ */
38
+ private handleChangeScope;
39
+ /**
40
+ * Handle changing commit subject
41
+ * @param {CommitMessage} commitMessage - The current commit message
42
+ * @param {ILlmPromptContext} context - The LLM prompt context
43
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
44
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
45
+ */
46
+ private handleChangeSubject;
47
+ /**
48
+ * Handle changing commit type
49
+ * @param {CommitMessage} commitMessage - The current commit message
50
+ * @param {ILlmPromptContext} context - The LLM prompt context
51
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
52
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
53
+ */
54
+ private handleChangeType;
55
+ /**
56
+ * Handle AI regeneration of commit message
57
+ * @param {ILlmPromptContext} context - The LLM prompt context
58
+ * @param {LLMConfiguration} llmConfig - The LLM configuration
59
+ * @returns {Promise<CommitMessage>} Promise resolving to the regenerated commit message
60
+ */
61
+ private handleRegenerate;
62
+ /**
63
+ * Handle toggling breaking change status
64
+ * @param {CommitMessage} commitMessage - The current commit message
65
+ * @param {ILlmPromptContext} context - The LLM prompt context
66
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
67
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
68
+ */
69
+ private handleToggleBreaking;
70
+ /**
71
+ * Handle toggling footer/issues
72
+ * @param {CommitMessage} commitMessage - The current commit message
73
+ * @param {ILlmPromptContext} context - The LLM prompt context
74
+ * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration
75
+ * @returns {Promise<CommitMessage>} Promise resolving to the edited commit message
76
+ */
77
+ private handleToggleFooter;
78
+ }