Interface IOptimizerSource<Data>

Data source configuration with custom message formatters. Defines how to fetch data and format it for LLM conversation.

interface IOptimizerSource<Data extends IOptimizerData = any> {
    assistant?: (
        symbol: string,
        data: Data[],
        name: string,
    ) => string | Promise<string>;
    fetch: IOptimizerSourceFn<Data>;
    name: string;
    note?: string;
    user?: (
        symbol: string,
        data: Data[],
        name: string,
    ) => string | Promise<string>;
}

Type Parameters

Properties

assistant?: (
    symbol: string,
    data: Data[],
    name: string,
) => string | Promise<string>

Optional custom formatter for assistant messages. If not provided, uses default template from OptimizerTemplateService.

Type declaration

    • (symbol: string, data: Data[], name: string): string | Promise<string>
    • Parameters

      • symbol: string

        Trading pair symbol

      • data: Data[]

        Fetched data array

      • name: string

        Source name

      Returns string | Promise<string>

      Formatted assistant message content

fetch: IOptimizerSourceFn<Data>

Function to fetch data from this source. Must support pagination via limit/offset.

name: string

Unique name identifying this data source. Used in callbacks and logging.

note?: string

Optional description of this data source. Example: "Historical backtest results for training"

user?: (symbol: string, data: Data[], name: string) => string | Promise<string>

Optional custom formatter for user messages. If not provided, uses default template from OptimizerTemplateService.

Type declaration

    • (symbol: string, data: Data[], name: string): string | Promise<string>
    • Parameters

      • symbol: string

        Trading pair symbol

      • data: Data[]

        Fetched data array

      • name: string

        Source name

      Returns string | Promise<string>

      Formatted user message content