This commit is contained in:
lovebird 2025-04-06 16:22:39 +02:00
parent daae0dcd4a
commit 409eed4212
15 changed files with 1425 additions and 378 deletions

View File

@ -41,8 +41,11 @@ export const runCompletion = async (client, params, options) => {
messages: params.messages,
response_format: options.format,
});
if (!completion || !completion.choices || !completion.choices[0] || !completion.choices[0].message || !completion.choices[0].message.content) {
return '';
}
let result = completion.choices[0].message.content;
result = await onCompletion(result, options);
return result;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsU0FBYyxFQUFFLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEdBQUc7WUFDTCxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtZQUNyQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDeEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUMsQ0FBQTtRQUNILE1BQU0sT0FBTyxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQVcsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JCLGtCQUFrQjtJQUNsQixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLE1BQVcsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDckYsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNsRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCwyQ0FBMkM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFBO0lBQ2xELE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDNUMsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUEifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsU0FBYyxFQUFFLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEdBQUc7WUFDTCxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtZQUNyQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDeEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUMsQ0FBQTtRQUNILE1BQU0sT0FBTyxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQVcsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JCLGtCQUFrQjtJQUNsQixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLE1BQVcsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDckYsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNsRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCwyQ0FBMkM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3SSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9

View File

@ -1,3 +1,48 @@
import { ChatCompletionToolRunnerParams } from 'openai/lib/ChatCompletionRunner';
import { ChatCompletionMessageParam } from 'openai/resources/index.mjs';
import { IKBotTask } from '@polymech/ai-tools';
export declare const processRun: (opts: IKBotTask) => Promise<any>;
export declare const run: (opts: IKBotTask) => Promise<any[]>;
type ProcessRunResult = string | boolean | Record<string, unknown> | null;
/**
* Complete options by setting up defaults, validating inputs, and initializing required components
*
* @param opts - The initial task options
* @returns - The fully configured options object or null if validation fails
*/
export declare const complete_options: (opts: IKBotTask) => Promise<IKBotTask | null>;
/**
* Gather all messages from various sources for the task
*
* @param opts - The task options
* @param options - The completed options
* @returns - Array of messages and source files
*/
export declare const complete_messages: (opts: IKBotTask, options: IKBotTask) => Promise<{
messages: Array<ChatCompletionMessageParam>;
files: any[];
}>;
/**
* Create and configure the parameters for the request
*
* @param options - The completed options
* @param messages - The gathered messages
* @returns - The configured parameters for the API request
*/
export declare const complete_params: (options: IKBotTask, messages: Array<ChatCompletionMessageParam>) => Promise<ChatCompletionToolRunnerParams<any>>;
/**
* Execute the request based on the mode and return the result
*
* @param options - The completed options
* @param client - The API client
* @param params - The request parameters
* @returns - The result of the execution
*/
export declare const execute_request: (options: IKBotTask, client: any, params: ChatCompletionToolRunnerParams<any>) => Promise<ProcessRunResult>;
/**
* Process a task with the configured options and return the result
*
* @param opts - The task options
* @returns - The result of the task execution
*/
export declare const processRun: (opts: IKBotTask) => Promise<ProcessRunResult>;
export declare const run: (opts: IKBotTask) => Promise<ProcessRunResult[]>;
export {};

File diff suppressed because one or more lines are too long

View File

