char-slop/berry
multipurpose self-modifiable agentic harness
git clone https://git.t4t.associates/char-slop/berry
911705e
main
1import { assertEquals , assertRejects , assertStrictEquals } from "@std/assert" ; 2import type { PayloadHook } from "@berry/api" ; 3import { testExtension } from "@berry/api/testing.ts" ; 4import extension from "./mod.ts" ; 5 6type Model = Parameters < PayloadHook >[ 1 ]; 7const openrouter = { provider :"openrouter" } as Model ; 8const direct = { provider :"lithosai" } as Model ; 9 10Deno . test ( "default routing requirements leave the request alone" , async () => { 11const ext = testExtension ( extension ); 12const payload = { model :"deepseek/deepseek-v4.1-flash:nitro" , messages :[] }; 13assertStrictEquals ( await ext . payload ( payload , openrouter ), payload ); 14await ext . configure ({ allowFallbacks :"default" }); 15assertStrictEquals ( await ext . payload ( payload , openrouter ), payload ); 16assertEquals ( await ext . payload ( null , openrouter ), null ); 17assertEquals ( await ext . payload ([], openrouter ), []); 18}); 19 20Deno . test ( "any non-default field applies routing, to OpenRouter object payloads only" , async () => { 21const ext = testExtension ( extension ); 22await ext . configure ({ sort :"throughput" , maxCompletionPrice :"1.00" }); 23const payload = { model :"deepseek/deepseek-v4.1-flash:nitro" , messages :[] }; 24assertEquals ( await ext . payload ( payload , openrouter ), { 25 ...payload , 26provider :{ sort :"throughput" , max_price :{ completion :1 } }, 27}); 28assertStrictEquals ( await ext . payload ( payload , direct ), payload ); 29await ext . configure ({ sort :"default" , maxCompletionPrice :"" }); 30assertStrictEquals ( await ext . payload ( payload , openrouter ), payload ); 31}); 32 33Deno . test ( "requirements override their fields without losing other routing or mutating the request" , async () => { 34const ext = testExtension ( extension ); 35await ext . configure ({ 36only :" baseten/fast, together, baseten/fast " , 37ignore :" deepinfra, ,novita " , 38maxCompletionPrice :".75" , 39allowFallbacks :"no" , 40}); 41const payload = { 42model :"deepseek/deepseek-v4.1-flash" , 43provider :{ 44sort :"latency" , 45only :[ "fireworks" ], 46allow_fallbacks :true , 47data_collection :"deny" , 48max_price :{ prompt :0.2 , completion :5 , request :0.01 }, 49}, 50tools :[{ type :"function" }], 51}; 52const before = structuredClone ( payload ); 53assertEquals ( await ext . payload ( payload , openrouter ), { 54 ...payload , 55provider :{ 56sort :"latency" , 57only :[ "baseten/fast" , "together" ], 58ignore :[ "deepinfra" , "novita" ], 59allow_fallbacks :false , 60data_collection :"deny" , 61max_price :{ prompt :0.2 , completion :0.75 , request :0.01 }, 62}, 63}); 64assertEquals ( payload , before ); 65}); 66 67Deno . test ( "zero is a price cap and clearing caps removes the conversation override" , async () => { 68const ext = testExtension ( extension ); 69await ext . configure ({ maxPromptPrice :" 0 " , maxCompletionPrice :"0.5" }); 70assertEquals ( await ext . payload ({}, openrouter ), { 71provider :{ max_price :{ prompt :0 , completion :0.5 } }, 72}); 73await ext . configure ({ maxPromptPrice :"" , maxCompletionPrice :" " }); 74const payload = { provider :{ max_price :{ prompt :2 } } }; 75assertStrictEquals ( await ext . payload ( payload , openrouter ), payload ); 76}); 77 78Deno . test ( "invalid prices refuse configuration without discarding the current requirements" , async () => { 79const ext = testExtension ( extension ); 80await ext . configure ({ maxCompletionPrice :"1" }); 81await assertRejects ( 82() => ext . configure ({ maxCompletionPrice :"-0.5" }), 83Error , 84); 85await assertRejects ( 86() => ext . configure ({ maxPromptPrice :"9" . repeat ( 400 ) }), 87Error , 88); 89assertEquals ( await ext . payload ({}, openrouter ), { 90provider :{ max_price :{ completion :1 } }, 91}); 92}); 93 94Deno . test ( "settings replay independently, and one recorded before a field was dropped no longer routes" , async () => { 95const ext = testExtension ( extension ); 96const events = await ext . seed ({ 97sort :"throughput" , 98only :"parasail/fast" , 99allowFallbacks :"yes" , 100}); 101const restored = testExtension ( extension , { events}); 102const expected = { 103provider :{ 104sort :"throughput" , 105only :[ "parasail/fast" ], 106allow_fallbacks :true , 107}, 108}; 109assertEquals ( await restored . payload ({}, openrouter ), expected ); 110const untouched = {}; 111assertStrictEquals ( await ext . payload ( untouched , openrouter ), untouched ); 112 113// a conversation that recorded the dropped fields folds to the defaults, without routing 114const older = testExtension ( extension , { 115events :[{ 116type :"configured" , 117values :{ enabled :true , order :"together" , requireParameters :true }, 118}] as never , 119}); 120assertEquals ( older . state , { 121sort :"default" , 122only :"" , 123ignore :"" , 124maxPromptPrice :"" , 125maxCompletionPrice :"" , 126allowFallbacks :"default" , 127}); 128assertStrictEquals ( await older . payload ( untouched , openrouter ), untouched ); 129});