kimi-code / packages /oauth /src /model-alias-merge.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
f0634fb verified
Raw History Blame Contribute Delete
1.66 kB
import { isRecord } from './utils';
import type { ManagedKimiModelAlias, ManagedKimiModelAliasOverrides } from './managed-kimi-code';
export const MANAGED_KIMI_MODEL_FIELDS: ReadonlySet<string> = new Set([
'provider',
'model',
'maxContextSize',
'capabilities',
'displayName',
'protocol',
'betaApi',
'adaptiveThinking',
'supportEfforts',
'defaultEffort',
]);
export const CUSTOM_REGISTRY_MODEL_FIELDS: ReadonlySet<string> = new Set([
'provider',
'model',
'maxContextSize',
'capabilities',
'displayName',
'supportEfforts',
'defaultEffort',
]);
function cloneOverrides(
overrides: ManagedKimiModelAliasOverrides | undefined,
): ManagedKimiModelAliasOverrides | undefined {
if (overrides === undefined) return undefined;
return structuredClone(overrides);
}
function userExtras(
existing: Record<string, unknown>,
remoteOwnedFields: ReadonlySet<string>,
): Record<string, unknown> {
const out: Record<string, unknown> = {};
for (const [key, value] of Object.entries(existing)) {
if (key === 'overrides') continue;
if (!remoteOwnedFields.has(key)) out[key] = value;
}
return out;
}
export function mergeRefreshedModelAlias(
existing: unknown,
remote: ManagedKimiModelAlias,
remoteOwnedFields: ReadonlySet<string>,
): ManagedKimiModelAlias {
const current = isRecord(existing) ? existing : {};
const overrides = cloneOverrides(
isRecord(current['overrides'])
? (current['overrides'] as ManagedKimiModelAliasOverrides)
: undefined,
);
return {
...userExtras(current, remoteOwnedFields),
...remote,
...(overrides !== undefined ? { overrides } : {}),
};
}