summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/tools/task-list.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-22 00:19:14 +0900
committerAdam Malczewski <[email protected]>2026-05-22 00:19:14 +0900
commitfb97d4cb72d0a90dde102b7001603716ee6e4c3b (patch)
tree55c6e8b56b3395008523ab94c16c4f526083d846 /packages/core/src/tools/task-list.ts
parent7884709e3b2adb1b65c1c086257e0300eed51cee (diff)
downloaddispatch-fb97d4cb72d0a90dde102b7001603716ee6e4c3b.tar.gz
dispatch-fb97d4cb72d0a90dde102b7001603716ee6e4c3b.zip
feat: agent summoning system, todo improvements, security fixes, double-execution bug fix
- Add summon/retrieve tools for spawning child agents in new tabs - summon: non-blocking, returns agent_id immediately - retrieve: blocking, waits for child to finish, returns result - Child tools are intersected with parent permissions (no privilege escalation) - Working directory validated to stay within workspace - Abort controller stops orphaned agents on tab close - Rename task_list tool to todo with comprehensive usage guidance in system prompt - Rename PermissionLog.svelte to ToolPermissions.svelte - Add 'Summon agents' toggle to tool permissions UI - Redesign TaskListPanel with DaisyUI checkboxes (indeterminate for in-progress) - Remove 'blocked' status from task system - Add tab-created WebSocket event for child agent tab visibility - Add HMR cleanup for WebSocket connections (close stale connections on hot reload) - Fix ensureAssistantMessage to not throw on closed tabs - Fix double tool execution: remove execute from AI SDK tool() in registry.ts (agent.ts already executes tools manually via executeToolWithStreaming) - Fix all pre-existing test failures (missing mocks, stale API signatures) - Add debug info to copy button (tab ID, injected skills, all tab IDs) - Add tab ID and tools to conversation copy output
Diffstat (limited to 'packages/core/src/tools/task-list.ts')
-rw-r--r--packages/core/src/tools/task-list.ts15
1 files changed, 5 insertions, 10 deletions
diff --git a/packages/core/src/tools/task-list.ts b/packages/core/src/tools/task-list.ts
index 0bacdb4..29f1543 100644
--- a/packages/core/src/tools/task-list.ts
+++ b/packages/core/src/tools/task-list.ts
@@ -60,24 +60,19 @@ export class TaskList {
export function createTaskListTool(taskList: TaskList): ToolDefinition {
return {
- name: "task_list",
+ name: "todo",
description:
- "Manages a task list for tracking work items. The agent can add tasks, update their status, list all tasks, or get details on a specific task.",
+ "Manage a todo list for planning and tracking work. Add items, update their status, list all items, or get details on a specific item.",
parameters: z.object({
- action: z
- .enum(["add", "update", "list", "get", "remove"])
- .describe("The action to perform"),
+ action: z.enum(["add", "update", "list", "get", "remove"]).describe("The action to perform"),
title: z.string().optional().describe("Task title (required for 'add')"),
description: z
.string()
.optional()
.describe("Task description (for 'add', defaults to empty)"),
- task_id: z
- .string()
- .optional()
- .describe("Task ID (required for 'update', 'get', 'remove')"),
+ task_id: z.string().optional().describe("Task ID (required for 'update', 'get', 'remove')"),
status: z
- .enum(["pending", "in_progress", "done", "blocked"])
+ .enum(["pending", "in_progress", "done"])
.optional()
.describe("New status (required for 'update')"),
}),