File size: 1,120 Bytes
68d7816 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | export interface ModelCapability {
readonly image_in: boolean;
readonly video_in: boolean;
readonly audio_in: boolean;
readonly thinking: boolean;
readonly tool_use: boolean;
readonly dynamically_loaded_tools?: boolean;
}
const UNKNOWN_CAPABILITY_MARKER = Symbol.for('moonshot-ai.kosong.UNKNOWN_CAPABILITY');
export const UNKNOWN_CAPABILITY: ModelCapability = Object.freeze(
Object.defineProperty(
{
image_in: false,
video_in: false,
audio_in: false,
thinking: false,
tool_use: false,
dynamically_loaded_tools: false,
},
UNKNOWN_CAPABILITY_MARKER,
{ value: true },
),
);
export function isUnknownCapability(capability: ModelCapability): boolean {
if (capability === UNKNOWN_CAPABILITY) return true;
const marked =
(capability as unknown as Record<PropertyKey, unknown>)[UNKNOWN_CAPABILITY_MARKER] === true;
if (marked) return true;
return (
!capability.image_in &&
!capability.video_in &&
!capability.audio_in &&
!capability.thinking &&
!capability.tool_use &&
capability.dynamically_loaded_tools !== true
);
}
|