()
| 625 | let reasoningSent = false; |
| 626 | |
| 627 | const executeAttempt = async (): Promise<{ |
| 628 | rawResponse: string; |
| 629 | visibleText: string; |
| 630 | reasoningContent: string; |
| 631 | streamer: ReturnType<typeof createIncrementalTextStreamer>; |
| 632 | }> => { |
| 633 | let rawResponse = ''; |
| 634 | let visibleText = ''; |
| 635 | let leadingBuffer = ''; |
| 636 | let leadingResolved = false; |
| 637 | let reasoningContent = ''; |
| 638 | const attemptStreamer = createIncrementalTextStreamer({ |
| 639 | transform: sanitizeResponse, |
| 640 | isBlockedPrefix: (text) => isRefusal(text.substring(0, 300)), |
| 641 | }); |
| 642 | |
| 643 | const flushVisible = (chunk: string): void => { |
| 644 | if (!chunk) return; |
| 645 | visibleText += chunk; |
| 646 | const delta = attemptStreamer.push(chunk); |
| 647 | if (!delta) return; |
| 648 | |
| 649 | if (thinkingEnabled && reasoningContent && !reasoningSent) { |
| 650 | writeOpenAIReasoningDelta(res, streamMeta.id, streamMeta.created, streamMeta.model, reasoningContent); |
| 651 | reasoningSent = true; |
| 652 | } |
| 653 | writeOpenAITextDelta(res, streamMeta.id, streamMeta.created, streamMeta.model, delta); |
| 654 | }; |
| 655 | |
| 656 | await sendCursorRequest(activeCursorReq, (event: CursorSSEEvent) => { |
| 657 | if (event.type !== 'text-delta' || !event.delta) return; |
| 658 | |
| 659 | rawResponse += event.delta; |
| 660 | |
| 661 | if (!leadingResolved) { |
| 662 | leadingBuffer += event.delta; |
| 663 | const split = splitLeadingThinkingBlocks(leadingBuffer); |
| 664 | |
| 665 | if (split.startedWithThinking) { |
| 666 | if (!split.complete) return; |
| 667 | reasoningContent = split.thinkingContent; |
| 668 | leadingResolved = true; |
| 669 | leadingBuffer = ''; |
| 670 | flushVisible(split.remainder); |
| 671 | return; |
| 672 | } |
| 673 | |
| 674 | leadingResolved = true; |
| 675 | const buffered = leadingBuffer; |
| 676 | leadingBuffer = ''; |
| 677 | flushVisible(buffered); |
| 678 | return; |
| 679 | } |
| 680 | |
| 681 | flushVisible(event.delta); |
| 682 | }); |
| 683 | |
| 684 | return { |
no test coverage detected