Detailed changes
@@ -49,7 +49,7 @@ func TestUserAgent(t *testing.T) {
_, _ = model.Generate(t.Context(), fantasy.Call{Prompt: prompt})
require.Len(t, *captured, 1)
- assert.Equal(t, "Charm Fantasy/"+fantasy.Version, (*captured)[0]["User-Agent"])
+ assert.Equal(t, "Charm-Fantasy/"+fantasy.Version+" (https://charm.land/fantasy)", (*captured)[0]["User-Agent"])
})
t.Run("WithUserAgent wins over both", func(t *testing.T) {
@@ -49,7 +49,7 @@ func TestUserAgent(t *testing.T) {
_, _ = model.Generate(t.Context(), fantasy.Call{Prompt: prompt})
require.Len(t, *captured, 1)
- assert.Equal(t, "Charm Fantasy/"+fantasy.Version, (*captured)[0]["User-Agent"])
+ assert.Equal(t, "Charm-Fantasy/"+fantasy.Version+" (https://charm.land/fantasy)", (*captured)[0]["User-Agent"])
})
t.Run("WithUserAgent wins over default", func(t *testing.T) {
@@ -53,7 +53,7 @@ func TestUserAgent(t *testing.T) {
_, _ = model.Generate(t.Context(), fantasy.Call{Prompt: prompt})
require.Len(t, *captured, 1)
- assert.Equal(t, "Charm Fantasy/"+fantasy.Version, (*captured)[0]["User-Agent"])
+ assert.Equal(t, "Charm-Fantasy/"+fantasy.Version+" (https://charm.land/fantasy)", (*captured)[0]["User-Agent"])
})
t.Run("WithUserAgent wins over default", func(t *testing.T) {
@@ -80,7 +80,7 @@ func TestUserAgent(t *testing.T) {
_, _ = model.Generate(t.Context(), fantasy.Call{Prompt: prompt})
require.NotEmpty(t, *captured)
- assert.True(t, findUA(captured, "Charm Fantasy/"+fantasy.Version))
+ assert.True(t, findUA(captured, "Charm-Fantasy/"+fantasy.Version+" (https://charm.land/fantasy)"))
})
t.Run("WithUserAgent wins over default", func(t *testing.T) {
@@ -1,12 +1,15 @@
// Package httpheaders provides shared User-Agent resolution for all HTTP-based providers.
package httpheaders
-import "strings"
+import (
+ "fmt"
+ "strings"
+)
// DefaultUserAgent returns the default User-Agent string for the SDK.
// The result is "Charm Fantasy/<version>".
func DefaultUserAgent(version string) string {
- return "Charm Fantasy/" + version
+ return fmt.Sprintf("Charm-Fantasy/%s (https://charm.land/fantasy)", version)
}
// ResolveHeaders returns a new header map, with a User-Agent field.
@@ -15,8 +15,8 @@ func TestDefaultUserAgent(t *testing.T) {
version string
want string
}{
- {name: "basic version", version: "0.11.0", want: "Charm Fantasy/0.11.0"},
- {name: "another version", version: "1.0.0", want: "Charm Fantasy/1.0.0"},
+ {name: "basic version", version: "0.11.0", want: "Charm-Fantasy/0.11.0 (https://charm.land/fantasy)"},
+ {name: "another version", version: "1.0.0", want: "Charm-Fantasy/1.0.0 (https://charm.land/fantasy)"},
}
for _, tt := range tests {
@@ -3320,7 +3320,7 @@ func TestUserAgent(t *testing.T) {
_, _ = model.Generate(t.Context(), fantasy.Call{Prompt: testPrompt})
require.Len(t, server.calls, 1)
- assert.Equal(t, "Charm Fantasy/"+fantasy.Version, server.calls[0].headers["User-Agent"])
+ assert.Equal(t, "Charm-Fantasy/"+fantasy.Version+" (https://charm.land/fantasy)", server.calls[0].headers["User-Agent"])
})
t.Run("WithHeaders User-Agent wins over default", func(t *testing.T) {