@ -4,12 +4,8 @@ export declare enum E_OPENAI_MODEL {
MODEL_DALL_E_3 = "dall-e-3",
MODEL_DALL_E_2 = "dall-e-2",
MODEL_GPT_4O_AUDIO_PREVIEW_2024_10_01 = "gpt-4o-audio-preview-2024-10-01",
MODEL_O1_PRO_2025_03_19 = "o1-pro-2025-03-19",
MODEL_O1_PRO = "o1-pro",
MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01 = "gpt-4o-realtime-preview-2024-10-01",
MODEL_O1_2024_12_17 = "o1-2024-12-17",
MODEL_GPT_4O_TRANSCRIBE = "gpt-4o-transcribe",
MODEL_O1 = "o1",
MODEL_GPT_4O_MINI_TRANSCRIBE = "gpt-4o-mini-transcribe",
MODEL_GPT_4O_REALTIME_PREVIEW = "gpt-4o-realtime-preview",
MODEL_BABBAGE_002 = "babbage-002",
@ -27,6 +23,8 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = "gpt-4o-mini-realtime-preview-2024-12-17",
MODEL_GPT_3_5_TURBO_INSTRUCT_0914 = "gpt-3.5-turbo-instruct-0914",
MODEL_GPT_4O_MINI_SEARCH_PREVIEW = "gpt-4o-mini-search-preview",
MODEL_GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview",
MODEL_GPT_4_0125_PREVIEW = "gpt-4-0125-preview",
MODEL_TTS_1_1106 = "tts-1-1106",
MODEL_DAVINCI_002 = "davinci-002",
MODEL_GPT_3_5_TURBO_1106 = "gpt-3.5-turbo-1106",
@ -45,11 +43,15 @@ export declare enum E_OPENAI_MODEL {
MODEL_O1_PREVIEW = "o1-preview",
MODEL_GPT_4_0613 = "gpt-4-0613",
MODEL_GPT_4O_SEARCH_PREVIEW = "gpt-4o-search-preview",
MODEL_O3_MINI_2025_01_31 = "o3-mini-2025-01-31",
MODEL_O3_MINI = "o3-mini",
MODEL_O1_2024_12_17 = "o1-2024-12-17",
MODEL_O1_PRO = "o1-pro",
MODEL_O1 = "o1",
MODEL_O1_PRO_2025_03_19 = "o1-pro-2025-03-19",
MODEL_GPT_4_5_PREVIEW = "gpt-4.5-preview",
MODEL_GPT_4_5_PREVIEW_2025_02_27 = "gpt-4.5-preview-2025-02-27",
MODEL_GPT_4O_SEARCH_PREVIEW_2025_03_11 = "gpt-4o-search-preview-2025-03-11",
MODEL_O3_MINI = "o3-mini",
MODEL_O3_MINI_2025_01_31 = "o3-mini-2025-01-31",
MODEL_TTS_1 = "tts-1",
MODEL_OMNI_MODERATION_2024_09_26 = "omni-moderation-2024-09-26",
MODEL_TEXT_EMBEDDING_3_SMALL = "text-embedding-3-small",
@ -59,7 +61,5 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_4O_MINI_2024_07_18 = "gpt-4o-mini-2024-07-18",
MODEL_O1_MINI = "o1-mini",
MODEL_GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = "gpt-4o-mini-audio-preview-2024-12-17",
MODEL_O1_MINI_2024_09_12 = "o1-mini-2024-09-12",
MODEL_GPT_4_0125_PREVIEW = "gpt-4-0125-preview",
MODEL_GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview"
MODEL_O1_MINI_2024_09_12 = "o1-mini-2024-09-12"
}

View File

@ -5,12 +5,8 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_DALL_E_3"] = "dall-e-3";
E_OPENAI_MODEL["MODEL_DALL_E_2"] = "dall-e-2";
E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2024_10_01"] = "gpt-4o-audio-preview-2024-10-01";
E_OPENAI_MODEL["MODEL_O1_PRO_2025_03_19"] = "o1-pro-2025-03-19";
E_OPENAI_MODEL["MODEL_O1_PRO"] = "o1-pro";
E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01"] = "gpt-4o-realtime-preview-2024-10-01";
E_OPENAI_MODEL["MODEL_O1_2024_12_17"] = "o1-2024-12-17";
E_OPENAI_MODEL["MODEL_GPT_4O_TRANSCRIBE"] = "gpt-4o-transcribe";
E_OPENAI_MODEL["MODEL_O1"] = "o1";
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_TRANSCRIBE"] = "gpt-4o-mini-transcribe";
E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW"] = "gpt-4o-realtime-preview";
E_OPENAI_MODEL["MODEL_BABBAGE_002"] = "babbage-002";
@ -28,6 +24,8 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17"] = "gpt-4o-mini-realtime-preview-2024-12-17";
E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_INSTRUCT_0914"] = "gpt-3.5-turbo-instruct-0914";
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_SEARCH_PREVIEW"] = "gpt-4o-mini-search-preview";
E_OPENAI_MODEL["MODEL_GPT_4_TURBO_PREVIEW"] = "gpt-4-turbo-preview";
E_OPENAI_MODEL["MODEL_GPT_4_0125_PREVIEW"] = "gpt-4-0125-preview";
E_OPENAI_MODEL["MODEL_TTS_1_1106"] = "tts-1-1106";
E_OPENAI_MODEL["MODEL_DAVINCI_002"] = "davinci-002";
E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_1106"] = "gpt-3.5-turbo-1106";
@ -46,11 +44,15 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_O1_PREVIEW"] = "o1-preview";
E_OPENAI_MODEL["MODEL_GPT_4_0613"] = "gpt-4-0613";
E_OPENAI_MODEL["MODEL_GPT_4O_SEARCH_PREVIEW"] = "gpt-4o-search-preview";
E_OPENAI_MODEL["MODEL_O3_MINI_2025_01_31"] = "o3-mini-2025-01-31";
E_OPENAI_MODEL["MODEL_O3_MINI"] = "o3-mini";
E_OPENAI_MODEL["MODEL_O1_2024_12_17"] = "o1-2024-12-17";
E_OPENAI_MODEL["MODEL_O1_PRO"] = "o1-pro";
E_OPENAI_MODEL["MODEL_O1"] = "o1";
E_OPENAI_MODEL["MODEL_O1_PRO_2025_03_19"] = "o1-pro-2025-03-19";
E_OPENAI_MODEL["MODEL_GPT_4_5_PREVIEW"] = "gpt-4.5-preview";
E_OPENAI_MODEL["MODEL_GPT_4_5_PREVIEW_2025_02_27"] = "gpt-4.5-preview-2025-02-27";
E_OPENAI_MODEL["MODEL_GPT_4O_SEARCH_PREVIEW_2025_03_11"] = "gpt-4o-search-preview-2025-03-11";
E_OPENAI_MODEL["MODEL_O3_MINI"] = "o3-mini";
E_OPENAI_MODEL["MODEL_O3_MINI_2025_01_31"] = "o3-mini-2025-01-31";
E_OPENAI_MODEL["MODEL_TTS_1"] = "tts-1";
E_OPENAI_MODEL["MODEL_OMNI_MODERATION_2024_09_26"] = "omni-moderation-2024-09-26";
E_OPENAI_MODEL["MODEL_TEXT_EMBEDDING_3_SMALL"] = "text-embedding-3-small";
@ -61,7 +63,5 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_O1_MINI"] = "o1-mini";
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17"] = "gpt-4o-mini-audio-preview-2024-12-17";
E_OPENAI_MODEL["MODEL_O1_MINI_2024_09_12"] = "o1-mini-2024-09-12";
E_OPENAI_MODEL["MODEL_GPT_4_0125_PREVIEW"] = "gpt-4-0125-preview";
E_OPENAI_MODEL["MODEL_GPT_4_TURBO_PREVIEW"] = "gpt-4-turbo-preview";
})(E_OPENAI_MODEL || (E_OPENAI_MODEL = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQWdFWDtBQWhFRCxXQUFZLGNBQWM7SUFDeEIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsMkZBQXlFLENBQUE7SUFDekUsK0RBQTZDLENBQUE7SUFDN0MseUNBQXVCLENBQUE7SUFDdkIsaUdBQStFLENBQUE7SUFDL0UsdURBQXFDLENBQUE7SUFDckMsK0RBQTZDLENBQUE7SUFDN0MsaUNBQWUsQ0FBQTtJQUNmLHlFQUF1RCxDQUFBO0lBQ3ZELDJFQUF5RCxDQUFBO0lBQ3pELG1EQUFpQyxDQUFBO0lBQ2pDLDJEQUF5QyxDQUFBO0lBQ3pDLHVEQUFxQyxDQUFBO0lBQ3JDLHlFQUF1RCxDQUFBO0lBQ3ZELHVDQUFxQixDQUFBO0lBQ3JCLHlFQUF1RCxDQUFBO0lBQ3ZELHlFQUF1RCxDQUFBO0lBQ3ZELDZDQUEyQixDQUFBO0lBQzNCLCtFQUE2RCxDQUFBO0lBQzdELHFFQUFtRCxDQUFBO0lBQ25ELHVFQUFxRCxDQUFBO0lBQ3JELHFGQUFtRSxDQUFBO0lBQ25FLDJHQUF5RixDQUFBO0lBQ3pGLG1GQUFpRSxDQUFBO0lBQ2pFLGlGQUErRCxDQUFBO0lBQy9ELGlEQUErQixDQUFBO0lBQy9CLG1EQUFpQyxDQUFBO0lBQ2pDLGlFQUErQyxDQUFBO0lBQy9DLG1EQUFpQyxDQUFBO0lBQ2pDLHlFQUF1RCxDQUFBO0lBQ3ZELHVEQUFxQyxDQUFBO0lBQ3JDLCtEQUE2QyxDQUFBO0lBQzdDLHVHQUFxRixDQUFBO0lBQ3JGLCtEQUE2QyxDQUFBO0lBQzdDLCtDQUE2QixDQUFBO0lBQzdCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELGlFQUErQyxDQUFBO0lBQy9DLGlEQUErQixDQUFBO0lBQy9CLGlEQUErQixDQUFBO0lBQy9CLHVFQUFxRCxDQUFBO0lBQ3JELGlFQUErQyxDQUFBO0lBQy9DLDJDQUF5QixDQUFBO0lBQ3pCLDJEQUF5QyxDQUFBO0lBQ3pDLGlGQUErRCxDQUFBO0lBQy9ELDZGQUEyRSxDQUFBO0lBQzNFLHVDQUFxQixDQUFBO0lBQ3JCLGlGQUErRCxDQUFBO0lBQy9ELHlFQUF1RCxDQUFBO0lBQ3ZELHlDQUF1QixDQUFBO0lBQ3ZCLG1EQUFpQyxDQUFBO0lBQ2pDLCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELDJDQUF5QixDQUFBO0lBQ3pCLHFHQUFtRixDQUFBO0lBQ25GLGlFQUErQyxDQUFBO0lBQy9DLGlFQUErQyxDQUFBO0lBQy9DLG1FQUFpRCxDQUFBO0FBQ25ELENBQUMsRUFoRVcsY0FBYyxLQUFkLGNBQWMsUUFnRXpCIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQWdFWDtBQWhFRCxXQUFZLGNBQWM7SUFDeEIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsMkZBQXlFLENBQUE7SUFDekUsaUdBQStFLENBQUE7SUFDL0UsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsMkVBQXlELENBQUE7SUFDekQsbURBQWlDLENBQUE7SUFDakMsMkRBQXlDLENBQUE7SUFDekMsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQsdUNBQXFCLENBQUE7SUFDckIseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsNkNBQTJCLENBQUE7SUFDM0IsK0VBQTZELENBQUE7SUFDN0QscUVBQW1ELENBQUE7SUFDbkQsdUVBQXFELENBQUE7SUFDckQscUZBQW1FLENBQUE7SUFDbkUsMkdBQXlGLENBQUE7SUFDekYsbUZBQWlFLENBQUE7SUFDakUsaUZBQStELENBQUE7SUFDL0QsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsaURBQStCLENBQUE7SUFDL0IsbURBQWlDLENBQUE7SUFDakMsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsdURBQXFDLENBQUE7SUFDckMsK0RBQTZDLENBQUE7SUFDN0MsdUdBQXFGLENBQUE7SUFDckYsK0RBQTZDLENBQUE7SUFDN0MsK0NBQTZCLENBQUE7SUFDN0IsaUVBQStDLENBQUE7SUFDL0MsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsaURBQStCLENBQUE7SUFDL0IsaURBQStCLENBQUE7SUFDL0IsdUVBQXFELENBQUE7SUFDckQsdURBQXFDLENBQUE7SUFDckMseUNBQXVCLENBQUE7SUFDdkIsaUNBQWUsQ0FBQTtJQUNmLCtEQUE2QyxDQUFBO0lBQzdDLDJEQUF5QyxDQUFBO0lBQ3pDLGlGQUErRCxDQUFBO0lBQy9ELDZGQUEyRSxDQUFBO0lBQzNFLDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLHVDQUFxQixDQUFBO0lBQ3JCLGlGQUErRCxDQUFBO0lBQy9ELHlFQUF1RCxDQUFBO0lBQ3ZELHlDQUF1QixDQUFBO0lBQ3ZCLG1EQUFpQyxDQUFBO0lBQ2pDLCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELDJDQUF5QixDQUFBO0lBQ3pCLHFHQUFtRixDQUFBO0lBQ25GLGlFQUErQyxDQUFBO0FBQ2pELENBQUMsRUFoRVcsY0FBYyxLQUFkLGNBQWMsUUFnRXpCIn0=

View File

@ -1,4 +1,6 @@
export declare enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_META_LLAMA_LLAMA_4_MAVERICK_FREE = "meta-llama/llama-4-maverick:free",
MODEL_FREE_META_LLAMA_LLAMA_4_SCOUT_FREE = "meta-llama/llama-4-scout:free",
MODEL_FREE_OPENROUTER_QUASAR_ALPHA = "openrouter/quasar-alpha",
MODEL_FREE_DEEPSEEK_DEEPSEEK_V3_BASE_FREE = "deepseek/deepseek-v3-base:free",
MODEL_FREE_ALLENAI_MOLMO_7B_D_FREE = "allenai/molmo-7b-d:free",
@ -38,6 +40,7 @@ export declare enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_QWEN_QWQ_32B_PREVIEW_FREE = "qwen/qwq-32b-preview:free",
MODEL_FREE_GOOGLE_LEARNLM_1_5_PRO_EXPERIMENTAL_FREE = "google/learnlm-1.5-pro-experimental:free",
MODEL_FREE_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE = "qwen/qwen-2.5-coder-32b-instruct:free",
MODEL_FREE_QWEN_QWEN_2_5_7B_INSTRUCT_FREE = "qwen/qwen-2.5-7b-instruct:free",
MODEL_FREE_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT_FREE = "nvidia/llama-3.1-nemotron-70b-instruct:free",
MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free",
MODEL_FREE_META_LLAMA_LLAMA_3_2_1B_INSTRUCT_FREE = "meta-llama/llama-3.2-1b-instruct:free",

View File

@ -1,5 +1,7 @@
export var E_OPENROUTER_MODEL_FREE;
(function (E_OPENROUTER_MODEL_FREE) {
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_4_MAVERICK_FREE"] = "meta-llama/llama-4-maverick:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_4_SCOUT_FREE"] = "meta-llama/llama-4-scout:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENROUTER_QUASAR_ALPHA"] = "openrouter/quasar-alpha";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_V3_BASE_FREE"] = "deepseek/deepseek-v3-base:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_ALLENAI_MOLMO_7B_D_FREE"] = "allenai/molmo-7b-d:free";
@ -39,6 +41,7 @@ export var E_OPENROUTER_MODEL_FREE;
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWQ_32B_PREVIEW_FREE"] = "qwen/qwq-32b-preview:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_LEARNLM_1_5_PRO_EXPERIMENTAL_FREE"] = "google/learnlm-1.5-pro-experimental:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE"] = "qwen/qwen-2.5-coder-32b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_7B_INSTRUCT_FREE"] = "qwen/qwen-2.5-7b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT_FREE"] = "nvidia/llama-3.1-nemotron-70b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-3b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_2_1B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-1b-instruct:free";
@ -56,4 +59,4 @@ export var E_OPENROUTER_MODEL_FREE;
E_OPENROUTER_MODEL_FREE["MODEL_FREE_UNDI95_TOPPY_M_7B_FREE"] = "undi95/toppy-m-7b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_HUGGINGFACEH4_ZEPHYR_7B_BETA_FREE"] = "huggingfaceh4/zephyr-7b-beta:free";
})(E_OPENROUTER_MODEL_FREE || (E_OPENROUTER_MODEL_FREE = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkF3RFg7QUF4REQsV0FBWSx1QkFBdUI7SUFDakMseUZBQThELENBQUE7SUFDOUQsdUdBQTRFLENBQUE7SUFDNUUseUZBQThELENBQUE7SUFDOUQsaUhBQXNGLENBQUE7SUFDdEYsMkdBQWdGLENBQUE7SUFDaEYsbUhBQXdGLENBQUE7SUFDeEYsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUscUdBQTBFLENBQUE7SUFDMUUsNkZBQWtFLENBQUE7SUFDbEUsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsdUdBQTRFLENBQUE7SUFDNUUsNkVBQWtELENBQUE7SUFDbEQsK0hBQW9HLENBQUE7SUFDcEcsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsbUhBQXdGLENBQUE7SUFDeEYsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkhBQWtHLENBQUE7SUFDbEcsNkZBQWtFLENBQUE7SUFDbEUsNkhBQWtHLENBQUE7SUFDbEcsaUdBQXNFLENBQUE7SUFDdEUsdUlBQTRHLENBQUE7SUFDNUcsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYsNkZBQWtFLENBQUE7SUFDbEUsMkhBQWdHLENBQUE7SUFDaEcscUhBQTBGLENBQUE7SUFDMUYsaUlBQXNHLENBQUE7SUFDdEcscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsdUdBQTRFLENBQUE7SUFDNUUscUhBQTBGLENBQUE7SUFDMUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7SUFDcEYseUhBQThGLENBQUE7SUFDOUYsNkhBQWtHLENBQUE7SUFDbEcsNkZBQWtFLENBQUE7SUFDbEUsdUZBQTRELENBQUE7SUFDNUQsNkdBQWtGLENBQUE7QUFDcEYsQ0FBQyxFQXhEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBd0RsQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkEyRFg7QUEzREQsV0FBWSx1QkFBdUI7SUFDakMsMkdBQWdGLENBQUE7SUFDaEYscUdBQTBFLENBQUE7SUFDMUUseUZBQThELENBQUE7SUFDOUQsdUdBQTRFLENBQUE7SUFDNUUseUZBQThELENBQUE7SUFDOUQsaUhBQXNGLENBQUE7SUFDdEYsMkdBQWdGLENBQUE7SUFDaEYsbUhBQXdGLENBQUE7SUFDeEYsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUscUdBQTBFLENBQUE7SUFDMUUsNkZBQWtFLENBQUE7SUFDbEUsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsdUdBQTRFLENBQUE7SUFDNUUsNkVBQWtELENBQUE7SUFDbEQsK0hBQW9HLENBQUE7SUFDcEcsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsbUhBQXdGLENBQUE7SUFDeEYsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkhBQWtHLENBQUE7SUFDbEcsNkZBQWtFLENBQUE7SUFDbEUsNkhBQWtHLENBQUE7SUFDbEcsaUdBQXNFLENBQUE7SUFDdEUsdUlBQTRHLENBQUE7SUFDNUcsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYsNkZBQWtFLENBQUE7SUFDbEUsMkhBQWdHLENBQUE7SUFDaEcscUhBQTBGLENBQUE7SUFDMUYsdUdBQTRFLENBQUE7SUFDNUUsaUlBQXNHLENBQUE7SUFDdEcscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsdUdBQTRFLENBQUE7SUFDNUUscUhBQTBGLENBQUE7SUFDMUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7SUFDcEYseUhBQThGLENBQUE7SUFDOUYsNkhBQWtHLENBQUE7SUFDbEcsNkZBQWtFLENBQUE7SUFDbEUsdUZBQTRELENBQUE7SUFDNUQsNkdBQWtGLENBQUE7QUFDcEYsQ0FBQyxFQTNEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBMkRsQyJ9

View File

@ -1,4 +1,9 @@
export declare enum E_OPENROUTER_MODEL {
MODEL_META_LLAMA_LLAMA_4_MAVERICK_FREE = "meta-llama/llama-4-maverick:free",
MODEL_META_LLAMA_LLAMA_4_MAVERICK = "meta-llama/llama-4-maverick",
MODEL_META_LLAMA_LLAMA_4_SCOUT_FREE = "meta-llama/llama-4-scout:free",
MODEL_META_LLAMA_LLAMA_4_SCOUT = "meta-llama/llama-4-scout",
MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_03_25 = "google/gemini-2.5-pro-preview-03-25",
MODEL_OPENROUTER_QUASAR_ALPHA = "openrouter/quasar-alpha",
MODEL_ALL_HANDS_OPENHANDS_LM_32B_V0_1 = "all-hands/openhands-lm-32b-v0.1",
MODEL_MISTRAL_MINISTRAL_8B = "mistral/ministral-8b",
@ -10,6 +15,7 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_QWEN_QWEN2_5_VL_3B_INSTRUCT_FREE = "qwen/qwen2.5-vl-3b-instruct:free",
MODEL_GOOGLE_GEMINI_2_5_PRO_EXP_03_25_FREE = "google/gemini-2.5-pro-exp-03-25:free",
MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE = "qwen/qwen2.5-vl-32b-instruct:free",
MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT = "qwen/qwen2.5-vl-32b-instruct",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_0324_FREE = "deepseek/deepseek-chat-v3-0324:free",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = "deepseek/deepseek-chat-v3-0324",
MODEL_FEATHERLESS_QWERKY_72B_FREE = "featherless/qwerky-72b:free",
@ -134,6 +140,7 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_X_AI_GROK_BETA = "x-ai/grok-beta",
MODEL_MISTRALAI_MINISTRAL_8B = "mistralai/ministral-8b",
MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b",
MODEL_QWEN_QWEN_2_5_7B_INSTRUCT_FREE = "qwen/qwen-2.5-7b-instruct:free",
MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT_FREE = "nvidia/llama-3.1-nemotron-70b-instruct:free",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct",

File diff suppressed because one or more lines are too long

View File

@ -1,207 +1,14 @@
{
"model": "openai/gpt-4o",
"model": "openrouter/quasar-alpha",
"messages": [
{
"role": "user",
"content": "List all files in the directory C:\\Users\\zx\\Desktop\\polymech\\polymech-mono\\packages\\kbot\\tests\\unit\\test-data. Return the list as a JSON array of filenames."
"content": "divide 15 by 3. Return only the number, no explanation."
},
{
"role": "user",
"content": "USER Preferences : # Preferences\r\n\r\nYou are a helpful AI assistant. When asked to perform calculations, you should return only the numerical result without any explanation or comments. "
}
],
"tools": [
{
"type": "function",
"function": {
"name": "list_files",
"description": "List all files in a directory",
"parameters": {
"type": "object",
"properties": {
"directory": {
"type": "string"
},
"pattern": {
"type": "string",
"optional": true
}
},
"required": [
"directory"
]
}
}
},
{
"type": "function",
"function": {
"name": "read_files",
"description": "Reads files in a directory with a given pattern",
"parameters": {
"type": "object",
"properties": {
"directory": {
"type": "string"
},
"pattern": {
"type": "string",
"optional": true
}
},
"required": [
"directory"
]
}
}
},
{
"type": "function",
"function": {
"name": "remove_file",
"description": "Remove a file at given path",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
]
}
}
},
{
"type": "function",
"function": {
"name": "rename_file",
"description": "Rename or move a file or directory",
"parameters": {
"type": "object",
"properties": {
"src": {
"type": "string"
},
"dst": {
"type": "string"
}
},
"required": [
"path"
]
}
}
},
{
"type": "function",
"function": {
"name": "modify_project_files",
"description": "Create or modify existing project files in one shot, preferably used for creating project structure)",
"parameters": {
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"content": {
"type": "string",
"description": "base64 encoded string"
}
},
"required": [
"path",
"content"
]
}
}
},
"required": [
"files"
]
}
}
},
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes to a file, given a path and content (base64). No directory or file exists check needed!",
"parameters": {
"type": "object",
"properties": {
"file": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"content": {
"type": "string",
"description": "base64 encoded string"
}
}
}
},
"required": [
"file"
]
}
}
},
{
"type": "function",
"function": {
"name": "file_exists",
"description": "check if a file or folder exists",
"parameters": {
"type": "object",
"properties": {
"file": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
}
}
},
"required": [
"file"
]
}
}
},
{
"type": "function",
"function": {
"name": "read_file",
"description": "read a file, at given a path",
"parameters": {
"type": "object",
"properties": {
"file": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
}
}
},
"required": [
"file"
]
}
}
}
],
"tool_choice": "auto",
"parallel_tool_calls": false
"tools": []
}

