@@ -1030,7 +1030,7 @@ interface ChatToolCallRejectedContent {
10301030
10311031type ToolCallOrigin = ' mcp' | ' native' | ' server' | ' unknown' ;
10321032
1033- type ToolCallDetails = FileChangeDetails | JsonOutputsDetails | SubagentDetails ;
1033+ type ToolCallDetails = FileChangeDetails | JsonOutputsDetails | SubagentDetails | TaskDetails ;
10341034
10351035interface 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