@@ -16,7 +16,18 @@ const getStoredSelectedLanguageModel = (): LanguageModelInfo | undefined => {
1616 return undefined ;
1717 }
1818
19- return JSON . parse ( storedValue ) as LanguageModelInfo ;
19+ const parsedValue = JSON . parse ( storedValue ) ;
20+ if (
21+ typeof parsedValue === "object" &&
22+ parsedValue !== null &&
23+ typeof parsedValue . provider === "string" &&
24+ typeof parsedValue . model === "string" &&
25+ typeof parsedValue . displayName === "string"
26+ ) {
27+ return parsedValue as LanguageModelInfo ;
28+ }
29+
30+ return undefined ;
2031 } catch {
2132 return undefined ;
2233 }
@@ -48,7 +59,7 @@ export const useSelectedLanguageModel = ({
4859 }
4960
5061 if ( selectedLanguageModel && ! availableSelectedLanguageModel ) {
51- setSelectedLanguageModel ( ( currentSelectedLanguageModel ) => {
62+ setSelectedLanguageModel ( ( ) => {
5263 const storedSelectedLanguageModel = getStoredSelectedLanguageModel ( ) ;
5364 const availableStoredSelectedLanguageModel = storedSelectedLanguageModel && languageModels . find (
5465 ( model ) => getLanguageModelKey ( model ) === getLanguageModelKey ( storedSelectedLanguageModel )
@@ -58,12 +69,6 @@ export const useSelectedLanguageModel = ({
5869 return availableStoredSelectedLanguageModel ;
5970 }
6071
61- if ( currentSelectedLanguageModel && languageModels . find (
62- ( model ) => getLanguageModelKey ( model ) === getLanguageModelKey ( currentSelectedLanguageModel )
63- ) ) {
64- return currentSelectedLanguageModel ;
65- }
66-
6772 return fallbackLanguageModel ;
6873 } ) ;
6974 }
0 commit comments