utilitai
Version:
Utility AI library built with TypeScript
32 lines (25 loc) • 803 B
TypeScript
export interface Action {
name: string | number;
parameters?: Record<string, any>;
}
export interface Appraisal {
evaluate: AppraisalFunction;
computeCurve?: CurveFunction
}
export interface Consideration {
action: Action;
bonusFactor: number;
weight: number;
appraisals: Appraisal[];
scoringMethod: ScoringFunction;
parameters?: Record<string, any>;
}
export interface Reasoner {
considerations: Consideration[];
evaluate: (context: Context) => Action;
}
export type Context = Record<string, any>;
// we may want to have additional (and optional) appraisal params
export type AppraisalFunction = (context: Context) => number;
export type ScoringFunction = (scores: number[]) => number;
export type CurveFunction = (score: number) => number;