gac 1.10.3__py3-none-any.whl → 1.11.0__py3-none-any.whl

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/__version__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Version information for gac package."""
2
2
 
3
- __version__ = "1.10.3"
3
+ __version__ = "1.11.0"
gac/ai.py CHANGED
@@ -17,6 +17,7 @@ from gac.providers import (
17
17
  call_gemini_api,
18
18
  call_groq_api,
19
19
  call_lmstudio_api,
20
+ call_minimax_api,
20
21
  call_ollama_api,
21
22
  call_openai_api,
22
23
  call_openrouter_api,
@@ -86,6 +87,7 @@ def generate_commit_message(
86
87
  "gemini": call_gemini_api,
87
88
  "groq": call_groq_api,
88
89
  "lm-studio": call_lmstudio_api,
90
+ "minimax": call_minimax_api,
89
91
  "ollama": call_ollama_api,
90
92
  "openai": call_openai_api,
91
93
  "openrouter": call_openrouter_api,
gac/ai_utils.py CHANGED
@@ -100,6 +100,7 @@ def generate_with_retries(
100
100
  "gemini",
101
101
  "groq",
102
102
  "lm-studio",
103
+ "minimax",
103
104
  "ollama",
104
105
  "openai",
105
106
  "openrouter",
gac/init_cli.py CHANGED
@@ -39,6 +39,7 @@ def init() -> None:
39
39
  ("Gemini", "gemini-2.5-flash"),
40
40
  ("Groq", "meta-llama/llama-4-maverick-17b-128e-instruct"),
41
41
  ("LM Studio", "gemma3"),
42
+ ("Minimax", "MiniMax-M2"),
42
43
  ("Ollama", "gemma3"),
43
44
  ("OpenAI", "gpt-4.1-mini"),
44
45
  ("OpenRouter", "openrouter/auto"),
gac/providers/__init__.py CHANGED
@@ -7,6 +7,7 @@ from .fireworks import call_fireworks_api
7
7
  from .gemini import call_gemini_api
8
8
  from .groq import call_groq_api
9
9
  from .lmstudio import call_lmstudio_api
10
+ from .minimax import call_minimax_api
10
11
  from .ollama import call_ollama_api
11
12
  from .openai import call_openai_api
12
13
  from .openrouter import call_openrouter_api
@@ -23,6 +24,7 @@ __all__ = [
23
24
  "call_gemini_api",
24
25
  "call_groq_api",
25
26
  "call_lmstudio_api",
27
+ "call_minimax_api",
26
28
  "call_ollama_api",
27
29
  "call_openai_api",
28
30
  "call_openrouter_api",
@@ -0,0 +1,38 @@
1
+ """Minimax API provider for gac."""
2
+
3
+ import os
4
+
5
+ import httpx
6
+
7
+ from gac.errors import AIError
8
+
9
+
10
+ def call_minimax_api(model: str, messages: list[dict], temperature: float, max_tokens: int) -> str:
11
+ """Call Minimax API directly."""
12
+ api_key = os.getenv("MINIMAX_API_KEY")
13
+ if not api_key:
14
+ raise AIError.authentication_error("MINIMAX_API_KEY not found in environment variables")
15
+
16
+ url = "https://api.minimax.io/v1/chat/completions"
17
+ headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
18
+
19
+ data = {"model": model, "messages": messages, "temperature": temperature, "max_tokens": max_tokens}
20
+
21
+ try:
22
+ response = httpx.post(url, headers=headers, json=data, timeout=120)
23
+ response.raise_for_status()
24
+ response_data = response.json()
25
+ content = response_data["choices"][0]["message"]["content"]
26
+ if content is None:
27
+ raise AIError.model_error("Minimax API returned null content")
28
+ if content == "":
29
+ raise AIError.model_error("Minimax API returned empty content")
30
+ return content
31
+ except httpx.HTTPStatusError as e:
32
+ if e.response.status_code == 429:
33
+ raise AIError.rate_limit_error(f"Minimax API rate limit exceeded: {e.response.text}") from e
34
+ raise AIError.model_error(f"Minimax API error: {e.response.status_code} - {e.response.text}") from e
35
+ except httpx.TimeoutException as e:
36
+ raise AIError.timeout_error(f"Minimax API request timed out: {str(e)}") from e
37
+ except Exception as e:
38
+ raise AIError.model_error(f"Error calling Minimax API: {str(e)}") from e
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gac
3
- Version: 1.10.3
3
+ Version: 1.11.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
@@ -92,7 +92,7 @@ gac
92
92
  ### 🌐 **Supported Providers**
93
93
 
94
94
  - **Anthropic** • **Cerebras** • **Chutes.ai** • **Fireworks** • **Gemini**
95
- - **Groq** • **LM Studio** • **Ollama** • **OpenAI** • **OpenRouter**
95
+ - **Groq** • **LM Studio** • **Minimax** • **Ollama** • **OpenAI** • **OpenRouter**
96
96
  - **Streamlake** • **Synthetic.new** • **Together AI** • **Z.AI** • **Z.AI Coding**
97
97
 
98
98
  ### 🧠 **Smart LLM Analysis**
@@ -1,7 +1,7 @@
1
1
  gac/__init__.py,sha256=z9yGInqtycFIT3g1ca24r-A3699hKVaRqGUI79wsmMc,415
2
- gac/__version__.py,sha256=xxzM7n1jdkrinTOSeIllAgZzVOPqqPJK2EegK5xbeQ0,67
3
- gac/ai.py,sha256=ga1TFn4giPc0u9pjwxzTSb17ijAz-qtyJcIFFCJz-Ic,3960
4
- gac/ai_utils.py,sha256=i-wwEVTTmkS8xVpTzTxDzYdQFiINEsz0Y42bNZ0S5RE,7334
2
+ gac/__version__.py,sha256=6QTi66xDtFCqxVc6apAYmb__ISMtnUgdvKzWK0eNBHI,67
3
+ gac/ai.py,sha256=eBNDVvBtPOVRuucCrDBHQ7TrPKD7GVTNOJT39rCTHhs,4019
4
+ gac/ai_utils.py,sha256=mjiZqEnL8eftwBegRQfNltY_Jn7TUzj5k5Pb-SVfOmQ,7353
5
5
  gac/cli.py,sha256=crUUI6osYtE3QAZ7r6DRlVk9gR3X2PctzS1sssVQ9_g,5070
6
6
  gac/config.py,sha256=n3TkQYBqSKkH68QUM6M7kwSK83ghmItoh0p5ZDFnhHA,1746
7
7
  gac/config_cli.py,sha256=v9nFHZO1RvK9fzHyuUS6SG-BCLHMsdOMDwWamBhVVh4,1608
@@ -9,13 +9,13 @@ gac/constants.py,sha256=8GHB7yeK2CYT0t80-k9N6LvgZPe-StNH3dK3NsUO46c,4977
9
9
  gac/diff_cli.py,sha256=wnVQ9OFGnM0d2Pj9WVjWbo0jxqIuRHVAwmb8wU9Pa3E,5676
10
10
  gac/errors.py,sha256=ysDIVRCd0YQVTOW3Q6YzdolxCdtkoQCAFf3_jrqbjUY,7916
11
11
  gac/git.py,sha256=g6tvph50zV-wrTWrxARYXEpl0NeI8-ffFwHoqhp3fSE,8033
12
- gac/init_cli.py,sha256=YZAFRWcQ1TeXCGwEEyBeCwai2QYa1U0ErBCE8shkSkU,4804
12
+ gac/init_cli.py,sha256=8JE3Hxu4_ZnCyzCwUG2ZOqQhgO9NP8OTW_15HJ-LXHw,4839
13
13
  gac/main.py,sha256=dJrBSN5rJlbWspLGDx3eUJU4uZFVhvuv7qtgIvF7RH4,14723
14
14
  gac/preprocess.py,sha256=aMxsjGxy9YP752NWjgf0KP5Sn6p8keIJAGlMYr8jDgQ,15373
15
15
  gac/prompt.py,sha256=d_kBXmhf3bDVLyDj8J7AS7GBAxF2jlc8lXoHX3Dzi5k,24255
16
16
  gac/security.py,sha256=15Yp6YR8QC4eECJi1BUCkMteh_veZXUbLL6W8qGcDm4,9920
17
17
  gac/utils.py,sha256=nV42-brIHW_fBg7x855GM8nRrqEBbRzTSweg-GTyGE8,3971
18
- gac/providers/__init__.py,sha256=3cIgCulRWFfBdMMZYjSv2GzEeIMOFdBgtH8qqtt78OQ,1009
18
+ gac/providers/__init__.py,sha256=zI_879NGVig9zSk_xTFod_umML4sBRoSdE71KcQIrpc,1071
19
19
  gac/providers/anthropic.py,sha256=VK5d1s1PmBNDwh_x7illQ2CIZIHNIYU28btVfizwQPs,2036
20
20
  gac/providers/cerebras.py,sha256=Ik8lhlsliGJVkgDgqlThfpra9tqbdYQZkaC4eNxRd9w,1648
21
21
  gac/providers/chutes.py,sha256=cclJOLuGVIiiaF-9Bs1kH6SSOhEmduGB2zZ86KIaXKw,2617
@@ -23,6 +23,7 @@ gac/providers/fireworks.py,sha256=zsWhf6LMVdtsD9keXRFwgn9lCQigz6VmrDl6vqIVkdI,16
23
23
  gac/providers/gemini.py,sha256=GZQz6Y9fd5-xk-U4pXn9bXLeBowxDXOYDyWyrtjFurM,2909
24
24
  gac/providers/groq.py,sha256=9v2fAjDa_iRNHFptiUBN8Vt7ZDKkW_JOmIBeYvycD1M,2806
25
25
  gac/providers/lmstudio.py,sha256=R82-f0tWdFfGQxLT6o3Q2tfvYguF7ESUg9DEUHNyrDk,2146
26
+ gac/providers/minimax.py,sha256=muyob2ndLJzasbQh8oG34Ha34Ho6otjqJ8XjBZW1eYI,1630
26
27
  gac/providers/ollama.py,sha256=hPkagbhEiAoH9RTET4EQe9-lTL0YmMRCbQ5dVbRQw6Q,2095
27
28
  gac/providers/openai.py,sha256=iHVD6bHf57W-QmW7u1Ee5vOpev7XZ-K75NcolLfebOk,1630
28
29
  gac/providers/openrouter.py,sha256=H3ce8JcRUYq1I30lOjGESdX7jfoPkW3mKAYnc2aYfBw,2204
@@ -30,8 +31,8 @@ gac/providers/streamlake.py,sha256=KAA2ZnpuEI5imzvdWVWUhEBHSP0BMnprKXte6CbwBWY,2
30
31
  gac/providers/synthetic.py,sha256=sRMIJTS9LpcXd9A7qp_ZjZxdqtTKRn9fl1W4YwJZP4c,1855
31
32
  gac/providers/together.py,sha256=1bUIVHfYzcEDw4hQPE8qV6hjc2JNHPv_khVgpk2IJxI,1667
32
33
  gac/providers/zai.py,sha256=kywhhrCfPBu0rElZyb-iENxQxxpVGykvePuL4xrXlaU,2739
33
- gac-1.10.3.dist-info/METADATA,sha256=GyqXahhv7OqZBcgXqrZjwSF_Ny0wvi7iRyjXY-60oL8,7804
34
- gac-1.10.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
- gac-1.10.3.dist-info/entry_points.txt,sha256=tdjN-XMmcWfL92swuRAjT62bFLOAwk9bTMRLGP5Z4aI,36
36
- gac-1.10.3.dist-info/licenses/LICENSE,sha256=vOab37NouL1PNs5BswnPayrMCqaN2sqLfMQfqPDrpZg,1103
37
- gac-1.10.3.dist-info/RECORD,,
34
+ gac-1.11.0.dist-info/METADATA,sha256=4-RJKGIjW3kEib_luQQi-bHiiNRQHS4Tj8E5Ut04bcU,7820
35
+ gac-1.11.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
36
+ gac-1.11.0.dist-info/entry_points.txt,sha256=tdjN-XMmcWfL92swuRAjT62bFLOAwk9bTMRLGP5Z4aI,36
37
+ gac-1.11.0.dist-info/licenses/LICENSE,sha256=vOab37NouL1PNs5BswnPayrMCqaN2sqLfMQfqPDrpZg,1103
38
+ gac-1.11.0.dist-info/RECORD,,
File without changes