cmt-cli 1.0.1__tar.gz → 1.0.2__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.
Files changed (37) hide show
  1. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/PKG-INFO +1 -1
  2. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/pyproject.toml +1 -1
  3. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/ai/openai.py +9 -7
  4. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/ai/prompt.py +7 -1
  5. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/cli.py +1 -1
  6. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/uv.lock +1 -1
  7. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/.github/workflows/test.yml +0 -0
  8. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/.gitignore +0 -0
  9. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/.python-version +0 -0
  10. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/LICENSE +0 -0
  11. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/README.md +0 -0
  12. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/art/cmt-cli.svg +0 -0
  13. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/__init__.py +0 -0
  14. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/ai/__init__.py +0 -0
  15. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/ai/cache.py +0 -0
  16. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/ai/provider.py +0 -0
  17. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/analysis/__init__.py +0 -0
  18. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/analysis/analyzer.py +0 -0
  19. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/core/__init__.py +0 -0
  20. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/core/logging.py +0 -0
  21. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/core/settings.py +0 -0
  22. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/enums/__init__.py +0 -0
  23. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/enums/config.py +0 -0
  24. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/exceptions.py +0 -0
  25. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/git/__init__.py +0 -0
  26. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/git/repository.py +0 -0
  27. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/models/__init__.py +0 -0
  28. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/models/changes.py +0 -0
  29. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/models/suggestion.py +0 -0
  30. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/schemas/__init__.py +0 -0
  31. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/schemas/config.py +0 -0
  32. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/schemas/general.py +0 -0
  33. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/services/__init__.py +0 -0
  34. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/services/pypi.py +0 -0
  35. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/src/cmt/utils.py +0 -0
  36. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/tests/__init__.py +0 -0
  37. {cmt_cli-1.0.1 → cmt_cli-1.0.2}/tests/unit/test_repository.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: cmt-cli
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: AI-powered Git commit message generator
5
5
  Project-URL: Homepage, https://github.com/bijaydas/cmt
6
6
  Project-URL: Documentation, https://github.com/bijaydas/cmt#readme
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cmt-cli"
3
- version = "1.0.1"
3
+ version = "1.0.2"
4
4
  description = "AI-powered Git commit message generator"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -1,14 +1,12 @@
1
1
  import logging
2
- from typing import cast
3
2
 
4
3
  from langchain.agents import create_agent
5
- from langchain.agents.middleware.types import InputAgentState
6
4
  from langchain_core.messages import BaseMessage, get_buffer_string
7
5
  from langchain_openai import ChatOpenAI
8
6
  from pydantic import SecretStr
9
7
 
10
8
  from cmt.ai.cache import CommitMessageCache
11
- from cmt.ai.prompt import COMMIT_PROMPT, COMMIT_SYSTEM_PROMPT
9
+ from cmt.ai.prompt import COMMIT_PROMPT_TEMPLATE, COMMIT_SYSTEM_PROMPT
12
10
  from cmt.ai.provider import AIProvider
13
11
  from cmt.core.settings import settings
14
12
  from cmt.models.changes import AnalysisResult, StagedChangeSet, StagedFile
@@ -27,7 +25,7 @@ class OpenAIProvider(AIProvider):
27
25
  staged_files = self._process_files(changes.files)
28
26
  staged_diffs = changes.diff
29
27
 
30
- return COMMIT_PROMPT.format_messages(
28
+ return COMMIT_PROMPT_TEMPLATE.format_messages(
31
29
  total_files=len(changes.files),
32
30
  added_files=analysis.added_files,
33
31
  modified_files=analysis.modified_files,
@@ -45,7 +43,7 @@ class OpenAIProvider(AIProvider):
45
43
 
46
44
  return output.strip()
47
45
 
48
- def _invoke(self, prompt: list[BaseMessage]) -> CommitSuggestion:
46
+ def _invoke(self, prompt) -> CommitSuggestion:
49
47
  model = ChatOpenAI(
50
48
  model=self.config.model,
51
49
  api_key=SecretStr(self.config.api_key),
@@ -61,7 +59,7 @@ class OpenAIProvider(AIProvider):
61
59
  response_format=CommitSuggestion,
62
60
  )
63
61
 
64
- result = agent.invoke(cast(InputAgentState, prompt))
62
+ result = agent.invoke(prompt)
65
63
 
66
64
  return result["structured_response"]
67
65
 
@@ -84,13 +82,17 @@ class OpenAIProvider(AIProvider):
84
82
  suggestion.message,
85
83
  )
86
84
  return suggestion
87
-
88
85
  suggestion = self._invoke(prompt)
86
+
89
87
  logger.info("Generated new commit suggestion.\n%s", suggestion)
90
88
 
91
89
  cache.set(change_set.diff, self.config.model, suggestion)
92
90
  logger.info("Cached new commit suggestion.")
93
91
 
92
+ suggestion = CommitSuggestion(
93
+ message=suggestion.message, description=suggestion.description
94
+ )
95
+
94
96
  return suggestion
95
97
 
96
98
  @staticmethod
@@ -65,7 +65,13 @@ COMMIT_PROMPT1 = ChatPromptTemplate.from_messages(
65
65
  ]
66
66
  )
67
67
 
68
- COMMIT_PROMPT = ChatPromptTemplate(
68
+ COMMIT_PROMPT_TEMPLATE2 = ChatPromptTemplate(
69
+ [
70
+ ("human", COMMIT_DATA_PROMPT),
71
+ ]
72
+ )
73
+
74
+ COMMIT_PROMPT_TEMPLATE = ChatPromptTemplate.from_messages(
69
75
  [
70
76
  ("human", COMMIT_DATA_PROMPT),
71
77
  ]
@@ -1,5 +1,4 @@
1
1
  import logging
2
- import sys
3
2
  from importlib.metadata import version
4
3
 
5
4
  import typer
@@ -66,6 +65,7 @@ def suggest() -> None:
66
65
  open_ai = OpenAIProvider()
67
66
 
68
67
  commit = open_ai.generate_commit_message(staged_files, analysis_result)
68
+
69
69
  commit_command = OpenAIProvider.commit_command(commit)
70
70
 
71
71
  logger.info("Suggested commit:\n\n%s", commit_command)
@@ -175,7 +175,7 @@ wheels = [
175
175
 
176
176
  [[package]]
177
177
  name = "cmt-cli"
178
- version = "0.2.0"
178
+ version = "1.0.1"
179
179
  source = { editable = "." }
180
180
  dependencies = [
181
181
  { name = "langchain" },
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