From cb640f25b577a68ceea76b7c9a95a198e5e91441 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sun, 31 May 2026 18:34:15 +0900 Subject: feat: implement user agents (top-level tabs via summon) - agent parameter is now required on summon tool - new top_level param spawns independent fire-and-forget user agent tabs - gated by perm_user_agent permission (UI checkbox added) - agent definition type validation (subagent vs user-agent slug mismatch) - context-aware error messages when agent slug not found - read_file_slice added to summon tool's allowed tools enum - updated and expanded summon tests --- packages/frontend/src/lib/components/ToolPermissions.svelte | 5 +++++ packages/frontend/src/lib/settings.svelte.ts | 2 ++ 2 files changed, 7 insertions(+) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/lib/components/ToolPermissions.svelte b/packages/frontend/src/lib/components/ToolPermissions.svelte index 7fdaad3..d64eaf9 100644 --- a/packages/frontend/src/lib/components/ToolPermissions.svelte +++ b/packages/frontend/src/lib/components/ToolPermissions.svelte @@ -22,6 +22,11 @@ const toolPermissions: ToolPermission[] = [ label: "Summon agents", description: "Allow the AI to spawn child agents to work on tasks", }, + { + id: "user_agent", + label: "Spawn user agents", + description: "Allow the AI to open new independent top-level tabs", + }, { id: "web_search", label: "Web search", diff --git a/packages/frontend/src/lib/settings.svelte.ts b/packages/frontend/src/lib/settings.svelte.ts index 29aca5e..11eb79c 100644 --- a/packages/frontend/src/lib/settings.svelte.ts +++ b/packages/frontend/src/lib/settings.svelte.ts @@ -8,6 +8,7 @@ let toolPerms = $state>({ edit: false, bash: false, summon: false, + user_agent: false, external_directory: false, web_search: false, youtube_transcribe: false, @@ -17,6 +18,7 @@ let savedToolPerms = $state>({ edit: false, bash: false, summon: false, + user_agent: false, external_directory: false, web_search: false, youtube_transcribe: false, -- cgit v1.2.3