advertise and enforce per-agent terminal session limits

This commit is contained in:
lda
2026-07-16 19:26:12 +07:00 Verified
parent 9a14410bed
commit 0e99a584a3
10 changed files with 174 additions and 18 deletions
+3
View File
@@ -3,6 +3,9 @@ export type Agent = {
connected: boolean;
nickname?: string | null;
capabilities: "terminal"[];
capability_options?: {
terminal?: { max_sessions: number };
};
};
export type TerminalSession = {
+5 -2
View File
@@ -156,7 +156,10 @@ export function TerminalPage({
const selectedAgentSessionCount = sessions.filter(
(item) => item.agent_id === selectedAgentId,
).length;
const agentAtSessionLimit = selectedAgentSessionCount >= 2;
const selectedAgentSessionLimit =
selectedAgent?.capability_options?.terminal?.max_sessions ?? 2;
const agentAtSessionLimit =
selectedAgentSessionCount >= selectedAgentSessionLimit;
const canRequestStart =
selectedAgent?.connected &&
selectedAgent.capabilities.includes("terminal") &&
@@ -744,7 +747,7 @@ export function TerminalPage({
</TooltipTrigger>
<TooltipContent>
{agentAtSessionLimit
? "Two-session limit reached"
? `${selectedAgentSessionLimit}-session limit reached`
: "New session"}
</TooltipContent>
</Tooltip>