mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-05 00:45:29 +08:00
- Stream: strip both and [reference:N] markers to prevent leaking partial link metadata during incremental output - Non-stream: convert citation/reference markers to Markdown links for Claude Messages, Gemini generateContent, and OpenAI Chat/Responses - Remove StripReferenceMarkers option from call sites; behavior is now determined automatically by stream vs non-stream context - Extend JS runtime stripReferenceMarkersText() to also match [citation:N] - Add tests for streaming marker stripping and non-stream link conversion Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
20 lines
521 B
Go
20 lines
521 B
Go
package textclean
|
|
|
|
import "regexp"
|
|
|
|
var citationReferenceMarkerPattern = regexp.MustCompile(`(?i)\[(citation|reference):\s*\d+\]`)
|
|
|
|
func StripReferenceMarkers(text string) string {
|
|
if text == "" {
|
|
return text
|
|
}
|
|
return citationReferenceMarkerPattern.ReplaceAllString(text, "")
|
|
}
|
|
|
|
// StripReferenceMarkersEnabled returns the default for streaming surfaces,
|
|
// where partial citation/reference markers are hidden before the final
|
|
// link metadata is available.
|
|
func StripReferenceMarkersEnabled() bool {
|
|
return true
|
|
}
|