commic 1.0.0 → 1.0.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,83 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## Project Information
11
+
12
+ **Commic** - AI-powered commit messages with Conventional Commits
13
+
14
+ - **Repository**: [feyyazcigim/commic](https://github.com/feyyazcigim/commic)
15
+ - **Description**: AI-powered commit message generator that follows Conventional Commits specification
16
+ - **Technologies**: TypeScript (97%), JavaScript (3%)
17
+
18
+ ---
19
+
20
+ ## [v1.0.1] - 2026-01-17
21
+
22
+ ### Added
23
+
24
+ - **Custom instruction support for AI regeneration**: Users can now provide custom instructions when regenerating commit messages, allowing more control over AI-generated suggestions
25
+ - New `promptForCustomInstruction()` method in UIManager for collecting user input
26
+ - Added regeneration loop in MainOrchestrator to handle custom instructions
27
+ - Custom instruction parameter added to `buildCommitPrompt()` and `generateCommitMessages()`
28
+
29
+ - **Commit prompt template system**: New dedicated module for prompt construction
30
+ - Created `CommitPromptTemplate. ts` for centralized prompt management
31
+ - Improved prompt with language consistency rules (English-only output)
32
+ - Added file context prioritization logic for better change detection
33
+ - Enhanced handling of new files, renames, and changelogs
34
+ - Type consistency enforcement across all 5 suggestions
35
+
36
+ - **Interactive regenerate with prompt option**: New UI option to regenerate commit messages with custom instructions
37
+ - Added "🔄 Regenerate with prompt" choice in commit selection menu
38
+ - Selection value `-2` triggers custom instruction prompt flow
39
+
40
+ ### Changed
41
+
42
+ - **Model upgrade to Gemini 3 Flash Preview**: Updated default AI model from Gemini 2.5 Flash to Gemini 3 Flash Preview
43
+ - Updated in ConfigManager available models list
44
+ - Updated in README documentation and examples
45
+ - Updated configuration version references
46
+
47
+ - **Fixed commit message count to 5**: Standardized AI-generated suggestions to always return exactly 5 commit messages
48
+ - Changed from variable count (3-5) to fixed count of 5
49
+ - Updated prompt to generate exactly 3 single-line and 2 multi-line messages
50
+ - Removed `count` parameter from `generateCommitMessages()` method
51
+ - Updated UI messaging to reflect fixed count of 5 suggestions
52
+
53
+ - **Stage changes earlier in workflow**: Restructured commit workflow to stage all changes before AI generation
54
+ - Moved staging from step 6 to step 2. 5 (before diff analysis)
55
+ - Renamed `stageChangesIfNeeded()` to `stageAllChanges()` - now unconditional
56
+ - Removed conditional logic for unstaged changes
57
+ - Updated success message from "Changes staged" to "All changes staged"
58
+
59
+ - **Improved diff statistics calculation**: Enhanced GitService to accurately track both staged and unstaged changes
60
+ - Combined staged and unstaged file statistics
61
+ - Fixed insertions/deletions count to include both staged and unstaged changes
62
+ - Uses Set to deduplicate files when counting total files changed
63
+
64
+ - **Refactored AI prompt construction**: Moved prompt building logic from AIService to dedicated template file
65
+ - `buildPrompt()` method now delegates to `buildCommitPrompt()` function
66
+ - Improved separation of concerns and maintainability
67
+ - Reduced AIService complexity
68
+
69
+ - **Updated UI generation info display**: Removed dynamic suggestion count parameter
70
+ - `showAIGenerationInfo()` now only takes model parameter
71
+ - Hard-coded "5" in display message since count is now fixed
72
+
73
+ ### Fixed
74
+
75
+ - **Selection preview logic**: Fixed preview display to skip both cancel and regenerate options
76
+ - Changed condition from `!== -1` to `!== -1 && !== -2`
77
+ - Prevents preview display when regenerate option is selected
78
+
79
+ ---
80
+
81
+ ## Notes
82
+
83
+ These changes represent enhancements to the commit message generation workflow, adding user customization capabilities, improving AI model performance, and standardizing the output format for better consistency and user experience.
package/README.md CHANGED
@@ -35,7 +35,7 @@ On your first run, Commic will guide you through a quick setup:
35
35
  - Get your free API key at [Google AI Studio](https://makersuite.google.com/app/apikey)
36
36
 
37
37
  2. **Model Selection**: Choose your preferred Gemini model
38
- - Currently supports: Gemini 2.5 Flash
38
+ - Currently supports: Gemini 3 Flash Preview
39
39
 
40
40
  Your configuration is saved to `~/.commic/config.json` for future use.
41
41
 
@@ -72,7 +72,7 @@ commic --reconfigure
72
72
  ## How It Works
73
73
 
74
74
  1. 🔍 **Analyzes** your Git changes (staged and unstaged)
75
- 2. 🤖 **Generates** 3-5 commit message suggestions using AI
75
+ 2. 🤖 **Generates** 5 commit message suggestions using AI
76
76
  3. 🎯 **Validates** all messages against Conventional Commits spec
77
77
  4. ✨ **Presents** an interactive menu for selection
78
78
  5. 🚀 **Commits** automatically with your chosen message
@@ -158,7 +158,7 @@ Configuration is stored at `~/.commic/config.json`:
158
158
  ```json
159
159
  {
160
160
  "apiKey": "your-api-key",
161
- "model": "gemini-2.5-flash",
161
+ "model": "gemini-3-flash-preview",
162
162
  "version": "1.0.0"
163
163
  }
164
164
  ```
@@ -9,7 +9,7 @@ export declare class AIService {
9
9
  /**
10
10
  * Build prompt for Gemini API to generate commit messages
11
11
  * @param diff Git diff information
12
- * @param count Number of suggestions to generate (3-5)
12
+ * @param customInstruction Optional custom instruction to add to the prompt
13
13
  * @returns Formatted prompt string
14
14
  */
15
15
  private buildPrompt;
@@ -35,12 +35,12 @@ export declare class AIService {
35
35
  /**
36
36
  * Generate commit message suggestions using Gemini API
37
37
  * @param diff Git diff information
38
- * @param count Number of suggestions to generate (3-5)
38
+ * @param customInstruction Optional custom instruction to add to the prompt
39
39
  * @returns Array of validated commit suggestions
40
40
  * @throws APIError if API request fails
41
41
  * @throws ValidationError if no valid suggestions generated
42
42
  */
43
- generateCommitMessages(diff: GitDiff, count?: number): Promise<CommitSuggestion[]>;
43
+ generateCommitMessages(diff: GitDiff, customInstruction?: string): Promise<CommitSuggestion[]>;
44
44
  /**
45
45
  * Generate a simple fallback commit message when AI fails
46
46
  * @param diff Git diff information
@@ -1 +1 @@
1
- {"version":3,"file":"AIService.d.ts","sourceRoot":"","sources":["../../src/ai/AIService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGnE;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAE5B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK7C;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAwDnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsHrB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAehC;;;;;;;OAOG;IACG,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAwH3F;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAsChC"}
1
+ {"version":3,"file":"AIService.d.ts","sourceRoot":"","sources":["../../src/ai/AIService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGnE;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAE5B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK7C;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsHrB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAehC;;;;;;;OAOG;IACG,sBAAsB,CAC1B,IAAI,EAAE,OAAO,EACb,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsH9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAsChC"}
@@ -1,4 +1,5 @@
1
1
  import { GoogleGenerativeAI } from '@google/generative-ai';
2
+ import { buildCommitPrompt } from '../config/CommitPromptTemplate.js';
2
3
  import { APIError, ValidationError } from '../errors/CustomErrors.js';
3
4
  import { ConventionalCommitsValidator } from '../validation/ConventionalCommitsValidator.js';
4
5
  /**
@@ -14,60 +15,11 @@ export class AIService {
14
15
  /**
15
16
  * Build prompt for Gemini API to generate commit messages
16
17
  * @param diff Git diff information
17
- * @param count Number of suggestions to generate (3-5)
18
+ * @param customInstruction Optional custom instruction to add to the prompt
18
19
  * @returns Formatted prompt string
19
20
  */
20
- buildPrompt(diff, count) {
21
- // Combine staged and unstaged diffs
22
- const combinedDiff = [diff.staged, diff.unstaged].filter((d) => d.length > 0).join('\n\n');
23
- // Truncate diff if too large (Gemini input token limit: 1,048,576 tokens)
24
- // Using ~800K characters (approx 200K-266K tokens) leaves plenty of room for prompt
25
- // 1 token ≈ 3-4 characters on average, so 800K chars ≈ 200K-266K tokens
26
- const maxDiffLength = 800000;
27
- const truncatedDiff = combinedDiff.length > maxDiffLength
28
- ? combinedDiff.substring(0, maxDiffLength) +
29
- '\n\n[... diff truncated due to size limit ...]'
30
- : combinedDiff;
31
- return `You are an expert Git commit message writer. Analyze the ENTIRE Git diff below and generate ${count} commit messages that summarize ALL changes together. Each commit message should cover the complete set of changes, not individual features.
32
-
33
- IMPORTANT:
34
- - Analyze ALL changes in the diff as a single commit
35
- - Each suggested message should describe the complete set of changes
36
- - Do NOT create separate messages for different parts of the diff
37
- - Consider all file changes, additions, deletions, and modifications together
38
- - Provide different perspectives/styles for the SAME set of changes
39
-
40
- CRITICAL RULES:
41
- 1. Format: type(scope)?: description
42
- 2. Valid types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
43
- 3. Use imperative mood (add, fix, update - NOT added, fixed, updated)
44
- 4. Description starts with lowercase
45
- 5. Single-line messages: max 72 chars, no body
46
- 6. Multi-line messages: blank line between subject and body
47
- 7. At least 2 messages should be single-line
48
- 8. Each message must summarize ALL changes in the diff
49
-
50
- OUTPUT FORMAT:
51
- Separate each commit message with exactly "---" on its own line.
52
- Return ONLY the messages, no explanations or numbering.
53
-
54
- EXAMPLES (each covers all changes):
55
- feat(auth): add JWT validation and user login flow
56
- ---
57
- fix: resolve authentication issues and update error handling
58
- ---
59
- refactor(auth): improve JWT implementation and error messages
60
-
61
- Update token validation logic and add comprehensive error handling
62
- ---
63
- feat: implement user authentication system
64
-
65
- Add JWT token validation, login endpoints, and error handling
66
-
67
- GIT DIFF:
68
- ${truncatedDiff}
69
-
70
- Generate ${count} commit messages that each describe ALL the changes above:`;
21
+ buildPrompt(diff, customInstruction) {
22
+ return buildCommitPrompt(diff, customInstruction);
71
23
  }
72
24
  /**
73
25
  * Parse API response into CommitSuggestion array
@@ -208,14 +160,12 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
208
160
  /**
209
161
  * Generate commit message suggestions using Gemini API
210
162
  * @param diff Git diff information
211
- * @param count Number of suggestions to generate (3-5)
163
+ * @param customInstruction Optional custom instruction to add to the prompt
212
164
  * @returns Array of validated commit suggestions
213
165
  * @throws APIError if API request fails
214
166
  * @throws ValidationError if no valid suggestions generated
215
167
  */
216
- async generateCommitMessages(diff, count = 4) {
217
- // Ensure count is within bounds
218
- const requestCount = Math.max(3, Math.min(5, count));
168
+ async generateCommitMessages(diff, customInstruction) {
219
169
  let attempts = 0;
220
170
  const maxAttempts = 3;
221
171
  let bestSuggestions = [];
@@ -223,7 +173,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
223
173
  attempts++;
224
174
  try {
225
175
  // Build prompt
226
- const prompt = this.buildPrompt(diff, requestCount);
176
+ const prompt = this.buildPrompt(diff, customInstruction);
227
177
  // Call Gemini API with timeout
228
178
  const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timeout')), 30000));
229
179
  const result = await Promise.race([this.model.generateContent(prompt), timeoutPromise]);
@@ -243,7 +193,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
243
193
  if (validSuggestions.length > 0) {
244
194
  // If we meet minimum requirements, return them
245
195
  if (this.meetsMinimumRequirements(validSuggestions)) {
246
- // Limit to requested count, prioritizing single-line messages
196
+ // Prioritize single-line messages
247
197
  const sorted = validSuggestions.sort((a, b) => {
248
198
  if (a.type === 'single-line' && b.type !== 'single-line')
249
199
  return -1;
@@ -251,7 +201,8 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
251
201
  return 1;
252
202
  return 0;
253
203
  });
254
- return sorted.slice(0, requestCount);
204
+ // Return up to 5 suggestions (as per prompt)
205
+ return sorted.slice(0, 5);
255
206
  }
256
207
  // Store best suggestions so far
257
208
  if (validSuggestions.length > bestSuggestions.length) {
@@ -265,7 +216,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
265
216
  }
266
217
  // If we have at least 2 valid suggestions, return them even if not perfect
267
218
  if (validSuggestions.length >= 2) {
268
- return validSuggestions.slice(0, requestCount);
219
+ return validSuggestions.slice(0, 5);
269
220
  }
270
221
  }
271
222
  catch (error) {
@@ -293,7 +244,7 @@ Generate ${count} commit messages that each describe ALL the changes above:`;
293
244
  }
294
245
  // If we have some valid suggestions, return them as fallback
295
246
  if (bestSuggestions.length >= 1) {
296
- return bestSuggestions.slice(0, requestCount);
247
+ return bestSuggestions.slice(0, 5);
297
248
  }
298
249
  // Last resort: try to generate a simple fallback message
299
250
  if (bestSuggestions.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../src/ai/AIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../src/ai/AIService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { GitDiff } from '../types/index.js';
2
+ /**
3
+ * Builds the prompt template for generating commit messages
4
+ * @param diff Git diff information
5
+ * @param customInstruction Optional custom instruction from user
6
+ * @returns Formatted prompt string
7
+ */
8
+ export declare function buildCommitPrompt(diff: GitDiff, customInstruction?: string): string;
9
+ //# sourceMappingURL=CommitPromptTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommitPromptTemplate.d.ts","sourceRoot":"","sources":["../../src/config/CommitPromptTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAoFnF"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Builds the prompt template for generating commit messages
3
+ * @param diff Git diff information
4
+ * @param customInstruction Optional custom instruction from user
5
+ * @returns Formatted prompt string
6
+ */
7
+ export function buildCommitPrompt(diff, customInstruction) {
8
+ // Combine staged and unstaged diffs
9
+ const combinedDiff = [diff.staged, diff.unstaged].filter((d) => d.length > 0).join('\n\n');
10
+ // Truncate diff if too large (Gemini input token limit: 1,048,576 tokens)
11
+ // Using ~800K characters (approx 200K-266K tokens) leaves plenty of room for prompt
12
+ // 1 token ≈ 3-4 characters on average, so 800K chars ≈ 200K-266K tokens
13
+ const maxDiffLength = 800000;
14
+ const truncatedDiff = combinedDiff.length > maxDiffLength
15
+ ? `${combinedDiff.substring(0, maxDiffLength)}\n\n[... diff truncated due to size limit ...]`
16
+ : combinedDiff;
17
+ return `You are an expert Git commit message writer. Analyze the ENTIRE Git diff below and generate exactly 5 commit messages that summarize ALL changes together. Each commit message should cover the complete set of changes, not individual features.
18
+
19
+ IMPORTANT:
20
+ - Analyze ALL changes in the diff as a single commit
21
+ - Each suggested message should describe the complete set of changes
22
+ - Do NOT create separate messages for different parts of the diff
23
+ - Consider all file changes, additions, deletions, and modifications together
24
+ - Provide different perspectives/styles for the SAME set of changes
25
+
26
+ LANGUAGE:
27
+ - Output must be in English only.
28
+ - Commit subjects and bodies must be English, even if the diff content or comments are in another language.
29
+ - Do NOT include any non-English words unless they are proper nouns or exact identifiers from the diff.
30
+
31
+ FILE CONTEXT FIRST (NEW / RENAMED FILES):
32
+ - Treat added, removed, or renamed files as high-signal context.
33
+ - When a new file is added, first infer its purpose from:
34
+ 1) file path and directory (e.g., docs/, .github/, scripts/, src/, config/)
35
+ 2) file name and extension (e.g., CHANGELOG.md, README.md, package.json, *.yml)
36
+ 3) how or where it is referenced by other changes in the diff
37
+ - Only after that, use the file contents for details.
38
+ - Do NOT let incidental values inside the file override the primary change.
39
+
40
+ CONTEXT PRIORITY EXAMPLES:
41
+ - If CHANGELOG.md (or similar release notes) is added or newly introduced, the message must mention adding or updating the changelog as a primary change.
42
+ - For generated or aggregated artifacts (changelog entries, lockfiles, snapshots), summarize the artifact-level change rather than listing internal values.
43
+
44
+ ADDITIONAL CRITICAL RULE (TYPE CONSISTENCY):
45
+ - First, determine ONE primary commit type that best matches the ENTIRE diff.
46
+ - Then, ALL 5 suggested commit messages MUST use the SAME chosen type.
47
+ - Do NOT vary the type across suggestions.
48
+ - Vary only wording, style, emphasis, and optionally scope.
49
+
50
+ Type selection guidance (pick the single best fit for the whole diff):
51
+ - feat: new user-facing capability or new behavior
52
+ - fix: bug fix or incorrect behavior
53
+ - refactor: internal restructuring without behavior change
54
+ - perf: performance improvements
55
+ - docs: documentation-only changes (README, CHANGELOG, /docs)
56
+ - test: test-only changes
57
+ - ci: CI pipeline or workflow changes
58
+ - build: build system or dependency changes
59
+ - chore: maintenance, tooling, or non-functional changes
60
+ - style: formatting-only changes (no logic change)
61
+ If multiple apply, choose the most user-impacting one.
62
+ If unclear, choose chore.
63
+ Type selection must prioritize file context over content details.
64
+
65
+ Avoid overfitting to literal values (versions, numbers, dates) unless the main purpose of the diff is to change those values.
66
+
67
+ CRITICAL RULES:
68
+ 1. Format: <CHOSEN_TYPE>(scope)?: description
69
+ 2. Valid types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
70
+ 3. Use imperative mood (add, fix, update — NOT added, fixed, updated)
71
+ 4. Description must start with lowercase
72
+ 5. Single-line messages: max 72 characters, no body
73
+ 6. Multi-line messages: blank line between subject and body
74
+ 7. Output must include exactly:
75
+ - 3 single-line commit messages
76
+ - 2 multi-line commit messages
77
+ 8. Each message must summarize ALL changes in the diff
78
+ 9. Do NOT output the chosen type separately; it must only appear in the messages.
79
+
80
+ OUTPUT FORMAT:
81
+ - Separate each commit message with exactly "---" on its own line.
82
+ - Return ONLY the commit messages, no explanations, no numbering.
83
+
84
+ ${customInstruction ? `USER INSTRUCTION:\n${customInstruction}\n\n` : ''}GIT DIFF:
85
+ ${truncatedDiff}
86
+
87
+ Generate exactly 5 commit messages that each describe ALL the changes above:`;
88
+ }
89
+ //# sourceMappingURL=CommitPromptTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommitPromptTemplate.js","sourceRoot":"","sources":["../../src/config/CommitPromptTemplate.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,iBAA0B;IACzE,oCAAoC;IACpC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3F,0EAA0E;IAC1E,oFAAoF;IACpF,wEAAwE;IACxE,MAAM,aAAa,GAAG,MAAM,CAAC;IAC7B,MAAM,aAAa,GACjB,YAAY,CAAC,MAAM,GAAG,aAAa;QACjC,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,gDAAgD;QAC7F,CAAC,CAAC,YAAY,CAAC;IAEnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEP,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE;EACtE,aAAa;;6EAE8D,CAAC;AAC9E,CAAC"}
@@ -112,7 +112,7 @@ export class ConfigManager {
112
112
  throw ConfigurationError.invalidApiKey();
113
113
  }
114
114
  // Prompt for model selection
115
- const availableModels = ['gemini-2.5-flash', 'gemini-flash-latest'];
115
+ const availableModels = ['gemini-3-flash-preview', 'gemini-flash-latest'];
116
116
  const model = await ui.promptForModel(availableModels);
117
117
  return {
118
118
  apiKey,
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/git/GitService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;GAEG;AACH,qBAAa,UAAU;IACrB;;;;;OAKG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoD/D;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;OAKG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWpD;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBjD;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAchE;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK3C;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAe5F"}
1
+ {"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/git/GitService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;GAEG;AACH,qBAAa,UAAU;IACrB;;;;;OAKG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoD/D;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;OAKG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWpD;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBjD;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAchE;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK3C;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IA8BF;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAe5F"}
@@ -180,11 +180,19 @@ export class GitService {
180
180
  async getDiffStats(repoPath) {
181
181
  try {
182
182
  const git = simpleGit(repoPath);
183
- const diffSummary = await git.diffSummary();
183
+ // Get staged changes stats
184
+ const stagedSummary = await git.diffSummary(['--cached']);
185
+ // Get unstaged changes stats
186
+ const unstagedSummary = await git.diffSummary();
187
+ // Combine both staged and unstaged stats
188
+ const allFiles = new Set([
189
+ ...stagedSummary.files.map((f) => f.file),
190
+ ...unstagedSummary.files.map((f) => f.file),
191
+ ]);
184
192
  return {
185
- filesChanged: diffSummary.files.length,
186
- insertions: diffSummary.insertions,
187
- deletions: diffSummary.deletions,
193
+ filesChanged: allFiles.size,
194
+ insertions: stagedSummary.insertions + unstagedSummary.insertions,
195
+ deletions: stagedSummary.deletions + unstagedSummary.deletions,
188
196
  };
189
197
  }
190
198
  catch (_error) {
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../src/git/GitService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../src/git/GitService.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { readFileSync } from 'fs';
4
+ import { fileURLToPath } from 'url';
5
+ import { dirname, join } from 'path';
3
6
  import { ConfigManager } from './config/ConfigManager.js';
4
7
  import { GitService } from './git/GitService.js';
5
8
  import { MainOrchestrator } from './orchestrator/MainOrchestrator.js';
6
9
  import { UIManager } from './ui/UIManager.js';
10
+ // Get package.json version dynamically
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = dirname(__filename);
13
+ const packageJsonPath = join(__dirname, '..', 'package.json');
14
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
15
+ const version = packageJson.version;
7
16
  /**
8
17
  * Main entry point for the Commit CLI
9
18
  */
@@ -12,7 +21,7 @@ async function main() {
12
21
  program
13
22
  .name('commic')
14
23
  .description('AI-powered Git commit message generator with Conventional Commits support')
15
- .version('1.0.0')
24
+ .version(version, '-v, --version')
16
25
  .argument('[path]', 'Path to Git repository', '.')
17
26
  .option('-r, --reconfigure', 'Reconfigure API key and model settings')
18
27
  .action(async (path, options) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,2EAA2E,CAAC;SACxF,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAkC,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YAElC,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAEhF,oBAAoB;YACpB,MAAM,UAAU,GAAe;gBAC7B,IAAI;gBACJ,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;YAEF,mBAAmB;YACnB,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,0BAA0B;YAC1B,mDAAmD;YACnD,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,uCAAuC;AACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,2EAA2E,CAAC;SACxF,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAkC,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YAElC,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAEhF,oBAAoB;YACpB,MAAM,UAAU,GAAe;gBAC7B,IAAI;gBACJ,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;YAEF,mBAAmB;YACnB,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,0BAA0B;YAC1B,mDAAmD;YACnD,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -38,15 +38,15 @@ export declare class MainOrchestrator {
38
38
  * Generate commit message suggestions using AI
39
39
  * @param config Configuration with API key
40
40
  * @param diff Git diff
41
+ * @param customInstruction Optional custom instruction for regeneration
41
42
  * @returns Array of suggestions
42
43
  */
43
44
  private generateSuggestions;
44
45
  /**
45
- * Stage changes if there are unstaged changes
46
+ * Stage all changes in the repository
46
47
  * @param repoPath Repository root path
47
- * @param diff Git diff
48
48
  */
49
- private stageChangesIfNeeded;
49
+ private stageAllChanges;
50
50
  /**
51
51
  * Execute Git commit
52
52
  * @param repoPath Repository root path
@@ -1 +1 @@
1
- {"version":3,"file":"MainOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/MainOrchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;IAGvC;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDjD;;;;OAIG;YACW,mBAAmB;IAgCjC;;;;OAIG;YACW,yBAAyB;IAgCvC;;;;OAIG;YACW,UAAU;IA0BxB;;;;;OAKG;YACW,mBAAmB;IAqBjC;;;;OAIG;YACW,oBAAoB;IAelC;;;;;OAKG;YACW,aAAa;IAe3B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAWpB"}
1
+ {"version":3,"file":"MainOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/MainOrchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;IAGvC;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEjD;;;;OAIG;YACW,mBAAmB;IAgCjC;;;;OAIG;YACW,yBAAyB;IAgCvC;;;;OAIG;YACW,UAAU;IA0BxB;;;;;;OAMG;YACW,mBAAmB;IAqBjC;;;OAGG;YACW,eAAe;IAY7B;;;;;OAKG;YACW,aAAa;IAe3B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAWpB"}