mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-05 08:10:14 +00:00
- Replace character-by-character XML parsing with robust SAX parser library - Add sax and @types/sax dependencies for reliable XML parsing - Implement event-driven parsing with onopentag, onclosetag, ontext handlers - Add XML wrapping to handle multiple root elements in streaming scenarios - Create hasIncompleteXml() method for proper partial XML detection - Maintain backward compatibility with existing partial detection logic - Add comprehensive test suite with 6 new test cases - Preserve fallback to manual parsing when SAX parser fails - Improve error handling and maintain all existing functionality Benefits: - More robust XML parsing with better edge case handling - Improved performance with event-driven parsing - Cleaner, more maintainable code - Standards-compliant XML parsing - Full backward compatibility
34 lines
915 B
JavaScript
34 lines
915 B
JavaScript
const { parseAssistantMessage } = require("./core/assistant-message/parseAssistantMessage")
|
|
|
|
const message = `<log_message>
|
|
<message>This is a debug message</message>
|
|
<level>debug</level>
|
|
</log_message>
|
|
|
|
<log_message>
|
|
<message>This is an info message</message>
|
|
</log_message>
|
|
|
|
<log_message>
|
|
<message>This is a warning message</message>
|
|
<level>warn</level>
|
|
</log_message>
|
|
|
|
<log_message>
|
|
<message>This is an error message</message>
|
|
<level>error</level>
|
|
</log_message>`
|
|
|
|
console.log("Input message:")
|
|
console.log(message)
|
|
console.log("\n=== PARSING RESULT ===")
|
|
|
|
const result = parseAssistantMessage(message)
|
|
console.log("Total blocks:", result.length)
|
|
|
|
const filteredResult = result.filter((block) => !(block.type === "text" && block.content === ""))
|
|
console.log("Filtered blocks:", filteredResult.length)
|
|
|
|
filteredResult.forEach((block, index) => {
|
|
console.log(`Block ${index}:`, JSON.stringify(block, null, 2))
|
|
})
|