Skip to main content

@stewmore/expo-ai-core

The pure-TypeScript heart of the runtime. It owns the public ExpoAI API, the ExpoAIAdapter contract, the provider router, the capability registry, sessions, structured-output validation/repair, privacy, and normalized errors. It has no React Native or native imports, so it unit-tests in Node.

npm install @stewmore/expo-ai-core

The ExpoAI API

export namespace ExpoAI {
export function getAvailability(): Promise<ExpoAIAvailability>;
export function getCapabilities(): Promise<ExpoAICapabilities>;
export function listProviders(): Promise<ExpoAIProviderInfo[]>;

export function generate(options: GenerateOptions): Promise<GenerateResult>;
export function stream(options: GenerateOptions): AsyncIterable<GenerateChunk>;

export function createSession(options?: CreateSessionOptions): Promise<ExpoAISession>;
export function generateObject<T>(options: GenerateObjectOptions): Promise<T>;

export function summarize(options: SummarizeOptions): Promise<GenerateResult>;
export function rewrite(options: RewriteOptions): Promise<GenerateResult>;
export function proofread(options: ProofreadOptions): Promise<GenerateResult>;
}

The native adapters are registered against the core registry by importing their package (a side-effect import). The core itself never depends on a native module.