source dump of claude code
at main 36 lines 1.2 kB view raw
1import type { SdkWorkflowProgress } from '../../types/tools.js' 2import { enqueueSdkEvent } from '../sdkEventQueue.js' 3 4/** 5 * Emit a `task_progress` SDK event. Shared by background agents (per tool_use 6 * in runAsyncAgentLifecycle) and workflows (per flushProgress batch). Accepts 7 * already-computed primitives so callers can derive them from their own state 8 * shapes (ProgressTracker for agents, LocalWorkflowTaskState for workflows). 9 */ 10export function emitTaskProgress(params: { 11 taskId: string 12 toolUseId: string | undefined 13 description: string 14 startTime: number 15 totalTokens: number 16 toolUses: number 17 lastToolName?: string 18 summary?: string 19 workflowProgress?: SdkWorkflowProgress[] 20}): void { 21 enqueueSdkEvent({ 22 type: 'system', 23 subtype: 'task_progress', 24 task_id: params.taskId, 25 tool_use_id: params.toolUseId, 26 description: params.description, 27 usage: { 28 total_tokens: params.totalTokens, 29 tool_uses: params.toolUses, 30 duration_ms: Date.now() - params.startTime, 31 }, 32 last_tool_name: params.lastToolName, 33 summary: params.summary, 34 workflow_progress: params.workflowProgress, 35 }) 36}