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
diff --git a/webui/src/types.ts b/webui/src/types.ts
index 585a591..967a1d7 100644
--- a/webui/src/types.ts
+++ b/webui/src/types.ts
@@ -102,6 +102,7 @@
diff_lines_added: number;
diff_lines_removed: number;
open_ports?: Port[] | null;
+ token_context_window?: number;
}
export interface TodoItem {
diff --git a/webui/src/web-components/sketch-container-status.ts b/webui/src/web-components/sketch-container-status.ts
index be76eed..2bd9935 100644
--- a/webui/src/web-components/sketch-container-status.ts
+++ b/webui/src/web-components/sketch-container-status.ts
@@ -736,14 +736,14 @@
</div>
<div class="flex items-center whitespace-nowrap mr-2.5 text-xs">
<span class="text-xs text-gray-600 mr-1 font-medium"
- >Context size:</span
+ >Context Window:</span
>
<span id="contextWindow" class="text-xs font-semibold break-all"
>${formatNumber(
(this.latestUsage?.input_tokens || 0) +
(this.latestUsage?.cache_read_input_tokens || 0) +
(this.latestUsage?.cache_creation_input_tokens || 0),
- )}</span
+ )}/${formatNumber(this.state?.token_context_window || 0)}</span
>
</div>
<div class="flex items-center whitespace-nowrap mr-2.5 text-xs">