Evalkeeper
    Preparing search index...

    Type Alias EvalApp

    Everything Evalkeeper's screens need from your app, in one object: your runner, settings, and stores, your models and suites, where the pages live, your answer editors, and the actions their forms submit to. Make it once in your wiring module with defineEvals, and pass it to the screens.

    type EvalApp = {
        actions: EvalActions;
        answerEditors: Partial<Record<string, ComponentType<AnswerEditorProps>>>;
        basePath: string;
        features?: { label: string; operation: string }[];
        feedbackStore: FeedbackStore;
        models: ModelCatalog;
        routeFor: (operation: string) => Promise<Route>;
        runner: Runner;
        settings: VersionedSettings;
        store: EvalStore;
        suites: AnySuite[];
    }
    Index
    actions: EvalActions
    answerEditors: Partial<Record<string, ComponentType<AnswerEditorProps>>>

    Your own editors for answers plain fields edit badly, by suite.

    basePath: string

    Where the eval pages live, as a URL path: "/evals", "/admin/evals".

    features?: { label: string; operation: string }[]

    Every AI feature your app has, by the operation its suites name. The hub lists the ones no suite tests yet. Leave it out to skip that list.

    feedbackStore: FeedbackStore
    models: ModelCatalog

    Your model catalog: labels, providers, prices, and retirements.

    routeFor: (operation: string) => Promise<Route>

    What's live for an operation, as your router sees it.

    runner: Runner
    store: EvalStore
    suites: AnySuite[]