41 lines · 1.1 KB · Go
RawDownload
package thinking import (	"github.com/tidwall/gjson") // GetThinkingText extracts the thinking text from a content part.// Handles various formats:// - Simple string: { "thinking": "text" } or { "text": "text" }// - Wrapped object: { "thinking": { "text": "text", "cache_control": {...} } }// - Gemini-style: { "thought": true, "text": "text" }// Returns the extracted text string.func GetThinkingText(part gjson.Result) string {	// Try direct text field first (Gemini-style)	if text := part.Get("text"); text.Exists() && text.Type == gjson.String {		return text.String()	} 	// Try thinking field	thinkingField := part.Get("thinking")	if !thinkingField.Exists() {		return ""	} 	// thinking is a string	if thinkingField.Type == gjson.String {		return thinkingField.String()	} 	// thinking is an object with inner text/thinking	if thinkingField.IsObject() {		if inner := thinkingField.Get("text"); inner.Exists() && inner.Type == gjson.String {			return inner.String()		}		if inner := thinkingField.Get("thinking"); inner.Exists() && inner.Type == gjson.String {			return inner.String()		}	} 	return ""}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t