MCPcopy Create free account
hub / github.com/OpenAnonymity/oa-chat / resolveDefaultModelPreferenceUpdate

Function resolveDefaultModelPreferenceUpdate

chat/domain/modelSelection.js:93–130  ·  view source on GitHub ↗
(options = {})

Source from the content-addressed store, hash-verified

91}
92
93export function resolveDefaultModelPreferenceUpdate(options = {}) {
94 const {
95 storedModelPreference = null,
96 pendingModelName = null,
97 hasCurrentSession = false,
98 normalizeModelName = (modelName) => modelName,
99 upgradeDefaultModelPreference = (modelName) => modelName
100 } = options;
101
102 const normalizedStoredModelPreference = normalizeModelName(storedModelPreference);
103 const upgradedStoredModelPreference = upgradeDefaultModelPreference(normalizedStoredModelPreference);
104 const shouldSaveStoredPreference = !!upgradedStoredModelPreference &&
105 upgradedStoredModelPreference !== storedModelPreference;
106
107 let nextPendingModelName = pendingModelName;
108 let pendingChanged = false;
109
110 if (!hasCurrentSession && upgradedStoredModelPreference) {
111 const normalizedPendingModelName = normalizeModelName(pendingModelName);
112 const pendingTracksStoredDefault = !normalizedPendingModelName ||
113 normalizedPendingModelName === normalizedStoredModelPreference ||
114 normalizedPendingModelName === storedModelPreference;
115
116 if (pendingTracksStoredDefault && normalizedPendingModelName !== upgradedStoredModelPreference) {
117 nextPendingModelName = upgradedStoredModelPreference;
118 pendingChanged = true;
119 }
120 }
121
122 return {
123 normalizedStoredModelPreference,
124 upgradedStoredModelPreference,
125 shouldSaveStoredPreference,
126 nextPendingModelName,
127 pendingChanged,
128 changed: shouldSaveStoredPreference || pendingChanged
129 };
130}
131
132export function findModelByNameOrId(models = [], modelNameOrId = '', normalizeModelNameFn = null) {
133 if (!modelNameOrId || !Array.isArray(models)) return null;

Callers 1

Calls 2

normalizeModelNameFunction · 0.85

Tested by

no test coverage detected