feedback

package
v0.4.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ProviderXAI = ProviderConfig{
		BaseURL:      "https://api.x.ai/v1",
		DefaultModel: "grok-2-1212",
		Name:         "xAI",
	}

	ProviderOpenAI = ProviderConfig{
		BaseURL:      "",
		DefaultModel: "gpt-3.5-turbo",
		Name:         "OpenAI",
	}

	ProviderDeepSeek = ProviderConfig{
		BaseURL:      "https://api.deepseek.com/v1",
		DefaultModel: "deepseek-chat",
		Name:         "DeepSeek",
	}
)

Known providers

Functions

func GetTimeOfDay

func GetTimeOfDay(t time.Time) string

GetTimeOfDay returns a string representation of the time of day

func TruncateWithEllipsis added in v0.2.3

func TruncateWithEllipsis(s string, maxLen int) string

TruncateWithEllipsis truncates a string to maxLen and adds an ellipsis

Types

type CommitContext

type CommitContext struct {
	Message       string
	Timestamp     time.Time
	Diff          string                 // Optional
	CommitHistory []string               // Recent commit messages
	CommitStats   map[string]interface{} // Stats about recent commits
}

CommitContext contains information about a commit

type EngineName

type EngineName string

EngineName returns a string identifier for an engine type

const (
	// Local feedback engine (no LLM)
	EngineLocal EngineName = "local"
	// xAI feedback engine
	EngineXAI EngineName = "xai"
	// OpenAI feedback engine
	EngineOpenAI EngineName = "openai"
	// DeepSeek feedback engine
	EngineDeepSeek EngineName = "deepseek"
)

type FeedbackEngine

type FeedbackEngine interface {
	// Generate feedback based on commit context
	GenerateFeedback(context CommitContext) (string, error)

	// Generate insights for a weekly summary
	GenerateSummaryFeedback(context CommitContext) (string, error)

	// Generate commit message suggestions based on staged changes and history
	GenerateCommitSuggestion(context CommitContext) (string, error)
}

FeedbackEngine defines the interface for generating commit feedback

func NewFeedbackEngine

func NewFeedbackEngine(provider string, model string, apiKey string, personalityName string, personalityFile string) FeedbackEngine

NewFeedbackEngine creates a new feedback engine based on the provided configuration

func NewFeedbackEngineWithCustomPersonality added in v0.2.1

func NewFeedbackEngineWithCustomPersonality(provider string, model string, apiKey string, customPersonality personality.Personality) FeedbackEngine

NewFeedbackEngineWithCustomPersonality creates a feedback engine using a custom personality configuration

type LocalFeedbackEngine

type LocalFeedbackEngine struct{}

LocalFeedbackEngine generates feedback using pre-written local responses

func NewLocalFeedbackEngine

func NewLocalFeedbackEngine() *LocalFeedbackEngine

NewLocalFeedbackEngine creates a new local feedback engine

func (*LocalFeedbackEngine) GenerateCommitSuggestion

func (e *LocalFeedbackEngine) GenerateCommitSuggestion(ctx CommitContext) (string, error)

GenerateCommitSuggestion creates a simple commit message suggestion based on diff stats

func (*LocalFeedbackEngine) GenerateFeedback

func (e *LocalFeedbackEngine) GenerateFeedback(ctx CommitContext) (string, error)

GenerateFeedback implements the FeedbackEngine interface

func (*LocalFeedbackEngine) GenerateSummaryFeedback

func (e *LocalFeedbackEngine) GenerateSummaryFeedback(ctx CommitContext) (string, error)

GenerateSummaryFeedback provides basic insights for a weekly summary without using an LLM

type ProviderConfig

type ProviderConfig struct {
	BaseURL      string
	DefaultModel string
	Name         string
}

ProviderConfig contains configuration for different LLM providers

type UnifiedFeedbackEngine

type UnifiedFeedbackEngine struct {
	// contains filtered or unexported fields
}

UnifiedFeedbackEngine generates feedback using any OpenAI-compatible API

func NewUnifiedFeedbackEngine

func NewUnifiedFeedbackEngine(provider string, model string, apiKey string, personalityName string, personalityFile string) *UnifiedFeedbackEngine

NewUnifiedFeedbackEngine creates a new unified feedback engine

func NewUnifiedFeedbackEngineWithCustomPersonality added in v0.2.1

func NewUnifiedFeedbackEngineWithCustomPersonality(provider string, model string, apiKey string, customPersonality personality.Personality) *UnifiedFeedbackEngine

NewUnifiedFeedbackEngineWithCustomPersonality creates a new unified feedback engine with a custom personality

func (*UnifiedFeedbackEngine) GenerateCommitSuggestion

func (e *UnifiedFeedbackEngine) GenerateCommitSuggestion(ctx CommitContext) (string, error)

GenerateCommitSuggestion creates an AI-generated commit message based on staged changes

func (*UnifiedFeedbackEngine) GenerateFeedback

func (e *UnifiedFeedbackEngine) GenerateFeedback(ctx CommitContext) (string, error)

GenerateFeedback implements the FeedbackEngine interface

func (*UnifiedFeedbackEngine) GenerateSummaryFeedback

func (e *UnifiedFeedbackEngine) GenerateSummaryFeedback(ctx CommitContext) (string, error)

GenerateSummaryFeedback provides insights for a weekly summary or on-demand analysis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL