MCPcopy
hub / github.com/7836246/cursor2api / executeAttempt

Function executeAttempt

src/openai-handler.ts:627–690  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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 {

Callers 1

Calls 5

isRefusalFunction · 0.90
sendCursorRequestFunction · 0.85
flushVisibleFunction · 0.70

Tested by

no test coverage detected