Skip to content

Commit 27ca68e

Browse files
committed
Merge branch 'master' into todo-tool
2 parents b69096a + 76e1039 commit 27ca68e

1 file changed

Lines changed: 81 additions & 1 deletion

File tree

docs/protocol.md

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ interface ChatToolCallRejectedContent {
10301030

10311031
type ToolCallOrigin = 'mcp' | 'native' | 'server' | 'unknown';
10321032

1033-
type ToolCallDetails = FileChangeDetails | JsonOutputsDetails | SubagentDetails;
1033+
type ToolCallDetails = FileChangeDetails | JsonOutputsDetails | SubagentDetails | TaskDetails;
10341034

10351035
interface FileChangeDetails {
10361036
type: 'fileChange';
@@ -1097,6 +1097,78 @@ interface SubagentDetails {
10971097
step: number;
10981098
}
10991099

1100+
/**
1101+
* Task management details returned by the task tool.
1102+
* Clients can use this to render a task list UI showing planning and progress.
1103+
*/
1104+
interface TaskDetails {
1105+
type: 'task';
1106+
1107+
/**
1108+
* The list of tasks in the current plan.
1109+
*/
1110+
tasks: TaskItem[];
1111+
1112+
/**
1113+
* IDs of tasks currently in progress.
1114+
*/
1115+
inProgressTaskIds: number[];
1116+
1117+
/**
1118+
* Aggregate counts of tasks by status.
1119+
*/
1120+
summary: {
1121+
done: number;
1122+
inProgress: number;
1123+
pending: number;
1124+
total: number;
1125+
};
1126+
1127+
/**
1128+
* Summary of what the agent is currently working on.
1129+
* Set when a task is started, cleared when no tasks are in progress.
1130+
*/
1131+
activeSummary?: string;
1132+
}
1133+
1134+
interface TaskItem {
1135+
/**
1136+
* The task ID.
1137+
*/
1138+
id: number;
1139+
1140+
/**
1141+
* Brief, actionable title.
1142+
*/
1143+
subject: string;
1144+
1145+
/**
1146+
* Detailed description including acceptance criteria.
1147+
*/
1148+
description: string;
1149+
1150+
/**
1151+
* Current status of the task.
1152+
*/
1153+
status: 'pending' | 'in-progress' | 'done';
1154+
1155+
/**
1156+
* Task priority.
1157+
*/
1158+
priority: 'high' | 'medium' | 'low';
1159+
1160+
/**
1161+
* Whether this task is currently blocked by incomplete dependencies.
1162+
*/
1163+
isBlocked: boolean;
1164+
1165+
/**
1166+
* IDs of tasks that must be completed before this task can start.
1167+
* Only present when the task has dependencies.
1168+
*/
1169+
blockedBy?: number[];
1170+
}
1171+
11001172
/**
11011173
* Extra information about a chat
11021174
*/
@@ -1848,6 +1920,14 @@ interface EcaServerUpdatedParams {
18481920

18491921
/**
18501922
* The built-in tools supported by eca.
1923+
*
1924+
* Built-in tools include: read_file, write_file, edit_file, move_file,
1925+
* directory_tree, shell_command, editor_diagnostics, compact_chat,
1926+
* skill, spawn_agent, and task.
1927+
*
1928+
* Note: `spawn_agent` and `task` are excluded from subagent tool sets.
1929+
* `spawn_agent` is excluded to prevent nesting, and `task` because
1930+
* task list state is chat-local and should be managed by the parent agent.
18511931
*/
18521932
tools: ServerTool[];
18531933
}

0 commit comments

Comments
 (0)