@@ -6,7 +6,7 @@ require (
charm.land/bubbles/v2 v2.0.0
charm.land/bubbletea/v2 v2.0.1
charm.land/catwalk v0.28.1
- charm.land/fantasy v0.11.1
+ charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b
charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b
charm.land/lipgloss/v2 v2.0.0
charm.land/log/v2 v2.0.0-20251110204020-529bb77f35da
@@ -4,8 +4,8 @@ charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ=
charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ=
charm.land/catwalk v0.28.1 h1:4YJiRRNUb7i8qDEZjFLJPMKvquihGrGsTNTcf5Dfqq0=
charm.land/catwalk v0.28.1/go.mod h1:rFC/V96rIHX7VES215c/qzI1EW/Moo1ggs1Q6seTy5s=
-charm.land/fantasy v0.11.1 h1:G1dRqkzEQ0RJN1Ls5mte8HOi0wFKxYd5bfnRAmeYvDk=
-charm.land/fantasy v0.11.1/go.mod h1:C8wNxWlw+b2z54zsTor9r1tG2GE2C4QotvAlgXh9KF8=
+charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b h1:a/Y0xG4Ux2T3s7Kf8ih8VrzVF8P92a1KEj0hYbRA6vE=
+charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b/go.mod h1:C8wNxWlw+b2z54zsTor9r1tG2GE2C4QotvAlgXh9KF8=
charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b h1:A6IUUyChZDWP16RUdRJCfmYISAKWQGyIcfhZJUCViQ0=
charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b/go.mod h1:J3kVhY6oHXZq5f+8vC3hmDO95fEvbqj3z7xDwxrfzU8=
charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo=
@@ -40,6 +40,7 @@ import (
"github.com/charmbracelet/crush/internal/permission"
"github.com/charmbracelet/crush/internal/session"
"github.com/charmbracelet/crush/internal/stringext"
+ "github.com/charmbracelet/crush/internal/version"
"github.com/charmbracelet/x/exp/charmtone"
)
@@ -194,6 +195,7 @@ func (a *sessionAgent) Run(ctx context.Context, call SessionAgentCall) (*fantasy
largeModel.Model,
fantasy.WithSystemPrompt(systemPrompt),
fantasy.WithTools(agentTools...),
+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
)
sessionLock := sync.Mutex{}
@@ -592,6 +594,7 @@ func (a *sessionAgent) Summarize(ctx context.Context, sessionID string, opts fan
agent := fantasy.NewAgent(largeModel.Model,
fantasy.WithSystemPrompt(string(summaryPrompt)),
+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
)
summaryMessage, err := a.messages.Create(ctx, sessionID, message.CreateMessageParams{
Role: message.Assistant,
@@ -787,6 +790,7 @@ func (a *sessionAgent) generateTitle(ctx context.Context, sessionID string, user
return fantasy.NewAgent(m,
fantasy.WithSystemPrompt(string(p)+"\n /no_think"),
fantasy.WithMaxOutputTokens(tok),
+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
)
}