Skip to content

Type Alias: AIAdapterCapabilities

Makaio Framework


Makaio Framework / ai-adapters-core / AIAdapterCapabilities

AIAdapterCapabilities = GeneratedCapabilityProperties & object

Defined in: ../../../adapters/core/src/types/capabilities.ts:107

Runtime-queryable capabilities object returned by AI adapters.

Auto-generates boolean properties from AIAdapterCapabilityRegistry:

  • 'systemPrompt'caps.systemPrompt
  • 'systemPrompt:override'caps.systemPromptOverride
  • 'session:fork'caps.sessionFork

hasAll(capabilities): boolean

Check if ALL specified capabilities are present (AND logic)

("systemPrompt" | "vision" | "structuredOutput" | "streaming" | "session" | "tools" | "chat" | "modelSwitchInSession" | "systemPrompt:override" | "systemPrompt:append" | "session:fork" | "session:resume" | "chat:inTurnMessages")[]

boolean

hasAny(capabilities): boolean

Check if ANY of the specified capabilities are present (OR logic)

("systemPrompt" | "vision" | "structuredOutput" | "streaming" | "session" | "tools" | "chat" | "modelSwitchInSession" | "systemPrompt:override" | "systemPrompt:append" | "session:fork" | "session:resume" | "chat:inTurnMessages")[]

boolean

Capabilities are optional and declarative:

  • Adapters declare only what their underlying service supports
  • Platform checks capabilities before using optional features
  • No “not implemented” exceptions
  • Plugin-extendable via declaration merging
const caps = adapter.getCapabilities();
// Single checks (most common)
if (caps.vision) { ... }
if (caps.tools && caps.vision) { ... }
// Batch checks (explicit AND/OR)
if (caps.hasAll(['vision', 'tools'])) { ... }
if (caps.hasAny(['session:resume', 'session:fork'])) { ... }
  • AIAdapterCapabilities

    • `GeneratedCapabilityProperties & { /** Check if ALL specified capabilities are present (AND logic) */ hasAll(capabilities: ValidCapability[]): boolean;

    /** Check if ANY of the specified capabilities are present (OR logic) */ hasAny(capabilities: ValidCapability[]): boolean; }`

    • GeneratedCapabilityProperties
      • { [P in ValidCapability as PathToPropertyName<P>]?: boolean; }
    • `{ /** Check if ALL specified capabilities are present (AND logic) */ hasAll(capabilities: ValidCapability[]): boolean;

    /** Check if ANY of the specified capabilities are present (OR logic) */ hasAny(capabilities: ValidCapability[]): boolean; }`

type AIAdapterCapabilities = {
vision?: boolean | undefined;
structuredOutput?: boolean | undefined;
streaming?: boolean | undefined;
systemPrompt?: boolean | undefined;
session?: boolean | undefined;
chat?: boolean | undefined;
modelSwitchInSession?: boolean | undefined;
tools?: boolean | undefined;
systemPromptOverride?: boolean | undefined;
systemPromptAppend?: boolean | undefined;
sessionResume?: boolean | undefined;
sessionFork?: boolean | undefined;
chatInTurnMessages?: boolean | undefined;
hasAll: (capabilities: ValidCapability[]) => boolean;
hasAny: (capabilities: ValidCapability[]) => boolean;
};