char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
0afb805b1
char/aliceai-t5-moe
1import { tryParseToolResultObject } from '$lib/utils' ; 2import { describe , expect , it } from 'vitest' ; 3 4describe ( 'tryParseToolResultObject' , () => { 5it ( 'returns null when no result is provided' , () => { 6expect ( tryParseToolResultObject ( undefined )). toBeNull (); 7expect ( tryParseToolResultObject ( '' )). toBeNull (); 8}); 9 10it ( 'returns the parsed object when the result is JSON' , () => { 11expect ( tryParseToolResultObject ( '{"result":"ok","bytes":42}' )). toEqual ({ 12bytes :42 , 13result :'ok' 14}); 15}); 16 17it ( 'returns null for JSON arrays (only objects are useful to callers)' , () => { 18expect ( tryParseToolResultObject ( '[1,2,3]' )). toBeNull (); 19}); 20 21it ( 'returns null for JSON primitives' , () => { 22expect ( tryParseToolResultObject ( '"raw string"' )). toBeNull (); 23expect ( tryParseToolResultObject ( '42' )). toBeNull (); 24}); 25 26it ( 'returns null for invalid JSON' , () => { 27expect ( tryParseToolResultObject ( 'not json' )). toBeNull (); 28expect ( tryParseToolResultObject ( '{bad' )). toBeNull (); 29}); 30}); 31 32describe ( 'tryParseToolResultObject gating' , () => { 33it ( 'parses JSON objects that start after leading whitespace' , () => { 34expect ( tryParseToolResultObject ( '\n {"result":"ok"}' )). toEqual ({ result :'ok' }); 35}); 36 37it ( 'skips the parse for large plain-text results' , () => { 38// most tool results are file contents or stdout; the gate avoids a 39// doomed JSON.parse over the whole blob 40expect ( tryParseToolResultObject ( ` ${ 'stdout line\n' . repeat ( 2000 )} ` )). toBeNull (); 41}); 42});