View File

@ -45,6 +45,9 @@ export const runCompletion = async (client: OpenAI, params: any, options: IKBotT
messages: params.messages,
response_format: options.format as any,
})
if (!completion || !completion.choices || !completion.choices[0] || !completion.choices[0].message || !completion.choices[0].message.content) {
return ''
}
let result = completion.choices[0].message.content
result = await onCompletion(result, options)
return result

View File

@ -28,51 +28,92 @@ import { runAssistant } from './run-assistant.js'
import { all } from '../models/index.js'
import { getLogger } from '../index.js'
export const processRun = async (opts: IKBotTask) => {
let options: IKBotTask = null
const logger = getLogger(opts)
opts.logger = logger
const target = path.resolve(opts.output || opts.path)
type ProcessRunResult = string | boolean | Record<string, unknown> | null;
/**
* Complete options by setting up defaults, validating inputs, and initializing required components
*
* @param opts - The initial task options
* @returns - The fully configured options object or null if validation fails
*/
export const complete_options = async (opts: IKBotTask): Promise<IKBotTask | null> => {
opts.logger = getLogger(opts)
const target = path.resolve(opts.output || opts.path || '.')
if (!exists(target)) {
dir(target)
}
opts.disable = flatten(opts.disable)
opts.disableTools = flatten(opts.disableTools)
opts.include = flatten(opts.include)
opts.variables = await loadProfile(opts)
try {
options = OptionsSchema().parse(opts) as any
const parsed = OptionsSchema().parse(opts);
const options = parsed as IKBotTask;
const client = createClient(options)
if (!client) {
opts.logger.error('Failed to create client')
return null
}
options.client = client
options.variables = { ...options.variables, ...variables(options) }
options.collector = collector(options, client)
options.onRun = options.onRun || (async (options) => options)
return options
} catch (error) {
logger.error('Failed to parse options:', error.message, error.issues)
return
opts.logger.error('Failed to parse options:', error.message, error.issues)
return null
}
}
const client = createClient(options)
options.variables = { ...options.variables, ...variables(options) }
if (!client) {
logger.error('Failed to create client')
return
}
options.client = client
options.collector = collector(options, client)
options.onRun = options.onRun || (async (options) => options)
/**
* Gather all messages from various sources for the task
*
* @param opts - The task options
* @param options - The completed options
* @returns - Array of messages and source files
*/
export const complete_messages = async (
opts: IKBotTask,
options: IKBotTask
): Promise<{
messages: Array<ChatCompletionMessageParam>,
files: any[]
}> => {
let messages: Array<ChatCompletionMessageParam> = []
const promptMessage = await prompt(opts)
if(!promptMessage.content){
return ""
if (!promptMessage?.content) {
return { messages: [], files: [] }
}
messages.push(promptMessage)
messages.push(await preferences(opts))
messages.push(promptMessage as ChatCompletionMessageParam)
messages.push((await preferences(opts)) as ChatCompletionMessageParam)
let files = await get(path.resolve(options.path), options.include, options) || []
let files = await get(path.resolve(options.path || '.'), options.include, options) || []
files = files.map(f => { return { ...f, role: 'user' } })
messages = [...messages as any, ...files]
messages = [...messages as Array<ChatCompletionMessageParam>, ...files]
return { messages, files }
}
/**
* Create and configure the parameters for the request
*
* @param options - The completed options
* @param messages - The gathered messages
* @returns - The configured parameters for the API request
*/
export const complete_params = async (
options: IKBotTask,
messages: Array<ChatCompletionMessageParam>
): Promise<ChatCompletionToolRunnerParams<any>> => {
const params = {
model: options.model,
messages,
@ -84,13 +125,25 @@ export const processRun = async (opts: IKBotTask) => {
params.tool_choice = 'auto'
params.parallel_tool_calls = false
}
return params
}
const logDir = path.resolve(resolve(opts.logs))
const paramsPath = path.join(logDir, 'params.json')
write(paramsPath, JSON.stringify({ ...params }, null, 2))
logger.debug(`kbot run ${options.mode} : ${options.model} @ ${options.router} : ${files.length} files from project ${path.resolve(options.path)} with ${options.include}`, files.map(f => f.path), params.tools.map(t => `${t.function.name} : ${t.function.description}`))
let ret = null
options = await options.onRun(options) || options
/**
* Execute the request based on the mode and return the result
*
* @param options - The completed options
* @param client - The API client
* @param params - The request parameters
* @returns - The result of the execution
*/
export const execute_request = async (
options: IKBotTask,
client: any,
params: ChatCompletionToolRunnerParams<any>
): Promise<ProcessRunResult> => {
let ret: any = null
try {
switch (options.mode) {
case E_Mode.COMPLETION:
@ -109,11 +162,42 @@ export const processRun = async (opts: IKBotTask) => {
throw new Error(`Unsupported mode: ${options.mode}`)
}
} catch (e) {
logger.error(`Error running ${options.mode} mode: ${e.message}`)
options.logger?.error(`Error running ${options.mode} mode: ${e.message}`)
}
opts.variables['LAST'] = ret
return ret
}
/**
* Process a task with the configured options and return the result
*
* @param opts - The task options
* @returns - The result of the task execution
*/
export const processRun = async (opts: IKBotTask): Promise<ProcessRunResult> => {
let options = await complete_options(opts)
if (!options) {
return null
}
const client = options.client
const { messages, files } = await complete_messages(opts, options)
if (messages.length === 0) {
return ""
}
const params = await complete_params(options, messages)
const logDir = path.resolve(resolve(opts.logs || './logs'))
const paramsPath = path.join(logDir, 'params.json')
write(paramsPath, JSON.stringify({ ...params }, null, 2))
options.logger.debug(`kbot run ${options.mode} : ${options.model} @ ${options.router} : ${files.length} files from project ${path.resolve(options.path || '.')} with ${options.include}`, files.map(f => f.path), params.tools.map(t => `${t.function.name} : ${t.function.description}`))
options = await options.onRun(options) || options
const ret = await execute_request(options, client, params)
return ret
}
/**
* Extract file paths (Windows or POSIX style) from a single string,
* preserving any spaces within the paths. Needed for Salamand File Manager selections (eg: kbot "summarize, as json" -i "$(ListOfSelectedFullNames)")
@ -125,12 +209,12 @@ export const processRun = async (opts: IKBotTask) => {
*/
function extractPaths(input: string): string[] {
// If it's a direct path that exists, return it
if(exists(path.resolve(resolve(input)))){
if (exists(path.resolve(resolve(input)))) {
return [input]
}
// If it's a glob pattern, return it as is
if(hasMagic(input)){
if (hasMagic(input)) {
return [input]
}
@ -170,14 +254,15 @@ function flattenArrays<T>(arrays: T[][]): T[] {
}, [] as T[]);
}
export const run = async (opts: IKBotTask) => {
const ret = []
export const run = async (opts: IKBotTask): Promise<ProcessRunResult[]> => {
const ret: ProcessRunResult[] = []
const logger = new Logger<ILogObj>({ minLevel: opts.logLevel || 2 })
if (opts.include) {
opts.logger = logger
if (opts.include) {
if (isString(opts.include)) {
opts.include = [opts.include]
}
}
if (isArray(opts.include)) {
// First check for glob patterns
const globPatterns = opts.include.filter((path: string) => hasMagic(path))
@ -205,11 +290,11 @@ export const run = async (opts: IKBotTask) => {
items = opts.each.split(',')
}
if (items.length === 0) {
logger.warn(`No files matching pattern ${opts.each} found in ${opts.path}`)
opts.logger.warn(`No files matching pattern ${opts.each} found in ${opts.path}`)
return ret
}
logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`)
const _models = all()
opts.logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`)
const _models = all()
for (const item of items) {
const itemOpts = {
...opts,
@ -222,10 +307,16 @@ export const run = async (opts: IKBotTask) => {
itemOpts.model = item
}
itemOpts.include = [...opts.include, ...[forward_slash(item)]]
ret.push(await processRun(itemOpts))
const result = await processRun(itemOpts)
if (result !== undefined) {
ret.push(result)
}
}
} else {
ret.push(await processRun(opts))
const result = await processRun(opts)
if (result !== undefined) {
ret.push(result)
}
}
return ret
}

View File

@ -10677,6 +10677,512 @@
"duration": 2603,
"reason": "Expected [], but got [\"example1.txt\", \"example2.txt\", \"data.json\"]",
"category": "tools"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:32.997Z",
"passed": true,
"duration": 1246,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:40.019Z",
"passed": true,
"duration": 7011,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:13:40.950Z",
"passed": true,
"duration": 922,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:13:41.833Z",
"passed": true,
"duration": 874,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:42.682Z",
"passed": true,
"duration": 840,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:51.918Z",
"passed": true,
"duration": 9227,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:13:52.915Z",
"passed": true,
"duration": 987,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:13:53.795Z",
"passed": true,
"duration": 871,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:55.036Z",
"passed": true,
"duration": 1229,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:59.410Z",
"passed": true,
"duration": 4364,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:14:00.446Z",
"passed": true,
"duration": 1028,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:14:01.478Z",
"passed": true,
"duration": 1023,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:33.556Z",
"passed": true,
"duration": 1293,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:36.782Z",
"passed": true,
"duration": 3215,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:18:37.574Z",
"passed": true,
"duration": 783,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:18:38.342Z",
"passed": true,
"duration": 760,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:39.174Z",
"passed": true,
"duration": 823,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:44.118Z",
"passed": true,
"duration": 4936,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:18:45.161Z",
"passed": true,
"duration": 1035,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:18:45.996Z",
"passed": true,
"duration": 827,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:50.222Z",
"passed": true,
"duration": 4216,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"The result of dividing 15 by 3 is 5.\n\n5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:58.164Z",
"passed": false,
"duration": 7931,
"reason": "Expected 5, but got the result of dividing 15 by 3 is 5.\n\n5",
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:19:04.862Z",
"passed": true,
"duration": 6684,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:19:05.910Z",
"passed": true,
"duration": 1038,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:15.545Z",
"passed": true,
"duration": 1197,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:20:27.125Z",
"passed": true,
"duration": 11570,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:20:28.062Z",
"passed": true,
"duration": 927,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:20:28.801Z",
"passed": true,
"duration": 729,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:29.675Z",
"passed": true,
"duration": 863,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:20:45.996Z",
"passed": true,
"duration": 16310,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:20:47.110Z",
"passed": true,
"duration": 1105,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:20:48.079Z",
"passed": true,
"duration": 960,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:48.991Z",
"passed": true,
"duration": 901,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"15 ÷ 3 equals 5.\n\n5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:21:00.413Z",
"passed": false,
"duration": 11412,
"reason": "Expected 5, but got 15 ÷ 3 equals 5.\n\n5",
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:21:01.284Z",
"passed": true,
"duration": 856,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:21:02.046Z",
"passed": true,
"duration": 749,
"category": "basic"
}
],
"highscores": [
@ -10760,13 +11266,13 @@
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 811,
"duration_secs": 0.811
"duration": 729,
"duration_secs": 0.729
},
{
"model": "openai/gpt-4o-mini",
"duration": 842,
"duration_secs": 0.842
"duration": 927,
"duration_secs": 0.927
}
]
},
@ -10774,14 +11280,14 @@
"test": "multiplication",
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 780,
"duration_secs": 0.78
"model": "openai/gpt-3.5-turbo",
"duration": 863,
"duration_secs": 0.863
},
{
"model": "openai/gpt-3.5-turbo",
"duration": 881,
"duration_secs": 0.881
"model": "openrouter/quasar-alpha",
"duration": 960,
"duration_secs": 0.96
}
]
},
@ -10790,13 +11296,13 @@
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 731,
"duration_secs": 0.731
"duration": 749,
"duration_secs": 0.749
},
{
"model": "openai/gpt-3.5-turbo",
"duration": 784,
"duration_secs": 0.784
"model": "openai/gpt-4o-mini",
"duration": 856,
"duration_secs": 0.856
}
]
},
@ -10936,5 +11442,5 @@
]
}
],
"lastUpdated": "2025-04-04T21:47:09.914Z"
"lastUpdated": "2025-04-06T14:21:02.054Z"
}

