mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-12 22:14:22 +00:00
fix(api-profiles): keep AGY denylist when droid provider is set
This commit is contained in:
1 parent
7e471e663c
commit
27101390fe
2 files changed
+33
-1
No files matched your search
@@ -44,13 +44,17 @@ function resolveProviderForModelCanonicalization(
|
|||||||
baseUrl: unknown,
|
baseUrl: unknown,
|
||||||
providerHint: unknown
|
providerHint: unknown
|
||||||
): CLIProxyProvider | null {
|
): CLIProxyProvider | null {
|
||||||
|
const fromBaseUrl = resolveProviderFromBaseUrl(baseUrl);
|
||||||
|
if (fromBaseUrl) {
|
||||||
|
return fromBaseUrl;
|
||||||
|
}
|
||||||
if (typeof providerHint === 'string' && providerHint.trim().length > 0) {
|
if (typeof providerHint === 'string' && providerHint.trim().length > 0) {
|
||||||
const fromProviderHint = mapExternalProviderName(providerHint);
|
const fromProviderHint = mapExternalProviderName(providerHint);
|
||||||
if (fromProviderHint) {
|
if (fromProviderHint) {
|
||||||
return fromProviderHint;
|
return fromProviderHint;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resolveProviderFromBaseUrl(baseUrl);
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDeniedModelReasonForProvider(
|
function getDeniedModelReasonForProvider(
|
||||||
|
|||||||
@@ -67,6 +67,34 @@ describe('route-helpers AGY denylist', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('keeps AGY denylist enforcement when CCS_DROID_PROVIDER is present', () => {
|
||||||
|
const settingsDir = path.join(tempHome, '.ccs');
|
||||||
|
fs.mkdirSync(settingsDir, { recursive: true });
|
||||||
|
const settingsPath = path.join(settingsDir, 'agy-profile.settings.json');
|
||||||
|
fs.writeFileSync(
|
||||||
|
settingsPath,
|
||||||
|
JSON.stringify(
|
||||||
|
{
|
||||||
|
env: {
|
||||||
|
ANTHROPIC_BASE_URL: 'http://127.0.0.1:8317/api/provider/agy',
|
||||||
|
ANTHROPIC_AUTH_TOKEN: 'test-token',
|
||||||
|
ANTHROPIC_MODEL: 'claude-sonnet-4-6',
|
||||||
|
ANTHROPIC_DEFAULT_OPUS_MODEL: 'claude-opus-4-6-thinking',
|
||||||
|
ANTHROPIC_DEFAULT_SONNET_MODEL: 'claude-sonnet-4-6',
|
||||||
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'claude-haiku-4-5',
|
||||||
|
CCS_DROID_PROVIDER: 'anthropic',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
2
|
||||||
|
) + '\n'
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(() => updateSettingsFile('agy-profile', { model: 'claude-sonnet-4.5' })).toThrow(
|
||||||
|
/denylist/i
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('canonicalizes legacy iflow model IDs on settings create', () => {
|
it('canonicalizes legacy iflow model IDs on settings create', () => {
|
||||||
createSettingsFile('iflow-profile', 'http://127.0.0.1:8317/api/provider/iflow', 'test-token', {
|
createSettingsFile('iflow-profile', 'http://127.0.0.1:8317/api/provider/iflow', 'test-token', {
|
||||||
model: 'kimi-k2.5',
|
model: 'kimi-k2.5',
|
||||||
|
|||||||
Reference in new issue
Block a user