gac 1.15.0__tar.gz → 2.0.0__tar.gz
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.
Potentially problematic release.
This version of gac might be problematic. Click here for more details.
- {gac-1.15.0 → gac-2.0.0}/PKG-INFO +12 -10
- {gac-1.15.0 → gac-2.0.0}/README.md +11 -9
- {gac-1.15.0 → gac-2.0.0}/src/gac/__version__.py +1 -1
- {gac-1.15.0 → gac-2.0.0}/src/gac/main.py +16 -20
- {gac-1.15.0 → gac-2.0.0}/src/gac/prompt.py +3 -3
- {gac-1.15.0 → gac-2.0.0}/.gitignore +0 -0
- {gac-1.15.0 → gac-2.0.0}/LICENSE +0 -0
- {gac-1.15.0 → gac-2.0.0}/pyproject.toml +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/__init__.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/ai.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/ai_utils.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/cli.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/config.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/config_cli.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/constants.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/diff_cli.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/errors.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/git.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/init_cli.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/language_cli.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/preprocess.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/__init__.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/anthropic.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/cerebras.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/chutes.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/custom_anthropic.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/custom_openai.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/deepseek.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/fireworks.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/gemini.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/groq.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/lmstudio.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/minimax.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/ollama.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/openai.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/openrouter.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/streamlake.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/synthetic.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/together.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/providers/zai.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/security.py +0 -0
- {gac-1.15.0 → gac-2.0.0}/src/gac/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gac
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: LLM-powered Git commit message generator with multi-provider support
|
|
5
5
|
Project-URL: Homepage, https://github.com/cellwebb/gac
|
|
6
6
|
Project-URL: Documentation, https://github.com/cellwebb/gac#readme
|
|
@@ -117,7 +117,7 @@ gac
|
|
|
117
117
|
|
|
118
118
|
### 💻 **Developer Experience**
|
|
119
119
|
|
|
120
|
-
- **Interactive feedback**:
|
|
120
|
+
- **Interactive feedback**: Type `r` to reroll, or directly type your feedback like `make it shorter` or `focus on the bug fix`
|
|
121
121
|
- **One-command workflows**: Complete workflows with flags like `gac -ayp` (stage all, auto-confirm, push)
|
|
122
122
|
- **Git integration**: Respects pre-commit and lefthook hooks, running them before expensive LLM operations
|
|
123
123
|
|
|
@@ -140,7 +140,7 @@ git add .
|
|
|
140
140
|
# Generate and commit with LLM
|
|
141
141
|
gac
|
|
142
142
|
|
|
143
|
-
# Review → y (commit) | n (cancel) | r (reroll)
|
|
143
|
+
# Review → y (commit) | n (cancel) | r (reroll) | or type feedback
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
### Common Commands
|
|
@@ -175,18 +175,20 @@ gac --show-prompt
|
|
|
175
175
|
gac --skip-secret-scan
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
-
### Interactive
|
|
178
|
+
### Interactive Feedback System
|
|
179
179
|
|
|
180
|
-
Not happy with the result?
|
|
180
|
+
Not happy with the result? You have two options:
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
|
-
# Simple reroll
|
|
183
|
+
# Simple reroll (no feedback)
|
|
184
184
|
r
|
|
185
185
|
|
|
186
|
-
#
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
# Or just type your feedback directly - no prefix needed!
|
|
187
|
+
make it shorter and focus on the performance improvement
|
|
188
|
+
use conventional commit format with scope
|
|
189
|
+
explain the security implications
|
|
190
|
+
|
|
191
|
+
# Press Enter on empty input to see the prompt again
|
|
190
192
|
```
|
|
191
193
|
|
|
192
194
|
---
|
|
@@ -76,7 +76,7 @@ gac
|
|
|
76
76
|
|
|
77
77
|
### 💻 **Developer Experience**
|
|
78
78
|
|
|
79
|
-
- **Interactive feedback**:
|
|
79
|
+
- **Interactive feedback**: Type `r` to reroll, or directly type your feedback like `make it shorter` or `focus on the bug fix`
|
|
80
80
|
- **One-command workflows**: Complete workflows with flags like `gac -ayp` (stage all, auto-confirm, push)
|
|
81
81
|
- **Git integration**: Respects pre-commit and lefthook hooks, running them before expensive LLM operations
|
|
82
82
|
|
|
@@ -99,7 +99,7 @@ git add .
|
|
|
99
99
|
# Generate and commit with LLM
|
|
100
100
|
gac
|
|
101
101
|
|
|
102
|
-
# Review → y (commit) | n (cancel) | r (reroll)
|
|
102
|
+
# Review → y (commit) | n (cancel) | r (reroll) | or type feedback
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
### Common Commands
|
|
@@ -134,18 +134,20 @@ gac --show-prompt
|
|
|
134
134
|
gac --skip-secret-scan
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
### Interactive
|
|
137
|
+
### Interactive Feedback System
|
|
138
138
|
|
|
139
|
-
Not happy with the result?
|
|
139
|
+
Not happy with the result? You have two options:
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
|
-
# Simple reroll
|
|
142
|
+
# Simple reroll (no feedback)
|
|
143
143
|
r
|
|
144
144
|
|
|
145
|
-
#
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
# Or just type your feedback directly - no prefix needed!
|
|
146
|
+
make it shorter and focus on the performance improvement
|
|
147
|
+
use conventional commit format with scope
|
|
148
|
+
explain the security implications
|
|
149
|
+
|
|
150
|
+
# Press Enter on empty input to see the prompt again
|
|
149
151
|
```
|
|
150
152
|
|
|
151
153
|
---
|
|
@@ -275,10 +275,11 @@ def main(
|
|
|
275
275
|
)
|
|
276
276
|
|
|
277
277
|
if require_confirmation:
|
|
278
|
-
# Custom prompt that accepts y/n/r or "r <feedback (optional)>"
|
|
279
278
|
while True:
|
|
280
279
|
response = click.prompt(
|
|
281
|
-
"Proceed with commit above? [y/n/r
|
|
280
|
+
"Proceed with commit above? [y/n/r/<feedback>]",
|
|
281
|
+
type=str,
|
|
282
|
+
show_default=False,
|
|
282
283
|
).strip()
|
|
283
284
|
response_lower = response.lower()
|
|
284
285
|
|
|
@@ -287,27 +288,22 @@ def main(
|
|
|
287
288
|
if response_lower in ["n", "no"]:
|
|
288
289
|
console.print("[yellow]Prompt not accepted. Exiting...[/yellow]")
|
|
289
290
|
sys.exit(0)
|
|
290
|
-
if
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
reroll_feedback = response[2:].strip()
|
|
298
|
-
feedback_message = (
|
|
299
|
-
f"Please revise the commit message based on this feedback: {reroll_feedback}"
|
|
300
|
-
)
|
|
301
|
-
console.print(f"[cyan]Regenerating commit message with feedback: {reroll_feedback}[/cyan]")
|
|
302
|
-
|
|
291
|
+
if response == "":
|
|
292
|
+
continue
|
|
293
|
+
if response_lower in ["r", "reroll"]:
|
|
294
|
+
feedback_message = (
|
|
295
|
+
"Please provide an alternative commit message using the same repository context."
|
|
296
|
+
)
|
|
297
|
+
console.print("[cyan]Regenerating commit message...[/cyan]")
|
|
303
298
|
conversation_messages.append({"role": "user", "content": feedback_message})
|
|
304
|
-
|
|
305
|
-
console.print() # Add blank line for readability
|
|
299
|
+
console.print()
|
|
306
300
|
break
|
|
307
301
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
)
|
|
302
|
+
feedback_message = f"Please revise the commit message based on this feedback: {response}"
|
|
303
|
+
console.print(f"[cyan]Regenerating commit message with feedback: {response}[/cyan]")
|
|
304
|
+
conversation_messages.append({"role": "user", "content": feedback_message})
|
|
305
|
+
console.print()
|
|
306
|
+
break
|
|
311
307
|
|
|
312
308
|
if response_lower in ["y", "yes"]:
|
|
313
309
|
break
|
|
@@ -39,12 +39,12 @@ When changes span multiple areas:
|
|
|
39
39
|
|
|
40
40
|
<format>
|
|
41
41
|
<one_liner>
|
|
42
|
-
Create a single-line commit message
|
|
42
|
+
Create a single-line commit message.
|
|
43
43
|
Your message should be clear, concise, and descriptive of the core change.
|
|
44
44
|
Use present tense ("Add feature" not "Added feature").
|
|
45
45
|
</one_liner><multi_line>
|
|
46
46
|
Create a commit message with:
|
|
47
|
-
- First line: A concise summary
|
|
47
|
+
- First line: A concise summary that could stand alone
|
|
48
48
|
- Blank line after the summary
|
|
49
49
|
- Detailed body with multiple bullet points explaining the key changes
|
|
50
50
|
- Focus on WHY changes were made, not just WHAT was changed
|
|
@@ -55,7 +55,7 @@ When changes span multiple areas:
|
|
|
55
55
|
|
|
56
56
|
Your commit message MUST follow this structure:
|
|
57
57
|
|
|
58
|
-
Line 1: A concise summary (
|
|
58
|
+
Line 1: A concise summary (that could stand alone) with conventional commit prefix
|
|
59
59
|
Line 2: BLANK LINE (required)
|
|
60
60
|
Lines 3+: Detailed multi-paragraph body with the following sections:
|
|
61
61
|
|
|
File without changes
|
{gac-1.15.0 → gac-2.0.0}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|