View File

@ -1418,6 +1418,512 @@
"passed": true,
"duration": 731,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:32.997Z",
"passed": true,
"duration": 1246,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:40.019Z",
"passed": true,
"duration": 7011,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:13:40.950Z",
"passed": true,
"duration": 922,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:13:41.833Z",
"passed": true,
"duration": 874,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:42.682Z",
"passed": true,
"duration": 840,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:51.918Z",
"passed": true,
"duration": 9227,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:13:52.915Z",
"passed": true,
"duration": 987,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:13:53.795Z",
"passed": true,
"duration": 871,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:13:55.036Z",
"passed": true,
"duration": 1229,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:13:59.410Z",
"passed": true,
"duration": 4364,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:14:00.446Z",
"passed": true,
"duration": 1028,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:14:01.478Z",
"passed": true,
"duration": 1023,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:33.556Z",
"passed": true,
"duration": 1293,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:36.782Z",
"passed": true,
"duration": 3215,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:18:37.574Z",
"passed": true,
"duration": 783,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:18:38.342Z",
"passed": true,
"duration": 760,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:39.174Z",
"passed": true,
"duration": 823,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:44.118Z",
"passed": true,
"duration": 4936,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:18:45.161Z",
"passed": true,
"duration": 1035,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:18:45.996Z",
"passed": true,
"duration": 827,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:18:50.222Z",
"passed": true,
"duration": 4216,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"The result of dividing 15 by 3 is 5.\n\n5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:18:58.164Z",
"passed": false,
"duration": 7931,
"reason": "Expected 5, but got the result of dividing 15 by 3 is 5.\n\n5",
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:19:04.862Z",
"passed": true,
"duration": 6684,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:19:05.910Z",
"passed": true,
"duration": 1038,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:15.545Z",
"passed": true,
"duration": 1197,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:20:27.125Z",
"passed": true,
"duration": 11570,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:20:28.062Z",
"passed": true,
"duration": 927,
"category": "basic"
},
{
"test": "addition",
"prompt": "add 5 and 3. Return only the number, no explanation.",
"result": [
"8"
],
"expected": "8",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:20:28.801Z",
"passed": true,
"duration": 729,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:29.675Z",
"passed": true,
"duration": 863,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:20:45.996Z",
"passed": true,
"duration": 16310,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:20:47.110Z",
"passed": true,
"duration": 1105,
"category": "basic"
},
{
"test": "multiplication",
"prompt": "multiply 8 and 3. Return only the number, no explanation.",
"result": [
"24"
],
"expected": "24",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:20:48.079Z",
"passed": true,
"duration": 960,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-3.5-turbo",
"router": "openai/gpt-3.5-turbo",
"timestamp": "2025-04-06T14:20:48.991Z",
"passed": true,
"duration": 901,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"15 ÷ 3 equals 5.\n\n5"
],
"expected": "5",
"model": "deepseek/deepseek-r1-distill-qwen-14b:free",
"router": "deepseek/deepseek-r1-distill-qwen-14b:free",
"timestamp": "2025-04-06T14:21:00.413Z",
"passed": false,
"duration": 11412,
"reason": "Expected 5, but got 15 ÷ 3 equals 5.\n\n5",
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openai/gpt-4o-mini",
"router": "openai/gpt-4o-mini",
"timestamp": "2025-04-06T14:21:01.284Z",
"passed": true,
"duration": 856,
"category": "basic"
},
{
"test": "division",
"prompt": "divide 15 by 3. Return only the number, no explanation.",
"result": [
"5"
],
"expected": "5",
"model": "openrouter/quasar-alpha",
"router": "openrouter/quasar-alpha",
"timestamp": "2025-04-06T14:21:02.046Z",
"passed": true,
"duration": 749,
"category": "basic"
}
],
"highscores": [
@ -1426,13 +1932,13 @@
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 811,
"duration_secs": 0.811
"duration": 729,
"duration_secs": 0.729
},
{
"model": "openai/gpt-4o-mini",
"duration": 842,
"duration_secs": 0.842
"duration": 927,
"duration_secs": 0.927
}
]
},
@ -1440,14 +1946,14 @@
"test": "multiplication",
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 780,
"duration_secs": 0.78
"model": "openai/gpt-3.5-turbo",
"duration": 863,
"duration_secs": 0.863
},
{
"model": "openai/gpt-3.5-turbo",
"duration": 881,
"duration_secs": 0.881
"model": "openrouter/quasar-alpha",
"duration": 960,
"duration_secs": 0.96
}
]
},
@ -1456,16 +1962,16 @@
"rankings": [
{
"model": "openrouter/quasar-alpha",
"duration": 731,
"duration_secs": 0.731
"duration": 749,
"duration_secs": 0.749
},
{
"model": "openai/gpt-3.5-turbo",
"duration": 784,
"duration_secs": 0.784
"model": "openai/gpt-4o-mini",
"duration": 856,
"duration_secs": 0.856
}
]
}
],
"lastUpdated": "2025-04-04T12:37:11.994Z"
"lastUpdated": "2025-04-06T14:21:02.047Z"
}

