MCPcopy Create free account
hub / github.com/microsoft/AI-Engineering-Coach / flushTurn

Function flushTurn

src/core/parser-vscode-cli.ts:133–168  ·  view source on GitHub ↗
(state: CLIParseState)

Source from the content-addressed store, hash-verified

131}
132
133function flushTurn(state: CLIParseState): void {
134 const turn = state.turn;
135 if (!turn || (turn.responseChunks.length === 0 && turn.toolNames.size === 0 && !turn.isCanceled)) return;
136
137 const msgTs = turn.userTs ? new Date(turn.userTs).getTime() : null;
138 const respTs = turn.lastAssistantTs ? new Date(turn.lastAssistantTs).getTime() : null;
139 const firstProgress = turn.firstToolTs && msgTs ? turn.firstToolTs - msgTs : null;
140 const responseText = turn.responseChunks.filter(Boolean).join('\n\n');
141
142 state.requests.push(createRequest({
143 requestId: turn.lastAssistantId || `cli-${state.requests.length}`,
144 timestamp: msgTs,
145 messageText: turn.userMsg,
146 responseText,
147 agentName: harnessName(state),
148 agentMode: turn.agentMode || 'agent',
149 modelId: turn.modelId || state.currentModelId,
150 toolsUsed: [...turn.toolNames],
151 editedFiles: [...turn.editedFiles],
152 referencedFiles: [...turn.referencedFiles],
153 skillsUsed: [...turn.skillsUsed],
154 variableKinds: turn.imageCount > 0 ? { image: turn.imageCount } : {},
155 firstProgress: firstProgress !== null && firstProgress >= 0 ? firstProgress : null,
156 totalElapsed: msgTs && respTs ? respTs - msgTs : null,
157 completionTokens: turn.totalOutputTokens || null,
158 isCanceled: turn.isCanceled,
159 compaction: turn.compaction,
160 // Reasoning effort: prefer the value captured at user.message time
161 // (carried forward from session.start / model_change). Fall back to
162 // model-id suffix inference for sessions that pre-date the explicit
163 // event field.
164 reasoningEffort: turn.reasoningEffort
165 ?? extractReasoningEffortFromModelId(turn.modelId || state.currentModelId),
166 endState: getTurnEndState(turn),
167 }));
168}
169
170function addAttachmentReferences(turn: TurnState, attachments: unknown): void {
171 for (const attachment of recordArrayValue(attachments)) {

Callers 2

handleUserMessageFunction · 0.85
finalizeCliSessionFunction · 0.85

Calls 5

createRequestFunction · 0.90
harnessNameFunction · 0.85
getTurnEndStateFunction · 0.85
filterMethod · 0.80

Tested by

no test coverage detected