| 123456789101112131415161718192021222324252627282930313233343536 |
- import type { SdkWorkflowProgress } from '../../types/tools.js'
- import { enqueueSdkEvent } from '../sdkEventQueue.js'
- /**
- * Emit a `task_progress` SDK event. Shared by background agents (per tool_use
- * in runAsyncAgentLifecycle) and workflows (per flushProgress batch). Accepts
- * already-computed primitives so callers can derive them from their own state
- * shapes (ProgressTracker for agents, LocalWorkflowTaskState for workflows).
- */
- export function emitTaskProgress(params: {
- taskId: string
- toolUseId: string | undefined
- description: string
- startTime: number
- totalTokens: number
- toolUses: number
- lastToolName?: string
- summary?: string
- workflowProgress?: SdkWorkflowProgress[]
- }): void {
- enqueueSdkEvent({
- type: 'system',
- subtype: 'task_progress',
- task_id: params.taskId,
- tool_use_id: params.toolUseId,
- description: params.description,
- usage: {
- total_tokens: params.totalTokens,
- tool_uses: params.toolUses,
- duration_ms: Date.now() - params.startTime,
- },
- last_tool_name: params.lastToolName,
- summary: params.summary,
- workflow_progress: params.workflowProgress,
- })
- }
|