View File

@ -6,18 +6,18 @@
| Test | Model | Duration (ms) | Duration (s) |
|------|-------|--------------|--------------|
| addition | openrouter/quasar-alpha | 811 | 0.81 |
| addition | openai/gpt-4o-mini | 842 | 0.84 |
| addition | openai/gpt-3.5-turbo | 1505 | 1.50 |
| addition | deepseek/deepseek-r1-distill-qwen-14b:free | 3470 | 3.47 |
| multiplication | openrouter/quasar-alpha | 780 | 0.78 |
| multiplication | openai/gpt-3.5-turbo | 881 | 0.88 |
| multiplication | openai/gpt-4o-mini | 1096 | 1.10 |
| multiplication | deepseek/deepseek-r1-distill-qwen-14b:free | 1327 | 1.33 |
| division | openrouter/quasar-alpha | 731 | 0.73 |
| division | openai/gpt-3.5-turbo | 784 | 0.78 |
| division | openai/gpt-4o-mini | 975 | 0.97 |
| division | deepseek/deepseek-r1-distill-qwen-14b:free | 4467 | 4.47 |
| addition | openrouter/quasar-alpha | 729 | 0.73 |
| addition | openai/gpt-4o-mini | 927 | 0.93 |
| addition | openai/gpt-3.5-turbo | 1197 | 1.20 |
| addition | deepseek/deepseek-r1-distill-qwen-14b:free | 11570 | 11.57 |
| multiplication | openai/gpt-3.5-turbo | 863 | 0.86 |
| multiplication | openrouter/quasar-alpha | 960 | 0.96 |
| multiplication | openai/gpt-4o-mini | 1105 | 1.10 |
| multiplication | deepseek/deepseek-r1-distill-qwen-14b:free | 16310 | 16.31 |
| division | openrouter/quasar-alpha | 749 | 0.75 |
| division | openai/gpt-4o-mini | 856 | 0.86 |
| division | openai/gpt-3.5-turbo | 901 | 0.90 |
| division | deepseek/deepseek-r1-distill-qwen-14b:free | 11412 | 11.41 |
## Summary
@ -25,18 +25,22 @@
- Passed: 11
- Failed: 1
- Success Rate: 91.67%
- Average Duration: 1472ms (1.47s)
- Average Duration: 3965ms (3.96s)
## Failed Tests
### multiplication - deepseek/deepseek-r1-distill-qwen-14b:free
### division - deepseek/deepseek-r1-distill-qwen-14b:free
- Prompt: `multiply 8 and 3. Return only the number, no explanation.`
- Expected: `24`
- Actual: ``
- Duration: 1327ms (1.33s)
- Reason: Model returned empty response
- Timestamp: 4/4/2025, 2:37:03 PM
- Prompt: `divide 15 by 3. Return only the number, no explanation.`
- Expected: `5`
- Actual: `15 ÷ 3 equals 5.
5`
- Duration: 11412ms (11.41s)
- Reason: Expected 5, but got 15 ÷ 3 equals 5.
5
- Timestamp: 4/6/2025, 4:21:00 PM
## Passed Tests
@ -45,86 +49,86 @@
- Prompt: `add 5 and 3. Return only the number, no explanation.`
- Expected: `8`
- Actual: `8`
- Duration: 1505ms (1.50s)
- Timestamp: 4/4/2025, 2:36:55 PM
- Duration: 1197ms (1.20s)
- Timestamp: 4/6/2025, 4:20:15 PM
### addition - deepseek/deepseek-r1-distill-qwen-14b:free
- Prompt: `add 5 and 3. Return only the number, no explanation.`
- Expected: `8`
- Actual: `8`
- Duration: 3470ms (3.47s)
- Timestamp: 4/4/2025, 2:36:59 PM
- Duration: 11570ms (11.57s)
- Timestamp: 4/6/2025, 4:20:27 PM
### addition - openai/gpt-4o-mini
- Prompt: `add 5 and 3. Return only the number, no explanation.`
- Expected: `8`
- Actual: `8`
- Duration: 842ms (0.84s)
- Timestamp: 4/4/2025, 2:37:00 PM
- Duration: 927ms (0.93s)
- Timestamp: 4/6/2025, 4:20:28 PM
### addition - openrouter/quasar-alpha
- Prompt: `add 5 and 3. Return only the number, no explanation.`
- Expected: `8`
- Actual: `8`
- Duration: 811ms (0.81s)
- Timestamp: 4/4/2025, 2:37:00 PM
- Duration: 729ms (0.73s)
- Timestamp: 4/6/2025, 4:20:28 PM
### multiplication - openai/gpt-3.5-turbo
- Prompt: `multiply 8 and 3. Return only the number, no explanation.`
- Expected: `24`
- Actual: `24`
- Duration: 881ms (0.88s)
- Timestamp: 4/4/2025, 2:37:01 PM
- Duration: 863ms (0.86s)
- Timestamp: 4/6/2025, 4:20:29 PM
### multiplication - deepseek/deepseek-r1-distill-qwen-14b:free
- Prompt: `multiply 8 and 3. Return only the number, no explanation.`
- Expected: `24`
- Actual: `24`
- Duration: 16310ms (16.31s)
- Timestamp: 4/6/2025, 4:20:45 PM
### multiplication - openai/gpt-4o-mini
- Prompt: `multiply 8 and 3. Return only the number, no explanation.`
- Expected: `24`
- Actual: `24`
- Duration: 1096ms (1.10s)
- Timestamp: 4/4/2025, 2:37:04 PM
- Duration: 1105ms (1.10s)
- Timestamp: 4/6/2025, 4:20:47 PM
### multiplication - openrouter/quasar-alpha
- Prompt: `multiply 8 and 3. Return only the number, no explanation.`
- Expected: `24`
- Actual: `24`
- Duration: 780ms (0.78s)
- Timestamp: 4/4/2025, 2:37:05 PM
- Duration: 960ms (0.96s)
- Timestamp: 4/6/2025, 4:20:48 PM
### division - openai/gpt-3.5-turbo
- Prompt: `divide 15 by 3. Return only the number, no explanation.`
- Expected: `5`
- Actual: `5`
- Duration: 784ms (0.78s)
- Timestamp: 4/4/2025, 2:37:05 PM
### division - deepseek/deepseek-r1-distill-qwen-14b:free
- Prompt: `divide 15 by 3. Return only the number, no explanation.`
- Expected: `5`
- Actual: `5`
- Duration: 4467ms (4.47s)
- Timestamp: 4/4/2025, 2:37:10 PM
- Duration: 901ms (0.90s)
- Timestamp: 4/6/2025, 4:20:48 PM
### division - openai/gpt-4o-mini
- Prompt: `divide 15 by 3. Return only the number, no explanation.`
- Expected: `5`
- Actual: `5`
- Duration: 975ms (0.97s)
- Timestamp: 4/4/2025, 2:37:11 PM
- Duration: 856ms (0.86s)
- Timestamp: 4/6/2025, 4:21:01 PM
### division - openrouter/quasar-alpha
- Prompt: `divide 15 by 3. Return only the number, no explanation.`
- Expected: `5`
- Actual: `5`
- Duration: 731ms (0.73s)
- Timestamp: 4/4/2025, 2:37:11 PM
- Duration: 749ms (0.75s)
- Timestamp: 4/6/2025, 4:21:02 PM