webui: display context window size in info box
diff --git a/loop/agent.go b/loop/agent.go
index 82d823e..82c3268 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -159,6 +159,9 @@
// GetPorts returns the cached list of open TCP ports
GetPorts() []portlist.Port
+
+ // TokenContextWindow returns the TokenContextWindow size of the model the agent is using.
+ TokenContextWindow() int
}
type CodingAgentMessageType string
@@ -468,6 +471,11 @@
outstandingToolCalls map[string]string
}
+// TokenContextWindow implements CodingAgent.
+func (a *Agent) TokenContextWindow() int {
+ return a.config.Service.TokenContextWindow()
+}
+
// NewIterator implements CodingAgent.
func (a *Agent) NewIterator(ctx context.Context, nextMessageIdx int) MessageIterator {
a.mu.Lock()
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index c72fe50..550760c 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -103,6 +103,7 @@
DiffLinesAdded int `json:"diff_lines_added"` // Lines added from sketch-base to HEAD
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"`
}
// Port represents an open TCP port
@@ -1293,6 +1294,7 @@
DiffLinesAdded: diffAdded,
DiffLinesRemoved: diffRemoved,
OpenPorts: s.getOpenPorts(),
+ TokenContextWindow: s.agent.TokenContextWindow(),
}
}
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index cd97b12..c6d4b6b 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -36,6 +36,11 @@
skabandAddr string
}
+// TokenContextWindow implements loop.CodingAgent.
+func (m *mockAgent) TokenContextWindow() int {
+ return 200000
+}
+
func (m *mockAgent) NewIterator(ctx context.Context, nextMessageIdx int) loop.MessageIterator {
m.mu.RLock()
// Send existing messages that should be available immediately