MCPcopy Create free account
hub / github.com/Roy3838/Observer / fetchModels

Function fetchModels

app/src/components/GenerateAgentModal.tsx:61–89  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

59 useEffect(() => {
60 if (isOpen) {
61 const fetchModels = async () => {
62 setLoadingModels(true);
63 setModelsError(null);
64 try {
65 const result = listModels();
66 if (result.error) {
67 throw new Error(result.error);
68 }
69 setAvailableModels(result.models);
70 // If default model is in list, keep it, else pick first or keep default
71 if (!result.models.find(m => m.name === DEFAULT_MODEL) && result.models.length > 0) {
72 setSelectedModel(result.models[0].name);
73 } else if (result.models.length === 0 && DEFAULT_MODEL) {
74 // No models fetched, but we have a hardcoded default
75 setSelectedModel(DEFAULT_MODEL);
76 } else if (result.models.length === 0 && !DEFAULT_MODEL) {
77 setModelsError("No models available and no default set.");
78 setSelectedModel(''); // No model can be selected
79 }
80 } catch (e) {
81 const errorMsg = e instanceof Error ? e.message : String(e);
82 console.error('Failed to fetch models:', errorMsg);
83 setModelsError(`Failed to load models: ${errorMsg}. Using default: ${DEFAULT_MODEL}.`);
84 setAvailableModels([]); // Clear available models on error
85 setSelectedModel(DEFAULT_MODEL); // Fallback to default on error
86 } finally {
87 setLoadingModels(false);
88 }
89 };
90 fetchModels();
91 }
92 }, [isOpen]);

Callers 1

GenerateAgentModalFunction · 0.70

Calls 2

listModelsFunction · 0.90
errorMethod · 0.80

Tested by

no test coverage detected