Changeset 0.23.0 (#153)
This commit is contained in:
@@ -131,7 +131,7 @@ function processModelsResponse(data, hiddenModels = new Set()) {
|
||||
return (data.models || []).map(m => {
|
||||
const isPersona = !!m.is_persona;
|
||||
const baseModelId = m.model_id || m.id;
|
||||
const cfgId = m.config_id || m.provider_config_id;
|
||||
const cfgId = m.config_id || m.provider_config_id || '';
|
||||
const id = isPersona
|
||||
? (m.persona_id || m.id)
|
||||
: (cfgId ? `${cfgId}:${baseModelId}` : baseModelId);
|
||||
@@ -143,12 +143,13 @@ function processModelsResponse(data, hiddenModels = new Set()) {
|
||||
configId: cfgId || null,
|
||||
isPersona,
|
||||
personaId: m.persona_id || null,
|
||||
personaHandle: m.persona_handle || null,
|
||||
personaScope: m.persona_scope || (isPersona ? m.scope : null) || null,
|
||||
personaAvatar: m.persona_avatar || (isPersona ? m.avatar : null) || null,
|
||||
personaTeamName: m.persona_team_name || (isPersona ? m.team_name : null) || null,
|
||||
source: m.source || (isPersona ? 'persona' : 'global'),
|
||||
teamName: m.persona_team_name || null,
|
||||
hidden: !isPersona && hiddenModels.has(baseModelId),
|
||||
hidden: !isPersona && hiddenModels.has((cfgId || '') + ':' + baseModelId),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ describe('processModelsResponse — personas', () => {
|
||||
persona_id: 'preset-uuid',
|
||||
persona_scope: 'global',
|
||||
persona_avatar: '/avatars/code.png',
|
||||
persona_handle: 'code-helper',
|
||||
persona_team_name: null,
|
||||
config_id: 'cfg-uuid',
|
||||
provider_name: 'OpenAI',
|
||||
@@ -147,6 +148,7 @@ describe('processModelsResponse — personas', () => {
|
||||
const models = processModelsResponse(apiResponse);
|
||||
assert.equal(models[0].personaScope, 'global');
|
||||
assert.equal(models[0].personaAvatar, '/avatars/code.png');
|
||||
assert.equal(models[0].personaHandle, 'code-helper');
|
||||
assert.equal(models[0].personaId, 'preset-uuid');
|
||||
});
|
||||
|
||||
@@ -208,8 +210,8 @@ describe('processModelsResponse — hidden models', () => {
|
||||
],
|
||||
};
|
||||
|
||||
it('marks models as hidden from user prefs', () => {
|
||||
const hidden = new Set(['gpt-4o']);
|
||||
it('marks models as hidden from user prefs (composite key)', () => {
|
||||
const hidden = new Set(['c1:gpt-4o']);
|
||||
const models = processModelsResponse(apiResponse, hidden);
|
||||
assert.equal(models[0].hidden, true, 'gpt-4o should be hidden');
|
||||
assert.equal(models[1].hidden, false, 'claude-3 should NOT be hidden');
|
||||
@@ -221,7 +223,7 @@ describe('processModelsResponse — hidden models', () => {
|
||||
{ model_id: 'gpt-4o', is_persona: true, persona_id: 'p1', display_name: 'Persona' },
|
||||
],
|
||||
};
|
||||
const hidden = new Set(['gpt-4o']);
|
||||
const hidden = new Set([':gpt-4o']);
|
||||
const models = processModelsResponse(resp, hidden);
|
||||
assert.equal(models[0].hidden, false,
|
||||
'personas must NOT be hidden by base model hidden pref');
|
||||
|
||||
@@ -314,7 +314,7 @@ describe('Edge: provider_config_id only (no config_id alias)', () => {
|
||||
|
||||
describe('Edge: Hidden model preferences', () => {
|
||||
it('marks hidden models correctly', () => {
|
||||
const hidden = new Set(['gpt-4o-mini']);
|
||||
const hidden = new Set(['cfg-global-openai:gpt-4o-mini']);
|
||||
const models = processModelsResponse({ models: GLOBAL_MODELS }, hidden);
|
||||
const mini = models.find(m => m.baseModelId === 'gpt-4o-mini');
|
||||
const main = models.find(m => m.baseModelId === 'gpt-4o');
|
||||
@@ -324,7 +324,7 @@ describe('Edge: Hidden model preferences', () => {
|
||||
|
||||
it('personas are never hidden', () => {
|
||||
const persona = personaModel('preset-1', 'gpt-4o', 'global');
|
||||
const hidden = new Set(['gpt-4o']);
|
||||
const hidden = new Set([':gpt-4o']);
|
||||
const models = processModelsResponse({ models: [persona] }, hidden);
|
||||
assert.equal(models[0].hidden, false, 'personas must never be hidden');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user