MCPcopy Index your code
hub / github.com/codeaashu/claude-code / createStreamlinedTransformer

Function createStreamlinedTransformer

src/utils/streamlinedTransform.ts:130–193  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

128 * Tool counts reset when a message with text content is encountered.
129 */
130export function createStreamlinedTransformer(): (
131 message: StdoutMessage,
132) => StdoutMessage | null {
133 let cumulativeCounts = createEmptyToolCounts()
134
135 return function transformToStreamlined(
136 message: StdoutMessage,
137 ): StdoutMessage | null {
138 switch (message.type) {
139 case 'assistant': {
140 const content = message.message.content
141 const text = Array.isArray(content)
142 ? extractTextContent(content, '\n').trim()
143 : ''
144
145 // Accumulate tool counts from this message
146 accumulateToolUses(message, cumulativeCounts)
147
148 if (text.length > 0) {
149 // Text message: emit text only, reset counts
150 cumulativeCounts = createEmptyToolCounts()
151 return {
152 type: 'streamlined_text',
153 text,
154 session_id: message.session_id,
155 uuid: message.uuid,
156 }
157 }
158
159 // Tool-only message: emit cumulative tool summary
160 const toolSummary = getToolSummaryText(cumulativeCounts)
161 if (!toolSummary) {
162 return null
163 }
164
165 return {
166 type: 'streamlined_tool_use_summary',
167 tool_summary: toolSummary,
168 session_id: message.session_id,
169 uuid: message.uuid,
170 }
171 }
172
173 case 'result':
174 // Keep result messages as-is (they have structured_output, permission_denials)
175 return message
176
177 case 'system':
178 case 'user':
179 case 'stream_event':
180 case 'tool_progress':
181 case 'auth_status':
182 case 'rate_limit_event':
183 case 'control_response':
184 case 'control_request':
185 case 'control_cancel_request':
186 case 'keep_alive':
187 return null

Callers 1

runHeadlessFunction · 0.85

Calls 4

createEmptyToolCountsFunction · 0.85
accumulateToolUsesFunction · 0.85
getToolSummaryTextFunction · 0.85
extractTextContentFunction · 0.70

Tested by

no test coverage detected