@neuroequality/neuroadapt-ai
Version:
AI-powered accessibility personalization for neurodivergent users
82 lines • 2.18 kB
TypeScript
export interface AIMessage {
role: 'user' | 'assistant' | 'system';
content: string;
timestamp: number;
}
export interface AIResponse {
content: string;
usage?: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
finishReason?: 'stop' | 'length' | 'content_filter' | 'tool_calls';
metadata?: Record<string, unknown>;
}
export interface AIStreamChunk {
delta: string;
done: boolean;
usage?: AIResponse['usage'];
}
export interface AIAdapterConfig {
apiKey?: string;
baseURL?: string;
model?: string;
timeout?: number;
retryAttempts?: number;
retryDelay?: number;
}
export interface AIAdapter {
readonly name: string;
readonly models: string[];
complete(messages: AIMessage[], options?: AICompletionOptions): Promise<AIResponse>;
stream?(messages: AIMessage[], options?: AICompletionOptions): AsyncIterable<AIStreamChunk>;
getModel(): string;
setModel(model: string): void;
isAvailable(): Promise<boolean>;
}
export interface AICompletionOptions {
maxTokens?: number;
temperature?: number;
topP?: number;
stream?: boolean;
stop?: string[];
abortSignal?: AbortSignal;
}
export interface PredictableAIConfig {
tone: 'calm-supportive' | 'encouraging' | 'neutral' | 'clinical' | 'friendly';
explanationLevel: 'simple' | 'moderate' | 'detailed' | 'technical';
pacing: 'slow' | 'normal' | 'quick';
consistencyLevel: 'low' | 'moderate' | 'high';
useAnalogies: boolean;
allowUndo: boolean;
maxUndoSteps: number;
}
export interface UndoState {
step: number;
prompt: string;
response: AIResponse;
timestamp: number;
}
export interface PredictableAIEvents {
'response:start': {
prompt: string;
};
'response:chunk': {
chunk: AIStreamChunk;
};
'response:complete': {
response: AIResponse;
};
'response:error': {
error: Error;
};
'undo:performed': {
step: number;
state: UndoState;
};
'config:changed': {
config: Partial<PredictableAIConfig>;
};
}
//# sourceMappingURL=index.d.ts.map