summaryrefslogtreecommitdiffhomepage
path: root/packages/frontend/src/lib
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-31 18:34:15 +0900
committerAdam Malczewski <[email protected]>2026-05-31 18:34:15 +0900
commitcb640f25b577a68ceea76b7c9a95a198e5e91441 (patch)
tree35e5ae5741cb0ab3c573446ef13528aa6f4b242a /packages/frontend/src/lib
parentc59f7bad32bb8682acecfcf2209c6ad587544eda (diff)
downloaddispatch-cb640f25b577a68ceea76b7c9a95a198e5e91441.tar.gz
dispatch-cb640f25b577a68ceea76b7c9a95a198e5e91441.zip
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
Diffstat (limited to 'packages/frontend/src/lib')
-rw-r--r--packages/frontend/src/lib/components/ToolPermissions.svelte5
-rw-r--r--packages/frontend/src/lib/settings.svelte.ts2
2 files changed, 7 insertions, 0 deletions
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
@@ -23,6 +23,11 @@ const toolPermissions: ToolPermission[] = [
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",
description: "Allow the AI to search the web via Firecrawl",
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<Record<string, boolean>>({
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<Record<string, boolean>>({
edit: false,
bash: false,
summon: false,
+ user_agent: false,
external_directory: false,
web_search: false,
youtube_transcribe: false,