MCPcopy
hub / github.com/cursor/cookbook / applyAgentEvent

Function applyAgentEvent

sdk/coding-agent-cli/src/tui/App.tsx:852–914  ·  view source on GitHub ↗
(
  items: TranscriptEntry[],
  event: AgentEvent,
  assistantId: string
)

Source from the content-addressed store, hash-verified

850}
851
852function applyAgentEvent(
853 items: TranscriptEntry[],
854 event: AgentEvent,
855 assistantId: string
856): TranscriptEntry[] {
857 switch (event.type) {
858 case "assistant_delta":
859 return appendAssistantDelta(items, assistantId, event.text)
860 case "thinking": {
861 const text = compactText(event.text)
862 return text
863 ? upsertEntry(items, `thinking-${assistantId}`, "status", "think", text)
864 : items
865 }
866 case "tool": {
867 const id = event.callId
868 ? `tool-${event.callId}`
869 : `tool-${assistantId}-${event.name}`
870 return upsertEntry(
871 items,
872 id,
873 "tool",
874 "tool",
875 [
876 formatToolStatus(event.status),
877 formatToolIcon(event.name),
878 event.name,
879 event.params,
880 ]
881 .filter(Boolean)
882 .join(" ")
883 )
884 }
885 case "status":
886 return ["CREATING", "RUNNING", "FINISHED"].includes(event.status)
887 ? items
888 : upsertEntry(
889 items,
890 `status-${assistantId}`,
891 event.status === "ERROR" ? "error" : "status",
892 "run",
893 `${formatRunStatus(event.status)}${event.message ? ` ${event.message}` : ""}`
894 )
895 case "task": {
896 const text = compactText([event.status, event.text].filter(Boolean).join(" "))
897 return text
898 ? upsertEntry(items, `task-${assistantId}`, "status", "task", text)
899 : items
900 }
901 case "result": {
902 const details = [
903 event.status !== "finished" ? `status=${event.status}` : undefined,
904 event.durationMs ? `duration=${formatDuration(event.durationMs)}` : undefined,
905 event.usage?.inputTokens ? `input=${event.usage.inputTokens}` : undefined,
906 event.usage?.outputTokens ? `output=${event.usage.outputTokens}` : undefined,
907 ].filter(Boolean)
908
909 return details.length > 0

Callers 1

sendPromptFunction · 0.85

Calls 8

upsertEntryFunction · 0.85
formatToolStatusFunction · 0.85
formatToolIconFunction · 0.85
formatRunStatusFunction · 0.85
formatDurationFunction · 0.85
makeEntryFunction · 0.85
appendAssistantDeltaFunction · 0.70
compactTextFunction · 0.70

Tested by

no test coverage detected