webui: add model name to info popup k/v pairs
Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: s89edebe17dd6d6edk
diff --git a/loop/agent.go b/loop/agent.go
index d1ff360..4adf80f 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -164,6 +164,9 @@
// TokenContextWindow returns the TokenContextWindow size of the model the agent is using.
TokenContextWindow() int
+
+ // ModelName returns the name of the model the agent is using.
+ ModelName() string
}
type CodingAgentMessageType string
@@ -481,6 +484,11 @@
return a.config.Service.TokenContextWindow()
}
+// ModelName returns the name of the model the agent is using.
+func (a *Agent) ModelName() string {
+ return a.config.Model
+}
+
// GetConvo returns the conversation interface for debugging purposes.
func (a *Agent) GetConvo() ConvoInterface {
return a.convo
@@ -1090,6 +1098,8 @@
InDocker bool
OneShot bool
WorkingDir string
+ // Model is the name of the LLM model being used
+ Model string
// Outside information
OutsideHostname string
OutsideOS string
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index cc183d3..dcb315f 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -159,6 +159,7 @@
DiffLinesRemoved int `json:"diff_lines_removed"` // Lines removed from sketch-base to HEAD
OpenPorts []Port `json:"open_ports,omitempty"` // Currently open TCP ports
TokenContextWindow int `json:"token_context_window,omitempty"`
+ Model string `json:"model,omitempty"` // Name of the model being used
SessionEnded bool `json:"session_ended,omitempty"`
CanSendMessages bool `json:"can_send_messages,omitempty"`
EndedAt time.Time `json:"ended_at,omitempty"`
@@ -1386,6 +1387,7 @@
DiffLinesRemoved: diffRemoved,
OpenPorts: s.getOpenPorts(),
TokenContextWindow: s.agent.TokenContextWindow(),
+ Model: s.agent.ModelName(),
}
}
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index 04a18ba..fa591b2 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -35,6 +35,7 @@
slug string
retryNumber int
skabandAddr string
+ model string
}
// TokenContextWindow implements loop.CodingAgent.
@@ -42,6 +43,11 @@
return 200000
}
+// ModelName implements loop.CodingAgent.
+func (m *mockAgent) ModelName() string {
+ return m.model
+}
+
func (m *mockAgent) NewIterator(ctx context.Context, nextMessageIdx int) loop.MessageIterator {
m.mu.RLock()
// Send existing messages that should be available immediately
@@ -293,6 +299,7 @@
branchName: "sketch/test-branch",
branchPrefix: "sketch/",
slug: "test-slug",
+ model: "fake-model",
}
// Add the initial messages before creating the server
@@ -428,6 +435,7 @@
mockAgent := &mockAgent{
workingDir: t.TempDir(), // Use a temp directory
branchPrefix: "sketch/",
+ model: "fake-model",
}
// Create the server with the mock agent
@@ -475,6 +483,7 @@
mockAgent := &mockAgent{
workingDir: t.TempDir(), // Use a temp directory
branchPrefix: "sketch/",
+ model: "fake-model",
}
// Create the server with the mock agent
@@ -514,6 +523,7 @@
messageCount: 0,
sessionID: "test-session",
branchPrefix: "sketch/",
+ model: "fake-model",
}
ctx := context.Background()
@@ -618,6 +628,7 @@
branchPrefix: "test-",
workingDir: "/tmp/test",
sessionID: "test-session",
+ model: "fake-model",
slug: "test-slug",
skabandAddr: "http://localhost:8080",
}
@@ -686,6 +697,7 @@
mockAgent := &mockAgent{
workingDir: t.TempDir(),
branchPrefix: "sketch/",
+ model: "fake-model",
}
// Create the server with the mock agent
@@ -771,6 +783,7 @@
mockAgent := &mockAgent{
workingDir: t.TempDir(),
branchPrefix: "sketch/",
+ model: "fake-model",
}
// Create the server with the mock agent