grokkit/cmd/commitmsg.go
Greg Gauthier 98eb5505a5 chore(headers): add last modified timestamps to source files
Implemented automatic addition of "// Last modified: [timestamp]" headers across command and internal files for better tracking. Updated prompts in agent and edit commands to enforce header format. Added logic to prepend header if missing in generated content. Fixed minor issues like missing newlines at end of files.
2026-02-28 22:47:30 +00:00

36 lines
1008 B
Go

// Last modified: 2026-02-28 22:43:38 GMT
// Current time: 2024-08-07 10:00:00
package cmd
import (
"fmt"
"github.com/fatih/color"
"github.com/spf13/cobra"
"gmgauthier.com/grokkit/config"
"gmgauthier.com/grokkit/internal/git"
"gmgauthier.com/grokkit/internal/grok"
)
var commitMsgCmd = &cobra.Command{
Use: "commit-msg",
Short: "Generate conventional commit message from staged changes",
Run: func(cmd *cobra.Command, args []string) {
diff := git.Run([]string{"diff", "--cached", "--no-color"})
if diff == "" {
color.Yellow("No staged changes!")
return
}
modelFlag, _ := cmd.Flags().GetString("model")
model := config.GetModel(modelFlag)
client := grok.NewClient()
messages := []map[string]string{
{"role": "system", "content": "Return ONLY a conventional commit message (type(scope): subject\n\nbody)."},
{"role": "user", "content": fmt.Sprintf("Staged changes:\n%s", diff)},
}
color.Yellow("Generating commit message...")
client.Stream(messages, model)
},
}