char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
521a64cd0
char/aliceai-t5-moe
1import { CONFIG_LOCALSTORAGE_KEY , SETTING_CONFIG_DEFAULT } from '$lib/constants' ; 2import { ParameterSyncService } from '$lib/services/parameter-sync.service' ; 3import { serverStore } from '$lib/stores/server.svelte' ; 4import { settingsStore } from '$lib/stores/settings/index.svelte' ; 5import type { SettingsConfigType } from '$lib/types' ; 6import { beforeEach , describe , expect , it } from 'vitest' ; 7 8type Primitive = string | number | boolean ; 9 10const KEYS = Object . keys ( SETTING_CONFIG_DEFAULT ). filter ( 11( k ) => [ 'string' , 'number' , 'boolean' ]. includes ( typeof SETTING_CONFIG_DEFAULT [ k ]) && k !== 'theme' 12); 13 14function divergent ( key :string , base :Primitive ) :Primitive { 15if ( typeof base === 'boolean' ) return ! base ; 16 17if ( typeof base === 'number' ) return base + 7 ; 18 19return `user- ${ key } ` ; 20} 21 22function baselineFor ( key :string , base :Primitive ) :Primitive { 23if ( typeof base === 'boolean' ) return ! base ; 24 25if ( typeof base === 'number' ) return base + 42 ; 26 27return `admin- ${ key } ` ; 28} 29 30function mockProps ( uiSettings :Record < string , Primitive >) { 31Object . defineProperty ( serverStore , 'props' , { 32configurable :true , 33get :() => 34({ 35default_generation_settings :{ params :{ temperature :0.8 } }, 36ui_settings :uiSettings 37}) as unknown as typeof serverStore . props 38}); 39} 40 41const setUser = ( key :string , value :Primitive ) => 42settingsStore . updateConfig ( key as keyof SettingsConfigType , value as never ); 43const current = ( key :string ) => ( settingsStore . config as Record < string , unknown >)[ key ]; 44 45describe ( 'registry-wide invariants' , () => { 46beforeEach (() => { 47localStorage . removeItem ( CONFIG_LOCALSTORAGE_KEY ); 48}); 49 50it ( 'I1: no load ever modifies a stored user value, for any key of any type' , () => { 51settingsStore . initialize (); 52const userValues :Record < string , Primitive > = {}; 53 54for ( const key of KEYS ) { 55userValues [ key ] = divergent ( key , SETTING_CONFIG_DEFAULT [ key ] as Primitive ); 56setUser ( key , userValues [ key ]); 57} 58 59// simulated F5 + adverse admin baseline on every key, synced twice 60settingsStore . initialize (); 61const adverse :Record < string , Primitive > = {}; 62 63for ( const key of KEYS ) 64adverse [ key ] = baselineFor ( key , SETTING_CONFIG_DEFAULT [ key ] as Primitive ); 65mockProps ( adverse ); 66settingsStore . syncWithServerDefaults (); 67settingsStore . syncWithServerDefaults (); 68 69for ( const key of KEYS ) { 70expect ( current ( key ), key ). toBe ( userValues [ key ]); 71} 72}); 73 74it ( 'first visit: the baseline applies for every key, false and 0 included' , () => { 75settingsStore . initialize (); 76const baseline :Record < string , Primitive > = {}; 77 78for ( const key of KEYS ) 79baseline [ key ] = baselineFor ( key , SETTING_CONFIG_DEFAULT [ key ] as Primitive ); 80mockProps ( baseline ); 81 82settingsStore . syncWithServerDefaults (); 83 84for ( const key of KEYS ) { 85if ( ParameterSyncService . canSyncParameter ( key )) continue ; 86 87expect ( current ( key ), key ). toBe ( baseline [ key ]); 88} 89}); 90 91it ( 'I3: Reset returns every key to baseline when defined, factory default otherwise' , () => { 92settingsStore . initialize (); 93for ( const key of KEYS ) setUser ( key , divergent ( key , SETTING_CONFIG_DEFAULT [ key ] as Primitive )); 94 95const baseline :Record < string , Primitive > = {}; 96 97KEYS . filter (( _ , i ) => i % 2 === 0 ). forEach (( key ) => { 98baseline [ key ] = baselineFor ( key , SETTING_CONFIG_DEFAULT [ key ] as Primitive ); 99}); 100mockProps ( baseline ); 101 102settingsStore . forceSyncWithServerDefaults (); 103 104for ( const key of KEYS ) { 105if ( key in baseline ) { 106expect ( current ( key ), key ). toBe ( baseline [ key ]); 107} else if ( ParameterSyncService . canSyncParameter ( key )) { 108expect ( current ( key ), key ). toBe ( '' ); 109} else { 110expect ( current ( key ), key ). toBe ( SETTING_CONFIG_DEFAULT [ key ]); 111} 112} 113}); 114});