Files
diegosouzapw--omniroute/open-sse/services/claudeCodeCompatibleThinkingDisplay.ts
2026-07-13 13:39:12 +08:00

35 lines
978 B
TypeScript

const COPILOT_REASONING_SUMMARY_MARKER = "_omnirouteCopilotReasoningSummary";
export function applyClaudeCodeCompatibleThinkingDisplay(
thinking: Record<string, unknown>,
options: {
normalizedBody?: Record<string, unknown> | null;
summarizeThinking?: boolean;
} = {}
) {
if (thinking.type === "disabled") {
return thinking;
}
const markerRequestsSummary =
options.normalizedBody?.[COPILOT_REASONING_SUMMARY_MARKER] === "summarized";
const connectionRequestsSummary = options.summarizeThinking === true;
if (!markerRequestsSummary && !connectionRequestsSummary) {
return thinking;
}
const hasExplicitDisplay =
Object.prototype.hasOwnProperty.call(thinking, "display") &&
thinking.display !== undefined &&
thinking.display !== null &&
String(thinking.display).trim().length > 0;
if (hasExplicitDisplay && !markerRequestsSummary) {
return thinking;
}
return {
...thinking,
display: "summarized",
};
}