diff --git a/packages/kbot/dist-in/commands/handlers/index.js b/packages/kbot/dist-in/commands/handlers/index.js index 4ac490bc..3fcabace 100644 --- a/packages/kbot/dist-in/commands/handlers/index.js +++ b/packages/kbot/dist-in/commands/handlers/index.js @@ -10,18 +10,25 @@ export function createHandlers(options) { new TextHandler(), ]; } +import { isFile } from '@polymech/commons'; export async function detectAndHandle(content, options) { const handlers = createHandlers(options); - // Check if content is a file path - const contentStr = content.toString(); - if (exists(contentStr)) { - const filePath = path.resolve(contentStr); - for (const handler of handlers) { - if (await handler.canHandle(filePath, true)) { - return handler.handle(filePath, true); + const contentStr = content.toString().trim(); + try { + if (isFile(contentStr) && exists(contentStr)) { + const filePath = path.resolve(contentStr); + for (const handler of handlers) { + if (await handler.canHandle(filePath, true)) { + return handler.handle(filePath, true); + } } } } + catch (e) { + // options.logger?.warn(`Malformed path detected. Treating as content. Error: ${e.message}`); + // If it's not a valid path, it will throw an error, so we just continue + console.error(`Malformed path detected. Treating as content. Error: ${e.message}`); + } // Handle as raw content for (const handler of handlers) { if (await handler.canHandle(content, false)) { @@ -30,4 +37,4 @@ export async function detectAndHandle(content, options) { } throw new Error('No suitable handler found for the input content'); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUlwRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXFCO0lBQ2xELE9BQU87UUFDTCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksV0FBVyxFQUFFO0tBQ2xCLENBQUE7QUFDSCxDQUFDO0FBQ0QsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsT0FBd0IsRUFBRSxPQUFxQjtJQUNuRixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFJLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUlwRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXFCO0lBQ2xELE9BQU87UUFDTCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksV0FBVyxFQUFFO0tBQ2xCLENBQUE7QUFDSCxDQUFDO0FBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQXdCLEVBQUUsT0FBcUI7SUFDbkYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxJQUFJLENBQUM7UUFDSCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQy9CLElBQUksTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLDZGQUE2RjtRQUM3Rix3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFDckUsQ0FBQyJ9 \ No newline at end of file diff --git a/packages/kbot/dist-in/commands/run-completion.js b/packages/kbot/dist-in/commands/run-completion.js index 1a85d17d..de847f82 100644 --- a/packages/kbot/dist-in/commands/run-completion.js +++ b/packages/kbot/dist-in/commands/run-completion.js @@ -19,6 +19,7 @@ export const onCompletion = async (result = "", options) => { writeOrAppend(dstPath, result, options.append); const action = options.append ? `${options.append} content to` : 'Wrote completion result to'; options.logger?.debug(`${action} ${dstPath} : ${options.dst}`); + console.log(`wrote ${action} ${dstPath} : ${options.dst}`); } else { marked.use(markedTerminal({ @@ -48,4 +49,4 @@ export const runCompletion = async (client, params, options) => { result = await onCompletion(result, options); return result; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHakQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDekUsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQW1CLElBQUksRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDdkUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksZ0JBQWdCO1NBQzNDLENBQUE7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUEwQixDQUFDLENBQUE7UUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFBO1FBQzdGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFXLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyQixrQkFBa0I7SUFDbEIsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBRSxNQUFXLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDbEQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3SSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHakQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDekUsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQW1CLElBQUksRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDdkUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksZ0JBQWdCO1NBQzNDLENBQUE7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUEwQixDQUFDLENBQUE7UUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFBO1FBQzdGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFXLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyQixrQkFBa0I7SUFDbEIsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBRSxNQUFXLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDbEQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3SSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9 \ No newline at end of file diff --git a/packages/kbot/dist-in/commands/run.js b/packages/kbot/dist-in/commands/run.js index e154e682..ae75cf76 100644 --- a/packages/kbot/dist-in/commands/run.js +++ b/packages/kbot/dist-in/commands/run.js @@ -2,6 +2,7 @@ import * as path from 'node:path'; import { lookup } from 'mime-types'; import { cwd as processCwd } from 'node:process'; import { hasMagic } from 'glob'; +import { lstatSync } from 'node:fs'; import { sync as dir } from '@polymech/fs/dir'; import { sync as exists } from '@polymech/fs/exists'; import { sync as write } from '@polymech/fs/write'; @@ -90,10 +91,9 @@ export const complete_options = async (opts) => { export const complete_messages = async (opts, options) => { let chatMessages = []; const promptMessage = await prompt(opts); - if (!promptMessage?.content) { - return { messages: [], files: [] }; + if (promptMessage?.content) { + chatMessages.push(promptMessage); } - chatMessages.push(promptMessage); chatMessages.push((await preferences(opts))); const projectPath = path.resolve(options.path || '.'); let sourceFiles = await get(projectPath, options.include, options) || []; @@ -328,6 +328,17 @@ export const run = async (opts) => { opts.logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`); const _models = all(); for (const item of items) { + try { + const stats = lstatSync(item); + if (!stats.isFile()) { + opts.logger.warn(`Item from --each is not a file, skipping: ${item}`); + continue; + } + } + catch (e) { + opts.logger.warn(`Item from --each is not a valid path, skipping: ${item}`); + continue; + } const itemOpts = { ...opts, ITEM: item, @@ -338,7 +349,8 @@ export const run = async (opts) => { itemOpts.model = item; } let currentItemSpecificIncludes = [forward_slash(item)]; - itemOpts.include = [...opts.include, ...currentItemSpecificIncludes]; + const initialIncludes = [...opts.include]; // Store original includes + itemOpts.include = [...initialIncludes, ...currentItemSpecificIncludes]; const result = await processRun(itemOpts); if (result !== undefined) { ret.push(result); @@ -353,4 +365,4 @@ export const run = async (opts) => { } return ret; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxHQUFHLElBQUksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUs3RCxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sT0FBTyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFp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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxHQUFHLElBQUksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBSzdELE9BQU8sRUFBRSxNQUFNLEVBQVcsTUFBTSxPQUFPLENBQUE7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxFQUFFLElBQUksSUFBSSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFJdkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBZSxFQUFZLEVBQUU7SUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQkFBb0I7UUFFbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDLENBQUE7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdkIsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdkcsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUN4RixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUlEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLElBQWUsRUFBNkIsRUFBRTtJQUNuRixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUU3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7SUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRTVELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFtQixDQUFDO1FBRXBDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQzVDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3ZCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQTtRQUNuRSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTdELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2RixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3BDLElBQWUsRUFDZixPQUFrQixFQUlqQixFQUFFO0lBQ0gsSUFBSSxZQUFZLEdBQXNDLEVBQUUsQ0FBQTtJQUV4RCxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QyxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQTJDLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUErQixDQUFDLENBQUE7SUFFMUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ3JELElBQUksV0FBVyxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUV4RSxNQUFNLHFCQUFxQixHQUFpQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9CLHVHQUF1RztZQUN2RyxJQUFJLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pLLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDNUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzlELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQyxxREFBcUQ7b0JBQ2pGLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxFQUFFLENBQUE7b0JBQzVDLE1BQU0sVUFBVSxHQUFHOztRQUVyQixZQUFZO2lCQUNILFlBQVk7T0FDdEIsdUJBQXVCOzs7O0NBSTdCLENBQUE7b0JBQ1MsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUE7Z0JBQ2hFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFBO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFBO0lBQy9CLENBQUMsQ0FBQyxDQUFBO0lBRUYsWUFBWSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQTtBQUN2RCxDQUFDLENBQUE7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxPQUFrQixFQUNsQixRQUEyQyxFQUNHLEVBQUU7SUFDaEQsTUFBTSxNQUFNLEdBQUc7UUFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsUUFBUTtRQUNSLEtBQUssRUFBRSxFQUFFO0tBQzZCLENBQUE7SUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN2QyxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQTtJQUM3QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsT0FBa0IsRUFDbEIsTUFBVyxFQUNYLE1BQTJDLEVBQ2hCLEVBQUU7SUFDN0IsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0lBRW5CLElBQUksQ0FBQztRQUNILFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTSxDQUFDLFVBQVU7Z0JBQ3BCLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUNsRCxNQUFLO1lBRVAsS0FBSyxNQUFNLENBQUMsS0FBSztnQkFDZixHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDN0MsTUFBSztZQUVQLEtBQUssTUFBTSxDQUFDLFNBQVM7Z0JBQ25CLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUNqRCxNQUFLO1lBRVAsS0FBSyxNQUFNLENBQUMsU0FBUztnQkFDbkIsR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBQ2pELE1BQUs7WUFFUDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBZSxFQUE2QixFQUFFO0lBQzdFLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBRTdCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDbEUsSUFBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFFdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ25ELEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLE9BQU8sQ0FBQyxJQUFJLE1BQU0sT0FBTyxDQUFDLEtBQUssTUFBTSxPQUFPLENBQUMsTUFBTSxPQUFPLEtBQUssQ0FBQyxNQUFNLHVCQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLFNBQVMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzdSLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxPQUFPLENBQUMsSUFBSSxNQUFNLE9BQU8sQ0FBQyxLQUFLLE1BQU0sT0FBTyxDQUFDLE1BQU0sT0FBTyxLQUFLLENBQUMsTUFBTSx1QkFBdUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcE4sQ0FBQztJQUNELE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFBO0lBQ2pELE1BQU0sR0FBRyxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDMUQsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDLENBQUE7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLCtCQUErQjtJQUMvQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRCw2RkFBNkY7SUFDN0YsTUFBTSxjQUFjLEdBQUcsaUNBQWlDLENBQUM7SUFFekQsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBQ2xDLElBQUksS0FBNkIsQ0FBQztJQUVsQyx1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDckQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzdFLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUksTUFBYTtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUMsRUFBRSxFQUFTLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxJQUFlLEVBQStCLEVBQUU7SUFDeEUsTUFBTSxHQUFHLEdBQXVCLEVBQUUsQ0FBQTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFFcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUIsNkNBQTZDO1lBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDL0YsNEJBQTRCO1lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzdGLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7WUFDbkUsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLGVBQWUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFBO1FBQ3hELENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCxpREFBaUQ7SUFDakQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RixNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLGVBQWUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQTtRQUN4QixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNuQixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNGLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQU8sSUFBSSxFQUFFLENBQUE7UUFDN0MsQ0FBQzthQUFNLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUM7Z0JBQzVFLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFBO1lBQ0YsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEMsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEQsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLElBQUksYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUNoRixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxNQUFNLDJCQUEyQixJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQTtRQUNyRixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQztnQkFDSCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkNBQTZDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3RFLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RSxTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHO2dCQUNmLEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsSUFBSTtnQkFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2FBQzFCLENBQUE7WUFDRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQTtZQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBQ3ZCLENBQUM7WUFFRCxJQUFJLDJCQUEyQixHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFeEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtZQUNyRSxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxDQUFDO1lBRXhFLE1BQU0sTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ3pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2xCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDLENBQUEifQ== \ No newline at end of file diff --git a/packages/kbot/dist-in/data/openai_models.json b/packages/kbot/dist-in/data/openai_models.json index 9430a7cb..d2ddd81c 100644 --- a/packages/kbot/dist-in/data/openai_models.json +++ b/packages/kbot/dist-in/data/openai_models.json @@ -1,5 +1,5 @@ { - "timestamp": 1754493028882, + "timestamp": 1754597769369, "models": [ { "id": "gpt-4-0613", @@ -20,33 +20,33 @@ "owned_by": "openai" }, { - "id": "o4-mini-deep-research-2025-06-26", + "id": "gpt-5-nano", "object": "model", - "created": 1750866121, + "created": 1754426384, "owned_by": "system" }, { - "id": "codex-mini-latest", + "id": "gpt-5", "object": "model", - "created": 1746673257, + "created": 1754425777, "owned_by": "system" }, { - "id": "gpt-4o-realtime-preview-2025-06-03", + "id": "gpt-5-mini-2025-08-07", "object": "model", - "created": 1748907838, + "created": 1754425867, "owned_by": "system" }, { - "id": "gpt-4o-audio-preview-2025-06-03", + "id": "gpt-5-mini", "object": "model", - "created": 1748908498, + "created": 1754425928, "owned_by": "system" }, { - "id": "o4-mini-deep-research", + "id": "gpt-5-nano-2025-08-07", "object": "model", - "created": 1749685485, + "created": 1754426303, "owned_by": "system" }, { @@ -361,12 +361,24 @@ "created": 1742403959, "owned_by": "system" }, + { + "id": "o3-2025-04-16", + "object": "model", + "created": 1744133301, + "owned_by": "system" + }, { "id": "o4-mini-2025-04-16", "object": "model", "created": 1744133506, "owned_by": "system" }, + { + "id": "o3", + "object": "model", + "created": 1744225308, + "owned_by": "system" + }, { "id": "o4-mini", "object": "model", @@ -415,6 +427,48 @@ "created": 1745517030, "owned_by": "system" }, + { + "id": "codex-mini-latest", + "object": "model", + "created": 1746673257, + "owned_by": "system" + }, + { + "id": "gpt-4o-realtime-preview-2025-06-03", + "object": "model", + "created": 1748907838, + "owned_by": "system" + }, + { + "id": "gpt-4o-audio-preview-2025-06-03", + "object": "model", + "created": 1748908498, + "owned_by": "system" + }, + { + "id": "o4-mini-deep-research", + "object": "model", + "created": 1749685485, + "owned_by": "system" + }, + { + "id": "o4-mini-deep-research-2025-06-26", + "object": "model", + "created": 1750866121, + "owned_by": "system" + }, + { + "id": "gpt-5-chat-latest", + "object": "model", + "created": 1754073306, + "owned_by": "system" + }, + { + "id": "gpt-5-2025-08-07", + "object": "model", + "created": 1754075360, + "owned_by": "system" + }, { "id": "gpt-3.5-turbo-16k", "object": "model", diff --git a/packages/kbot/dist-in/data/openrouter_models.json b/packages/kbot/dist-in/data/openrouter_models.json index 957ad715..7da94a49 100644 --- a/packages/kbot/dist-in/data/openrouter_models.json +++ b/packages/kbot/dist-in/data/openrouter_models.json @@ -1,11 +1,193 @@ { - "timestamp": 1754493029370, + "timestamp": 1754597769696, "models": [ + { + "id": "openai/gpt-5-chat", + "canonical_slug": "openai/gpt-5-chat-2025-08-07", + "hugging_face_id": "", + "name": "OpenAI: GPT-5 Chat", + "created": 1754587837, + "description": "GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.", + "context_length": 400000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "file", + "image", + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000125", + "completion": "0.00001", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0", + "input_cache_read": "0.000000125" + }, + "top_provider": { + "context_length": 400000, + "max_completion_tokens": 128000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "max_tokens", + "response_format", + "seed", + "structured_outputs" + ] + }, + { + "id": "openai/gpt-5", + "canonical_slug": "openai/gpt-5-2025-08-07", + "hugging_face_id": "", + "name": "OpenAI: GPT-5", + "created": 1754587413, + "description": "GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy in high-stakes use cases. It supports test-time routing features and advanced prompt understanding, including user-specified intent like \"think hard about this.\" Improvements include reductions in hallucination, sycophancy, and better performance in coding, writing, and health-related tasks.\n\nNote that BYOK is required for this model. Set up here: https://openrouter.ai/settings/integrations", + "context_length": 400000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image", + "file" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000125", + "completion": "0.00001", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0", + "input_cache_read": "0.000000125" + }, + "top_provider": { + "context_length": 400000, + "max_completion_tokens": 128000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "max_tokens", + "response_format", + "seed", + "structured_outputs", + "tool_choice", + "tools" + ] + }, + { + "id": "openai/gpt-5-mini", + "canonical_slug": "openai/gpt-5-mini-2025-08-07", + "hugging_face_id": "", + "name": "OpenAI: GPT-5 Mini", + "created": 1754587407, + "description": "GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost. GPT-5 Mini is the successor to OpenAI's o4-mini model.", + "context_length": 400000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image", + "file" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000025", + "completion": "0.000002", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0", + "input_cache_read": "0.000000025" + }, + "top_provider": { + "context_length": 400000, + "max_completion_tokens": 128000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "max_tokens", + "response_format", + "seed", + "structured_outputs", + "tool_choice", + "tools" + ] + }, + { + "id": "openai/gpt-5-nano", + "canonical_slug": "openai/gpt-5-nano-2025-08-07", + "hugging_face_id": "", + "name": "OpenAI: GPT-5 Nano", + "created": 1754587402, + "description": "GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger counterparts, it retains key instruction-following and safety features. It is the successor to GPT-4.1-nano and offers a lightweight option for cost-sensitive or real-time applications.", + "context_length": 400000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image", + "file" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000005", + "completion": "0.0000004", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0", + "input_cache_read": "0.000000005" + }, + "top_provider": { + "context_length": 400000, + "max_completion_tokens": 128000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "max_tokens", + "response_format", + "seed", + "structured_outputs", + "tool_choice", + "tools" + ] + }, { "id": "openai/gpt-oss-120b", "canonical_slug": "openai/gpt-oss-120b", "hugging_face_id": "openai/gpt-oss-120b", - "name": "OpenAI: GPT OSS 120B", + "name": "OpenAI: gpt-oss-120b", "created": 1754414231, "description": "gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized to run on a single H100 GPU with native MXFP4 quantization. The model supports configurable reasoning depth, full chain-of-thought access, and native tool use, including function calling, browsing, and structured output generation.", "context_length": 131072, @@ -21,8 +203,8 @@ "instruct_type": null }, "pricing": { - "prompt": "0.0000001", - "completion": "0.0000005", + "prompt": "0.00000009", + "completion": "0.00000045", "request": "0", "image": "0", "audio": "0", @@ -58,10 +240,10 @@ ] }, { - "id": "openai/gpt-oss-20b", + "id": "openai/gpt-oss-20b:free", "canonical_slug": "openai/gpt-oss-20b", "hugging_face_id": "openai/gpt-oss-20b", - "name": "OpenAI: GPT OSS 20B", + "name": "OpenAI: gpt-oss-20b (free)", "created": 1754414229, "description": "gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for lower-latency inference and deployability on consumer or single-GPU hardware. The model is trained in OpenAI’s Harmony response format and supports reasoning level configuration, fine-tuning, and agentic capabilities including function calling, tool use, and structured outputs.", "context_length": 131072, @@ -77,8 +259,8 @@ "instruct_type": null }, "pricing": { - "prompt": "0.00000005", - "completion": "0.0000002", + "prompt": "0", + "completion": "0", "request": "0", "image": "0", "audio": "0", @@ -87,7 +269,51 @@ }, "top_provider": { "context_length": 131072, - "max_completion_tokens": 32768, + "max_completion_tokens": 131072, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "include_reasoning", + "max_tokens", + "reasoning", + "response_format", + "structured_outputs", + "temperature", + "top_p" + ] + }, + { + "id": "openai/gpt-oss-20b", + "canonical_slug": "openai/gpt-oss-20b", + "hugging_face_id": "openai/gpt-oss-20b", + "name": "OpenAI: gpt-oss-20b", + "created": 1754414229, + "description": "gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for lower-latency inference and deployability on consumer or single-GPU hardware. The model is trained in OpenAI’s Harmony response format and supports reasoning level configuration, fine-tuning, and agentic capabilities including function calling, tool use, and structured outputs.", + "context_length": 131072, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000004", + "completion": "0.00000016", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 131072, + "max_completion_tokens": null, "is_moderated": false }, "per_request_limits": null, @@ -97,6 +323,7 @@ "logit_bias", "logprobs", "max_tokens", + "min_p", "presence_penalty", "reasoning", "repetition_penalty", @@ -159,49 +386,6 @@ "tools" ] }, - { - "id": "openrouter/horizon-beta", - "canonical_slug": "openrouter/horizon-beta", - "hugging_face_id": "", - "name": "Horizon Beta", - "created": 1754089419, - "description": "This is a cloaked model provided to the community to gather feedback. This is an improved version of [Horizon Alpha](/openrouter/horizon-alpha)\n\nNote: It’s free to use during this testing period, and prompts and completions are logged by the model creator for feedback and training.", - "context_length": 256000, - "architecture": { - "modality": "text+image->text", - "input_modalities": [ - "image", - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Other", - "instruct_type": null - }, - "pricing": { - "prompt": "0", - "completion": "0", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 256000, - "max_completion_tokens": 128000, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "max_tokens", - "response_format", - "structured_outputs", - "tool_choice", - "tools" - ] - }, { "id": "mistralai/codestral-2508", "canonical_slug": "mistralai/codestral-2508", @@ -6239,92 +6423,6 @@ "top_p" ] }, - { - "id": "ai21/jamba-1.6-large", - "canonical_slug": "ai21/jamba-1.6-large", - "hugging_face_id": "ai21labs/AI21-Jamba-Large-1.6", - "name": "AI21: Jamba 1.6 Large", - "created": 1741905173, - "description": "AI21 Jamba Large 1.6 is a high-performance hybrid foundation model combining State Space Models (Mamba) with Transformer attention mechanisms. Developed by AI21, it excels in extremely long-context handling (256K tokens), demonstrates superior inference efficiency (up to 2.5x faster than comparable models), and supports structured JSON output and tool-use capabilities. It has 94 billion active parameters (398 billion total), optimized quantization support (ExpertsInt8), and multilingual proficiency in languages such as English, Spanish, French, Portuguese, Italian, Dutch, German, Arabic, and Hebrew.\n\nUsage of this model is subject to the [Jamba Open Model License](https://www.ai21.com/licenses/jamba-open-model-license).", - "context_length": 256000, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Other", - "instruct_type": null - }, - "pricing": { - "prompt": "0.000002", - "completion": "0.000008", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 256000, - "max_completion_tokens": 4096, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "max_tokens", - "stop", - "temperature", - "tool_choice", - "tools", - "top_p" - ] - }, - { - "id": "ai21/jamba-1.6-mini", - "canonical_slug": "ai21/jamba-1.6-mini", - "hugging_face_id": "ai21labs/AI21-Jamba-Mini-1.6", - "name": "AI21: Jamba Mini 1.6", - "created": 1741905171, - "description": "AI21 Jamba Mini 1.6 is a hybrid foundation model combining State Space Models (Mamba) with Transformer attention mechanisms. With 12 billion active parameters (52 billion total), this model excels in extremely long-context tasks (up to 256K tokens) and achieves superior inference efficiency, outperforming comparable open models on tasks such as retrieval-augmented generation (RAG) and grounded question answering. Jamba Mini 1.6 supports multilingual tasks across English, Spanish, French, Portuguese, Italian, Dutch, German, Arabic, and Hebrew, along with structured JSON output and tool-use capabilities.\n\nUsage of this model is subject to the [Jamba Open Model License](https://www.ai21.com/licenses/jamba-open-model-license).", - "context_length": 256000, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Other", - "instruct_type": null - }, - "pricing": { - "prompt": "0.0000002", - "completion": "0.0000004", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 256000, - "max_completion_tokens": 4096, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "max_tokens", - "stop", - "temperature", - "tool_choice", - "tools", - "top_p" - ] - }, { "id": "google/gemma-3-12b-it:free", "canonical_slug": "google/gemma-3-12b-it", @@ -10294,6 +10392,53 @@ "top_p" ] }, + { + "id": "anthropic/claude-3.5-haiku-20241022", + "canonical_slug": "anthropic/claude-3-5-haiku-20241022", + "hugging_face_id": null, + "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "created": 1730678400, + "description": "Claude 3.5 Haiku features enhancements across all skill sets including coding, tool use, and reasoning. As the fastest model in the Anthropic lineup, it offers rapid response times suitable for applications that require high interactivity and low latency, such as user-facing chatbots and on-the-fly code completions. It also excels in specialized tasks like data extraction and real-time content moderation, making it a versatile tool for a broad range of industries.\n\nIt does not support image inputs.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/3-5-models-and-computer-use)", + "context_length": 200000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Claude", + "instruct_type": null + }, + "pricing": { + "prompt": "0.0000008", + "completion": "0.000004", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0", + "input_cache_read": "0.00000008", + "input_cache_write": "0.000001" + }, + "top_provider": { + "context_length": 200000, + "max_completion_tokens": 8192, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "max_tokens", + "stop", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_p" + ] + }, { "id": "anthropic/claude-3.5-haiku:beta", "canonical_slug": "anthropic/claude-3-5-haiku", @@ -10388,53 +10533,6 @@ "top_p" ] }, - { - "id": "anthropic/claude-3.5-haiku-20241022", - "canonical_slug": "anthropic/claude-3-5-haiku-20241022", - "hugging_face_id": null, - "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", - "created": 1730678400, - "description": "Claude 3.5 Haiku features enhancements across all skill sets including coding, tool use, and reasoning. As the fastest model in the Anthropic lineup, it offers rapid response times suitable for applications that require high interactivity and low latency, such as user-facing chatbots and on-the-fly code completions. It also excels in specialized tasks like data extraction and real-time content moderation, making it a versatile tool for a broad range of industries.\n\nIt does not support image inputs.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/3-5-models-and-computer-use)", - "context_length": 200000, - "architecture": { - "modality": "text+image->text", - "input_modalities": [ - "text", - "image" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Claude", - "instruct_type": null - }, - "pricing": { - "prompt": "0.0000008", - "completion": "0.000004", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0", - "input_cache_read": "0.00000008", - "input_cache_write": "0.000001" - }, - "top_provider": { - "context_length": 200000, - "max_completion_tokens": 8192, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "max_tokens", - "stop", - "temperature", - "tool_choice", - "tools", - "top_k", - "top_p" - ] - }, { "id": "anthracite-org/magnum-v4-72b", "canonical_slug": "anthracite-org/magnum-v4-72b", @@ -11158,107 +11256,6 @@ "top_p" ] }, - { - "id": "meta-llama/llama-3.2-90b-vision-instruct", - "canonical_slug": "meta-llama/llama-3.2-90b-vision-instruct", - "hugging_face_id": "meta-llama/Llama-3.2-90B-Vision-Instruct", - "name": "Meta: Llama 3.2 90B Vision Instruct", - "created": 1727222400, - "description": "The Llama 90B Vision model is a top-tier, 90-billion-parameter multimodal model designed for the most challenging visual reasoning and language tasks. It offers unparalleled accuracy in image captioning, visual question answering, and advanced image-text comprehension. Pre-trained on vast multimodal datasets and fine-tuned with human feedback, the Llama 90B Vision is engineered to handle the most demanding image-based AI tasks.\n\nThis model is perfect for industries requiring cutting-edge multimodal AI capabilities, particularly those dealing with complex, real-time visual and textual analysis.\n\nClick here for the [original model card](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD_VISION.md).\n\nUsage of this model is subject to [Meta's Acceptable Use Policy](https://www.llama.com/llama3/use-policy/).", - "context_length": 131072, - "architecture": { - "modality": "text+image->text", - "input_modalities": [ - "text", - "image" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "llama3" - }, - "pricing": { - "prompt": "0.0000012", - "completion": "0.0000012", - "request": "0", - "image": "0.001734", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 131072, - "max_completion_tokens": 2048, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "response_format", - "seed", - "stop", - "temperature", - "top_k", - "top_p" - ] - }, - { - "id": "meta-llama/llama-3.2-1b-instruct", - "canonical_slug": "meta-llama/llama-3.2-1b-instruct", - "hugging_face_id": "meta-llama/Llama-3.2-1B-Instruct", - "name": "Meta: Llama 3.2 1B Instruct", - "created": 1727222400, - "description": "Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate efficiently in low-resource environments while maintaining strong task performance.\n\nSupporting eight core languages and fine-tunable for more, Llama 1.3B is ideal for businesses or developers seeking lightweight yet powerful AI solutions that can operate in diverse multilingual settings without the high computational demand of larger models.\n\nClick here for the [original model card](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD.md).\n\nUsage of this model is subject to [Meta's Acceptable Use Policy](https://www.llama.com/llama3/use-policy/).", - "context_length": 131072, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "llama3" - }, - "pricing": { - "prompt": "0.000000005", - "completion": "0.00000001", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 131072, - "max_completion_tokens": 16384, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "top_k", - "top_logprobs", - "top_p" - ] - }, { "id": "meta-llama/llama-3.2-11b-vision-instruct:free", "canonical_slug": "meta-llama/llama-3.2-11b-vision-instruct", @@ -11362,6 +11359,107 @@ "top_p" ] }, + { + "id": "meta-llama/llama-3.2-90b-vision-instruct", + "canonical_slug": "meta-llama/llama-3.2-90b-vision-instruct", + "hugging_face_id": "meta-llama/Llama-3.2-90B-Vision-Instruct", + "name": "Meta: Llama 3.2 90B Vision Instruct", + "created": 1727222400, + "description": "The Llama 90B Vision model is a top-tier, 90-billion-parameter multimodal model designed for the most challenging visual reasoning and language tasks. It offers unparalleled accuracy in image captioning, visual question answering, and advanced image-text comprehension. Pre-trained on vast multimodal datasets and fine-tuned with human feedback, the Llama 90B Vision is engineered to handle the most demanding image-based AI tasks.\n\nThis model is perfect for industries requiring cutting-edge multimodal AI capabilities, particularly those dealing with complex, real-time visual and textual analysis.\n\nClick here for the [original model card](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD_VISION.md).\n\nUsage of this model is subject to [Meta's Acceptable Use Policy](https://www.llama.com/llama3/use-policy/).", + "context_length": 131072, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Llama3", + "instruct_type": "llama3" + }, + "pricing": { + "prompt": "0.0000012", + "completion": "0.0000012", + "request": "0", + "image": "0.001734", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 131072, + "max_completion_tokens": 2048, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "max_tokens", + "min_p", + "presence_penalty", + "repetition_penalty", + "response_format", + "seed", + "stop", + "temperature", + "top_k", + "top_p" + ] + }, + { + "id": "meta-llama/llama-3.2-1b-instruct", + "canonical_slug": "meta-llama/llama-3.2-1b-instruct", + "hugging_face_id": "meta-llama/Llama-3.2-1B-Instruct", + "name": "Meta: Llama 3.2 1B Instruct", + "created": 1727222400, + "description": "Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate efficiently in low-resource environments while maintaining strong task performance.\n\nSupporting eight core languages and fine-tunable for more, Llama 1.3B is ideal for businesses or developers seeking lightweight yet powerful AI solutions that can operate in diverse multilingual settings without the high computational demand of larger models.\n\nClick here for the [original model card](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD.md).\n\nUsage of this model is subject to [Meta's Acceptable Use Policy](https://www.llama.com/llama3/use-policy/).", + "context_length": 131072, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Llama3", + "instruct_type": "llama3" + }, + "pricing": { + "prompt": "0.000000005", + "completion": "0.00000001", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 131072, + "max_completion_tokens": 16384, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "max_tokens", + "min_p", + "presence_penalty", + "repetition_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "top_k", + "top_logprobs", + "top_p" + ] + }, { "id": "qwen/qwen-2.5-72b-instruct:free", "canonical_slug": "qwen/qwen-2.5-72b-instruct", @@ -11457,7 +11555,6 @@ "response_format", "seed", "stop", - "structured_outputs", "temperature", "tool_choice", "tools", @@ -11518,10 +11615,10 @@ ] }, { - "id": "openai/o1-mini-2024-09-12", - "canonical_slug": "openai/o1-mini-2024-09-12", + "id": "openai/o1-mini", + "canonical_slug": "openai/o1-mini", "hugging_face_id": null, - "name": "OpenAI: o1-mini (2024-09-12)", + "name": "OpenAI: o1-mini", "created": 1726099200, "description": "The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding.\n\nThe o1 models are optimized for math, science, programming, and other STEM-related tasks. They consistently exhibit PhD-level accuracy on benchmarks in physics, chemistry, and biology. Learn more in the [launch announcement](https://openai.com/o1).\n\nNote: This model is currently experimental and not suitable for production use-cases, and may be heavily rate-limited.", "context_length": 128000, @@ -11558,10 +11655,10 @@ ] }, { - "id": "openai/o1-mini", - "canonical_slug": "openai/o1-mini", + "id": "openai/o1-mini-2024-09-12", + "canonical_slug": "openai/o1-mini-2024-09-12", "hugging_face_id": null, - "name": "OpenAI: o1-mini", + "name": "OpenAI: o1-mini (2024-09-12)", "created": 1726099200, "description": "The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding.\n\nThe o1 models are optimized for math, science, programming, and other STEM-related tasks. They consistently exhibit PhD-level accuracy on benchmarks in physics, chemistry, and biology. Learn more in the [launch announcement](https://openai.com/o1).\n\nNote: This model is currently experimental and not suitable for production use-cases, and may be heavily rate-limited.", "context_length": 128000, @@ -11652,6 +11749,54 @@ "top_p" ] }, + { + "id": "cohere/command-r-plus-08-2024", + "canonical_slug": "cohere/command-r-plus-08-2024", + "hugging_face_id": null, + "name": "Cohere: Command R+ (08-2024)", + "created": 1724976000, + "description": "command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint the same.\n\nRead the launch post [here](https://docs.cohere.com/changelog/command-gets-refreshed).\n\nUse of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).", + "context_length": 128000, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Cohere", + "instruct_type": null + }, + "pricing": { + "prompt": "0.0000025", + "completion": "0.00001", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 128000, + "max_completion_tokens": 4000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "max_tokens", + "presence_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tools", + "top_k", + "top_p" + ] + }, { "id": "cohere/command-r-08-2024", "canonical_slug": "cohere/command-r-08-2024", @@ -11701,13 +11846,13 @@ ] }, { - "id": "cohere/command-r-plus-08-2024", - "canonical_slug": "cohere/command-r-plus-08-2024", - "hugging_face_id": null, - "name": "Cohere: Command R+ (08-2024)", - "created": 1724976000, - "description": "command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint the same.\n\nRead the launch post [here](https://docs.cohere.com/changelog/command-gets-refreshed).\n\nUse of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).", - "context_length": 128000, + "id": "sao10k/l3.1-euryale-70b", + "canonical_slug": "sao10k/l3.1-euryale-70b", + "hugging_face_id": "Sao10K/L3.1-70B-Euryale-v2.2", + "name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "created": 1724803200, + "description": "Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).", + "context_length": 32768, "architecture": { "modality": "text->text", "input_modalities": [ @@ -11716,12 +11861,12 @@ "output_modalities": [ "text" ], - "tokenizer": "Cohere", - "instruct_type": null + "tokenizer": "Llama3", + "instruct_type": "llama3" }, "pricing": { - "prompt": "0.0000025", - "completion": "0.00001", + "prompt": "0.00000065", + "completion": "0.00000075", "request": "0", "image": "0", "audio": "0", @@ -11729,21 +11874,23 @@ "internal_reasoning": "0" }, "top_provider": { - "context_length": 128000, - "max_completion_tokens": 4000, - "is_moderated": true + "context_length": 32768, + "max_completion_tokens": null, + "is_moderated": false }, "per_request_limits": null, "supported_parameters": [ "frequency_penalty", + "logit_bias", "max_tokens", + "min_p", "presence_penalty", + "repetition_penalty", "response_format", "seed", "stop", "structured_outputs", "temperature", - "tools", "top_k", "top_p" ] @@ -11801,56 +11948,6 @@ "top_p" ] }, - { - "id": "sao10k/l3.1-euryale-70b", - "canonical_slug": "sao10k/l3.1-euryale-70b", - "hugging_face_id": "Sao10K/L3.1-70B-Euryale-v2.2", - "name": "Sao10K: Llama 3.1 Euryale 70B v2.2", - "created": 1724803200, - "description": "Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).", - "context_length": 32768, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "llama3" - }, - "pricing": { - "prompt": "0.00000065", - "completion": "0.00000075", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 32768, - "max_completion_tokens": null, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "top_k", - "top_p" - ] - }, { "id": "microsoft/phi-3.5-mini-128k-instruct", "canonical_slug": "microsoft/phi-3.5-mini-128k-instruct", @@ -12202,60 +12299,6 @@ "top_p" ] }, - { - "id": "meta-llama/llama-3.1-70b-instruct", - "canonical_slug": "meta-llama/llama-3.1-70b-instruct", - "hugging_face_id": "meta-llama/Meta-Llama-3.1-70B-Instruct", - "name": "Meta: Llama 3.1 70B Instruct", - "created": 1721692800, - "description": "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3-1/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", - "context_length": 131072, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "llama3" - }, - "pricing": { - "prompt": "0.0000001", - "completion": "0.00000028", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 131072, - "max_completion_tokens": 16384, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "logprobs", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "tool_choice", - "tools", - "top_k", - "top_logprobs", - "top_p" - ] - }, { "id": "meta-llama/llama-3.1-405b-instruct:free", "canonical_slug": "meta-llama/llama-3.1-405b-instruct", @@ -12410,6 +12453,60 @@ "top_p" ] }, + { + "id": "meta-llama/llama-3.1-70b-instruct", + "canonical_slug": "meta-llama/llama-3.1-70b-instruct", + "hugging_face_id": "meta-llama/Meta-Llama-3.1-70B-Instruct", + "name": "Meta: Llama 3.1 70B Instruct", + "created": 1721692800, + "description": "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3-1/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", + "context_length": 131072, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Llama3", + "instruct_type": "llama3" + }, + "pricing": { + "prompt": "0.0000001", + "completion": "0.00000028", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 131072, + "max_completion_tokens": 16384, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "logprobs", + "max_tokens", + "min_p", + "presence_penalty", + "repetition_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_k", + "top_logprobs", + "top_p" + ] + }, { "id": "mistralai/mistral-nemo:free", "canonical_slug": "mistralai/mistral-nemo", @@ -12515,10 +12612,10 @@ ] }, { - "id": "openai/gpt-4o-mini-2024-07-18", - "canonical_slug": "openai/gpt-4o-mini-2024-07-18", + "id": "openai/gpt-4o-mini", + "canonical_slug": "openai/gpt-4o-mini", "hugging_face_id": null, - "name": "OpenAI: GPT-4o-mini (2024-07-18)", + "name": "OpenAI: GPT-4o-mini", "created": 1721260800, "description": "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs.\n\nAs their most advanced small model, it is many multiples more affordable than other recent frontier models, and more than 60% cheaper than [GPT-3.5 Turbo](/models/openai/gpt-3.5-turbo). It maintains SOTA intelligence, while being significantly more cost-effective.\n\nGPT-4o mini achieves an 82% score on MMLU and presently ranks higher than GPT-4 on chat preferences [common leaderboards](https://arena.lmsys.org/).\n\nCheck out the [launch announcement](https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/) to learn more.\n\n#multimodal", "context_length": 128000, @@ -12539,7 +12636,7 @@ "prompt": "0.00000015", "completion": "0.0000006", "request": "0", - "image": "0.007225", + "image": "0.000217", "audio": "0", "web_search": "0", "internal_reasoning": "0", @@ -12570,10 +12667,10 @@ ] }, { - "id": "openai/gpt-4o-mini", - "canonical_slug": "openai/gpt-4o-mini", + "id": "openai/gpt-4o-mini-2024-07-18", + "canonical_slug": "openai/gpt-4o-mini-2024-07-18", "hugging_face_id": null, - "name": "OpenAI: GPT-4o-mini", + "name": "OpenAI: GPT-4o-mini (2024-07-18)", "created": 1721260800, "description": "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs.\n\nAs their most advanced small model, it is many multiples more affordable than other recent frontier models, and more than 60% cheaper than [GPT-3.5 Turbo](/models/openai/gpt-3.5-turbo). It maintains SOTA intelligence, while being significantly more cost-effective.\n\nGPT-4o mini achieves an 82% score on MMLU and presently ranks higher than GPT-4 on chat preferences [common leaderboards](https://arena.lmsys.org/).\n\nCheck out the [launch announcement](https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/) to learn more.\n\n#multimodal", "context_length": 128000, @@ -12594,7 +12691,7 @@ "prompt": "0.00000015", "completion": "0.0000006", "request": "0", - "image": "0.000217", + "image": "0.007225", "audio": "0", "web_search": "0", "internal_reasoning": "0", @@ -13063,58 +13160,6 @@ "top_p" ] }, - { - "id": "nousresearch/hermes-2-pro-llama-3-8b", - "canonical_slug": "nousresearch/hermes-2-pro-llama-3-8b", - "hugging_face_id": "NousResearch/Hermes-2-Pro-Llama-3-8B", - "name": "NousResearch: Hermes 2 Pro - Llama-3 8B", - "created": 1716768000, - "description": "Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced Function Calling and JSON Mode dataset developed in-house.", - "context_length": 131072, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "chatml" - }, - "pricing": { - "prompt": "0.000000025", - "completion": "0.00000004", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 131072, - "max_completion_tokens": 131072, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "logprobs", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "top_k", - "top_logprobs", - "top_p" - ] - }, { "id": "mistralai/mistral-7b-instruct:free", "canonical_slug": "mistralai/mistral-7b-instruct", @@ -13217,6 +13262,58 @@ "top_p" ] }, + { + "id": "nousresearch/hermes-2-pro-llama-3-8b", + "canonical_slug": "nousresearch/hermes-2-pro-llama-3-8b", + "hugging_face_id": "NousResearch/Hermes-2-Pro-Llama-3-8B", + "name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "created": 1716768000, + "description": "Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced Function Calling and JSON Mode dataset developed in-house.", + "context_length": 131072, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Llama3", + "instruct_type": "chatml" + }, + "pricing": { + "prompt": "0.000000025", + "completion": "0.00000004", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 131072, + "max_completion_tokens": 131072, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "logprobs", + "max_tokens", + "min_p", + "presence_penalty", + "repetition_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "top_k", + "top_logprobs", + "top_p" + ] + }, { "id": "microsoft/phi-3-mini-128k-instruct", "canonical_slug": "microsoft/phi-3-mini-128k-instruct", @@ -13399,53 +13496,6 @@ "top_p" ] }, - { - "id": "meta-llama/llama-guard-2-8b", - "canonical_slug": "meta-llama/llama-guard-2-8b", - "hugging_face_id": "meta-llama/Meta-Llama-Guard-2-8B", - "name": "Meta: LlamaGuard 2 8B", - "created": 1715558400, - "description": "This safeguard model has 8B parameters and is based on the Llama 3 family. Just like is predecessor, [LlamaGuard 1](https://huggingface.co/meta-llama/LlamaGuard-7b), it can do both prompt and response classification.\n\nLlamaGuard 2 acts as a normal LLM would, generating text that indicates whether the given input/output is safe/unsafe. If deemed unsafe, it will also share the content categories violated.\n\nFor best results, please use raw prompt input or the `/completions` endpoint, instead of the chat API.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", - "context_length": 8192, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Llama3", - "instruct_type": "none" - }, - "pricing": { - "prompt": "0.0000002", - "completion": "0.0000002", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 8192, - "max_completion_tokens": null, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "stop", - "temperature", - "top_k", - "top_p" - ] - }, { "id": "openai/gpt-4o-2024-05-13", "canonical_slug": "openai/gpt-4o-2024-05-13", @@ -13610,13 +13660,13 @@ ] }, { - "id": "sao10k/fimbulvetr-11b-v2", - "canonical_slug": "sao10k/fimbulvetr-11b-v2", - "hugging_face_id": "Sao10K/Fimbulvetr-11B-v2", - "name": "Fimbulvetr 11B v2", - "created": 1713657600, - "description": "Creative writing model, routed with permission. It's fast, it keeps the conversation going, and it stays in character.\n\nIf you submit a raw prompt, you can use Alpaca or Vicuna formats.", - "context_length": 4096, + "id": "meta-llama/llama-guard-2-8b", + "canonical_slug": "meta-llama/llama-guard-2-8b", + "hugging_face_id": "meta-llama/Meta-Llama-Guard-2-8B", + "name": "Meta: LlamaGuard 2 8B", + "created": 1715558400, + "description": "This safeguard model has 8B parameters and is based on the Llama 3 family. Just like is predecessor, [LlamaGuard 1](https://huggingface.co/meta-llama/LlamaGuard-7b), it can do both prompt and response classification.\n\nLlamaGuard 2 acts as a normal LLM would, generating text that indicates whether the given input/output is safe/unsafe. If deemed unsafe, it will also share the content categories violated.\n\nFor best results, please use raw prompt input or the `/completions` endpoint, instead of the chat API.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", + "context_length": 8192, "architecture": { "modality": "text->text", "input_modalities": [ @@ -13625,12 +13675,12 @@ "output_modalities": [ "text" ], - "tokenizer": "Llama2", - "instruct_type": "alpaca" + "tokenizer": "Llama3", + "instruct_type": "none" }, "pricing": { - "prompt": "0.0000008", - "completion": "0.0000012", + "prompt": "0.0000002", + "completion": "0.0000002", "request": "0", "image": "0", "audio": "0", @@ -13638,18 +13688,18 @@ "internal_reasoning": "0" }, "top_provider": { - "context_length": 4096, - "max_completion_tokens": 4096, + "context_length": 8192, + "max_completion_tokens": null, "is_moderated": false }, "per_request_limits": null, "supported_parameters": [ "frequency_penalty", + "logit_bias", "max_tokens", "min_p", "presence_penalty", "repetition_penalty", - "seed", "stop", "temperature", "top_k", @@ -13657,12 +13707,12 @@ ] }, { - "id": "meta-llama/llama-3-8b-instruct", - "canonical_slug": "meta-llama/llama-3-8b-instruct", - "hugging_face_id": "meta-llama/Meta-Llama-3-8B-Instruct", - "name": "Meta: Llama 3 8B Instruct", + "id": "meta-llama/llama-3-70b-instruct", + "canonical_slug": "meta-llama/llama-3-70b-instruct", + "hugging_face_id": "meta-llama/Meta-Llama-3-70B-Instruct", + "name": "Meta: Llama 3 70B Instruct", "created": 1713398400, - "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", + "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", "context_length": 8192, "architecture": { "modality": "text->text", @@ -13676,8 +13726,8 @@ "instruct_type": "llama3" }, "pricing": { - "prompt": "0.00000003", - "completion": "0.00000006", + "prompt": "0.0000003", + "completion": "0.0000004", "request": "0", "image": "0", "audio": "0", @@ -13710,12 +13760,12 @@ ] }, { - "id": "meta-llama/llama-3-70b-instruct", - "canonical_slug": "meta-llama/llama-3-70b-instruct", - "hugging_face_id": "meta-llama/Meta-Llama-3-70B-Instruct", - "name": "Meta: Llama 3 70B Instruct", + "id": "meta-llama/llama-3-8b-instruct", + "canonical_slug": "meta-llama/llama-3-8b-instruct", + "hugging_face_id": "meta-llama/Meta-Llama-3-8B-Instruct", + "name": "Meta: Llama 3 8B Instruct", "created": 1713398400, - "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", + "description": "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases.\n\nIt has demonstrated strong performance compared to leading closed-source models in human evaluations.\n\nTo read more about the model release, [click here](https://ai.meta.com/blog/meta-llama-3/). Usage of this model is subject to [Meta's Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/).", "context_length": 8192, "architecture": { "modality": "text->text", @@ -13729,8 +13779,8 @@ "instruct_type": "llama3" }, "pricing": { - "prompt": "0.0000003", - "completion": "0.0000004", + "prompt": "0.00000003", + "completion": "0.00000006", "request": "0", "image": "0", "audio": "0", @@ -13864,55 +13914,6 @@ "top_p" ] }, - { - "id": "google/gemini-pro-1.5", - "canonical_slug": "google/gemini-pro-1.5", - "hugging_face_id": null, - "name": "Google: Gemini 1.5 Pro", - "created": 1712620800, - "description": "Google's latest multimodal model, supports image and video[0] in text or chat prompts.\n\nOptimized for language tasks including:\n\n- Code generation\n- Text generation\n- Text editing\n- Problem solving\n- Recommendations\n- Information extraction\n- Data extraction or generation\n- AI agents\n\nUsage of Gemini is subject to Google's [Gemini Terms of Use](https://ai.google.dev/terms).\n\n* [0]: Video input is not available through OpenRouter at this time.", - "context_length": 2000000, - "architecture": { - "modality": "text+image->text", - "input_modalities": [ - "text", - "image" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Gemini", - "instruct_type": null - }, - "pricing": { - "prompt": "0.00000125", - "completion": "0.000005", - "request": "0", - "image": "0.0006575", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 2000000, - "max_completion_tokens": 8192, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "max_tokens", - "presence_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "tool_choice", - "tools", - "top_p" - ] - }, { "id": "openai/gpt-4-turbo", "canonical_slug": "openai/gpt-4-turbo", @@ -13965,6 +13966,55 @@ "top_p" ] }, + { + "id": "google/gemini-pro-1.5", + "canonical_slug": "google/gemini-pro-1.5", + "hugging_face_id": null, + "name": "Google: Gemini 1.5 Pro", + "created": 1712620800, + "description": "Google's latest multimodal model, supports image and video[0] in text or chat prompts.\n\nOptimized for language tasks including:\n\n- Code generation\n- Text generation\n- Text editing\n- Problem solving\n- Recommendations\n- Information extraction\n- Data extraction or generation\n- AI agents\n\nUsage of Gemini is subject to Google's [Gemini Terms of Use](https://ai.google.dev/terms).\n\n* [0]: Video input is not available through OpenRouter at this time.", + "context_length": 2000000, + "architecture": { + "modality": "text+image->text", + "input_modalities": [ + "text", + "image" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Gemini", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00000125", + "completion": "0.000005", + "request": "0", + "image": "0.0006575", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 2000000, + "max_completion_tokens": 8192, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "max_tokens", + "presence_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_p" + ] + }, { "id": "cohere/command-r-plus", "canonical_slug": "cohere/command-r-plus", @@ -14109,53 +14159,6 @@ "top_p" ] }, - { - "id": "cohere/command", - "canonical_slug": "cohere/command", - "hugging_face_id": null, - "name": "Cohere: Command", - "created": 1710374400, - "description": "Command is an instruction-following conversational model that performs language tasks with high quality, more reliably and with a longer context than our base generative models.\n\nUse of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).", - "context_length": 4096, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Cohere", - "instruct_type": null - }, - "pricing": { - "prompt": "0.000001", - "completion": "0.000002", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 4096, - "max_completion_tokens": 4000, - "is_moderated": true - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "max_tokens", - "presence_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "top_k", - "top_p" - ] - }, { "id": "cohere/command-r", "canonical_slug": "cohere/command-r", @@ -14204,6 +14207,53 @@ "top_p" ] }, + { + "id": "cohere/command", + "canonical_slug": "cohere/command", + "hugging_face_id": null, + "name": "Cohere: Command", + "created": 1710374400, + "description": "Command is an instruction-following conversational model that performs language tasks with high quality, more reliably and with a longer context than our base generative models.\n\nUse of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).", + "context_length": 4096, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "Cohere", + "instruct_type": null + }, + "pricing": { + "prompt": "0.000001", + "completion": "0.000002", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 4096, + "max_completion_tokens": 4000, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "max_tokens", + "presence_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "top_k", + "top_p" + ] + }, { "id": "anthropic/claude-3-haiku:beta", "canonical_slug": "anthropic/claude-3-haiku", @@ -14933,53 +14983,6 @@ "top_p" ] }, - { - "id": "undi95/toppy-m-7b", - "canonical_slug": "undi95/toppy-m-7b", - "hugging_face_id": "Undi95/Toppy-M-7B", - "name": "Toppy M 7B", - "created": 1699574400, - "description": "A wild 7B parameter model that merges several models using the new task_arithmetic merge method from mergekit.\nList of merged models:\n- NousResearch/Nous-Capybara-7B-V1.9\n- [HuggingFaceH4/zephyr-7b-beta](/models/huggingfaceh4/zephyr-7b-beta)\n- lemonilia/AshhLimaRP-Mistral-7B\n- Vulkane/120-Days-of-Sodom-LoRA-Mistral-7b\n- Undi95/Mistral-pippa-sharegpt-7b-qlora\n\n#merge #uncensored", - "context_length": 4096, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "Mistral", - "instruct_type": "alpaca" - }, - "pricing": { - "prompt": "0.0000008", - "completion": "0.0000012", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 4096, - "max_completion_tokens": 4096, - "is_moderated": false - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "max_tokens", - "min_p", - "presence_penalty", - "repetition_penalty", - "seed", - "stop", - "temperature", - "top_k", - "top_p" - ] - }, { "id": "openrouter/auto", "canonical_slug": "openrouter/auto", @@ -15062,6 +15065,55 @@ "top_p" ] }, + { + "id": "openai/gpt-3.5-turbo-instruct", + "canonical_slug": "openai/gpt-3.5-turbo-instruct", + "hugging_face_id": null, + "name": "OpenAI: GPT-3.5 Turbo Instruct", + "created": 1695859200, + "description": "This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.", + "context_length": 4095, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": "chatml" + }, + "pricing": { + "prompt": "0.0000015", + "completion": "0.000002", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 4095, + "max_completion_tokens": 4096, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "logprobs", + "max_tokens", + "presence_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "top_logprobs", + "top_p" + ] + }, { "id": "mistralai/mistral-7b-instruct-v0.1", "canonical_slug": "mistralai/mistral-7b-instruct-v0.1", @@ -15112,55 +15164,6 @@ "top_p" ] }, - { - "id": "openai/gpt-3.5-turbo-instruct", - "canonical_slug": "openai/gpt-3.5-turbo-instruct", - "hugging_face_id": null, - "name": "OpenAI: GPT-3.5 Turbo Instruct", - "created": 1695859200, - "description": "This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.", - "context_length": 4095, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "GPT", - "instruct_type": "chatml" - }, - "pricing": { - "prompt": "0.0000015", - "completion": "0.000002", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 4095, - "max_completion_tokens": 4096, - "is_moderated": true - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "logprobs", - "max_tokens", - "presence_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "top_logprobs", - "top_p" - ] - }, { "id": "pygmalionai/mythalion-13b", "canonical_slug": "pygmalionai/mythalion-13b", @@ -15410,57 +15413,6 @@ "top_p" ] }, - { - "id": "openai/gpt-4", - "canonical_slug": "openai/gpt-4", - "hugging_face_id": null, - "name": "OpenAI: GPT-4", - "created": 1685232000, - "description": "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning capabilities. Training data: up to Sep 2021.", - "context_length": 8191, - "architecture": { - "modality": "text->text", - "input_modalities": [ - "text" - ], - "output_modalities": [ - "text" - ], - "tokenizer": "GPT", - "instruct_type": null - }, - "pricing": { - "prompt": "0.00003", - "completion": "0.00006", - "request": "0", - "image": "0", - "audio": "0", - "web_search": "0", - "internal_reasoning": "0" - }, - "top_provider": { - "context_length": 8191, - "max_completion_tokens": 4096, - "is_moderated": true - }, - "per_request_limits": null, - "supported_parameters": [ - "frequency_penalty", - "logit_bias", - "logprobs", - "max_tokens", - "presence_penalty", - "response_format", - "seed", - "stop", - "structured_outputs", - "temperature", - "tool_choice", - "tools", - "top_logprobs", - "top_p" - ] - }, { "id": "openai/gpt-3.5-turbo", "canonical_slug": "openai/gpt-3.5-turbo", @@ -15562,6 +15514,57 @@ "top_logprobs", "top_p" ] + }, + { + "id": "openai/gpt-4", + "canonical_slug": "openai/gpt-4", + "hugging_face_id": null, + "name": "OpenAI: GPT-4", + "created": 1685232000, + "description": "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning capabilities. Training data: up to Sep 2021.", + "context_length": 8191, + "architecture": { + "modality": "text->text", + "input_modalities": [ + "text" + ], + "output_modalities": [ + "text" + ], + "tokenizer": "GPT", + "instruct_type": null + }, + "pricing": { + "prompt": "0.00003", + "completion": "0.00006", + "request": "0", + "image": "0", + "audio": "0", + "web_search": "0", + "internal_reasoning": "0" + }, + "top_provider": { + "context_length": 8191, + "max_completion_tokens": 4096, + "is_moderated": true + }, + "per_request_limits": null, + "supported_parameters": [ + "frequency_penalty", + "logit_bias", + "logprobs", + "max_tokens", + "presence_penalty", + "response_format", + "seed", + "stop", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_logprobs", + "top_p" + ] } ] } \ No newline at end of file diff --git a/packages/kbot/dist-in/models/cache/openai-models.d.ts b/packages/kbot/dist-in/models/cache/openai-models.d.ts index 32066da7..792097ea 100644 --- a/packages/kbot/dist-in/models/cache/openai-models.d.ts +++ b/packages/kbot/dist-in/models/cache/openai-models.d.ts @@ -2,11 +2,11 @@ export declare enum E_OPENAI_MODEL { MODEL_GPT_4_0613 = "gpt-4-0613", MODEL_GPT_4 = "gpt-4", MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo", - MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26", - MODEL_CODEX_MINI_LATEST = "codex-mini-latest", - MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03", - MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03", - MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research", + MODEL_GPT_5_NANO = "gpt-5-nano", + MODEL_GPT_5 = "gpt-5", + MODEL_GPT_5_MINI_2025_08_07 = "gpt-5-mini-2025-08-07", + MODEL_GPT_5_MINI = "gpt-5-mini", + MODEL_GPT_5_NANO_2025_08_07 = "gpt-5-nano-2025-08-07", MODEL_DAVINCI_002 = "davinci-002", MODEL_BABBAGE_002 = "babbage-002", MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct", @@ -31,8 +31,6 @@ export declare enum E_OPENAI_MODEL { MODEL_GPT_4O_MINI = "gpt-4o-mini", MODEL_GPT_4O_2024_08_06 = "gpt-4o-2024-08-06", MODEL_CHATGPT_4O_LATEST = "chatgpt-4o-latest", - MODEL_O1_PREVIEW_2024_09_12 = "o1-preview-2024-09-12", - MODEL_O1_PREVIEW = "o1-preview", MODEL_O1_MINI_2024_09_12 = "o1-mini-2024-09-12", MODEL_O1_MINI = "o1-mini", MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01 = "gpt-4o-realtime-preview-2024-10-01", @@ -61,7 +59,9 @@ export declare enum E_OPENAI_MODEL { MODEL_O1_PRO_2025_03_19 = "o1-pro-2025-03-19", MODEL_O1_PRO = "o1-pro", MODEL_GPT_4O_MINI_TTS = "gpt-4o-mini-tts", + MODEL_O3_2025_04_16 = "o3-2025-04-16", MODEL_O4_MINI_2025_04_16 = "o4-mini-2025-04-16", + MODEL_O3 = "o3", MODEL_O4_MINI = "o4-mini", MODEL_GPT_4_1_2025_04_14 = "gpt-4.1-2025-04-14", MODEL_GPT_4_1 = "gpt-4.1", @@ -70,6 +70,13 @@ export declare enum E_OPENAI_MODEL { MODEL_GPT_4_1_NANO_2025_04_14 = "gpt-4.1-nano-2025-04-14", MODEL_GPT_4_1_NANO = "gpt-4.1-nano", MODEL_GPT_IMAGE_1 = "gpt-image-1", + MODEL_CODEX_MINI_LATEST = "codex-mini-latest", + MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03", + MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03", + MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research", + MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26", + MODEL_GPT_5_CHAT_LATEST = "gpt-5-chat-latest", + MODEL_GPT_5_2025_08_07 = "gpt-5-2025-08-07", MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k", MODEL_TTS_1 = "tts-1", MODEL_WHISPER_1 = "whisper-1", diff --git a/packages/kbot/dist-in/models/cache/openai-models.js b/packages/kbot/dist-in/models/cache/openai-models.js index ede0f95f..efee1eb8 100644 --- a/packages/kbot/dist-in/models/cache/openai-models.js +++ b/packages/kbot/dist-in/models/cache/openai-models.js @@ -3,11 +3,11 @@ export var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4_0613"] = "gpt-4-0613"; E_OPENAI_MODEL["MODEL_GPT_4"] = "gpt-4"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO"] = "gpt-3.5-turbo"; - E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26"; - E_OPENAI_MODEL["MODEL_CODEX_MINI_LATEST"] = "codex-mini-latest"; - E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03"; - E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03"; - E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research"; + E_OPENAI_MODEL["MODEL_GPT_5_NANO"] = "gpt-5-nano"; + E_OPENAI_MODEL["MODEL_GPT_5"] = "gpt-5"; + E_OPENAI_MODEL["MODEL_GPT_5_MINI_2025_08_07"] = "gpt-5-mini-2025-08-07"; + E_OPENAI_MODEL["MODEL_GPT_5_MINI"] = "gpt-5-mini"; + E_OPENAI_MODEL["MODEL_GPT_5_NANO_2025_08_07"] = "gpt-5-nano-2025-08-07"; E_OPENAI_MODEL["MODEL_DAVINCI_002"] = "davinci-002"; E_OPENAI_MODEL["MODEL_BABBAGE_002"] = "babbage-002"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_INSTRUCT"] = "gpt-3.5-turbo-instruct"; @@ -32,8 +32,6 @@ export var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4O_MINI"] = "gpt-4o-mini"; E_OPENAI_MODEL["MODEL_GPT_4O_2024_08_06"] = "gpt-4o-2024-08-06"; E_OPENAI_MODEL["MODEL_CHATGPT_4O_LATEST"] = "chatgpt-4o-latest"; - E_OPENAI_MODEL["MODEL_O1_PREVIEW_2024_09_12"] = "o1-preview-2024-09-12"; - E_OPENAI_MODEL["MODEL_O1_PREVIEW"] = "o1-preview"; E_OPENAI_MODEL["MODEL_O1_MINI_2024_09_12"] = "o1-mini-2024-09-12"; E_OPENAI_MODEL["MODEL_O1_MINI"] = "o1-mini"; E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01"] = "gpt-4o-realtime-preview-2024-10-01"; @@ -62,7 +60,9 @@ export var E_OPENAI_MODEL; 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_MINI_TTS"] = "gpt-4o-mini-tts"; + E_OPENAI_MODEL["MODEL_O3_2025_04_16"] = "o3-2025-04-16"; E_OPENAI_MODEL["MODEL_O4_MINI_2025_04_16"] = "o4-mini-2025-04-16"; + E_OPENAI_MODEL["MODEL_O3"] = "o3"; E_OPENAI_MODEL["MODEL_O4_MINI"] = "o4-mini"; E_OPENAI_MODEL["MODEL_GPT_4_1_2025_04_14"] = "gpt-4.1-2025-04-14"; E_OPENAI_MODEL["MODEL_GPT_4_1"] = "gpt-4.1"; @@ -71,9 +71,16 @@ export var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4_1_NANO_2025_04_14"] = "gpt-4.1-nano-2025-04-14"; E_OPENAI_MODEL["MODEL_GPT_4_1_NANO"] = "gpt-4.1-nano"; E_OPENAI_MODEL["MODEL_GPT_IMAGE_1"] = "gpt-image-1"; + E_OPENAI_MODEL["MODEL_CODEX_MINI_LATEST"] = "codex-mini-latest"; + E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03"; + E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03"; + E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research"; + E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26"; + E_OPENAI_MODEL["MODEL_GPT_5_CHAT_LATEST"] = "gpt-5-chat-latest"; + E_OPENAI_MODEL["MODEL_GPT_5_2025_08_07"] = "gpt-5-2025-08-07"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_16K"] = "gpt-3.5-turbo-16k"; E_OPENAI_MODEL["MODEL_TTS_1"] = "tts-1"; E_OPENAI_MODEL["MODEL_WHISPER_1"] = "whisper-1"; E_OPENAI_MODEL["MODEL_TEXT_EMBEDDING_ADA_002"] = "text-embedding-ada-002"; })(E_OPENAI_MODEL || (E_OPENAI_MODEL = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQTRFWDtBQTVFRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMsNkZBQTJFLENBQUE7SUFDM0UsK0RBQTZDLENBQUE7SUFDN0MsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsdUVBQXFELENBQUE7SUFDckQsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MsdUVBQXFELENBQUE7SUFDckQsaURBQStCLENBQUE7SUFDL0IsaUVBQStDLENBQUE7SUFDL0MsMkNBQXlCLENBQUE7SUFDekIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLGlFQUErQyxDQUFBO0lBQy9DLDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLDJDQUF5QixDQUFBO0lBQ3pCLDJFQUF5RCxDQUFBO0lBQ3pELHFEQUFtQyxDQUFBO0lBQ25DLDJFQUF5RCxDQUFBO0lBQ3pELHFEQUFtQyxDQUFBO0lBQ25DLG1EQUFpQyxDQUFBO0lBQ2pDLCtEQUE2QyxDQUFBO0lBQzdDLHVDQUFxQixDQUFBO0lBQ3JCLCtDQUE2QixDQUFBO0lBQzdCLHlFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUE1RVcsY0FBYyxLQUFkLGNBQWMsUUE0RXpCIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQW1GWDtBQW5GRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdUVBQXFELENBQUE7SUFDckQsaURBQStCLENBQUE7SUFDL0IsdUVBQXFELENBQUE7SUFDckQsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MsaUVBQStDLENBQUE7SUFDL0MsMkNBQXlCLENBQUE7SUFDekIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLHVEQUFxQyxDQUFBO0lBQ3JDLGlFQUErQyxDQUFBO0lBQy9DLGlDQUFlLENBQUE7SUFDZiwyQ0FBeUIsQ0FBQTtJQUN6QixpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6QiwyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQywyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQyxtREFBaUMsQ0FBQTtJQUNqQywrREFBNkMsQ0FBQTtJQUM3QyxpR0FBK0UsQ0FBQTtJQUMvRSwyRkFBeUUsQ0FBQTtJQUN6RSx1RUFBcUQsQ0FBQTtJQUNyRCw2RkFBMkUsQ0FBQTtJQUMzRSwrREFBNkMsQ0FBQTtJQUM3Qyw2REFBMkMsQ0FBQTtJQUMzQywrREFBNkMsQ0FBQTtJQUM3Qyx1Q0FBcUIsQ0FBQTtJQUNyQiwrQ0FBNkIsQ0FBQTtJQUM3Qix5RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBbkZXLGNBQWMsS0FBZCxjQUFjLFFBbUZ6QiJ9 \ No newline at end of file diff --git a/packages/kbot/dist-in/models/cache/openrouter-models-free.d.ts b/packages/kbot/dist-in/models/cache/openrouter-models-free.d.ts index b34b1009..c241db07 100644 --- a/packages/kbot/dist-in/models/cache/openrouter-models-free.d.ts +++ b/packages/kbot/dist-in/models/cache/openrouter-models-free.d.ts @@ -1,6 +1,6 @@ export declare enum E_OPENROUTER_MODEL_FREE { - MODEL_FREE_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free", - MODEL_FREE_QWEN_QWEN3_235B_A22B_2507_FREE = "qwen/qwen3-235b-a22b-2507:free", + MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", + MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free", MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free", @@ -21,7 +21,6 @@ export declare enum E_OPENROUTER_MODEL_FREE { MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free", MODEL_FREE_MICROSOFT_MAI_DS_R1_FREE = "microsoft/mai-ds-r1:free", MODEL_FREE_THUDM_GLM_Z1_32B_FREE = "thudm/glm-z1-32b:free", - MODEL_FREE_THUDM_GLM_4_32B_FREE = "thudm/glm-4-32b:free", MODEL_FREE_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE = "shisa-ai/shisa-v2-llama3.3-70b:free", MODEL_FREE_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE = "arliai/qwq-32b-arliai-rpr-v1:free", MODEL_FREE_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE = "agentica-org/deepcoder-14b-preview:free", diff --git a/packages/kbot/dist-in/models/cache/openrouter-models-free.js b/packages/kbot/dist-in/models/cache/openrouter-models-free.js index 840d7104..83a8ca90 100644 --- a/packages/kbot/dist-in/models/cache/openrouter-models-free.js +++ b/packages/kbot/dist-in/models/cache/openrouter-models-free.js @@ -1,7 +1,7 @@ export var E_OPENROUTER_MODEL_FREE; (function (E_OPENROUTER_MODEL_FREE) { - E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_CODER_FREE"] = "qwen/qwen3-coder:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_235B_A22B_2507_FREE"] = "qwen/qwen3-235b-a22b-2507:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE"] = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE"] = "google/gemma-3n-e2b-it:free"; @@ -22,7 +22,6 @@ export var E_OPENROUTER_MODEL_FREE; E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MICROSOFT_MAI_DS_R1_FREE"] = "microsoft/mai-ds-r1:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_THUDM_GLM_Z1_32B_FREE"] = "thudm/glm-z1-32b:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_THUDM_GLM_4_32B_FREE"] = "thudm/glm-4-32b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE"] = "shisa-ai/shisa-v2-llama3.3-70b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE"] = "arliai/qwq-32b-arliai-rpr-v1:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE"] = "agentica-org/deepcoder-14b-preview:free"; @@ -57,4 +56,4 @@ export var E_OPENROUTER_MODEL_FREE; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_2_9B_IT_FREE"] = "google/gemma-2-9b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free"; })(E_OPENROUTER_MODEL_FREE || (E_OPENROUTER_MODEL_FREE = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkF5RFg7QUF6REQsV0FBWSx1QkFBdUI7SUFDakMscUZBQTBELENBQUE7SUFDMUQsdUdBQTRFLENBQUE7SUFDNUUseUZBQThELENBQUE7SUFDOUQscUtBQTBJLENBQUE7SUFDMUksaUdBQXNFLENBQUE7SUFDdEUsK0dBQW9GLENBQUE7SUFDcEYsK0dBQW9GLENBQUE7SUFDcEYscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUseUhBQThGLENBQUE7SUFDOUYsdUdBQTRFLENBQUE7SUFDNUUsdUZBQTRELENBQUE7SUFDNUQsK0dBQW9GLENBQUE7SUFDcEYsaUdBQXNFLENBQUE7SUFDdEUsK0VBQW9ELENBQUE7SUFDcEQseUZBQThELENBQUE7SUFDOUQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsNkZBQWtFLENBQUE7SUFDbEUsNkdBQWtGLENBQUE7SUFDbEYsMkZBQWdFLENBQUE7SUFDaEUscUZBQTBELENBQUE7SUFDMUQsbUZBQXdELENBQUE7SUFDeEQsaUhBQXNGLENBQUE7SUFDdEYsNkdBQWtGLENBQUE7SUFDbEYseUhBQThGLENBQUE7SUFDOUYsbUhBQXdGLENBQUE7SUFDeEYsbUlBQXdHLENBQUE7SUFDeEcseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsNkVBQWtELENBQUE7SUFDbEQsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkZBQWtFLENBQUE7SUFDbEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUseUhBQThGLENBQUE7SUFDOUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXpEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBeURsQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkF3RFg7QUF4REQsV0FBWSx1QkFBdUI7SUFDakMseUZBQThELENBQUE7SUFDOUQscUZBQTBELENBQUE7SUFDMUQseUZBQThELENBQUE7SUFDOUQscUtBQTBJLENBQUE7SUFDMUksaUdBQXNFLENBQUE7SUFDdEUsK0dBQW9GLENBQUE7SUFDcEYsK0dBQW9GLENBQUE7SUFDcEYscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUseUhBQThGLENBQUE7SUFDOUYsdUdBQTRFLENBQUE7SUFDNUUsdUZBQTRELENBQUE7SUFDNUQsK0dBQW9GLENBQUE7SUFDcEYsaUdBQXNFLENBQUE7SUFDdEUsK0VBQW9ELENBQUE7SUFDcEQseUZBQThELENBQUE7SUFDOUQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsNkZBQWtFLENBQUE7SUFDbEUsNkdBQWtGLENBQUE7SUFDbEYsMkZBQWdFLENBQUE7SUFDaEUscUZBQTBELENBQUE7SUFDMUQsaUhBQXNGLENBQUE7SUFDdEYsNkdBQWtGLENBQUE7SUFDbEYseUhBQThGLENBQUE7SUFDOUYsbUhBQXdGLENBQUE7SUFDeEYsbUlBQXdHLENBQUE7SUFDeEcseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsNkVBQWtELENBQUE7SUFDbEQsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkZBQWtFLENBQUE7SUFDbEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUseUhBQThGLENBQUE7SUFDOUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXhEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBd0RsQyJ9 \ No newline at end of file diff --git a/packages/kbot/dist-in/models/cache/openrouter-models.d.ts b/packages/kbot/dist-in/models/cache/openrouter-models.d.ts index 0c92d2bf..ad3956ce 100644 --- a/packages/kbot/dist-in/models/cache/openrouter-models.d.ts +++ b/packages/kbot/dist-in/models/cache/openrouter-models.d.ts @@ -1,11 +1,22 @@ export declare enum E_OPENROUTER_MODEL { + MODEL_OPENAI_GPT_5_CHAT = "openai/gpt-5-chat", + MODEL_OPENAI_GPT_5 = "openai/gpt-5", + MODEL_OPENAI_GPT_5_MINI = "openai/gpt-5-mini", + MODEL_OPENAI_GPT_5_NANO = "openai/gpt-5-nano", + MODEL_OPENAI_GPT_OSS_120B = "openai/gpt-oss-120b", + MODEL_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", + MODEL_OPENAI_GPT_OSS_20B = "openai/gpt-oss-20b", + MODEL_ANTHROPIC_CLAUDE_OPUS_4_1 = "anthropic/claude-opus-4.1", + MODEL_MISTRALAI_CODESTRAL_2508 = "mistralai/codestral-2508", + MODEL_QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = "qwen/qwen3-30b-a3b-instruct-2507", + MODEL_Z_AI_GLM_4_5 = "z-ai/glm-4.5", + MODEL_Z_AI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free", + MODEL_Z_AI_GLM_4_5_AIR = "z-ai/glm-4.5-air", MODEL_QWEN_QWEN3_235B_A22B_THINKING_2507 = "qwen/qwen3-235b-a22b-thinking-2507", MODEL_Z_AI_GLM_4_32B = "z-ai/glm-4-32b", - MODEL_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free", MODEL_QWEN_QWEN3_CODER = "qwen/qwen3-coder", MODEL_BYTEDANCE_UI_TARS_1_5_7B = "bytedance/ui-tars-1.5-7b", MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE = "google/gemini-2.5-flash-lite", - MODEL_QWEN_QWEN3_235B_A22B_2507_FREE = "qwen/qwen3-235b-a22b-2507:free", MODEL_QWEN_QWEN3_235B_A22B_2507 = "qwen/qwen3-235b-a22b-2507", MODEL_SWITCHPOINT_ROUTER = "switchpoint/router", MODEL_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", @@ -19,13 +30,11 @@ export declare enum E_OPENROUTER_MODEL { MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE = "tencent/hunyuan-a13b-instruct:free", MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT = "tencent/hunyuan-a13b-instruct", MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free", - MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA = "tngtech/deepseek-r1t2-chimera", MODEL_MORPH_MORPH_V3_LARGE = "morph/morph-v3-large", MODEL_MORPH_MORPH_V3_FAST = "morph/morph-v3-fast", MODEL_BAIDU_ERNIE_4_5_300B_A47B = "baidu/ernie-4.5-300b-a47b", MODEL_THEDRUMMER_ANUBIS_70B_V1_1 = "thedrummer/anubis-70b-v1.1", MODEL_INCEPTION_MERCURY = "inception/mercury", - MODEL_MORPH_MORPH_V2 = "morph/morph-v2", MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.2-24b-instruct:free", MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = "mistralai/mistral-small-3.2-24b-instruct", MODEL_MINIMAX_MINIMAX_M1 = "minimax/minimax-m1", @@ -46,7 +55,6 @@ export declare enum E_OPENROUTER_MODEL { MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free", MODEL_DEEPSEEK_DEEPSEEK_R1_0528 = "deepseek/deepseek-r1-0528", MODEL_SARVAMAI_SARVAM_M_FREE = "sarvamai/sarvam-m:free", - MODEL_SARVAMAI_SARVAM_M = "sarvamai/sarvam-m", MODEL_THEDRUMMER_VALKYRIE_49B_V1 = "thedrummer/valkyrie-49b-v1", MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4", MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4", @@ -78,11 +86,10 @@ export declare enum E_OPENROUTER_MODEL { MODEL_QWEN_QWEN3_235B_A22B_FREE = "qwen/qwen3-235b-a22b:free", MODEL_QWEN_QWEN3_235B_A22B = "qwen/qwen3-235b-a22b", MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free", + MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA = "tngtech/deepseek-r1t-chimera", MODEL_MICROSOFT_MAI_DS_R1_FREE = "microsoft/mai-ds-r1:free", MODEL_MICROSOFT_MAI_DS_R1 = "microsoft/mai-ds-r1", MODEL_THUDM_GLM_Z1_32B_FREE = "thudm/glm-z1-32b:free", - MODEL_THUDM_GLM_Z1_32B = "thudm/glm-z1-32b", - MODEL_THUDM_GLM_4_32B_FREE = "thudm/glm-4-32b:free", MODEL_THUDM_GLM_4_32B = "thudm/glm-4-32b", MODEL_OPENAI_O4_MINI_HIGH = "openai/o4-mini-high", MODEL_OPENAI_O3 = "openai/o3", @@ -120,15 +127,12 @@ export declare enum E_OPENROUTER_MODEL { MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = "mistralai/mistral-small-3.1-24b-instruct", MODEL_GOOGLE_GEMMA_3_4B_IT_FREE = "google/gemma-3-4b-it:free", MODEL_GOOGLE_GEMMA_3_4B_IT = "google/gemma-3-4b-it", - MODEL_AI21_JAMBA_1_6_LARGE = "ai21/jamba-1.6-large", - MODEL_AI21_JAMBA_1_6_MINI = "ai21/jamba-1.6-mini", MODEL_GOOGLE_GEMMA_3_12B_IT_FREE = "google/gemma-3-12b-it:free", MODEL_GOOGLE_GEMMA_3_12B_IT = "google/gemma-3-12b-it", MODEL_COHERE_COMMAND_A = "cohere/command-a", MODEL_OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = "openai/gpt-4o-mini-search-preview", MODEL_OPENAI_GPT_4O_SEARCH_PREVIEW = "openai/gpt-4o-search-preview", MODEL_REKAAI_REKA_FLASH_3_FREE = "rekaai/reka-flash-3:free", - MODEL_REKAAI_REKA_FLASH_3 = "rekaai/reka-flash-3", MODEL_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free", MODEL_GOOGLE_GEMMA_3_27B_IT = "google/gemma-3-27b-it", MODEL_THEDRUMMER_ANUBIS_PRO_105B_V1 = "thedrummer/anubis-pro-105b-v1", @@ -149,6 +153,7 @@ export declare enum E_OPENROUTER_MODEL { MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free", MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B = "cognitivecomputations/dolphin3.0-r1-mistral-24b", MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-mistral-24b:free", + MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B = "cognitivecomputations/dolphin3.0-mistral-24b", MODEL_META_LLAMA_LLAMA_GUARD_3_8B = "meta-llama/llama-guard-3-8b", MODEL_OPENAI_O3_MINI_HIGH = "openai/o3-mini-high", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_8B = "deepseek/deepseek-r1-distill-llama-8b", @@ -194,7 +199,6 @@ export declare enum E_OPENROUTER_MODEL { MODEL_AMAZON_NOVA_MICRO_V1 = "amazon/nova-micro-v1", MODEL_AMAZON_NOVA_PRO_V1 = "amazon/nova-pro-v1", MODEL_QWEN_QWQ_32B_PREVIEW = "qwen/qwq-32b-preview", - MODEL_EVA_UNIT_01_EVA_QWEN_2_5_72B = "eva-unit-01/eva-qwen-2.5-72b", MODEL_OPENAI_GPT_4O_2024_11_20 = "openai/gpt-4o-2024-11-20", MODEL_MISTRALAI_MISTRAL_LARGE_2411 = "mistralai/mistral-large-2411", MODEL_MISTRALAI_MISTRAL_LARGE_2407 = "mistralai/mistral-large-2407", @@ -205,10 +209,9 @@ export declare enum E_OPENROUTER_MODEL { MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct", MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b", MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b", + MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_BETA = "anthropic/claude-3.5-haiku:beta", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku", - MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_BETA = "anthropic/claude-3.5-haiku-20241022:beta", - MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022", MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_BETA = "anthropic/claude-3.5-sonnet:beta", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet", @@ -216,30 +219,28 @@ export declare enum E_OPENROUTER_MODEL { MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b", MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct", MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct", - MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi", MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY = "inflection/inflection-3-productivity", + MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi", MODEL_GOOGLE_GEMINI_FLASH_1_5_8B = "google/gemini-flash-1.5-8b", - MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B = "anthracite-org/magnum-v2-72b", MODEL_THEDRUMMER_ROCINANTE_12B = "thedrummer/rocinante-12b", MODEL_LIQUID_LFM_40B = "liquid/lfm-40b", + MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B = "anthracite-org/magnum-v2-72b", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct", - MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT_FREE = "meta-llama/llama-3.2-11b-vision-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct", MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct", + MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT_FREE = "qwen/qwen-2.5-72b-instruct:free", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct", MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b", - MODEL_OPENAI_O1_PREVIEW_2024_09_12 = "openai/o1-preview-2024-09-12", - MODEL_OPENAI_O1_MINI_2024_09_12 = "openai/o1-mini-2024-09-12", - MODEL_OPENAI_O1_PREVIEW = "openai/o1-preview", MODEL_OPENAI_O1_MINI = "openai/o1-mini", + MODEL_OPENAI_O1_MINI_2024_09_12 = "openai/o1-mini-2024-09-12", MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b", - MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024", MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024", - MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", + MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024", MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b", + MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT = "microsoft/phi-3.5-mini-128k-instruct", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b", @@ -247,11 +248,10 @@ export declare enum E_OPENROUTER_MODEL { MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b", MODEL_OPENAI_GPT_4O_2024_08_06 = "openai/gpt-4o-2024-08-06", MODEL_META_LLAMA_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b", - MODEL_NOTHINGIISREAL_MN_CELESTE_12B = "nothingiisreal/mn-celeste-12b", - MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", - MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT = "meta-llama/llama-3.1-8b-instruct", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct", + MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT = "meta-llama/llama-3.1-8b-instruct", + MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", MODEL_MISTRALAI_MISTRAL_NEMO_FREE = "mistralai/mistral-nemo:free", MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo", MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini", @@ -259,25 +259,23 @@ export declare enum E_OPENROUTER_MODEL { MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it", MODEL_GOOGLE_GEMMA_2_9B_IT_FREE = "google/gemma-2-9b-it:free", MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it", - MODEL_01_AI_YI_LARGE = "01-ai/yi-large", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620_BETA = "anthropic/claude-3.5-sonnet-20240620:beta", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620 = "anthropic/claude-3.5-sonnet-20240620", MODEL_SAO10K_L3_EURYALE_70B = "sao10k/l3-euryale-70b", MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MIXTRAL_8X22B = "cognitivecomputations/dolphin-mixtral-8x22b", MODEL_QWEN_QWEN_2_72B_INSTRUCT = "qwen/qwen-2-72b-instruct", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3", - MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT = "mistralai/mistral-7b-instruct", + MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b", MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT = "microsoft/phi-3-mini-128k-instruct", MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT = "microsoft/phi-3-medium-128k-instruct", MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_70B = "neversleep/llama-3-lumimaid-70b", MODEL_GOOGLE_GEMINI_FLASH_1_5 = "google/gemini-flash-1.5", - MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", + MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13", MODEL_OPENAI_GPT_4O = "openai/gpt-4o", MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended", - MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13", - MODEL_SAO10K_FIMBULVETR_11B_V2 = "sao10k/fimbulvetr-11b-v2", + MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct", MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct", MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct", @@ -287,24 +285,22 @@ export declare enum E_OPENROUTER_MODEL { MODEL_COHERE_COMMAND_R_PLUS = "cohere/command-r-plus", MODEL_COHERE_COMMAND_R_PLUS_04_2024 = "cohere/command-r-plus-04-2024", MODEL_SOPHOSYMPATHEIA_MIDNIGHT_ROSE_70B = "sophosympatheia/midnight-rose-70b", - MODEL_COHERE_COMMAND = "cohere/command", MODEL_COHERE_COMMAND_R = "cohere/command-r", + MODEL_COHERE_COMMAND = "cohere/command", MODEL_ANTHROPIC_CLAUDE_3_HAIKU_BETA = "anthropic/claude-3-haiku:beta", MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku", - MODEL_ANTHROPIC_CLAUDE_3_SONNET = "anthropic/claude-3-sonnet", MODEL_ANTHROPIC_CLAUDE_3_OPUS_BETA = "anthropic/claude-3-opus:beta", MODEL_ANTHROPIC_CLAUDE_3_OPUS = "anthropic/claude-3-opus", MODEL_COHERE_COMMAND_R_03_2024 = "cohere/command-r-03-2024", MODEL_MISTRALAI_MISTRAL_LARGE = "mistralai/mistral-large", - MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview", MODEL_OPENAI_GPT_3_5_TURBO_0613 = "openai/gpt-3.5-turbo-0613", + MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview", MODEL_NOUSRESEARCH_NOUS_HERMES_2_MIXTRAL_8X7B_DPO = "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", MODEL_MISTRALAI_MISTRAL_SMALL = "mistralai/mistral-small", MODEL_MISTRALAI_MISTRAL_TINY = "mistralai/mistral-tiny", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_2 = "mistralai/mistral-7b-instruct-v0.2", MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT = "mistralai/mixtral-8x7b-instruct", MODEL_NEVERSLEEP_NOROMAID_20B = "neversleep/noromaid-20b", - MODEL_UNDI95_TOPPY_M_7B = "undi95/toppy-m-7b", MODEL_ALPINDALE_GOLIATH_120B = "alpindale/goliath-120b", MODEL_OPENROUTER_AUTO = "openrouter/auto", MODEL_OPENAI_GPT_4_1106_PREVIEW = "openai/gpt-4-1106-preview", @@ -315,7 +311,7 @@ export declare enum E_OPENROUTER_MODEL { MODEL_MANCER_WEAVER = "mancer/weaver", MODEL_UNDI95_REMM_SLERP_L2_13B = "undi95/remm-slerp-l2-13b", MODEL_GRYPHE_MYTHOMAX_L2_13B = "gryphe/mythomax-l2-13b", - MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314", MODEL_OPENAI_GPT_3_5_TURBO = "openai/gpt-3.5-turbo", + MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314", MODEL_OPENAI_GPT_4 = "openai/gpt-4" } diff --git a/packages/kbot/dist-in/models/cache/openrouter-models.js b/packages/kbot/dist-in/models/cache/openrouter-models.js index bcf42a07..4680bc8a 100644 --- a/packages/kbot/dist-in/models/cache/openrouter-models.js +++ b/packages/kbot/dist-in/models/cache/openrouter-models.js @@ -1,12 +1,23 @@ export var E_OPENROUTER_MODEL; (function (E_OPENROUTER_MODEL) { + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_CHAT"] = "openai/gpt-5-chat"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5"] = "openai/gpt-5"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_MINI"] = "openai/gpt-5-mini"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_NANO"] = "openai/gpt-5-nano"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_120B"] = "openai/gpt-oss-120b"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_20B"] = "openai/gpt-oss-20b"; + E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_OPUS_4_1"] = "anthropic/claude-opus-4.1"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_CODESTRAL_2508"] = "mistralai/codestral-2508"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_30B_A3B_INSTRUCT_2507"] = "qwen/qwen3-30b-a3b-instruct-2507"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5"] = "z-ai/glm-4.5"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5_AIR"] = "z-ai/glm-4.5-air"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_THINKING_2507"] = "qwen/qwen3-235b-a22b-thinking-2507"; E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_32B"] = "z-ai/glm-4-32b"; - E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_CODER_FREE"] = "qwen/qwen3-coder:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_CODER"] = "qwen/qwen3-coder"; E_OPENROUTER_MODEL["MODEL_BYTEDANCE_UI_TARS_1_5_7B"] = "bytedance/ui-tars-1.5-7b"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE"] = "google/gemini-2.5-flash-lite"; - E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_2507_FREE"] = "qwen/qwen3-235b-a22b-2507:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_2507"] = "qwen/qwen3-235b-a22b-2507"; E_OPENROUTER_MODEL["MODEL_SWITCHPOINT_ROUTER"] = "switchpoint/router"; E_OPENROUTER_MODEL["MODEL_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free"; @@ -20,13 +31,11 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE"] = "tencent/hunyuan-a13b-instruct:free"; E_OPENROUTER_MODEL["MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT"] = "tencent/hunyuan-a13b-instruct"; E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE"] = "tngtech/deepseek-r1t2-chimera:free"; - E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA"] = "tngtech/deepseek-r1t2-chimera"; E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V3_LARGE"] = "morph/morph-v3-large"; E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V3_FAST"] = "morph/morph-v3-fast"; E_OPENROUTER_MODEL["MODEL_BAIDU_ERNIE_4_5_300B_A47B"] = "baidu/ernie-4.5-300b-a47b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_ANUBIS_70B_V1_1"] = "thedrummer/anubis-70b-v1.1"; E_OPENROUTER_MODEL["MODEL_INCEPTION_MERCURY"] = "inception/mercury"; - E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V2"] = "morph/morph-v2"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.2-24b-instruct:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT"] = "mistralai/mistral-small-3.2-24b-instruct"; E_OPENROUTER_MODEL["MODEL_MINIMAX_MINIMAX_M1"] = "minimax/minimax-m1"; @@ -47,7 +56,6 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE"] = "deepseek/deepseek-r1-0528:free"; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_R1_0528"] = "deepseek/deepseek-r1-0528"; E_OPENROUTER_MODEL["MODEL_SARVAMAI_SARVAM_M_FREE"] = "sarvamai/sarvam-m:free"; - E_OPENROUTER_MODEL["MODEL_SARVAMAI_SARVAM_M"] = "sarvamai/sarvam-m"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_VALKYRIE_49B_V1"] = "thedrummer/valkyrie-49b-v1"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_OPUS_4"] = "anthropic/claude-opus-4"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_SONNET_4"] = "anthropic/claude-sonnet-4"; @@ -79,11 +87,10 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_FREE"] = "qwen/qwen3-235b-a22b:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B"] = "qwen/qwen3-235b-a22b"; E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free"; + E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA"] = "tngtech/deepseek-r1t-chimera"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_MAI_DS_R1_FREE"] = "microsoft/mai-ds-r1:free"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_MAI_DS_R1"] = "microsoft/mai-ds-r1"; E_OPENROUTER_MODEL["MODEL_THUDM_GLM_Z1_32B_FREE"] = "thudm/glm-z1-32b:free"; - E_OPENROUTER_MODEL["MODEL_THUDM_GLM_Z1_32B"] = "thudm/glm-z1-32b"; - E_OPENROUTER_MODEL["MODEL_THUDM_GLM_4_32B_FREE"] = "thudm/glm-4-32b:free"; E_OPENROUTER_MODEL["MODEL_THUDM_GLM_4_32B"] = "thudm/glm-4-32b"; E_OPENROUTER_MODEL["MODEL_OPENAI_O4_MINI_HIGH"] = "openai/o4-mini-high"; E_OPENROUTER_MODEL["MODEL_OPENAI_O3"] = "openai/o3"; @@ -121,15 +128,12 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT"] = "mistralai/mistral-small-3.1-24b-instruct"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_4B_IT_FREE"] = "google/gemma-3-4b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_4B_IT"] = "google/gemma-3-4b-it"; - E_OPENROUTER_MODEL["MODEL_AI21_JAMBA_1_6_LARGE"] = "ai21/jamba-1.6-large"; - E_OPENROUTER_MODEL["MODEL_AI21_JAMBA_1_6_MINI"] = "ai21/jamba-1.6-mini"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_12B_IT_FREE"] = "google/gemma-3-12b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_12B_IT"] = "google/gemma-3-12b-it"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_A"] = "cohere/command-a"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_MINI_SEARCH_PREVIEW"] = "openai/gpt-4o-mini-search-preview"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_SEARCH_PREVIEW"] = "openai/gpt-4o-search-preview"; E_OPENROUTER_MODEL["MODEL_REKAAI_REKA_FLASH_3_FREE"] = "rekaai/reka-flash-3:free"; - E_OPENROUTER_MODEL["MODEL_REKAAI_REKA_FLASH_3"] = "rekaai/reka-flash-3"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_27B_IT_FREE"] = "google/gemma-3-27b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_27B_IT"] = "google/gemma-3-27b-it"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_ANUBIS_PRO_105B_V1"] = "thedrummer/anubis-pro-105b-v1"; @@ -150,6 +154,7 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B"] = "cognitivecomputations/dolphin3.0-r1-mistral-24b"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-mistral-24b:free"; + E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B"] = "cognitivecomputations/dolphin3.0-mistral-24b"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_3_8B"] = "meta-llama/llama-guard-3-8b"; E_OPENROUTER_MODEL["MODEL_OPENAI_O3_MINI_HIGH"] = "openai/o3-mini-high"; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_8B"] = "deepseek/deepseek-r1-distill-llama-8b"; @@ -195,7 +200,6 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_AMAZON_NOVA_MICRO_V1"] = "amazon/nova-micro-v1"; E_OPENROUTER_MODEL["MODEL_AMAZON_NOVA_PRO_V1"] = "amazon/nova-pro-v1"; E_OPENROUTER_MODEL["MODEL_QWEN_QWQ_32B_PREVIEW"] = "qwen/qwq-32b-preview"; - E_OPENROUTER_MODEL["MODEL_EVA_UNIT_01_EVA_QWEN_2_5_72B"] = "eva-unit-01/eva-qwen-2.5-72b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_11_20"] = "openai/gpt-4o-2024-11-20"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE_2411"] = "mistralai/mistral-large-2411"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE_2407"] = "mistralai/mistral-large-2407"; @@ -206,10 +210,9 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT"] = "qwen/qwen-2.5-coder-32b-instruct"; E_OPENROUTER_MODEL["MODEL_RAIFLE_SORCERERLM_8X22B"] = "raifle/sorcererlm-8x22b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_UNSLOPNEMO_12B"] = "thedrummer/unslopnemo-12b"; + E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022"] = "anthropic/claude-3.5-haiku-20241022"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_BETA"] = "anthropic/claude-3.5-haiku:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU"] = "anthropic/claude-3.5-haiku"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_BETA"] = "anthropic/claude-3.5-haiku-20241022:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022"] = "anthropic/claude-3.5-haiku-20241022"; E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B"] = "anthracite-org/magnum-v4-72b"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_BETA"] = "anthropic/claude-3.5-sonnet:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET"] = "anthropic/claude-3.5-sonnet"; @@ -217,30 +220,28 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MINISTRAL_3B"] = "mistralai/ministral-3b"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_7B_INSTRUCT"] = "qwen/qwen-2.5-7b-instruct"; E_OPENROUTER_MODEL["MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT"] = "nvidia/llama-3.1-nemotron-70b-instruct"; - E_OPENROUTER_MODEL["MODEL_INFLECTION_INFLECTION_3_PI"] = "inflection/inflection-3-pi"; E_OPENROUTER_MODEL["MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY"] = "inflection/inflection-3-productivity"; + E_OPENROUTER_MODEL["MODEL_INFLECTION_INFLECTION_3_PI"] = "inflection/inflection-3-pi"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_FLASH_1_5_8B"] = "google/gemini-flash-1.5-8b"; - E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B"] = "anthracite-org/magnum-v2-72b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_ROCINANTE_12B"] = "thedrummer/rocinante-12b"; E_OPENROUTER_MODEL["MODEL_LIQUID_LFM_40B"] = "liquid/lfm-40b"; + E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B"] = "anthracite-org/magnum-v2-72b"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-3b-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT"] = "meta-llama/llama-3.2-3b-instruct"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT"] = "meta-llama/llama-3.2-1b-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT_FREE"] = "meta-llama/llama-3.2-11b-vision-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT"] = "meta-llama/llama-3.2-11b-vision-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT"] = "meta-llama/llama-3.2-90b-vision-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT"] = "meta-llama/llama-3.2-1b-instruct"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_72B_INSTRUCT_FREE"] = "qwen/qwen-2.5-72b-instruct:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_72B_INSTRUCT"] = "qwen/qwen-2.5-72b-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B"] = "neversleep/llama-3.1-lumimaid-8b"; - E_OPENROUTER_MODEL["MODEL_OPENAI_O1_PREVIEW_2024_09_12"] = "openai/o1-preview-2024-09-12"; - E_OPENROUTER_MODEL["MODEL_OPENAI_O1_MINI_2024_09_12"] = "openai/o1-mini-2024-09-12"; - E_OPENROUTER_MODEL["MODEL_OPENAI_O1_PREVIEW"] = "openai/o1-preview"; E_OPENROUTER_MODEL["MODEL_OPENAI_O1_MINI"] = "openai/o1-mini"; + E_OPENROUTER_MODEL["MODEL_OPENAI_O1_MINI_2024_09_12"] = "openai/o1-mini-2024-09-12"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_PIXTRAL_12B"] = "mistralai/pixtral-12b"; - E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_08_2024"] = "cohere/command-r-08-2024"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS_08_2024"] = "cohere/command-r-plus-08-2024"; - E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT"] = "qwen/qwen-2.5-vl-7b-instruct"; + E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_08_2024"] = "cohere/command-r-08-2024"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_1_EURYALE_70B"] = "sao10k/l3.1-euryale-70b"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT"] = "qwen/qwen-2.5-vl-7b-instruct"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT"] = "microsoft/phi-3.5-mini-128k-instruct"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B"] = "nousresearch/hermes-3-llama-3.1-70b"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B"] = "nousresearch/hermes-3-llama-3.1-405b"; @@ -248,11 +249,10 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_LUNARIS_8B"] = "sao10k/l3-lunaris-8b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_08_06"] = "openai/gpt-4o-2024-08-06"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B"] = "meta-llama/llama-3.1-405b"; - E_OPENROUTER_MODEL["MODEL_NOTHINGIISREAL_MN_CELESTE_12B"] = "nothingiisreal/mn-celeste-12b"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT"] = "meta-llama/llama-3.1-70b-instruct"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT"] = "meta-llama/llama-3.1-8b-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE"] = "meta-llama/llama-3.1-405b-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT"] = "meta-llama/llama-3.1-405b-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT"] = "meta-llama/llama-3.1-8b-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT"] = "meta-llama/llama-3.1-70b-instruct"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_NEMO_FREE"] = "mistralai/mistral-nemo:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_NEMO"] = "mistralai/mistral-nemo"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_MINI"] = "openai/gpt-4o-mini"; @@ -260,25 +260,23 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_27B_IT"] = "google/gemma-2-27b-it"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_9B_IT_FREE"] = "google/gemma-2-9b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_9B_IT"] = "google/gemma-2-9b-it"; - E_OPENROUTER_MODEL["MODEL_01_AI_YI_LARGE"] = "01-ai/yi-large"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620_BETA"] = "anthropic/claude-3.5-sonnet-20240620:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620"] = "anthropic/claude-3.5-sonnet-20240620"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_EURYALE_70B"] = "sao10k/l3-euryale-70b"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MIXTRAL_8X22B"] = "cognitivecomputations/dolphin-mixtral-8x22b"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_72B_INSTRUCT"] = "qwen/qwen-2-72b-instruct"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3"] = "mistralai/mistral-7b-instruct-v0.3"; - E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B"] = "nousresearch/hermes-2-pro-llama-3-8b"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT"] = "mistralai/mistral-7b-instruct"; + E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B"] = "nousresearch/hermes-2-pro-llama-3-8b"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT"] = "microsoft/phi-3-mini-128k-instruct"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT"] = "microsoft/phi-3-medium-128k-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_70B"] = "neversleep/llama-3-lumimaid-70b"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_FLASH_1_5"] = "google/gemini-flash-1.5"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_2_8B"] = "meta-llama/llama-guard-2-8b"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_05_13"] = "openai/gpt-4o-2024-05-13"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O"] = "openai/gpt-4o"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_EXTENDED"] = "openai/gpt-4o:extended"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_05_13"] = "openai/gpt-4o-2024-05-13"; - E_OPENROUTER_MODEL["MODEL_SAO10K_FIMBULVETR_11B_V2"] = "sao10k/fimbulvetr-11b-v2"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_2_8B"] = "meta-llama/llama-guard-2-8b"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT"] = "meta-llama/llama-3-70b-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT"] = "meta-llama/llama-3-8b-instruct"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT"] = "mistralai/mixtral-8x22b-instruct"; @@ -288,24 +286,22 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS"] = "cohere/command-r-plus"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS_04_2024"] = "cohere/command-r-plus-04-2024"; E_OPENROUTER_MODEL["MODEL_SOPHOSYMPATHEIA_MIDNIGHT_ROSE_70B"] = "sophosympatheia/midnight-rose-70b"; - E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND"] = "cohere/command"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R"] = "cohere/command-r"; + E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND"] = "cohere/command"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_HAIKU_BETA"] = "anthropic/claude-3-haiku:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_HAIKU"] = "anthropic/claude-3-haiku"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_SONNET"] = "anthropic/claude-3-sonnet"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_OPUS_BETA"] = "anthropic/claude-3-opus:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_OPUS"] = "anthropic/claude-3-opus"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_03_2024"] = "cohere/command-r-03-2024"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE"] = "mistralai/mistral-large"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_TURBO_PREVIEW"] = "openai/gpt-4-turbo-preview"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_3_5_TURBO_0613"] = "openai/gpt-3.5-turbo-0613"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_TURBO_PREVIEW"] = "openai/gpt-4-turbo-preview"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_NOUS_HERMES_2_MIXTRAL_8X7B_DPO"] = "nousresearch/nous-hermes-2-mixtral-8x7b-dpo"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL"] = "mistralai/mistral-small"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_TINY"] = "mistralai/mistral-tiny"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_2"] = "mistralai/mistral-7b-instruct-v0.2"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT"] = "mistralai/mixtral-8x7b-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_NOROMAID_20B"] = "neversleep/noromaid-20b"; - E_OPENROUTER_MODEL["MODEL_UNDI95_TOPPY_M_7B"] = "undi95/toppy-m-7b"; E_OPENROUTER_MODEL["MODEL_ALPINDALE_GOLIATH_120B"] = "alpindale/goliath-120b"; E_OPENROUTER_MODEL["MODEL_OPENROUTER_AUTO"] = "openrouter/auto"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_1106_PREVIEW"] = "openai/gpt-4-1106-preview"; @@ -316,8 +312,8 @@ export var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MANCER_WEAVER"] = "mancer/weaver"; E_OPENROUTER_MODEL["MODEL_UNDI95_REMM_SLERP_L2_13B"] = "undi95/remm-slerp-l2-13b"; E_OPENROUTER_MODEL["MODEL_GRYPHE_MYTHOMAX_L2_13B"] = "gryphe/mythomax-l2-13b"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_0314"] = "openai/gpt-4-0314"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_3_5_TURBO"] = "openai/gpt-3.5-turbo"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_0314"] = "openai/gpt-4-0314"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4"] = "openai/gpt-4"; })(E_OPENROUTER_MODEL || (E_OPENROUTER_MODEL = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2NhY2hlL29wZW5yb3V0ZXItbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGtCQWdVWDtBQWhVRCxXQUFZLGtCQUFrQjtJQUM1QixxR0FBK0UsQ0FBQTtJQUMvRSw2REFBdUMsQ0FBQTtJQUN2QywyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwySkFBcUksQ0FBQTtJQUNySSx1REFBaUMsQ0FBQTtJQUNqQyx1RkFBaUUsQ0FBQTtJQUNqRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx5RUFBbUQsQ0FBQTtJQUNuRCx1RUFBaUQsQ0FBQTtJQUNqRCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCxtRUFBNkMsQ0FBQTtJQUM3Qyw2REFBdUMsQ0FBQTtJQUN2QywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixxRUFBK0MsQ0FBQTtJQUMvQyxxSEFBK0YsQ0FBQTtJQUMvRiwrRUFBeUQsQ0FBQTtJQUN6RCwyRUFBcUQsQ0FBQTtJQUNyRCx5RkFBbUUsQ0FBQTtJQUNuRSwyREFBcUMsQ0FBQTtJQUNyQyxpRUFBMkMsQ0FBQTtJQUMzQyx1REFBaUMsQ0FBQTtJQUNqQyw2RkFBdUUsQ0FBQTtJQUN2RSwrRkFBeUUsQ0FBQTtJQUN6RSxpSEFBMkYsQ0FBQTtJQUMzRiwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRiwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCw2RUFBdUQsQ0FBQTtJQUN2RCxtRUFBNkMsQ0FBQTtJQUM3QyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxtRUFBNkMsQ0FBQTtJQUM3QywySEFBcUcsQ0FBQTtJQUNyRyxxRkFBK0QsQ0FBQTtJQUMvRCx1R0FBaUYsQ0FBQTtJQUNqRixxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCx1RkFBaUUsQ0FBQTtJQUNqRSx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRUFBK0MsQ0FBQTtJQUMvQywyREFBcUMsQ0FBQTtJQUNyQyx1RUFBaUQsQ0FBQTtJQUNqRCw2REFBdUMsQ0FBQTtJQUN2Qyw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtR0FBNkUsQ0FBQTtJQUM3RSxpRkFBMkQsQ0FBQTtJQUMzRCx1RUFBaUQsQ0FBQTtJQUNqRCwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyx5RUFBbUQsQ0FBQTtJQUNuRCwrREFBeUMsQ0FBQTtJQUN6Qyx1RUFBaUQsQ0FBQTtJQUNqRCxtREFBNkIsQ0FBQTtJQUM3Qiw2REFBdUMsQ0FBQTtJQUN2Qyx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSw2REFBdUMsQ0FBQTtJQUN2Qyx1RUFBaUQsQ0FBQTtJQUNqRCx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3RixtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyw2R0FBdUYsQ0FBQTtJQUN2Rix5SEFBbUcsQ0FBQTtJQUNuRywrR0FBeUYsQ0FBQTtJQUN6Rix1RkFBaUUsQ0FBQTtJQUNqRSxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRiwrRkFBeUUsQ0FBQTtJQUN6RSxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx1RkFBaUUsQ0FBQTtJQUNqRSwyREFBcUMsQ0FBQTtJQUNyQywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCx5RUFBbUQsQ0FBQTtJQUNuRCx1RUFBaUQsQ0FBQTtJQUNqRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCx1RUFBaUQsQ0FBQTtJQUNqRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtSUFBNkcsQ0FBQTtJQUM3RyxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSx5R0FBbUYsQ0FBQTtJQUNuRixpR0FBMkUsQ0FBQTtJQUMzRSxxRUFBK0MsQ0FBQTtJQUMvQyw2RUFBdUQsQ0FBQTtJQUN2RCx5SUFBbUgsQ0FBQTtJQUNuSCwrSEFBeUcsQ0FBQTtJQUN6RyxtSUFBNkcsQ0FBQTtJQUM3Ryx1RkFBaUUsQ0FBQTtJQUNqRSx1RUFBaUQsQ0FBQTtJQUNqRCwyR0FBcUYsQ0FBQTtJQUNyRix1RkFBaUUsQ0FBQTtJQUNqRSxtRUFBNkMsQ0FBQTtJQUM3QyxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCw2RkFBdUUsQ0FBQTtJQUN2RSxpRUFBMkMsQ0FBQTtJQUMzQywrREFBeUMsQ0FBQTtJQUN6QyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QywyREFBcUMsQ0FBQTtJQUNyQyw2REFBdUMsQ0FBQTtJQUN2Qyw2R0FBdUYsQ0FBQTtJQUN2Riw2SEFBdUcsQ0FBQTtJQUN2RyxtSEFBNkYsQ0FBQTtJQUM3RiwyR0FBcUYsQ0FBQTtJQUNyRixxSEFBK0YsQ0FBQTtJQUMvRiwyR0FBcUYsQ0FBQTtJQUNyRixxRkFBK0QsQ0FBQTtJQUMvRCxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQywyREFBcUMsQ0FBQTtJQUNyQyx1SEFBaUcsQ0FBQTtJQUNqRyw2R0FBdUYsQ0FBQTtJQUN2RixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyxpRkFBMkQsQ0FBQTtJQUMzRCwrREFBeUMsQ0FBQTtJQUN6Qyw2RUFBdUQsQ0FBQTtJQUN2RCwrRUFBeUQsQ0FBQTtJQUN6RCxtREFBNkIsQ0FBQTtJQUM3QiwrRUFBeUQsQ0FBQTtJQUN6RCxpRUFBMkMsQ0FBQTtJQUMzQyxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2R0FBdUYsQ0FBQTtJQUN2RixtR0FBNkUsQ0FBQTtJQUM3RSx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyx5RUFBbUQsQ0FBQTtJQUNuRCx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpSEFBMkYsQ0FBQTtJQUMzRix1R0FBaUYsQ0FBQTtJQUNqRix5RkFBbUUsQ0FBQTtJQUNuRSxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCw2RUFBdUQsQ0FBQTtJQUN2RCxtRkFBNkQsQ0FBQTtJQUM3RCw2R0FBdUYsQ0FBQTtJQUN2RixxRkFBK0QsQ0FBQTtJQUMvRCx5R0FBbUYsQ0FBQTtJQUNuRixxRkFBK0QsQ0FBQTtJQUMvRCx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCw2REFBdUMsQ0FBQTtJQUN2QywyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSxpR0FBMkUsQ0FBQTtJQUMzRSwySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixpSEFBMkYsQ0FBQTtJQUMzRiwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSx5RkFBbUUsQ0FBQTtJQUNuRSxtRkFBNkQsQ0FBQTtJQUM3RCxtRUFBNkMsQ0FBQTtJQUM3Qyw2REFBdUMsQ0FBQTtJQUN2QywyRUFBcUQsQ0FBQTtJQUNyRCxpRkFBMkQsQ0FBQTtJQUMzRCwyRkFBcUUsQ0FBQTtJQUNyRSx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCx5R0FBbUYsQ0FBQTtJQUNuRix1R0FBaUYsQ0FBQTtJQUNqRix5R0FBbUYsQ0FBQTtJQUNuRixpRkFBMkQsQ0FBQTtJQUMzRCx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxtR0FBNkUsQ0FBQTtJQUM3RSxpR0FBMkUsQ0FBQTtJQUMzRSwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxxRUFBK0MsQ0FBQTtJQUMvQywyRkFBcUUsQ0FBQTtJQUNyRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCw2REFBdUMsQ0FBQTtJQUN2QyxtSEFBNkYsQ0FBQTtJQUM3Rix5R0FBbUYsQ0FBQTtJQUNuRiwyRUFBcUQsQ0FBQTtJQUNyRCx1SEFBaUcsQ0FBQTtJQUNqRyxpRkFBMkQsQ0FBQTtJQUMzRCxxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRixxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCx1RkFBaUUsQ0FBQTtJQUNqRSwyREFBcUMsQ0FBQTtJQUNyQyw2RUFBdUQsQ0FBQTtJQUN2RCxpRkFBMkQsQ0FBQTtJQUMzRCxpRkFBMkQsQ0FBQTtJQUMzRCwrRkFBeUUsQ0FBQTtJQUN6RSw2RkFBdUUsQ0FBQTtJQUN2RSxpR0FBMkUsQ0FBQTtJQUMzRSxxRkFBK0QsQ0FBQTtJQUMvRCxxRUFBK0MsQ0FBQTtJQUMvQywyRUFBcUQsQ0FBQTtJQUNyRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtR0FBNkUsQ0FBQTtJQUM3RSw2REFBdUMsQ0FBQTtJQUN2QyxpRUFBMkMsQ0FBQTtJQUMzQywyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCxxRkFBK0QsQ0FBQTtJQUMvRCxtRkFBNkQsQ0FBQTtJQUM3RCx1SEFBaUcsQ0FBQTtJQUNqRywrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCxxR0FBK0UsQ0FBQTtJQUMvRSwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCxtRUFBNkMsQ0FBQTtJQUM3Qyw2RUFBdUQsQ0FBQTtJQUN2RCwrREFBeUMsQ0FBQTtJQUN6QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyxpRkFBMkQsQ0FBQTtJQUMzRCw2RUFBdUQsQ0FBQTtJQUN2RCxtRUFBNkMsQ0FBQTtJQUM3Qyx5RUFBbUQsQ0FBQTtJQUNuRCx5REFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBaFVXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFnVTdCIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2NhY2hlL29wZW5yb3V0ZXItbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGtCQTRUWDtBQTVURCxXQUFZLGtCQUFrQjtJQUM1QixtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtRUFBNkMsQ0FBQTtJQUM3QyxtRUFBNkMsQ0FBQTtJQUM3Qyx1RUFBaUQsQ0FBQTtJQUNqRCwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCxpR0FBMkUsQ0FBQTtJQUMzRSx5REFBbUMsQ0FBQTtJQUNuQywyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxxR0FBK0UsQ0FBQTtJQUMvRSw2REFBdUMsQ0FBQTtJQUN2QyxpRUFBMkMsQ0FBQTtJQUMzQyxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSxtRkFBNkQsQ0FBQTtJQUM3RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwySkFBcUksQ0FBQTtJQUNySSx1REFBaUMsQ0FBQTtJQUNqQyx1RkFBaUUsQ0FBQTtJQUNqRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSx5RUFBbUQsQ0FBQTtJQUNuRCx1RUFBaUQsQ0FBQTtJQUNqRCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCxtRUFBNkMsQ0FBQTtJQUM3QywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixxRUFBK0MsQ0FBQTtJQUMvQyxxSEFBK0YsQ0FBQTtJQUMvRiwrRUFBeUQsQ0FBQTtJQUN6RCwyRUFBcUQsQ0FBQTtJQUNyRCx5RkFBbUUsQ0FBQTtJQUNuRSwyREFBcUMsQ0FBQTtJQUNyQyxpRUFBMkMsQ0FBQTtJQUMzQyx1REFBaUMsQ0FBQTtJQUNqQyw2RkFBdUUsQ0FBQTtJQUN2RSwrRkFBeUUsQ0FBQTtJQUN6RSxpSEFBMkYsQ0FBQTtJQUMzRiwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRiwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCw2RUFBdUQsQ0FBQTtJQUN2RCxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxtRUFBNkMsQ0FBQTtJQUM3QywySEFBcUcsQ0FBQTtJQUNyRyxxRkFBK0QsQ0FBQTtJQUMvRCx1R0FBaUYsQ0FBQTtJQUNqRixxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCx1RkFBaUUsQ0FBQTtJQUNqRSx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRUFBK0MsQ0FBQTtJQUMvQywyREFBcUMsQ0FBQTtJQUNyQyx1RUFBaUQsQ0FBQTtJQUNqRCw2REFBdUMsQ0FBQTtJQUN2Qyw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCx1RUFBaUQsQ0FBQTtJQUNqRCwyRUFBcUQsQ0FBQTtJQUNyRCwrREFBeUMsQ0FBQTtJQUN6Qyx1RUFBaUQsQ0FBQTtJQUNqRCxtREFBNkIsQ0FBQTtJQUM3Qiw2REFBdUMsQ0FBQTtJQUN2Qyx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSw2REFBdUMsQ0FBQTtJQUN2Qyx1RUFBaUQsQ0FBQTtJQUNqRCx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3RixtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyw2R0FBdUYsQ0FBQTtJQUN2Rix5SEFBbUcsQ0FBQTtJQUNuRywrR0FBeUYsQ0FBQTtJQUN6Rix1RkFBaUUsQ0FBQTtJQUNqRSxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRiwrRkFBeUUsQ0FBQTtJQUN6RSxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx1RkFBaUUsQ0FBQTtJQUNqRSwyREFBcUMsQ0FBQTtJQUNyQywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtSUFBNkcsQ0FBQTtJQUM3RyxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSx5R0FBbUYsQ0FBQTtJQUNuRixpR0FBMkUsQ0FBQTtJQUMzRSxxRUFBK0MsQ0FBQTtJQUMvQyw2RUFBdUQsQ0FBQTtJQUN2RCx5SUFBbUgsQ0FBQTtJQUNuSCwrSEFBeUcsQ0FBQTtJQUN6RyxtSUFBNkcsQ0FBQTtJQUM3Ryx5SEFBbUcsQ0FBQTtJQUNuRyx1RkFBaUUsQ0FBQTtJQUNqRSx1RUFBaUQsQ0FBQTtJQUNqRCwyR0FBcUYsQ0FBQTtJQUNyRix1RkFBaUUsQ0FBQTtJQUNqRSxtRUFBNkMsQ0FBQTtJQUM3QyxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCw2RkFBdUUsQ0FBQTtJQUN2RSxpRUFBMkMsQ0FBQTtJQUMzQywrREFBeUMsQ0FBQTtJQUN6QyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QywyREFBcUMsQ0FBQTtJQUNyQyw2REFBdUMsQ0FBQTtJQUN2Qyw2R0FBdUYsQ0FBQTtJQUN2Riw2SEFBdUcsQ0FBQTtJQUN2RyxtSEFBNkYsQ0FBQTtJQUM3RiwyR0FBcUYsQ0FBQTtJQUNyRixxSEFBK0YsQ0FBQTtJQUMvRiwyR0FBcUYsQ0FBQTtJQUNyRixxRkFBK0QsQ0FBQTtJQUMvRCxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQywyREFBcUMsQ0FBQTtJQUNyQyx1SEFBaUcsQ0FBQTtJQUNqRyw2R0FBdUYsQ0FBQTtJQUN2RixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyxpRkFBMkQsQ0FBQTtJQUMzRCwrREFBeUMsQ0FBQTtJQUN6Qyw2RUFBdUQsQ0FBQTtJQUN2RCwrRUFBeUQsQ0FBQTtJQUN6RCxtREFBNkIsQ0FBQTtJQUM3QiwrRUFBeUQsQ0FBQTtJQUN6RCxpRUFBMkMsQ0FBQTtJQUMzQyxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2R0FBdUYsQ0FBQTtJQUN2RixtR0FBNkUsQ0FBQTtJQUM3RSx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCx5RkFBbUUsQ0FBQTtJQUNuRSxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCw2RUFBdUQsQ0FBQTtJQUN2RCxtRkFBNkQsQ0FBQTtJQUM3RCw2R0FBdUYsQ0FBQTtJQUN2Rix5R0FBbUYsQ0FBQTtJQUNuRixxRkFBK0QsQ0FBQTtJQUMvRCxxRkFBK0QsQ0FBQTtJQUMvRCxpRkFBMkQsQ0FBQTtJQUMzRCw2REFBdUMsQ0FBQTtJQUN2Qyx5RkFBbUUsQ0FBQTtJQUNuRSwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixpSEFBMkYsQ0FBQTtJQUMzRixpR0FBMkUsQ0FBQTtJQUMzRSwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RkFBbUUsQ0FBQTtJQUNuRSx5R0FBbUYsQ0FBQTtJQUNuRix1R0FBaUYsQ0FBQTtJQUNqRix5R0FBbUYsQ0FBQTtJQUNuRixpRkFBMkQsQ0FBQTtJQUMzRCx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSxpR0FBMkUsQ0FBQTtJQUMzRSxtR0FBNkUsQ0FBQTtJQUM3RSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxxRUFBK0MsQ0FBQTtJQUMvQywyRkFBcUUsQ0FBQTtJQUNyRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3Rix5R0FBbUYsQ0FBQTtJQUNuRiwyRUFBcUQsQ0FBQTtJQUNyRCx1SEFBaUcsQ0FBQTtJQUNqRyxpRkFBMkQsQ0FBQTtJQUMzRCxxR0FBK0UsQ0FBQTtJQUMvRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRixxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyw2RUFBdUQsQ0FBQTtJQUN2RCx1RkFBaUUsQ0FBQTtJQUNqRSwrRkFBeUUsQ0FBQTtJQUN6RSw2RkFBdUUsQ0FBQTtJQUN2RSxpR0FBMkUsQ0FBQTtJQUMzRSxxRkFBK0QsQ0FBQTtJQUMvRCxxRUFBK0MsQ0FBQTtJQUMvQywyRUFBcUQsQ0FBQTtJQUNyRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtR0FBNkUsQ0FBQTtJQUM3RSxpRUFBMkMsQ0FBQTtJQUMzQyw2REFBdUMsQ0FBQTtJQUN2QywyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCx1SEFBaUcsQ0FBQTtJQUNqRywrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCxxR0FBK0UsQ0FBQTtJQUMvRSwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCwrREFBeUMsQ0FBQTtJQUN6QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyxpRkFBMkQsQ0FBQTtJQUMzRCw2RUFBdUQsQ0FBQTtJQUN2RCx5RUFBbUQsQ0FBQTtJQUNuRCxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBNVRXLGtCQUFrQixLQUFsQixrQkFBa0IsUUE0VDdCIn0= \ No newline at end of file diff --git a/packages/kbot/dist-in/source.js b/packages/kbot/dist-in/source.js index c67c2f29..4d9c1592 100644 --- a/packages/kbot/dist-in/source.js +++ b/packages/kbot/dist-in/source.js @@ -71,7 +71,7 @@ include = [], options) { ROUTER: options.router || 'unknown_router' }; const potentialDstPath = path.resolve(resolvePath(options.dst, false, fullVarsForDst)); - if (exists(potentialDstPath)) { + if (exists(potentialDstPath) && options.append !== 'replace') { options.logger?.info(`Skipping source file ${path.relative(projectPath, absoluteSrcFilePath)} as output ${potentialDstPath} already exists.`); } else { @@ -151,4 +151,4 @@ export async function vectorize(file, options) { throw error; } } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUU3Qix3RkFBd0Y7QUFFeEYsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUEsQ0FBQyw2QkFBNkI7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbURBQW1EO0FBQ3JJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxzREFBc0Q7QUFDdEQsbUZBQW1GO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBLENBQUMsMkJBQTJCO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQSxDQUFDLCtCQUErQjtBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUEsQ0FBQyw4QkFBOEI7QUFFdkU7OztHQUdHO0FBRUgsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxrRUFBa0U7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFXLEVBQUU7SUFDekUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVks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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUU3Qix3RkFBd0Y7QUFFeEYsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUEsQ0FBQyw2QkFBNkI7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbURBQW1EO0FBQ3JJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxzREFBc0Q7QUFDdEQsbUZBQW1GO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBLENBQUMsMkJBQTJCO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQSxDQUFDLCtCQUErQjtBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUEsQ0FBQyw4QkFBOEI7QUFFdkU7OztHQUdHO0FBRUgsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxrRUFBa0U7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFXLEVBQUU7SUFDekUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLHNHQUFzRztJQUN0RyxnRUFBZ0U7SUFDaEUseUZBQXlGO0lBQ3pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsb0NBQW9DO0lBQ2xGLE9BQU8sT0FBTyxDQUNaLFFBQVE7UUFDUixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUN0QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsUUFBZ0IsRUFBaUIsRUFBRTtJQUN4RCxJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsT0FBTyxRQUFRLFFBQVEsV0FBVyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBZSxFQUFvQyxFQUFFO0lBQzFFLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQzlCLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsNkNBQTZDO0FBRTdDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsR0FBRyxDQUN2QixXQUFtQixFQUFFLHFFQUFxRTtBQUMxRixVQUFvQixFQUFFLEVBQ3RCLE9BQWtCO0lBRWxCLE1BQU0sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUV6RyxJQUFJLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztJQUU5QywyRUFBMkU7SUFDM0UsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25GLE1BQU0sd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqRCw0RUFBNEU7WUFDNUUsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDMUUsTUFBTSxjQUFjLEdBQUc7Z0JBQ3JCLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSx5Q0FBeUM7Z0JBQy9ELEdBQUcsZ0JBQWdCLEVBQUcsMEJBQTBCO2dCQUNoRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlO2dCQUN2RSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxnQkFBZ0I7YUFDM0MsQ0FBQTtZQUNELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdELE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLGdCQUFnQixrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hKLENBQUM7aUJBQU0sQ0FBQztnQkFDTix3QkFBd0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0gsQ0FBQztRQUNELGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsZ0NBQWdDO0lBRWhDLHFEQUFxRDtJQUNyRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDbEQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUEsQ0FBQyw2REFBNkQ7WUFDdEksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxZQUFZLENBQUEsQ0FBQywwQkFBMEI7Z0JBQzVFLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDeEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBLENBQUMsOENBQThDO2dCQUM5RixDQUFDO2dCQUNELG9EQUFvRDtnQkFDcEQsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUE7WUFDekYsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixRQUFRLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN0RCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLG1DQUFtQztJQUNuQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDbkUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXJELDZCQUE2QjtJQUM3QixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDMUUsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQVksRUFBRSxPQUFrQjtJQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUM1QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLHdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDN0csQ0FBQztJQUVELElBQUksQ0FBQztRQUNILHdCQUF3QjtRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUMzRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsOEJBQThCO1FBQzlCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUMxRSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDcEIsQ0FBQyxDQUFBO1FBRUYsMEVBQTBFO1FBQzFFLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxZQUFZLENBQUE7UUFDcEMsTUFBTSxRQUFRLEdBQUc7WUFDZixhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDN0IsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDO1NBQ3pCLENBQUE7UUFFRCwwQkFBMEI7UUFDMUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFN0QsT0FBTyxXQUFXLENBQUMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDeEQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyJ9 \ No newline at end of file diff --git a/packages/kbot/dist-in/src/models/cache/openai.ts b/packages/kbot/dist-in/src/models/cache/openai.ts index 0b347100..e9bc2430 100644 --- a/packages/kbot/dist-in/src/models/cache/openai.ts +++ b/packages/kbot/dist-in/src/models/cache/openai.ts @@ -1 +1 @@ -export const models = [{"id":"gpt-4-0613","object":"model","created":1686588896,"owned_by":"openai"},{"id":"gpt-4","object":"model","created":1687882411,"owned_by":"openai"},{"id":"gpt-3.5-turbo","object":"model","created":1677610602,"owned_by":"openai"},{"id":"o4-mini-deep-research-2025-06-26","object":"model","created":1750866121,"owned_by":"system"},{"id":"codex-mini-latest","object":"model","created":1746673257,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2025-06-03","object":"model","created":1748907838,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2025-06-03","object":"model","created":1748908498,"owned_by":"system"},{"id":"o4-mini-deep-research","object":"model","created":1749685485,"owned_by":"system"},{"id":"davinci-002","object":"model","created":1692634301,"owned_by":"system"},{"id":"babbage-002","object":"model","created":1692634615,"owned_by":"system"},{"id":"gpt-3.5-turbo-instruct","object":"model","created":1692901427,"owned_by":"system"},{"id":"gpt-3.5-turbo-instruct-0914","object":"model","created":1694122472,"owned_by":"system"},{"id":"dall-e-3","object":"model","created":1698785189,"owned_by":"system"},{"id":"dall-e-2","object":"model","created":1698798177,"owned_by":"system"},{"id":"gpt-4-1106-preview","object":"model","created":1698957206,"owned_by":"system"},{"id":"gpt-3.5-turbo-1106","object":"model","created":1698959748,"owned_by":"system"},{"id":"tts-1-hd","object":"model","created":1699046015,"owned_by":"system"},{"id":"tts-1-1106","object":"model","created":1699053241,"owned_by":"system"},{"id":"tts-1-hd-1106","object":"model","created":1699053533,"owned_by":"system"},{"id":"text-embedding-3-small","object":"model","created":1705948997,"owned_by":"system"},{"id":"text-embedding-3-large","object":"model","created":1705953180,"owned_by":"system"},{"id":"gpt-4-0125-preview","object":"model","created":1706037612,"owned_by":"system"},{"id":"gpt-4-turbo-preview","object":"model","created":1706037777,"owned_by":"system"},{"id":"gpt-3.5-turbo-0125","object":"model","created":1706048358,"owned_by":"system"},{"id":"gpt-4-turbo","object":"model","created":1712361441,"owned_by":"system"},{"id":"gpt-4-turbo-2024-04-09","object":"model","created":1712601677,"owned_by":"system"},{"id":"gpt-4o","object":"model","created":1715367049,"owned_by":"system"},{"id":"gpt-4o-2024-05-13","object":"model","created":1715368132,"owned_by":"system"},{"id":"gpt-4o-mini-2024-07-18","object":"model","created":1721172717,"owned_by":"system"},{"id":"gpt-4o-mini","object":"model","created":1721172741,"owned_by":"system"},{"id":"gpt-4o-2024-08-06","object":"model","created":1722814719,"owned_by":"system"},{"id":"chatgpt-4o-latest","object":"model","created":1723515131,"owned_by":"system"},{"id":"o1-mini-2024-09-12","object":"model","created":1725648979,"owned_by":"system"},{"id":"o1-mini","object":"model","created":1725649008,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2024-10-01","object":"model","created":1727131766,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2024-10-01","object":"model","created":1727389042,"owned_by":"system"},{"id":"gpt-4o-audio-preview","object":"model","created":1727460443,"owned_by":"system"},{"id":"gpt-4o-realtime-preview","object":"model","created":1727659998,"owned_by":"system"},{"id":"omni-moderation-latest","object":"model","created":1731689265,"owned_by":"system"},{"id":"omni-moderation-2024-09-26","object":"model","created":1732734466,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2024-12-17","object":"model","created":1733945430,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2024-12-17","object":"model","created":1734034239,"owned_by":"system"},{"id":"gpt-4o-mini-realtime-preview-2024-12-17","object":"model","created":1734112601,"owned_by":"system"},{"id":"gpt-4o-mini-audio-preview-2024-12-17","object":"model","created":1734115920,"owned_by":"system"},{"id":"o1-2024-12-17","object":"model","created":1734326976,"owned_by":"system"},{"id":"o1","object":"model","created":1734375816,"owned_by":"system"},{"id":"gpt-4o-mini-realtime-preview","object":"model","created":1734387380,"owned_by":"system"},{"id":"gpt-4o-mini-audio-preview","object":"model","created":1734387424,"owned_by":"system"},{"id":"o3-mini","object":"model","created":1737146383,"owned_by":"system"},{"id":"o3-mini-2025-01-31","object":"model","created":1738010200,"owned_by":"system"},{"id":"gpt-4o-2024-11-20","object":"model","created":1739331543,"owned_by":"system"},{"id":"gpt-4o-search-preview-2025-03-11","object":"model","created":1741388170,"owned_by":"system"},{"id":"gpt-4o-search-preview","object":"model","created":1741388720,"owned_by":"system"},{"id":"gpt-4o-mini-search-preview-2025-03-11","object":"model","created":1741390858,"owned_by":"system"},{"id":"gpt-4o-mini-search-preview","object":"model","created":1741391161,"owned_by":"system"},{"id":"gpt-4o-transcribe","object":"model","created":1742068463,"owned_by":"system"},{"id":"gpt-4o-mini-transcribe","object":"model","created":1742068596,"owned_by":"system"},{"id":"o1-pro-2025-03-19","object":"model","created":1742251504,"owned_by":"system"},{"id":"o1-pro","object":"model","created":1742251791,"owned_by":"system"},{"id":"gpt-4o-mini-tts","object":"model","created":1742403959,"owned_by":"system"},{"id":"o4-mini-2025-04-16","object":"model","created":1744133506,"owned_by":"system"},{"id":"o4-mini","object":"model","created":1744225351,"owned_by":"system"},{"id":"gpt-4.1-2025-04-14","object":"model","created":1744315746,"owned_by":"system"},{"id":"gpt-4.1","object":"model","created":1744316542,"owned_by":"system"},{"id":"gpt-4.1-mini-2025-04-14","object":"model","created":1744317547,"owned_by":"system"},{"id":"gpt-4.1-mini","object":"model","created":1744318173,"owned_by":"system"},{"id":"gpt-4.1-nano-2025-04-14","object":"model","created":1744321025,"owned_by":"system"},{"id":"gpt-4.1-nano","object":"model","created":1744321707,"owned_by":"system"},{"id":"gpt-image-1","object":"model","created":1745517030,"owned_by":"system"},{"id":"gpt-3.5-turbo-16k","object":"model","created":1683758102,"owned_by":"openai-internal"},{"id":"tts-1","object":"model","created":1681940951,"owned_by":"openai-internal"},{"id":"whisper-1","object":"model","created":1677532384,"owned_by":"openai-internal"},{"id":"text-embedding-ada-002","object":"model","created":1671217299,"owned_by":"openai-internal"}] \ No newline at end of file +export const models = [{"id":"gpt-4-0613","object":"model","created":1686588896,"owned_by":"openai"},{"id":"gpt-4","object":"model","created":1687882411,"owned_by":"openai"},{"id":"gpt-3.5-turbo","object":"model","created":1677610602,"owned_by":"openai"},{"id":"gpt-5-nano","object":"model","created":1754426384,"owned_by":"system"},{"id":"gpt-5","object":"model","created":1754425777,"owned_by":"system"},{"id":"gpt-5-mini-2025-08-07","object":"model","created":1754425867,"owned_by":"system"},{"id":"gpt-5-mini","object":"model","created":1754425928,"owned_by":"system"},{"id":"gpt-5-nano-2025-08-07","object":"model","created":1754426303,"owned_by":"system"},{"id":"davinci-002","object":"model","created":1692634301,"owned_by":"system"},{"id":"babbage-002","object":"model","created":1692634615,"owned_by":"system"},{"id":"gpt-3.5-turbo-instruct","object":"model","created":1692901427,"owned_by":"system"},{"id":"gpt-3.5-turbo-instruct-0914","object":"model","created":1694122472,"owned_by":"system"},{"id":"dall-e-3","object":"model","created":1698785189,"owned_by":"system"},{"id":"dall-e-2","object":"model","created":1698798177,"owned_by":"system"},{"id":"gpt-4-1106-preview","object":"model","created":1698957206,"owned_by":"system"},{"id":"gpt-3.5-turbo-1106","object":"model","created":1698959748,"owned_by":"system"},{"id":"tts-1-hd","object":"model","created":1699046015,"owned_by":"system"},{"id":"tts-1-1106","object":"model","created":1699053241,"owned_by":"system"},{"id":"tts-1-hd-1106","object":"model","created":1699053533,"owned_by":"system"},{"id":"text-embedding-3-small","object":"model","created":1705948997,"owned_by":"system"},{"id":"text-embedding-3-large","object":"model","created":1705953180,"owned_by":"system"},{"id":"gpt-4-0125-preview","object":"model","created":1706037612,"owned_by":"system"},{"id":"gpt-4-turbo-preview","object":"model","created":1706037777,"owned_by":"system"},{"id":"gpt-3.5-turbo-0125","object":"model","created":1706048358,"owned_by":"system"},{"id":"gpt-4-turbo","object":"model","created":1712361441,"owned_by":"system"},{"id":"gpt-4-turbo-2024-04-09","object":"model","created":1712601677,"owned_by":"system"},{"id":"gpt-4o","object":"model","created":1715367049,"owned_by":"system"},{"id":"gpt-4o-2024-05-13","object":"model","created":1715368132,"owned_by":"system"},{"id":"gpt-4o-mini-2024-07-18","object":"model","created":1721172717,"owned_by":"system"},{"id":"gpt-4o-mini","object":"model","created":1721172741,"owned_by":"system"},{"id":"gpt-4o-2024-08-06","object":"model","created":1722814719,"owned_by":"system"},{"id":"chatgpt-4o-latest","object":"model","created":1723515131,"owned_by":"system"},{"id":"o1-mini-2024-09-12","object":"model","created":1725648979,"owned_by":"system"},{"id":"o1-mini","object":"model","created":1725649008,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2024-10-01","object":"model","created":1727131766,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2024-10-01","object":"model","created":1727389042,"owned_by":"system"},{"id":"gpt-4o-audio-preview","object":"model","created":1727460443,"owned_by":"system"},{"id":"gpt-4o-realtime-preview","object":"model","created":1727659998,"owned_by":"system"},{"id":"omni-moderation-latest","object":"model","created":1731689265,"owned_by":"system"},{"id":"omni-moderation-2024-09-26","object":"model","created":1732734466,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2024-12-17","object":"model","created":1733945430,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2024-12-17","object":"model","created":1734034239,"owned_by":"system"},{"id":"gpt-4o-mini-realtime-preview-2024-12-17","object":"model","created":1734112601,"owned_by":"system"},{"id":"gpt-4o-mini-audio-preview-2024-12-17","object":"model","created":1734115920,"owned_by":"system"},{"id":"o1-2024-12-17","object":"model","created":1734326976,"owned_by":"system"},{"id":"o1","object":"model","created":1734375816,"owned_by":"system"},{"id":"gpt-4o-mini-realtime-preview","object":"model","created":1734387380,"owned_by":"system"},{"id":"gpt-4o-mini-audio-preview","object":"model","created":1734387424,"owned_by":"system"},{"id":"o3-mini","object":"model","created":1737146383,"owned_by":"system"},{"id":"o3-mini-2025-01-31","object":"model","created":1738010200,"owned_by":"system"},{"id":"gpt-4o-2024-11-20","object":"model","created":1739331543,"owned_by":"system"},{"id":"gpt-4o-search-preview-2025-03-11","object":"model","created":1741388170,"owned_by":"system"},{"id":"gpt-4o-search-preview","object":"model","created":1741388720,"owned_by":"system"},{"id":"gpt-4o-mini-search-preview-2025-03-11","object":"model","created":1741390858,"owned_by":"system"},{"id":"gpt-4o-mini-search-preview","object":"model","created":1741391161,"owned_by":"system"},{"id":"gpt-4o-transcribe","object":"model","created":1742068463,"owned_by":"system"},{"id":"gpt-4o-mini-transcribe","object":"model","created":1742068596,"owned_by":"system"},{"id":"o1-pro-2025-03-19","object":"model","created":1742251504,"owned_by":"system"},{"id":"o1-pro","object":"model","created":1742251791,"owned_by":"system"},{"id":"gpt-4o-mini-tts","object":"model","created":1742403959,"owned_by":"system"},{"id":"o3-2025-04-16","object":"model","created":1744133301,"owned_by":"system"},{"id":"o4-mini-2025-04-16","object":"model","created":1744133506,"owned_by":"system"},{"id":"o3","object":"model","created":1744225308,"owned_by":"system"},{"id":"o4-mini","object":"model","created":1744225351,"owned_by":"system"},{"id":"gpt-4.1-2025-04-14","object":"model","created":1744315746,"owned_by":"system"},{"id":"gpt-4.1","object":"model","created":1744316542,"owned_by":"system"},{"id":"gpt-4.1-mini-2025-04-14","object":"model","created":1744317547,"owned_by":"system"},{"id":"gpt-4.1-mini","object":"model","created":1744318173,"owned_by":"system"},{"id":"gpt-4.1-nano-2025-04-14","object":"model","created":1744321025,"owned_by":"system"},{"id":"gpt-4.1-nano","object":"model","created":1744321707,"owned_by":"system"},{"id":"gpt-image-1","object":"model","created":1745517030,"owned_by":"system"},{"id":"codex-mini-latest","object":"model","created":1746673257,"owned_by":"system"},{"id":"gpt-4o-realtime-preview-2025-06-03","object":"model","created":1748907838,"owned_by":"system"},{"id":"gpt-4o-audio-preview-2025-06-03","object":"model","created":1748908498,"owned_by":"system"},{"id":"o4-mini-deep-research","object":"model","created":1749685485,"owned_by":"system"},{"id":"o4-mini-deep-research-2025-06-26","object":"model","created":1750866121,"owned_by":"system"},{"id":"gpt-5-chat-latest","object":"model","created":1754073306,"owned_by":"system"},{"id":"gpt-5-2025-08-07","object":"model","created":1754075360,"owned_by":"system"},{"id":"gpt-3.5-turbo-16k","object":"model","created":1683758102,"owned_by":"openai-internal"},{"id":"tts-1","object":"model","created":1681940951,"owned_by":"openai-internal"},{"id":"whisper-1","object":"model","created":1677532384,"owned_by":"openai-internal"},{"id":"text-embedding-ada-002","object":"model","created":1671217299,"owned_by":"openai-internal"}] \ No newline at end of file diff --git a/packages/kbot/dist-in/src/models/cache/openrouter.ts b/packages/kbot/dist-in/src/models/cache/openrouter.ts index fbb85f7f..1b047d9c 100644 --- a/packages/kbot/dist-in/src/models/cache/openrouter.ts +++ b/packages/kbot/dist-in/src/models/cache/openrouter.ts @@ -1 +1 @@ -export const models = [{"id":"openai/gpt-oss-120b","name":"OpenAI: GPT OSS 120B","pricing":{"prompt":"0.0000001","completion":"0.0000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754414231,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-oss-20b","name":"OpenAI: GPT OSS 20B","pricing":{"prompt":"0.00000005","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754414229,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1754411591,"top_provider":{"context_length":200000,"max_completion_tokens":32000,"is_moderated":true}},{"id":"openrouter/horizon-beta","name":"Horizon Beta","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754089419,"top_provider":{"context_length":256000,"max_completion_tokens":128000,"is_moderated":false}},{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","pricing":{"prompt":"0.0000003","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754079630,"top_provider":{"context_length":256000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","pricing":{"prompt":"0.0000002","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753806965,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"z-ai/glm-4.5","name":"Z.AI: GLM 4.5","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753471347,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4.5-air:free","name":"Z.AI: GLM 4.5 Air (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753471258,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4.5-air","name":"Z.AI: GLM 4.5 Air","pricing":{"prompt":"0.0000002","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003"},"created":1753471258,"top_provider":{"context_length":128000,"max_completion_tokens":96000,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","pricing":{"prompt":"0.000000077968332","completion":"0.00000031202496","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753449557,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4-32b","name":"Z.AI: GLM 4 32B ","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753376617,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder ","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753230546,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"bytedance/ui-tars-1.5-7b","name":"Bytedance: UI-TARS 7B ","pricing":{"prompt":"0.0000001","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753205056,"top_provider":{"context_length":128000,"max_completion_tokens":2048,"is_moderated":false}},{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1753200276,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","pricing":{"prompt":"0.000000077968332","completion":"0.00000031202496","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753119555,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"switchpoint/router","name":"Switchpoint Router","pricing":{"prompt":"0.00000085","completion":"0.0000034","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752272899,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-k2:free","name":"MoonshotAI: Kimi K2 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752263252,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2","pricing":{"prompt":"0.00000014","completion":"0.00000249","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752263252,"top_provider":{"context_length":63000,"max_completion_tokens":63000,"is_moderated":false}},{"id":"thudm/glm-4.1v-9b-thinking","name":"THUDM: GLM 4.1V 9B Thinking","pricing":{"prompt":"0.000000035","completion":"0.000000138","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752244385,"top_provider":{"context_length":65536,"max_completion_tokens":8000,"is_moderated":false}},{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752161321,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","pricing":{"prompt":"0.00000007","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752160751,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Venice: Uncensored (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752094966,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-4","name":"xAI: Grok 4","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1752087689,"top_provider":{"context_length":256000,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3n-e2b-it:free","name":"Google: Gemma 3n 2B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752074904,"top_provider":{"context_length":8192,"max_completion_tokens":2048,"is_moderated":false}},{"id":"tencent/hunyuan-a13b-instruct:free","name":"Tencent: Hunyuan A13B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751987664,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","pricing":{"prompt":"0.00000003","completion":"0.00000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751987664,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"tngtech/deepseek-r1t2-chimera:free","name":"TNG: DeepSeek R1T2 Chimera (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751986985,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","pricing":{"prompt":"0.0000009","completion":"0.0000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751910858,"top_provider":{"context_length":81920,"max_completion_tokens":38000,"is_moderated":false}},{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","pricing":{"prompt":"0.0000009","completion":"0.0000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751910002,"top_provider":{"context_length":81920,"max_completion_tokens":38000,"is_moderated":false}},{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","pricing":{"prompt":"0.00000028","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751300139,"top_provider":{"context_length":123000,"max_completion_tokens":12000,"is_moderated":false}},{"id":"thedrummer/anubis-70b-v1.1","name":"TheDrummer: Anubis 70B V1.1","pricing":{"prompt":"0.0000004","completion":"0.0000007","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751208347,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"inception/mercury","name":"Inception: Mercury","pricing":{"prompt":"0.00000025","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750973026,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-small-3.2-24b-instruct:free","name":"Mistral: Mistral Small 3.2 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750443016,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750443016,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","pricing":{"prompt":"0.0000003","completion":"0.00000165","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750200414,"top_provider":{"context_length":1000000,"max_completion_tokens":40000,"is_moderated":false}},{"id":"google/gemini-2.5-flash-lite-preview-06-17","name":"Google: Gemini 2.5 Flash Lite Preview 06-17","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1750173831,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","pricing":{"prompt":"0.0000003","completion":"0.0000025","request":"0","image":"0.001238","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075","input_cache_write":"0.0000003833"},"created":1750172488,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1750169544,"top_provider":{"context_length":1048576,"max_completion_tokens":65536,"is_moderated":false}},{"id":"moonshotai/kimi-dev-72b:free","name":"Kimi Dev 72b (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750115909,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","pricing":{"prompt":"0.00002","completion":"0.00008","request":"0","image":"0.0153","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749598352,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","pricing":{"prompt":"0.0000003","completion":"0.0000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1749583245,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3","name":"xAI: Grok 3","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1749582908,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/magistral-small-2506","name":"Mistral: Magistral Small 2506","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749569561,"top_provider":{"context_length":40000,"max_completion_tokens":40000,"is_moderated":false}},{"id":"mistralai/magistral-medium-2506","name":"Mistral: Magistral Medium 2506","pricing":{"prompt":"0.000002","completion":"0.000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749354054,"top_provider":{"context_length":40960,"max_completion_tokens":40000,"is_moderated":false}},{"id":"mistralai/magistral-medium-2506:thinking","name":"Mistral: Magistral Medium 2506 (thinking)","pricing":{"prompt":"0.000002","completion":"0.000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749354054,"top_provider":{"context_length":40960,"max_completion_tokens":40000,"is_moderated":false}},{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1749137257,"top_provider":{"context_length":1048576,"max_completion_tokens":65536,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-7b","name":"DeepSeek: R1 Distill Qwen 7B","pricing":{"prompt":"0.0000001","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748628237,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528-qwen3-8b:free","name":"DeepSeek: Deepseek R1 0528 Qwen3 8B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748538543,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek: Deepseek R1 0528 Qwen3 8B","pricing":{"prompt":"0.00000001","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748538543,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528:free","name":"DeepSeek: R1 0528 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748455170,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748455170,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"sarvamai/sarvam-m:free","name":"Sarvam AI: Sarvam-M (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748188413,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"thedrummer/valkyrie-49b-v1","name":"TheDrummer: Valkyrie 49B V1","pricing":{"prompt":"0.00000065","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748022670,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1747931245,"top_provider":{"context_length":200000,"max_completion_tokens":32000,"is_moderated":true}},{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1747930371,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"mistralai/devstral-small-2505:free","name":"Mistral: Devstral Small 2505 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747837379,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/devstral-small-2505","name":"Mistral: Devstral Small 2505","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747837379,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3n-e4b-it:free","name":"Google: Gemma 3n 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747776824,"top_provider":{"context_length":8192,"max_completion_tokens":2048,"is_moderated":false}},{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","pricing":{"prompt":"0.00000002","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747776824,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/codex-mini","name":"OpenAI: Codex Mini","pricing":{"prompt":"0.0000015","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000375"},"created":1747409761,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"nousresearch/deephermes-3-mistral-24b-preview","name":"Nous: DeepHermes 3 Mistral 24B Preview","pricing":{"prompt":"0.00000009329544","completion":"0.0000003733632","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746830904,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746627341,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1746578513,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","pricing":{"prompt":"0.00000018","completion":"0.00000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746481552,"top_provider":{"context_length":131072,"max_completion_tokens":65537,"is_moderated":false}},{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","pricing":{"prompt":"0.0000009","completion":"0.0000033","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746481269,"top_provider":{"context_length":131072,"max_completion_tokens":32000,"is_moderated":false}},{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","pricing":{"prompt":"0.00000075","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746478885,"top_provider":{"context_length":131072,"max_completion_tokens":64000,"is_moderated":false}},{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","pricing":{"prompt":"0.0000005","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746478663,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4-reasoning-plus","name":"Microsoft: Phi 4 Reasoning Plus","pricing":{"prompt":"0.00000007","completion":"0.00000035","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746130961,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","pricing":{"prompt":"0.00000025","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746033880,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"qwen/qwen3-4b:free","name":"Qwen: Qwen3 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746031104,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"opengvlab/internvl3-14b","name":"OpenGVLab: InternVL3 14B","pricing":{"prompt":"0.0000002","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746021355,"top_provider":{"context_length":12288,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-prover-v2","name":"DeepSeek: DeepSeek Prover V2","pricing":{"prompt":"0.0000005","completion":"0.00000218","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746013094,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","pricing":{"prompt":"0.00000005","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745975193,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b:free","name":"Qwen: Qwen3 30B A3B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745878604,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745878604,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-8b:free","name":"Qwen: Qwen3 8B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876632,"top_provider":{"context_length":40960,"max_completion_tokens":40960,"is_moderated":false}},{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","pricing":{"prompt":"0.000000035","completion":"0.000000138","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876632,"top_provider":{"context_length":128000,"max_completion_tokens":20000,"is_moderated":false}},{"id":"qwen/qwen3-14b:free","name":"Qwen: Qwen3 14B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876478,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","pricing":{"prompt":"0.00000006","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876478,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","pricing":{"prompt":"0.000000017992692","completion":"0.00000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875945,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b:free","name":"Qwen: Qwen3 235B A22B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875757,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","pricing":{"prompt":"0.00000013","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875757,"top_provider":{"context_length":40960,"max_completion_tokens":40960,"is_moderated":false}},{"id":"tngtech/deepseek-r1t-chimera:free","name":"TNG: DeepSeek R1T Chimera (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745760875,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"tngtech/deepseek-r1t-chimera","name":"TNG: DeepSeek R1T Chimera","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745760875,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/mai-ds-r1:free","name":"Microsoft: MAI DS R1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745194100,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/mai-ds-r1","name":"Microsoft: MAI DS R1","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745194100,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"thudm/glm-z1-32b:free","name":"THUDM: GLM Z1 32B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744924148,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"thudm/glm-4-32b","name":"THUDM: GLM 4 32B","pricing":{"prompt":"0.00000024","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744920915,"top_provider":{"context_length":32000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0.0008415","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000275"},"created":1744824212,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"openai/o3","name":"OpenAI: o3","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0.00153","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000005"},"created":1744823457,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0.0008415","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000275"},"created":1744820942,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"shisa-ai/shisa-v2-llama3.3-70b:free","name":"Shisa AI: Shisa V2 Llama 3.3 70B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744754858,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa AI: Shisa V2 Llama 3.3 70B ","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744754858,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000005"},"created":1744651385,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","pricing":{"prompt":"0.0000004","completion":"0.0000016","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000001"},"created":1744651381,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025"},"created":1744651369,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","pricing":{"prompt":"0.0000008","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744643225,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744641874,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"arliai/qwq-32b-arliai-rpr-v1:free","name":"ArliAI: QwQ 32B RpR v1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555982,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"arliai/qwq-32b-arliai-rpr-v1","name":"ArliAI: QwQ 32B RpR v1","pricing":{"prompt":"0.00000001","completion":"0.0000000400032","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555982,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"agentica-org/deepcoder-14b-preview:free","name":"Agentica: Deepcoder 14B Preview (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555395,"top_provider":{"context_length":96000,"max_completion_tokens":null,"is_moderated":false}},{"id":"agentica-org/deepcoder-14b-preview","name":"Agentica: Deepcoder 14B Preview","pricing":{"prompt":"0.000000015","completion":"0.000000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555395,"top_provider":{"context_length":96000,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-vl-a3b-thinking:free","name":"Moonshot AI: Kimi VL A3B Thinking (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744304841,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-vl-a3b-thinking","name":"Moonshot AI: Kimi VL A3B Thinking","pricing":{"prompt":"0.00000002498985","completion":"0.000000100008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744304841,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","pricing":{"prompt":"0.0000003","completion":"0.0000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1744240195,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1744240068,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"NVIDIA: Llama 3.3 Nemotron Super 49B v1","pricing":{"prompt":"0.00000013","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744119494,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free","name":"NVIDIA: Llama 3.1 Nemotron Ultra 253B v1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744115059,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"NVIDIA: Llama 3.1 Nemotron Ultra 253B v1","pricing":{"prompt":"0.0000006","completion":"0.0000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744115059,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.0006684","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743881822,"top_provider":{"context_length":1048576,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","pricing":{"prompt":"0.00000008","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743881519,"top_provider":{"context_length":1048576,"max_completion_tokens":1048576,"is_moderated":false}},{"id":"deepseek/deepseek-v3-base","name":"DeepSeek: DeepSeek V3 Base","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743272023,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","name":"Typhoon2 70B Instruct","pricing":{"prompt":"0.00000088","completion":"0.00000088","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743196170,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.5-pro-exp-03-25","name":"Google: Gemini 2.5 Pro Experimental","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742922099,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-32b-instruct:free","name":"Qwen: Qwen2.5 VL 32B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742839838,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742839838,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-chat-v3-0324:free","name":"DeepSeek: DeepSeek V3 0324 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742824755,"top_provider":{"context_length":163840,"max_completion_tokens":163840,"is_moderated":false}},{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742824755,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"featherless/qwerky-72b:free","name":"Qrwkv 72B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742481597,"top_provider":{"context_length":32768,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/o1-pro","name":"OpenAI: o1-pro","pricing":{"prompt":"0.00015","completion":"0.0006","request":"0","image":"0.21675","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742423211,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"mistralai/mistral-small-3.1-24b-instruct:free","name":"Mistral: Mistral Small 3.1 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742238937,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","pricing":{"prompt":"0.000000017992692","completion":"0.00000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742238937,"top_provider":{"context_length":131072,"max_completion_tokens":96000,"is_moderated":false}},{"id":"google/gemma-3-4b-it:free","name":"Google: Gemma 3 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905510,"top_provider":{"context_length":32768,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","pricing":{"prompt":"0.00000002","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905510,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"ai21/jamba-1.6-large","name":"AI21: Jamba 1.6 Large","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905173,"top_provider":{"context_length":256000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"ai21/jamba-1.6-mini","name":"AI21: Jamba Mini 1.6","pricing":{"prompt":"0.0000002","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905171,"top_provider":{"context_length":256000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"google/gemma-3-12b-it:free","name":"Google: Gemma 3 12B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741902625,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","pricing":{"prompt":"0.0000000481286","completion":"0.000000192608","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741902625,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"cohere/command-a","name":"Cohere: Command A","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741894342,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0.0275","image":"0.000217","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741818122,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0.035","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741817949,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"rekaai/reka-flash-3:free","name":"Reka: Flash 3 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741812813,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3-27b-it:free","name":"Google: Gemma 3 27B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741756359,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","pricing":{"prompt":"0.0000000666396","completion":"0.000000266688","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741756359,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"thedrummer/anubis-pro-105b-v1","name":"TheDrummer: Anubis Pro 105B V1","pricing":{"prompt":"0.0000005","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741642290,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","pricing":{"prompt":"0.0000000481286","completion":"0.000000192608","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741636566,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4-multimodal-instruct","name":"Microsoft: Phi 4 Multimodal Instruct","pricing":{"prompt":"0.00000005","completion":"0.0000001","request":"0","image":"0.00017685","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741396284,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0"},"created":1741313308,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0"},"created":1741312423,"top_provider":{"context_length":200000,"max_completion_tokens":8000,"is_moderated":false}},{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0.000003"},"created":1741311246,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwq-32b:free","name":"Qwen: QwQ 32B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741208814,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","pricing":{"prompt":"0.000000075","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741208814,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/deephermes-3-llama-3-8b-preview:free","name":"Nous: DeepHermes 3 Llama 3 8B Preview (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740719372,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","pricing":{"prompt":"0.000000075","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740506212,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet:beta","name":"Anthropic: Claude 3.7 Sonnet (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":128000,"is_moderated":false}},{"id":"perplexity/r1-1776","name":"Perplexity: R1 1776","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740004929,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-saba","name":"Mistral: Saba","pricing":{"prompt":"0.0000002","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739803239,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free","name":"Dolphin3.0 R1 Mistral 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462498,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b","name":"Dolphin3.0 R1 Mistral 24B","pricing":{"prompt":"0.00000001","completion":"0.0000000340768","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462498,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b:free","name":"Dolphin3.0 Mistral 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462019,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b","name":"Dolphin3.0 Mistral 24B","pricing":{"prompt":"0.000000037022","completion":"0.00000014816","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462019,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","pricing":{"prompt":"0.00000002","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739401318,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1739372611,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"deepseek/deepseek-r1-distill-llama-8b","name":"DeepSeek: R1 Distill Llama 8B","pricing":{"prompt":"0.00000004","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738937718,"top_provider":{"context_length":32000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0.0000258","audio":"0.0000007","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1738769413,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","pricing":{"prompt":"0.00000021","completion":"0.00000063","request":"0","image":"0.0002688","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738731255,"top_provider":{"context_length":7500,"max_completion_tokens":1500,"is_moderated":false}},{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","pricing":{"prompt":"0.000004","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738697557,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","pricing":{"prompt":"0.0000007","completion":"0.0000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738697107,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738696718,"top_provider":{"context_length":32768,"max_completion_tokens":32768,"is_moderated":false}},{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","pricing":{"prompt":"0.0000008","completion":"0.0000032","request":"0","image":"0.001024","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738434304,"top_provider":{"context_length":7500,"max_completion_tokens":1500,"is_moderated":false}},{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","pricing":{"prompt":"0.00000005","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000002"},"created":1738410974,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-72b-instruct:free","name":"Qwen: Qwen2.5 VL 72B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738410311,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","pricing":{"prompt":"0.00000025","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738410311,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","pricing":{"prompt":"0.0000004","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000016"},"created":1738409840,"top_provider":{"context_length":131072,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","pricing":{"prompt":"0.0000016","completion":"0.0000064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000064"},"created":1738402289,"top_provider":{"context_length":32768,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1738351721,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","name":"DeepSeek: R1 Distill Qwen 1.5B","pricing":{"prompt":"0.00000018","completion":"0.00000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738328067,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"mistralai/mistral-small-24b-instruct-2501:free","name":"Mistral: Mistral Small 3 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738255409,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738255409,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","pricing":{"prompt":"0.000000075","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738194830,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-14b:free","name":"DeepSeek: R1 Distill Qwen 14B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738193940,"top_provider":{"context_length":64000,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","name":"DeepSeek: R1 Distill Qwen 14B","pricing":{"prompt":"0.00000015","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738193940,"top_provider":{"context_length":64000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"perplexity/sonar-reasoning","name":"Perplexity: Sonar Reasoning","pricing":{"prompt":"0.000001","completion":"0.000005","request":"0.005","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738131107,"top_provider":{"context_length":127000,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar","name":"Perplexity: Sonar","pricing":{"prompt":"0.000001","completion":"0.000001","request":"0.005","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738013808,"top_provider":{"context_length":127072,"max_completion_tokens":null,"is_moderated":false}},{"id":"liquid/lfm-7b","name":"Liquid: LFM 7B","pricing":{"prompt":"0.00000001","completion":"0.00000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737806883,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"liquid/lfm-3b","name":"Liquid: LFM 3B","pricing":{"prompt":"0.00000002","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737806501,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-llama-70b:free","name":"DeepSeek: R1 Distill Llama 70B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737663169,"top_provider":{"context_length":8192,"max_completion_tokens":4096,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","pricing":{"prompt":"0.0000000333198","completion":"0.000000133344","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737663169,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1:free","name":"DeepSeek: R1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737381095,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737381095,"top_provider":{"context_length":163840,"max_completion_tokens":163840,"is_moderated":false}},{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","pricing":{"prompt":"0.0000002","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736915462,"top_provider":{"context_length":1000192,"max_completion_tokens":1000192,"is_moderated":false}},{"id":"mistralai/codestral-2501","name":"Mistral: Codestral 2501","pricing":{"prompt":"0.0000003","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736895522,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","pricing":{"prompt":"0.00000006","completion":"0.00000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736489872,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1735241320,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","pricing":{"prompt":"0.00000065","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734535928,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o1","name":"OpenAI: o1","pricing":{"prompt":"0.000015","completion":"0.00006","request":"0","image":"0.021675","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000075"},"created":1734459999,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"x-ai/grok-2-vision-1212","name":"xAI: Grok 2 Vision 1212","pricing":{"prompt":"0.000002","completion":"0.00001","request":"0","image":"0.0036","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734237338,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-2-1212","name":"xAI: Grok 2 1212","pricing":{"prompt":"0.000002","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734232814,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","pricing":{"prompt":"0.0000000375","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734158152,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"google/gemini-2.0-flash-exp:free","name":"Google: Gemini 2.0 Flash Experimental (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733937523,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Meta: Llama 3.3 70B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733506137,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","pricing":{"prompt":"0.000000038","completion":"0.00000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733506137,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","pricing":{"prompt":"0.00000006","completion":"0.00000024","request":"0","image":"0.00009","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733437363,"top_provider":{"context_length":300000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","pricing":{"prompt":"0.000000035","completion":"0.00000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733437237,"top_provider":{"context_length":128000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","pricing":{"prompt":"0.0000008","completion":"0.0000032","request":"0","image":"0.0012","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733436303,"top_provider":{"context_length":300000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"qwen/qwq-32b-preview","name":"Qwen: QwQ 32B Preview","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1732754541,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1732127594,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731978685,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731978415,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0.002888","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731977388,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-vision-beta","name":"xAI: Grok Vision Beta","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.009","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731976624,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"infermatic/mn-inferor-12b","name":"Infermatic: Mistral Nemo Inferor 12B","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731464428,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-2.5-coder-32b-instruct:free","name":"Qwen2.5 Coder 32B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731368400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","pricing":{"prompt":"0.0000000499797","completion":"0.000000200016","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731368400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","pricing":{"prompt":"0.0000045","completion":"0.0000045","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731105083,"top_provider":{"context_length":16000,"max_completion_tokens":null,"is_moderated":false}},{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","pricing":{"prompt":"0.0000004","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731103448,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"anthropic/claude-3.5-haiku:beta","name":"Anthropic: Claude 3.5 Haiku (self-moderated)","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"anthropic/claude-3.5-haiku-20241022","name":"Anthropic: Claude 3.5 Haiku (2024-10-22)","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","pricing":{"prompt":"0.0000025","completion":"0.000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729555200,"top_provider":{"context_length":16384,"max_completion_tokens":1024,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet:beta","name":"Anthropic: Claude 3.5 Sonnet (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1729555200,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1729555200,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"mistralai/ministral-8b","name":"Mistral: Ministral 8B","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729123200,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/ministral-3b","name":"Mistral: Ministral 3B","pricing":{"prompt":"0.00000004","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729123200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen2.5 7B Instruct","pricing":{"prompt":"0.00000004","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729036800,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","pricing":{"prompt":"0.00000012","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728950400,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728604800,"top_provider":{"context_length":8000,"max_completion_tokens":1024,"is_moderated":false}},{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728604800,"top_provider":{"context_length":8000,"max_completion_tokens":1024,"is_moderated":false}},{"id":"google/gemini-flash-1.5-8b","name":"Google: Gemini 1.5 Flash 8B","pricing":{"prompt":"0.0000000375","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000001","input_cache_write":"0.0000000583"},"created":1727913600,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","pricing":{"prompt":"0.00000019","completion":"0.00000045","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"liquid/lfm-40b","name":"Liquid: LFM 40B MoE","pricing":{"prompt":"0.00000015","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":65536,"max_completion_tokens":65536,"is_moderated":false}},{"id":"anthracite-org/magnum-v2-72b","name":"Magnum v2 72B","pricing":{"prompt":"0.000003","completion":"0.000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Meta: Llama 3.2 3B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","pricing":{"prompt":"0.000000003","completion":"0.000000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":20000,"max_completion_tokens":20000,"is_moderated":false}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Meta: Llama 3.2 90B Vision Instruct","pricing":{"prompt":"0.0000012","completion":"0.0000012","request":"0","image":"0.001734","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":2048,"is_moderated":false}},{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","pricing":{"prompt":"0.000000005","completion":"0.00000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.2-11b-vision-instruct:free","name":"Meta: Llama 3.2 11B Vision Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":2048,"is_moderated":false}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","pricing":{"prompt":"0.000000049","completion":"0.000000049","request":"0","image":"0.00007948","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"qwen/qwen-2.5-72b-instruct:free","name":"Qwen2.5 72B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726704000,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","pricing":{"prompt":"0.0000000666396","completion":"0.000000266688","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726704000,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"neversleep/llama-3.1-lumimaid-8b","name":"NeverSleep: Lumimaid v0.2 8B","pricing":{"prompt":"0.0000001","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726358400,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/o1-mini-2024-09-12","name":"OpenAI: o1-mini (2024-09-12)","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1726099200,"top_provider":{"context_length":128000,"max_completion_tokens":65536,"is_moderated":true}},{"id":"openai/o1-mini","name":"OpenAI: o1-mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1726099200,"top_provider":{"context_length":128000,"max_completion_tokens":65536,"is_moderated":true}},{"id":"mistralai/pixtral-12b","name":"Mistral: Pixtral 12B","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0.0001445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1725926400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724976000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724976000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0.0001445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724803200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","pricing":{"prompt":"0.00000065","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724803200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-3.5-mini-128k-instruct","name":"Microsoft: Phi-3.5 Mini 128K Instruct","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724198400,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","pricing":{"prompt":"0.0000001","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723939200,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","pricing":{"prompt":"0.0000007","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723766400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"openai/chatgpt-4o-latest","name":"OpenAI: ChatGPT-4o","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723593600,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","pricing":{"prompt":"0.00000002","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723507200,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1722902400,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","pricing":{"prompt":"0.000002","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1722556800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","pricing":{"prompt":"0.0000001","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b-instruct:free","name":"Meta: Llama 3.1 405B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","pricing":{"prompt":"0.0000008","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","pricing":{"prompt":"0.000000015","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-nemo:free","name":"Mistral: Mistral Nemo (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721347200,"top_provider":{"context_length":131072,"max_completion_tokens":128000,"is_moderated":false}},{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","pricing":{"prompt":"0.0000000075","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721347200,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1721260800,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.000217","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1721260800,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","pricing":{"prompt":"0.00000065","completion":"0.00000065","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1720828800,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-2-9b-it:free","name":"Google: Gemma 2 9B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1719532800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","pricing":{"prompt":"0.00000001","completion":"0.0000000100008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1719532800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet-20240620:beta","name":"Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1718841600,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Anthropic: Claude 3.5 Sonnet (2024-06-20)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1718841600,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","pricing":{"prompt":"0.00000148","completion":"0.00000148","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1718668800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","name":"Dolphin 2.9.2 Mixtral 8x22B 🐬","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1717804800,"top_provider":{"context_length":16000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-2-72b-instruct","name":"Qwen 2 72B Instruct","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1717718400,"top_provider":{"context_length":32768,"max_completion_tokens":4096,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct-v0.3","name":"Mistral: Mistral 7B Instruct v0.3","pricing":{"prompt":"0.000000028","completion":"0.000000054","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","pricing":{"prompt":"0.000000025","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct:free","name":"Mistral: Mistral 7B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct","name":"Mistral: Mistral 7B Instruct","pricing":{"prompt":"0.000000028","completion":"0.000000054","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"microsoft/phi-3-mini-128k-instruct","name":"Microsoft: Phi-3 Mini 128K Instruct","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716681600,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-3-medium-128k-instruct","name":"Microsoft: Phi-3 Medium 128K Instruct","pricing":{"prompt":"0.000001","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716508800,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"neversleep/llama-3-lumimaid-70b","name":"NeverSleep: Llama 3 Lumimaid 70B","pricing":{"prompt":"0.000004","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715817600,"top_provider":{"context_length":8192,"max_completion_tokens":4096,"is_moderated":false}},{"id":"google/gemini-flash-1.5","name":"Google: Gemini 1.5 Flash ","pricing":{"prompt":"0.000000075","completion":"0.0000003","request":"0","image":"0.00004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000001875","input_cache_write":"0.0000001583"},"created":1715644800,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"meta-llama/llama-guard-2-8b","name":"Meta: LlamaGuard 2 8B","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","pricing":{"prompt":"0.000006","completion":"0.000018","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":64000,"is_moderated":true}},{"id":"sao10k/fimbulvetr-11b-v2","name":"Fimbulvetr 11B v2","pricing":{"prompt":"0.0000008","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713657600,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","pricing":{"prompt":"0.00000003","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713398400,"top_provider":{"context_length":8192,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","pricing":{"prompt":"0.0000003","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713398400,"top_provider":{"context_length":8192,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713312000,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","pricing":{"prompt":"0.00000048","completion":"0.00000048","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713225600,"top_provider":{"context_length":65536,"max_completion_tokens":65536,"is_moderated":false}},{"id":"google/gemini-pro-1.5","name":"Google: Gemini 1.5 Pro","pricing":{"prompt":"0.00000125","completion":"0.000005","request":"0","image":"0.0006575","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712620800,"top_provider":{"context_length":2000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0.01445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712620800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"cohere/command-r-plus","name":"Cohere: Command R+","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712188800,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command-r-plus-04-2024","name":"Cohere: Command R+ (04-2024)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712016000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"sophosympatheia/midnight-rose-70b","name":"Midnight Rose 70B","pricing":{"prompt":"0.0000008","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1711065600,"top_provider":{"context_length":4096,"max_completion_tokens":2048,"is_moderated":false}},{"id":"cohere/command","name":"Cohere: Command","pricing":{"prompt":"0.000001","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1710374400,"top_provider":{"context_length":4096,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command-r","name":"Cohere: Command R","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1710374400,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"anthropic/claude-3-haiku:beta","name":"Anthropic: Claude 3 Haiku (self-moderated)","pricing":{"prompt":"0.00000025","completion":"0.00000125","request":"0","image":"0.0004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003","input_cache_write":"0.0000003"},"created":1710288000,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","pricing":{"prompt":"0.00000025","completion":"0.00000125","request":"0","image":"0.0004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003","input_cache_write":"0.0000003"},"created":1710288000,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"anthropic/claude-3-opus:beta","name":"Anthropic: Claude 3 Opus (self-moderated)","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1709596800,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"anthropic/claude-3-opus","name":"Anthropic: Claude 3 Opus","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1709596800,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"cohere/command-r-03-2024","name":"Cohere: Command R (03-2024)","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1709341200,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"mistralai/mistral-large","name":"Mistral Large","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1708905600,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","pricing":{"prompt":"0.000001","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1706140800,"top_provider":{"context_length":4095,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1706140800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","name":"Nous: Hermes 2 Mixtral 8x7B DPO","pricing":{"prompt":"0.0000006","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1705363200,"top_provider":{"context_length":32768,"max_completion_tokens":2048,"is_moderated":false}},{"id":"mistralai/mistral-small","name":"Mistral Small","pricing":{"prompt":"0.0000002","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1704844800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","pricing":{"prompt":"0.00000025","completion":"0.00000025","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1704844800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct-v0.2","name":"Mistral: Mistral 7B Instruct v0.2","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1703721600,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","pricing":{"prompt":"0.00000008","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1702166400,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"neversleep/noromaid-20b","name":"Noromaid 20B","pricing":{"prompt":"0.000001","completion":"0.00000175","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1700956800,"top_provider":{"context_length":4096,"max_completion_tokens":null,"is_moderated":false}},{"id":"alpindale/goliath-120b","name":"Goliath 120B","pricing":{"prompt":"0.000009","completion":"0.000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1699574400,"top_provider":{"context_length":6144,"max_completion_tokens":null,"is_moderated":false}},{"id":"undi95/toppy-m-7b","name":"Toppy M 7B","pricing":{"prompt":"0.0000008","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1699574400,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openrouter/auto","name":"Auto Router","pricing":{"prompt":"-1","completion":"-1"},"created":1699401600,"top_provider":{"context_length":null,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1699228800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","pricing":{"prompt":"0.00000011","completion":"0.00000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1695859200,"top_provider":{"context_length":2824,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","pricing":{"prompt":"0.0000015","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1695859200,"top_provider":{"context_length":4095,"max_completion_tokens":4096,"is_moderated":true}},{"id":"pygmalionai/mythalion-13b","name":"Pygmalion: Mythalion 13B","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1693612800,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","pricing":{"prompt":"0.000003","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1693180800,"top_provider":{"context_length":16385,"max_completion_tokens":4096,"is_moderated":true}},{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","pricing":{"prompt":"0.0000015","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1690934400,"top_provider":{"context_length":8000,"max_completion_tokens":1000,"is_moderated":false}},{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","pricing":{"prompt":"0.0000007","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1689984000,"top_provider":{"context_length":6144,"max_completion_tokens":null,"is_moderated":false}},{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","pricing":{"prompt":"0.00000006","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1688256000,"top_provider":{"context_length":4096,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4","name":"OpenAI: GPT-4","pricing":{"prompt":"0.00003","completion":"0.00006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":8191,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":16385,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","pricing":{"prompt":"0.00003","completion":"0.00006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":8191,"max_completion_tokens":4096,"is_moderated":true}}] \ No newline at end of file +export const models = [{"id":"openai/gpt-5-chat","name":"OpenAI: GPT-5 Chat","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000125"},"created":1754587837,"top_provider":{"context_length":400000,"max_completion_tokens":128000,"is_moderated":true}},{"id":"openai/gpt-5","name":"OpenAI: GPT-5","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000125"},"created":1754587413,"top_provider":{"context_length":400000,"max_completion_tokens":128000,"is_moderated":true}},{"id":"openai/gpt-5-mini","name":"OpenAI: GPT-5 Mini","pricing":{"prompt":"0.00000025","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025"},"created":1754587407,"top_provider":{"context_length":400000,"max_completion_tokens":128000,"is_moderated":true}},{"id":"openai/gpt-5-nano","name":"OpenAI: GPT-5 Nano","pricing":{"prompt":"0.00000005","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000005"},"created":1754587402,"top_provider":{"context_length":400000,"max_completion_tokens":128000,"is_moderated":true}},{"id":"openai/gpt-oss-120b","name":"OpenAI: gpt-oss-120b","pricing":{"prompt":"0.00000009","completion":"0.00000045","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754414231,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-oss-20b:free","name":"OpenAI: gpt-oss-20b (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754414229,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"openai/gpt-oss-20b","name":"OpenAI: gpt-oss-20b","pricing":{"prompt":"0.00000004","completion":"0.00000016","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754414229,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1754411591,"top_provider":{"context_length":200000,"max_completion_tokens":32000,"is_moderated":true}},{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","pricing":{"prompt":"0.0000003","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1754079630,"top_provider":{"context_length":256000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","pricing":{"prompt":"0.0000002","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753806965,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"z-ai/glm-4.5","name":"Z.AI: GLM 4.5","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753471347,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4.5-air:free","name":"Z.AI: GLM 4.5 Air (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753471258,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4.5-air","name":"Z.AI: GLM 4.5 Air","pricing":{"prompt":"0.0000002","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003"},"created":1753471258,"top_provider":{"context_length":128000,"max_completion_tokens":96000,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","pricing":{"prompt":"0.000000077968332","completion":"0.00000031202496","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753449557,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"z-ai/glm-4-32b","name":"Z.AI: GLM 4 32B ","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753376617,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder ","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753230546,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"bytedance/ui-tars-1.5-7b","name":"Bytedance: UI-TARS 7B ","pricing":{"prompt":"0.0000001","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753205056,"top_provider":{"context_length":128000,"max_completion_tokens":2048,"is_moderated":false}},{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1753200276,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","pricing":{"prompt":"0.000000077968332","completion":"0.00000031202496","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1753119555,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"switchpoint/router","name":"Switchpoint Router","pricing":{"prompt":"0.00000085","completion":"0.0000034","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752272899,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-k2:free","name":"MoonshotAI: Kimi K2 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752263252,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2","pricing":{"prompt":"0.00000014","completion":"0.00000249","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752263252,"top_provider":{"context_length":63000,"max_completion_tokens":63000,"is_moderated":false}},{"id":"thudm/glm-4.1v-9b-thinking","name":"THUDM: GLM 4.1V 9B Thinking","pricing":{"prompt":"0.000000035","completion":"0.000000138","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752244385,"top_provider":{"context_length":65536,"max_completion_tokens":8000,"is_moderated":false}},{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752161321,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","pricing":{"prompt":"0.00000007","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752160751,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Venice: Uncensored (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752094966,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-4","name":"xAI: Grok 4","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1752087689,"top_provider":{"context_length":256000,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3n-e2b-it:free","name":"Google: Gemma 3n 2B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1752074904,"top_provider":{"context_length":8192,"max_completion_tokens":2048,"is_moderated":false}},{"id":"tencent/hunyuan-a13b-instruct:free","name":"Tencent: Hunyuan A13B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751987664,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","pricing":{"prompt":"0.00000003","completion":"0.00000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751987664,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"tngtech/deepseek-r1t2-chimera:free","name":"TNG: DeepSeek R1T2 Chimera (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751986985,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","pricing":{"prompt":"0.0000009","completion":"0.0000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751910858,"top_provider":{"context_length":81920,"max_completion_tokens":38000,"is_moderated":false}},{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","pricing":{"prompt":"0.0000009","completion":"0.0000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751910002,"top_provider":{"context_length":81920,"max_completion_tokens":38000,"is_moderated":false}},{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","pricing":{"prompt":"0.00000028","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751300139,"top_provider":{"context_length":123000,"max_completion_tokens":12000,"is_moderated":false}},{"id":"thedrummer/anubis-70b-v1.1","name":"TheDrummer: Anubis 70B V1.1","pricing":{"prompt":"0.0000004","completion":"0.0000007","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1751208347,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"inception/mercury","name":"Inception: Mercury","pricing":{"prompt":"0.00000025","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750973026,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-small-3.2-24b-instruct:free","name":"Mistral: Mistral Small 3.2 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750443016,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750443016,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","pricing":{"prompt":"0.0000003","completion":"0.00000165","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750200414,"top_provider":{"context_length":1000000,"max_completion_tokens":40000,"is_moderated":false}},{"id":"google/gemini-2.5-flash-lite-preview-06-17","name":"Google: Gemini 2.5 Flash Lite Preview 06-17","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1750173831,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","pricing":{"prompt":"0.0000003","completion":"0.0000025","request":"0","image":"0.001238","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075","input_cache_write":"0.0000003833"},"created":1750172488,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1750169544,"top_provider":{"context_length":1048576,"max_completion_tokens":65536,"is_moderated":false}},{"id":"moonshotai/kimi-dev-72b:free","name":"Kimi Dev 72b (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1750115909,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","pricing":{"prompt":"0.00002","completion":"0.00008","request":"0","image":"0.0153","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749598352,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","pricing":{"prompt":"0.0000003","completion":"0.0000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1749583245,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3","name":"xAI: Grok 3","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1749582908,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/magistral-small-2506","name":"Mistral: Magistral Small 2506","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749569561,"top_provider":{"context_length":40000,"max_completion_tokens":40000,"is_moderated":false}},{"id":"mistralai/magistral-medium-2506","name":"Mistral: Magistral Medium 2506","pricing":{"prompt":"0.000002","completion":"0.000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749354054,"top_provider":{"context_length":40960,"max_completion_tokens":40000,"is_moderated":false}},{"id":"mistralai/magistral-medium-2506:thinking","name":"Mistral: Magistral Medium 2506 (thinking)","pricing":{"prompt":"0.000002","completion":"0.000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1749354054,"top_provider":{"context_length":40960,"max_completion_tokens":40000,"is_moderated":false}},{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1749137257,"top_provider":{"context_length":1048576,"max_completion_tokens":65536,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-7b","name":"DeepSeek: R1 Distill Qwen 7B","pricing":{"prompt":"0.0000001","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748628237,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528-qwen3-8b:free","name":"DeepSeek: Deepseek R1 0528 Qwen3 8B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748538543,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek: Deepseek R1 0528 Qwen3 8B","pricing":{"prompt":"0.00000001","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748538543,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528:free","name":"DeepSeek: R1 0528 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748455170,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748455170,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"sarvamai/sarvam-m:free","name":"Sarvam AI: Sarvam-M (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748188413,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"thedrummer/valkyrie-49b-v1","name":"TheDrummer: Valkyrie 49B V1","pricing":{"prompt":"0.00000065","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1748022670,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1747931245,"top_provider":{"context_length":200000,"max_completion_tokens":32000,"is_moderated":true}},{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1747930371,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"mistralai/devstral-small-2505:free","name":"Mistral: Devstral Small 2505 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747837379,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/devstral-small-2505","name":"Mistral: Devstral Small 2505","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747837379,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3n-e4b-it:free","name":"Google: Gemma 3n 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747776824,"top_provider":{"context_length":8192,"max_completion_tokens":2048,"is_moderated":false}},{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","pricing":{"prompt":"0.00000002","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1747776824,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/codex-mini","name":"OpenAI: Codex Mini","pricing":{"prompt":"0.0000015","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000375"},"created":1747409761,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"nousresearch/deephermes-3-mistral-24b-preview","name":"Nous: DeepHermes 3 Mistral 24B Preview","pricing":{"prompt":"0.00000009329544","completion":"0.0000003733632","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746830904,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746627341,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","pricing":{"prompt":"0.00000125","completion":"0.00001","request":"0","image":"0.00516","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000031","input_cache_write":"0.000001625"},"created":1746578513,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","pricing":{"prompt":"0.00000018","completion":"0.00000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746481552,"top_provider":{"context_length":131072,"max_completion_tokens":65537,"is_moderated":false}},{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","pricing":{"prompt":"0.0000009","completion":"0.0000033","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746481269,"top_provider":{"context_length":131072,"max_completion_tokens":32000,"is_moderated":false}},{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","pricing":{"prompt":"0.00000075","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746478885,"top_provider":{"context_length":131072,"max_completion_tokens":64000,"is_moderated":false}},{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","pricing":{"prompt":"0.0000005","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746478663,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4-reasoning-plus","name":"Microsoft: Phi 4 Reasoning Plus","pricing":{"prompt":"0.00000007","completion":"0.00000035","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746130961,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","pricing":{"prompt":"0.00000025","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746033880,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"qwen/qwen3-4b:free","name":"Qwen: Qwen3 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746031104,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"opengvlab/internvl3-14b","name":"OpenGVLab: InternVL3 14B","pricing":{"prompt":"0.0000002","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746021355,"top_provider":{"context_length":12288,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-prover-v2","name":"DeepSeek: DeepSeek Prover V2","pricing":{"prompt":"0.0000005","completion":"0.00000218","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1746013094,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","pricing":{"prompt":"0.00000005","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745975193,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b:free","name":"Qwen: Qwen3 30B A3B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745878604,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745878604,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-8b:free","name":"Qwen: Qwen3 8B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876632,"top_provider":{"context_length":40960,"max_completion_tokens":40960,"is_moderated":false}},{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","pricing":{"prompt":"0.000000035","completion":"0.000000138","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876632,"top_provider":{"context_length":128000,"max_completion_tokens":20000,"is_moderated":false}},{"id":"qwen/qwen3-14b:free","name":"Qwen: Qwen3 14B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876478,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","pricing":{"prompt":"0.00000006","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745876478,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","pricing":{"prompt":"0.000000017992692","completion":"0.00000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875945,"top_provider":{"context_length":40960,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b:free","name":"Qwen: Qwen3 235B A22B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875757,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","pricing":{"prompt":"0.00000013","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745875757,"top_provider":{"context_length":40960,"max_completion_tokens":40960,"is_moderated":false}},{"id":"tngtech/deepseek-r1t-chimera:free","name":"TNG: DeepSeek R1T Chimera (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745760875,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"tngtech/deepseek-r1t-chimera","name":"TNG: DeepSeek R1T Chimera","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745760875,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/mai-ds-r1:free","name":"Microsoft: MAI DS R1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745194100,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/mai-ds-r1","name":"Microsoft: MAI DS R1","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1745194100,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"thudm/glm-z1-32b:free","name":"THUDM: GLM Z1 32B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744924148,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"thudm/glm-4-32b","name":"THUDM: GLM 4 32B","pricing":{"prompt":"0.00000024","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744920915,"top_provider":{"context_length":32000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0.0008415","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000275"},"created":1744824212,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"openai/o3","name":"OpenAI: o3","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0.00153","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000005"},"created":1744823457,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0.0008415","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000275"},"created":1744820942,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"shisa-ai/shisa-v2-llama3.3-70b:free","name":"Shisa AI: Shisa V2 Llama 3.3 70B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744754858,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa AI: Shisa V2 Llama 3.3 70B ","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744754858,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000005"},"created":1744651385,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","pricing":{"prompt":"0.0000004","completion":"0.0000016","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000001"},"created":1744651381,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025"},"created":1744651369,"top_provider":{"context_length":1047576,"max_completion_tokens":32768,"is_moderated":true}},{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","pricing":{"prompt":"0.0000008","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744643225,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744641874,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"arliai/qwq-32b-arliai-rpr-v1:free","name":"ArliAI: QwQ 32B RpR v1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555982,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"arliai/qwq-32b-arliai-rpr-v1","name":"ArliAI: QwQ 32B RpR v1","pricing":{"prompt":"0.00000001","completion":"0.0000000400032","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555982,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"agentica-org/deepcoder-14b-preview:free","name":"Agentica: Deepcoder 14B Preview (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555395,"top_provider":{"context_length":96000,"max_completion_tokens":null,"is_moderated":false}},{"id":"agentica-org/deepcoder-14b-preview","name":"Agentica: Deepcoder 14B Preview","pricing":{"prompt":"0.000000015","completion":"0.000000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744555395,"top_provider":{"context_length":96000,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-vl-a3b-thinking:free","name":"Moonshot AI: Kimi VL A3B Thinking (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744304841,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"moonshotai/kimi-vl-a3b-thinking","name":"Moonshot AI: Kimi VL A3B Thinking","pricing":{"prompt":"0.00000002498985","completion":"0.000000100008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744304841,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","pricing":{"prompt":"0.0000003","completion":"0.0000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1744240195,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000075"},"created":1744240068,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"NVIDIA: Llama 3.3 Nemotron Super 49B v1","pricing":{"prompt":"0.00000013","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744119494,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free","name":"NVIDIA: Llama 3.1 Nemotron Ultra 253B v1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744115059,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"NVIDIA: Llama 3.1 Nemotron Ultra 253B v1","pricing":{"prompt":"0.0000006","completion":"0.0000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1744115059,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.0006684","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743881822,"top_provider":{"context_length":1048576,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","pricing":{"prompt":"0.00000008","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743881519,"top_provider":{"context_length":1048576,"max_completion_tokens":1048576,"is_moderated":false}},{"id":"deepseek/deepseek-v3-base","name":"DeepSeek: DeepSeek V3 Base","pricing":{"prompt":"0.0000001999188","completion":"0.000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743272023,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","name":"Typhoon2 70B Instruct","pricing":{"prompt":"0.00000088","completion":"0.00000088","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1743196170,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.5-pro-exp-03-25","name":"Google: Gemini 2.5 Pro Experimental","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742922099,"top_provider":{"context_length":1048576,"max_completion_tokens":65535,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-32b-instruct:free","name":"Qwen: Qwen2.5 VL 32B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742839838,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742839838,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-chat-v3-0324:free","name":"DeepSeek: DeepSeek V3 0324 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742824755,"top_provider":{"context_length":163840,"max_completion_tokens":163840,"is_moderated":false}},{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742824755,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"featherless/qwerky-72b:free","name":"Qrwkv 72B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742481597,"top_provider":{"context_length":32768,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/o1-pro","name":"OpenAI: o1-pro","pricing":{"prompt":"0.00015","completion":"0.0006","request":"0","image":"0.21675","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742423211,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"mistralai/mistral-small-3.1-24b-instruct:free","name":"Mistral: Mistral Small 3.1 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742238937,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","pricing":{"prompt":"0.000000017992692","completion":"0.00000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1742238937,"top_provider":{"context_length":131072,"max_completion_tokens":96000,"is_moderated":false}},{"id":"google/gemma-3-4b-it:free","name":"Google: Gemma 3 4B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905510,"top_provider":{"context_length":32768,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","pricing":{"prompt":"0.00000002","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741905510,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3-12b-it:free","name":"Google: Gemma 3 12B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741902625,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","pricing":{"prompt":"0.0000000481286","completion":"0.000000192608","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741902625,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"cohere/command-a","name":"Cohere: Command A","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741894342,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0.0275","image":"0.000217","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741818122,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0.035","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741817949,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"rekaai/reka-flash-3:free","name":"Reka: Flash 3 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741812813,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-3-27b-it:free","name":"Google: Gemma 3 27B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741756359,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","pricing":{"prompt":"0.0000000666396","completion":"0.000000266688","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741756359,"top_provider":{"context_length":96000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"thedrummer/anubis-pro-105b-v1","name":"TheDrummer: Anubis Pro 105B V1","pricing":{"prompt":"0.0000005","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741642290,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","pricing":{"prompt":"0.0000000481286","completion":"0.000000192608","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741636566,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4-multimodal-instruct","name":"Microsoft: Phi 4 Multimodal Instruct","pricing":{"prompt":"0.00000005","completion":"0.0000001","request":"0","image":"0.00017685","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741396284,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0"},"created":1741313308,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0"},"created":1741312423,"top_provider":{"context_length":200000,"max_completion_tokens":8000,"is_moderated":false}},{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0.005","internal_reasoning":"0.000003"},"created":1741311246,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwq-32b:free","name":"Qwen: QwQ 32B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741208814,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","pricing":{"prompt":"0.000000075","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1741208814,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/deephermes-3-llama-3-8b-preview:free","name":"Nous: DeepHermes 3 Llama 3 8B Preview (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740719372,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","pricing":{"prompt":"0.000000075","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740506212,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":64000,"is_moderated":false}},{"id":"anthropic/claude-3.7-sonnet:beta","name":"Anthropic: Claude 3.7 Sonnet (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1740422110,"top_provider":{"context_length":200000,"max_completion_tokens":128000,"is_moderated":false}},{"id":"perplexity/r1-1776","name":"Perplexity: R1 1776","pricing":{"prompt":"0.000002","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1740004929,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-saba","name":"Mistral: Saba","pricing":{"prompt":"0.0000002","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739803239,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free","name":"Dolphin3.0 R1 Mistral 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462498,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b","name":"Dolphin3.0 R1 Mistral 24B","pricing":{"prompt":"0.00000001","completion":"0.0000000340768","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462498,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b:free","name":"Dolphin3.0 Mistral 24B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462019,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b","name":"Dolphin3.0 Mistral 24B","pricing":{"prompt":"0.000000037022","completion":"0.00000014816","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739462019,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","pricing":{"prompt":"0.00000002","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1739401318,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1739372611,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"deepseek/deepseek-r1-distill-llama-8b","name":"DeepSeek: R1 Distill Llama 8B","pricing":{"prompt":"0.00000004","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738937718,"top_provider":{"context_length":32000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","pricing":{"prompt":"0.0000001","completion":"0.0000004","request":"0","image":"0.0000258","audio":"0.0000007","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000025","input_cache_write":"0.0000001833"},"created":1738769413,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","pricing":{"prompt":"0.00000021","completion":"0.00000063","request":"0","image":"0.0002688","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738731255,"top_provider":{"context_length":7500,"max_completion_tokens":1500,"is_moderated":false}},{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","pricing":{"prompt":"0.000004","completion":"0.000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738697557,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","pricing":{"prompt":"0.0000007","completion":"0.0000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738697107,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738696718,"top_provider":{"context_length":32768,"max_completion_tokens":32768,"is_moderated":false}},{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","pricing":{"prompt":"0.0000008","completion":"0.0000032","request":"0","image":"0.001024","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738434304,"top_provider":{"context_length":7500,"max_completion_tokens":1500,"is_moderated":false}},{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","pricing":{"prompt":"0.00000005","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000002"},"created":1738410974,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-72b-instruct:free","name":"Qwen: Qwen2.5 VL 72B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738410311,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","pricing":{"prompt":"0.00000025","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738410311,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","pricing":{"prompt":"0.0000004","completion":"0.0000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000016"},"created":1738409840,"top_provider":{"context_length":131072,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","pricing":{"prompt":"0.0000016","completion":"0.0000064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000064"},"created":1738402289,"top_provider":{"context_length":32768,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1738351721,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","name":"DeepSeek: R1 Distill Qwen 1.5B","pricing":{"prompt":"0.00000018","completion":"0.00000018","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738328067,"top_provider":{"context_length":131072,"max_completion_tokens":32768,"is_moderated":false}},{"id":"mistralai/mistral-small-24b-instruct-2501:free","name":"Mistral: Mistral Small 3 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738255409,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","pricing":{"prompt":"0.00000001999188","completion":"0.0000000800064","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738255409,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","pricing":{"prompt":"0.000000075","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738194830,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-14b:free","name":"DeepSeek: R1 Distill Qwen 14B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738193940,"top_provider":{"context_length":64000,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","name":"DeepSeek: R1 Distill Qwen 14B","pricing":{"prompt":"0.00000015","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738193940,"top_provider":{"context_length":64000,"max_completion_tokens":32000,"is_moderated":false}},{"id":"perplexity/sonar-reasoning","name":"Perplexity: Sonar Reasoning","pricing":{"prompt":"0.000001","completion":"0.000005","request":"0.005","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738131107,"top_provider":{"context_length":127000,"max_completion_tokens":null,"is_moderated":false}},{"id":"perplexity/sonar","name":"Perplexity: Sonar","pricing":{"prompt":"0.000001","completion":"0.000001","request":"0.005","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1738013808,"top_provider":{"context_length":127072,"max_completion_tokens":null,"is_moderated":false}},{"id":"liquid/lfm-7b","name":"Liquid: LFM 7B","pricing":{"prompt":"0.00000001","completion":"0.00000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737806883,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"liquid/lfm-3b","name":"Liquid: LFM 3B","pricing":{"prompt":"0.00000002","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737806501,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-llama-70b:free","name":"DeepSeek: R1 Distill Llama 70B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737663169,"top_provider":{"context_length":8192,"max_completion_tokens":4096,"is_moderated":false}},{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","pricing":{"prompt":"0.0000000333198","completion":"0.000000133344","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737663169,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1:free","name":"DeepSeek: R1 (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737381095,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","pricing":{"prompt":"0.0000004","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1737381095,"top_provider":{"context_length":163840,"max_completion_tokens":163840,"is_moderated":false}},{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","pricing":{"prompt":"0.0000002","completion":"0.0000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736915462,"top_provider":{"context_length":1000192,"max_completion_tokens":1000192,"is_moderated":false}},{"id":"mistralai/codestral-2501","name":"Mistral: Codestral 2501","pricing":{"prompt":"0.0000003","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736895522,"top_provider":{"context_length":262144,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","pricing":{"prompt":"0.00000006","completion":"0.00000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1736489872,"top_provider":{"context_length":16384,"max_completion_tokens":null,"is_moderated":false}},{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","pricing":{"prompt":"0.00000017992692","completion":"0.0000007200576","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1735241320,"top_provider":{"context_length":163840,"max_completion_tokens":null,"is_moderated":false}},{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","pricing":{"prompt":"0.00000065","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734535928,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/o1","name":"OpenAI: o1","pricing":{"prompt":"0.000015","completion":"0.00006","request":"0","image":"0.021675","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000075"},"created":1734459999,"top_provider":{"context_length":200000,"max_completion_tokens":100000,"is_moderated":true}},{"id":"x-ai/grok-2-vision-1212","name":"xAI: Grok 2 Vision 1212","pricing":{"prompt":"0.000002","completion":"0.00001","request":"0","image":"0.0036","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734237338,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-2-1212","name":"xAI: Grok 2 1212","pricing":{"prompt":"0.000002","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734232814,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","pricing":{"prompt":"0.0000000375","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1734158152,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"google/gemini-2.0-flash-exp:free","name":"Google: Gemini 2.0 Flash Experimental (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733937523,"top_provider":{"context_length":1048576,"max_completion_tokens":8192,"is_moderated":false}},{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Meta: Llama 3.3 70B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733506137,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","pricing":{"prompt":"0.000000038","completion":"0.00000012","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733506137,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","pricing":{"prompt":"0.00000006","completion":"0.00000024","request":"0","image":"0.00009","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733437363,"top_provider":{"context_length":300000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","pricing":{"prompt":"0.000000035","completion":"0.00000014","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733437237,"top_provider":{"context_length":128000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","pricing":{"prompt":"0.0000008","completion":"0.0000032","request":"0","image":"0.0012","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1733436303,"top_provider":{"context_length":300000,"max_completion_tokens":5120,"is_moderated":true}},{"id":"qwen/qwq-32b-preview","name":"Qwen: QwQ 32B Preview","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1732754541,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1732127594,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731978685,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731978415,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0.002888","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731977388,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"x-ai/grok-vision-beta","name":"xAI: Grok Vision Beta","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.009","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731976624,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"infermatic/mn-inferor-12b","name":"Infermatic: Mistral Nemo Inferor 12B","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731464428,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-2.5-coder-32b-instruct:free","name":"Qwen2.5 Coder 32B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731368400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","pricing":{"prompt":"0.0000000499797","completion":"0.000000200016","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731368400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","pricing":{"prompt":"0.0000045","completion":"0.0000045","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731105083,"top_provider":{"context_length":16000,"max_completion_tokens":null,"is_moderated":false}},{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","pricing":{"prompt":"0.0000004","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1731103448,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"anthropic/claude-3.5-haiku-20241022","name":"Anthropic: Claude 3.5 Haiku (2024-10-22)","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-haiku:beta","name":"Anthropic: Claude 3.5 Haiku (self-moderated)","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","pricing":{"prompt":"0.0000008","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000008","input_cache_write":"0.000001"},"created":1730678400,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","pricing":{"prompt":"0.0000025","completion":"0.000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729555200,"top_provider":{"context_length":16384,"max_completion_tokens":1024,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet:beta","name":"Anthropic: Claude 3.5 Sonnet (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1729555200,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1729555200,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"mistralai/ministral-8b","name":"Mistral: Ministral 8B","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729123200,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/ministral-3b","name":"Mistral: Ministral 3B","pricing":{"prompt":"0.00000004","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729123200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen2.5 7B Instruct","pricing":{"prompt":"0.00000004","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1729036800,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","pricing":{"prompt":"0.00000012","completion":"0.0000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728950400,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728604800,"top_provider":{"context_length":8000,"max_completion_tokens":1024,"is_moderated":false}},{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1728604800,"top_provider":{"context_length":8000,"max_completion_tokens":1024,"is_moderated":false}},{"id":"google/gemini-flash-1.5-8b","name":"Google: Gemini 1.5 Flash 8B","pricing":{"prompt":"0.0000000375","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000001","input_cache_write":"0.0000000583"},"created":1727913600,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","pricing":{"prompt":"0.00000019","completion":"0.00000045","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"liquid/lfm-40b","name":"Liquid: LFM 40B MoE","pricing":{"prompt":"0.00000015","completion":"0.00000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":65536,"max_completion_tokens":65536,"is_moderated":false}},{"id":"anthracite-org/magnum-v2-72b","name":"Magnum v2 72B","pricing":{"prompt":"0.000003","completion":"0.000003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727654400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Meta: Llama 3.2 3B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","pricing":{"prompt":"0.000000003","completion":"0.000000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":20000,"max_completion_tokens":20000,"is_moderated":false}},{"id":"meta-llama/llama-3.2-11b-vision-instruct:free","name":"Meta: Llama 3.2 11B Vision Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":2048,"is_moderated":false}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","pricing":{"prompt":"0.000000049","completion":"0.000000049","request":"0","image":"0.00007948","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Meta: Llama 3.2 90B Vision Instruct","pricing":{"prompt":"0.0000012","completion":"0.0000012","request":"0","image":"0.001734","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":2048,"is_moderated":false}},{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","pricing":{"prompt":"0.000000005","completion":"0.00000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1727222400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"qwen/qwen-2.5-72b-instruct:free","name":"Qwen2.5 72B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726704000,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","pricing":{"prompt":"0.0000000666396","completion":"0.000000266688","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726704000,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"neversleep/llama-3.1-lumimaid-8b","name":"NeverSleep: Lumimaid v0.2 8B","pricing":{"prompt":"0.0000001","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1726358400,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/o1-mini","name":"OpenAI: o1-mini","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1726099200,"top_provider":{"context_length":128000,"max_completion_tokens":65536,"is_moderated":true}},{"id":"openai/o1-mini-2024-09-12","name":"OpenAI: o1-mini (2024-09-12)","pricing":{"prompt":"0.0000011","completion":"0.0000044","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000055"},"created":1726099200,"top_provider":{"context_length":128000,"max_completion_tokens":65536,"is_moderated":true}},{"id":"mistralai/pixtral-12b","name":"Mistral: Pixtral 12B","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0.0001445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1725926400,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724976000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724976000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","pricing":{"prompt":"0.00000065","completion":"0.00000075","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724803200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0.0001445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724803200,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-3.5-mini-128k-instruct","name":"Microsoft: Phi-3.5 Mini 128K Instruct","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1724198400,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","pricing":{"prompt":"0.0000001","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723939200,"top_provider":{"context_length":131072,"max_completion_tokens":null,"is_moderated":false}},{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","pricing":{"prompt":"0.0000007","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723766400,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"openai/chatgpt-4o-latest","name":"OpenAI: ChatGPT-4o","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723593600,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","pricing":{"prompt":"0.00000002","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1723507200,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1722902400,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","pricing":{"prompt":"0.000002","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1722556800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b-instruct:free","name":"Meta: Llama 3.1 405B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","pricing":{"prompt":"0.0000008","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","pricing":{"prompt":"0.000000015","completion":"0.00000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","pricing":{"prompt":"0.0000001","completion":"0.00000028","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721692800,"top_provider":{"context_length":131072,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-nemo:free","name":"Mistral: Mistral Nemo (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721347200,"top_provider":{"context_length":131072,"max_completion_tokens":128000,"is_moderated":false}},{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","pricing":{"prompt":"0.0000000075","completion":"0.00000005","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1721347200,"top_provider":{"context_length":32000,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.000217","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1721260800,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","pricing":{"prompt":"0.00000015","completion":"0.0000006","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.000000075"},"created":1721260800,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","pricing":{"prompt":"0.00000065","completion":"0.00000065","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1720828800,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"google/gemma-2-9b-it:free","name":"Google: Gemma 2 9B (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1719532800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","pricing":{"prompt":"0.00000001","completion":"0.0000000100008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1719532800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet-20240620:beta","name":"Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1718841600,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Anthropic: Claude 3.5 Sonnet (2024-06-20)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0.0048","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000003","input_cache_write":"0.00000375"},"created":1718841600,"top_provider":{"context_length":200000,"max_completion_tokens":8192,"is_moderated":true}},{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","pricing":{"prompt":"0.00000148","completion":"0.00000148","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1718668800,"top_provider":{"context_length":8192,"max_completion_tokens":8192,"is_moderated":false}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","name":"Dolphin 2.9.2 Mixtral 8x22B 🐬","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1717804800,"top_provider":{"context_length":16000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"qwen/qwen-2-72b-instruct","name":"Qwen 2 72B Instruct","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1717718400,"top_provider":{"context_length":32768,"max_completion_tokens":4096,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct-v0.3","name":"Mistral: Mistral 7B Instruct v0.3","pricing":{"prompt":"0.000000028","completion":"0.000000054","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct:free","name":"Mistral: Mistral 7B Instruct (free)","pricing":{"prompt":"0","completion":"0","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct","name":"Mistral: Mistral 7B Instruct","pricing":{"prompt":"0.000000028","completion":"0.000000054","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","pricing":{"prompt":"0.000000025","completion":"0.00000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716768000,"top_provider":{"context_length":131072,"max_completion_tokens":131072,"is_moderated":false}},{"id":"microsoft/phi-3-mini-128k-instruct","name":"Microsoft: Phi-3 Mini 128K Instruct","pricing":{"prompt":"0.0000001","completion":"0.0000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716681600,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/phi-3-medium-128k-instruct","name":"Microsoft: Phi-3 Medium 128K Instruct","pricing":{"prompt":"0.000001","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1716508800,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"neversleep/llama-3-lumimaid-70b","name":"NeverSleep: Llama 3 Lumimaid 70B","pricing":{"prompt":"0.000004","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715817600,"top_provider":{"context_length":8192,"max_completion_tokens":4096,"is_moderated":false}},{"id":"google/gemini-flash-1.5","name":"Google: Gemini 1.5 Flash ","pricing":{"prompt":"0.000000075","completion":"0.0000003","request":"0","image":"0.00004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000001875","input_cache_write":"0.0000001583"},"created":1715644800,"top_provider":{"context_length":1000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","pricing":{"prompt":"0.000005","completion":"0.000015","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","pricing":{"prompt":"0.0000025","completion":"0.00001","request":"0","image":"0.003613","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000125"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":16384,"is_moderated":true}},{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","pricing":{"prompt":"0.000006","completion":"0.000018","request":"0","image":"0.007225","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":128000,"max_completion_tokens":64000,"is_moderated":true}},{"id":"meta-llama/llama-guard-2-8b","name":"Meta: LlamaGuard 2 8B","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1715558400,"top_provider":{"context_length":8192,"max_completion_tokens":null,"is_moderated":false}},{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","pricing":{"prompt":"0.0000003","completion":"0.0000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713398400,"top_provider":{"context_length":8192,"max_completion_tokens":16384,"is_moderated":false}},{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","pricing":{"prompt":"0.00000003","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713398400,"top_provider":{"context_length":8192,"max_completion_tokens":16384,"is_moderated":false}},{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","pricing":{"prompt":"0.0000009","completion":"0.0000009","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713312000,"top_provider":{"context_length":65536,"max_completion_tokens":null,"is_moderated":false}},{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","pricing":{"prompt":"0.00000048","completion":"0.00000048","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1713225600,"top_provider":{"context_length":65536,"max_completion_tokens":65536,"is_moderated":false}},{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0.01445","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712620800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"google/gemini-pro-1.5","name":"Google: Gemini 1.5 Pro","pricing":{"prompt":"0.00000125","completion":"0.000005","request":"0","image":"0.0006575","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712620800,"top_provider":{"context_length":2000000,"max_completion_tokens":8192,"is_moderated":false}},{"id":"cohere/command-r-plus","name":"Cohere: Command R+","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712188800,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command-r-plus-04-2024","name":"Cohere: Command R+ (04-2024)","pricing":{"prompt":"0.000003","completion":"0.000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1712016000,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"sophosympatheia/midnight-rose-70b","name":"Midnight Rose 70B","pricing":{"prompt":"0.0000008","completion":"0.0000008","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1711065600,"top_provider":{"context_length":4096,"max_completion_tokens":2048,"is_moderated":false}},{"id":"cohere/command-r","name":"Cohere: Command R","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1710374400,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"cohere/command","name":"Cohere: Command","pricing":{"prompt":"0.000001","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1710374400,"top_provider":{"context_length":4096,"max_completion_tokens":4000,"is_moderated":true}},{"id":"anthropic/claude-3-haiku:beta","name":"Anthropic: Claude 3 Haiku (self-moderated)","pricing":{"prompt":"0.00000025","completion":"0.00000125","request":"0","image":"0.0004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003","input_cache_write":"0.0000003"},"created":1710288000,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","pricing":{"prompt":"0.00000025","completion":"0.00000125","request":"0","image":"0.0004","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.00000003","input_cache_write":"0.0000003"},"created":1710288000,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"anthropic/claude-3-opus:beta","name":"Anthropic: Claude 3 Opus (self-moderated)","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1709596800,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":false}},{"id":"anthropic/claude-3-opus","name":"Anthropic: Claude 3 Opus","pricing":{"prompt":"0.000015","completion":"0.000075","request":"0","image":"0.024","audio":"0","web_search":"0","internal_reasoning":"0","input_cache_read":"0.0000015","input_cache_write":"0.00001875"},"created":1709596800,"top_provider":{"context_length":200000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"cohere/command-r-03-2024","name":"Cohere: Command R (03-2024)","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1709341200,"top_provider":{"context_length":128000,"max_completion_tokens":4000,"is_moderated":true}},{"id":"mistralai/mistral-large","name":"Mistral Large","pricing":{"prompt":"0.000002","completion":"0.000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1708905600,"top_provider":{"context_length":128000,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","pricing":{"prompt":"0.000001","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1706140800,"top_provider":{"context_length":4095,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1706140800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","name":"Nous: Hermes 2 Mixtral 8x7B DPO","pricing":{"prompt":"0.0000006","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1705363200,"top_provider":{"context_length":32768,"max_completion_tokens":2048,"is_moderated":false}},{"id":"mistralai/mistral-small","name":"Mistral Small","pricing":{"prompt":"0.0000002","completion":"0.0000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1704844800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","pricing":{"prompt":"0.00000025","completion":"0.00000025","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1704844800,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mistral-7b-instruct-v0.2","name":"Mistral: Mistral 7B Instruct v0.2","pricing":{"prompt":"0.0000002","completion":"0.0000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1703721600,"top_provider":{"context_length":32768,"max_completion_tokens":null,"is_moderated":false}},{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","pricing":{"prompt":"0.00000008","completion":"0.00000024","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1702166400,"top_provider":{"context_length":32768,"max_completion_tokens":16384,"is_moderated":false}},{"id":"neversleep/noromaid-20b","name":"Noromaid 20B","pricing":{"prompt":"0.000001","completion":"0.00000175","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1700956800,"top_provider":{"context_length":4096,"max_completion_tokens":null,"is_moderated":false}},{"id":"alpindale/goliath-120b","name":"Goliath 120B","pricing":{"prompt":"0.000009","completion":"0.000011","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1699574400,"top_provider":{"context_length":6144,"max_completion_tokens":null,"is_moderated":false}},{"id":"openrouter/auto","name":"Auto Router","pricing":{"prompt":"-1","completion":"-1"},"created":1699401600,"top_provider":{"context_length":null,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","pricing":{"prompt":"0.00001","completion":"0.00003","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1699228800,"top_provider":{"context_length":128000,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","pricing":{"prompt":"0.0000015","completion":"0.000002","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1695859200,"top_provider":{"context_length":4095,"max_completion_tokens":4096,"is_moderated":true}},{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","pricing":{"prompt":"0.00000011","completion":"0.00000019","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1695859200,"top_provider":{"context_length":2824,"max_completion_tokens":null,"is_moderated":false}},{"id":"pygmalionai/mythalion-13b","name":"Pygmalion: Mythalion 13B","pricing":{"prompt":"0.0000006","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1693612800,"top_provider":{"context_length":4096,"max_completion_tokens":4096,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","pricing":{"prompt":"0.000003","completion":"0.000004","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1693180800,"top_provider":{"context_length":16385,"max_completion_tokens":4096,"is_moderated":true}},{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","pricing":{"prompt":"0.0000015","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1690934400,"top_provider":{"context_length":8000,"max_completion_tokens":1000,"is_moderated":false}},{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","pricing":{"prompt":"0.0000007","completion":"0.000001","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1689984000,"top_provider":{"context_length":6144,"max_completion_tokens":null,"is_moderated":false}},{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","pricing":{"prompt":"0.00000006","completion":"0.00000006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1688256000,"top_provider":{"context_length":4096,"max_completion_tokens":null,"is_moderated":false}},{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","pricing":{"prompt":"0.0000005","completion":"0.0000015","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":16385,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","pricing":{"prompt":"0.00003","completion":"0.00006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":8191,"max_completion_tokens":4096,"is_moderated":true}},{"id":"openai/gpt-4","name":"OpenAI: GPT-4","pricing":{"prompt":"0.00003","completion":"0.00006","request":"0","image":"0","audio":"0","web_search":"0","internal_reasoning":"0"},"created":1685232000,"top_provider":{"context_length":8191,"max_completion_tokens":4096,"is_moderated":true}}] \ No newline at end of file diff --git a/packages/kbot/dist-in/utils/merge.d.ts b/packages/kbot/dist-in/utils/merge.d.ts index 9785b4ee..6cffb5fd 100644 --- a/packages/kbot/dist-in/utils/merge.d.ts +++ b/packages/kbot/dist-in/utils/merge.d.ts @@ -25,4 +25,4 @@ export declare function merge(existingContent: string, newContent: string): stri * @param logger - Optional logger instance conforming to SimpleLogger. * @returns The final content written to the file or the original content if read fails. */ -export declare function writeOrAppend(dstPath: string, content: string, appendMode?: 'concat' | 'merge'): string; +export declare function writeOrAppend(dstPath: string, content: string, appendMode?: 'concat' | 'merge' | 'replace'): string; diff --git a/packages/kbot/dist-in/utils/merge.js b/packages/kbot/dist-in/utils/merge.js index c5a1ce00..5be01941 100644 --- a/packages/kbot/dist-in/utils/merge.js +++ b/packages/kbot/dist-in/utils/merge.js @@ -35,6 +35,10 @@ export function merge(existingContent, newContent) { * @returns The final content written to the file or the original content if read fails. */ export function writeOrAppend(dstPath, content, appendMode) { + if (appendMode === 'replace') { + write(dstPath, content); + return content; + } let finalContent = content; if (exists(dstPath) && appendMode) { const existingContentBuffer = read(dstPath); // Read returns Buffer | undefined @@ -44,11 +48,11 @@ export function writeOrAppend(dstPath, content, appendMode) { finalContent = concat(existingContent, content); } else if (appendMode === 'merge') { - finalContent = merge(existingContent, content); // Using placeholder merge for now + finalContent = merge(existingContent, content); } } } write(dstPath, finalContent); return finalContent; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxlQUF1QixFQUFFLFVBQWtCO0lBQ2hFLE9BQU8sZUFBZSxHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBQ3JELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsZUFBdUIsRUFBRSxVQUFrQjtJQUMvRCxvQ0FBb0M7SUFDcEMsaUZBQWlGO0lBQ2pGLE9BQU8sZUFBZSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBZSxFQUNmLE9BQWUsRUFDZixVQUErQjtJQUUvQixJQUFJLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDM0IsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDL0UsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQzFELE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztZQUM1RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzVCLE9BQU8sWUFBWSxDQUFBO0FBQ3JCLENBQUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxlQUF1QixFQUFFLFVBQWtCO0lBQ2hFLE9BQU8sZUFBZSxHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBQ3JELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsZUFBdUIsRUFBRSxVQUFrQjtJQUMvRCxvQ0FBb0M7SUFDcEMsaUZBQWlGO0lBQ2pGLE9BQU8sZUFBZSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBZSxFQUNmLE9BQWUsRUFDZixVQUEyQztJQUUzQyxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDM0IsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDL0UsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQzFELE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdCLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMifQ== \ No newline at end of file diff --git a/packages/kbot/dist-in/zod_schema.d.ts b/packages/kbot/dist-in/zod_schema.d.ts index 6ff91ed2..0c3ed77a 100644 --- a/packages/kbot/dist-in/zod_schema.d.ts +++ b/packages/kbot/dist-in/zod_schema.d.ts @@ -13,7 +13,7 @@ export declare const E_Mode: { readonly CUSTOM: "custom"; }; export declare const EType: z.ZodEnum<["completion", "tools", "assistant", "responses", "custom"]>; -export declare const E_AppendMode: z.ZodEnum<["concat", "merge"]>; +export declare const E_AppendMode: z.ZodEnum<["concat", "merge", "replace"]>; export type E_AppendModeType = z.infer; export declare const E_WrapMode: z.ZodEnum<["meta", "none"]>; export type E_WrapModeType = z.infer; diff --git a/packages/kbot/dist-in/zod_schema.js b/packages/kbot/dist-in/zod_schema.js index 847e1722..9719119a 100644 --- a/packages/kbot/dist-in/zod_schema.js +++ b/packages/kbot/dist-in/zod_schema.js @@ -33,7 +33,7 @@ export const EType = z.enum([ E_Mode.CUSTOM ]); // Define the new enum for append modes -export const E_AppendMode = z.enum(['concat', 'merge']); +export const E_AppendMode = z.enum(['concat', 'merge', 'replace']); // Define the new enum for wrap modes export const E_WrapMode = z.enum(['meta', 'none']); // Define the new enum for glob extensions (presets) @@ -224,4 +224,4 @@ export const schemas = () => { write([OptionsSchema()], 'schema.json', 'kbot', {}); writeFS('schema_ui.json', schemaMap.getUISchema()); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQTtBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRixPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQTtBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRixPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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 \ No newline at end of file diff --git a/packages/kbot/dist-in/zod_types.d.ts b/packages/kbot/dist-in/zod_types.d.ts index 1e17bf73..c26471ec 100644 --- a/packages/kbot/dist-in/zod_types.d.ts +++ b/packages/kbot/dist-in/zod_types.d.ts @@ -8,7 +8,7 @@ export interface IKBotOptions { /** Optional destination path for the result, will substitute ${MODEL_NAME} and ${ROUTER} in the path. Optional, used for "completion" mode */ dst?: string | undefined; /** How to handle output if --dst file already exists: "concat" (append) or "merge" (try to merge structures if possible, otherwise append). Only used if --dst is specified. */ - append?: ("concat" | "merge") | undefined; + append?: ("concat" | "merge" | "replace") | undefined; /** Specify how to wrap the output, "meta (file name, absolute path, cwd)" or "none". */ wrap?: "meta" | "none"; /** Iterate over items, supported: GLOB | Path to JSON File | array of strings (comma separated). To test different models, use --each="gpt-3.5-turbo,gpt-4o", the actual string will exposed as variable `ITEM`, eg: --dst="${ITEM}-output.md" */ @@ -31,8 +31,6 @@ export interface IKBotOptions {   OpenRouter models:  - 01-ai/yi-large | paid - aetherwiing/mn-starcannon-12b | paid agentica-org/deepcoder-14b-preview | paid agentica-org/deepcoder-14b-preview:free | free ai21/jamba-1.6-large | paid @@ -48,11 +46,8 @@ export interface IKBotOptions { anthropic/claude-3-haiku:beta | paid anthropic/claude-3-opus | paid anthropic/claude-3-opus:beta | paid - anthropic/claude-3-sonnet | paid - anthropic/claude-3-sonnet:beta | paid anthropic/claude-3.5-haiku | paid anthropic/claude-3.5-haiku-20241022 | paid - anthropic/claude-3.5-haiku-20241022:beta | paid anthropic/claude-3.5-haiku:beta | paid anthropic/claude-3.5-sonnet | paid anthropic/claude-3.5-sonnet-20240620 | paid @@ -62,23 +57,17 @@ export interface IKBotOptions { anthropic/claude-3.7-sonnet:beta | paid anthropic/claude-3.7-sonnet:thinking | paid anthropic/claude-opus-4 | paid + anthropic/claude-opus-4.1 | paid anthropic/claude-sonnet-4 | paid - anthropic/claude-2 | paid - anthropic/claude-2:beta | paid - anthropic/claude-2.0 | paid - anthropic/claude-2.0:beta | paid - anthropic/claude-2.1 | paid - anthropic/claude-2.1:beta | paid - arcee-ai/arcee-blitz | paid - arcee-ai/caller-large | paid arcee-ai/coder-large | paid arcee-ai/maestro-reasoning | paid arcee-ai/spotlight | paid arcee-ai/virtuoso-large | paid - arcee-ai/virtuoso-medium-v2 | paid + arliai/qwq-32b-arliai-rpr-v1 | paid arliai/qwq-32b-arliai-rpr-v1:free | free openrouter/auto | paid baidu/ernie-4.5-300b-a47b | paid + bytedance/ui-tars-1.5-7b | paid cohere/command | paid cohere/command-a | paid cohere/command-r | paid @@ -92,10 +81,9 @@ export interface IKBotOptions { deepseek/deepseek-r1-0528-qwen3-8b | paid deepseek/deepseek-r1-0528-qwen3-8b:free | free deepseek/deepseek-chat | paid - deepseek/deepseek-chat:free | free deepseek/deepseek-chat-v3-0324 | paid deepseek/deepseek-chat-v3-0324:free | free - deepseek/deepseek-v3-base:free | free + deepseek/deepseek-v3-base | paid deepseek/deepseek-r1 | paid deepseek/deepseek-r1:free | free deepseek/deepseek-r1-0528 | paid @@ -109,12 +97,11 @@ export interface IKBotOptions { deepseek/deepseek-r1-distill-qwen-32b | paid deepseek/deepseek-r1-distill-qwen-7b | paid cognitivecomputations/dolphin-mixtral-8x22b | paid + cognitivecomputations/dolphin3.0-mistral-24b | paid cognitivecomputations/dolphin3.0-mistral-24b:free | free cognitivecomputations/dolphin3.0-r1-mistral-24b | paid cognitivecomputations/dolphin3.0-r1-mistral-24b:free | free eleutherai/llemma_7b | paid - eva-unit-01/eva-llama-3.33-70b | paid - eva-unit-01/eva-qwen-2.5-72b | paid sao10k/fimbulvetr-11b-v2 | paid alpindale/goliath-120b | paid google/gemini-flash-1.5 | paid @@ -124,6 +111,7 @@ export interface IKBotOptions { google/gemini-2.0-flash-exp:free | free google/gemini-2.0-flash-lite-001 | paid google/gemini-2.5-flash | paid + google/gemini-2.5-flash-lite | paid google/gemini-2.5-flash-lite-preview-06-17 | paid google/gemini-2.5-pro | paid google/gemini-2.5-pro-exp-03-25 | paid @@ -141,6 +129,7 @@ export interface IKBotOptions { google/gemma-3n-e2b-it:free | free google/gemma-3n-e4b-it | paid google/gemma-3n-e4b-it:free | free + openrouter/horizon-beta | paid inception/mercury | paid inception/mercury-coder | paid infermatic/mn-inferor-12b | paid @@ -151,7 +140,6 @@ export interface IKBotOptions { liquid/lfm-40b | paid liquid/lfm-7b | paid meta-llama/llama-guard-3-8b | paid - alpindale/magnum-72b | paid anthracite-org/magnum-v2-72b | paid anthracite-org/magnum-v4-72b | paid mancer/weaver | paid @@ -174,6 +162,7 @@ export interface IKBotOptions { meta-llama/llama-4-scout | paid meta-llama/llama-guard-4-12b | paid meta-llama/llama-guard-2-8b | paid + microsoft/mai-ds-r1 | paid microsoft/mai-ds-r1:free | free microsoft/phi-4 | paid microsoft/phi-4-multimodal-instruct | paid @@ -187,10 +176,10 @@ export interface IKBotOptions { mistralai/mistral-large | paid mistralai/mistral-large-2407 | paid mistralai/mistral-large-2411 | paid - nothingiisreal/mn-celeste-12b | paid mistralai/mistral-small | paid mistralai/mistral-tiny | paid mistralai/codestral-2501 | paid + mistralai/codestral-2508 | paid mistralai/devstral-medium | paid mistralai/devstral-small | paid mistralai/devstral-small-2505 | paid @@ -219,10 +208,10 @@ export interface IKBotOptions { mistralai/pixtral-12b | paid mistralai/pixtral-large-2411 | paid mistralai/mistral-saba | paid + moonshotai/kimi-vl-a3b-thinking | paid moonshotai/kimi-vl-a3b-thinking:free | free moonshotai/kimi-k2 | paid moonshotai/kimi-k2:free | free - morph/morph-v2 | paid morph/morph-v3-fast | paid morph/morph-v3-large | paid gryphe/mythomax-l2-13b | paid @@ -230,6 +219,7 @@ export interface IKBotOptions { neversleep/llama-3.1-lumimaid-8b | paid neversleep/noromaid-20b | paid nousresearch/deephermes-3-llama-3-8b-preview:free | free + nousresearch/deephermes-3-mistral-24b-preview | paid nousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid nousresearch/hermes-3-llama-3.1-405b | paid nousresearch/hermes-3-llama-3.1-70b | paid @@ -240,6 +230,8 @@ export interface IKBotOptions { nvidia/llama-3.3-nemotron-super-49b-v1 | paid openai/chatgpt-4o-latest | paid openai/codex-mini | paid + openai/gpt-oss-120b | paid + openai/gpt-oss-20b | paid openai/gpt-3.5-turbo | paid openai/gpt-3.5-turbo-0613 | paid openai/gpt-3.5-turbo-16k | paid @@ -264,8 +256,6 @@ export interface IKBotOptions { openai/o1 | paid openai/o1-mini | paid openai/o1-mini-2024-09-12 | paid - openai/o1-preview | paid - openai/o1-preview-2024-09-12 | paid openai/o1-pro | paid openai/o3 | paid openai/o3-mini | paid @@ -281,6 +271,7 @@ export interface IKBotOptions { perplexity/sonar-reasoning | paid perplexity/sonar-reasoning-pro | paid pygmalionai/mythalion-13b | paid + featherless/qwerky-72b:free | free qwen/qwen-2-72b-instruct | paid qwen/qwen-vl-max | paid qwen/qwen-vl-plus | paid @@ -296,13 +287,16 @@ export interface IKBotOptions { qwen/qwen3-14b:free | free qwen/qwen3-235b-a22b | paid qwen/qwen3-235b-a22b:free | free + qwen/qwen3-235b-a22b-2507 | paid + qwen/qwen3-235b-a22b-thinking-2507 | paid qwen/qwen3-30b-a3b | paid qwen/qwen3-30b-a3b:free | free + qwen/qwen3-30b-a3b-instruct-2507 | paid qwen/qwen3-32b | paid - qwen/qwen3-32b:free | free qwen/qwen3-4b:free | free qwen/qwen3-8b | paid qwen/qwen3-8b:free | free + qwen/qwen3-coder | paid qwen/qwq-32b | paid qwen/qwq-32b:free | free qwen/qwq-32b-preview | paid @@ -311,16 +305,14 @@ export interface IKBotOptions { qwen/qwen-2.5-7b-instruct | paid qwen/qwen-2.5-coder-32b-instruct | paid qwen/qwen-2.5-coder-32b-instruct:free | free - featherless/qwerky-72b:free | free - rekaai/reka-flash-3 | paid rekaai/reka-flash-3:free | free undi95/remm-slerp-l2-13b | paid sao10k/l3-lunaris-8b | paid sao10k/l3-euryale-70b | paid sao10k/l3.1-euryale-70b | paid sao10k/l3.3-euryale-70b | paid - sarvamai/sarvam-m | paid sarvamai/sarvam-m:free | free + shisa-ai/shisa-v2-llama3.3-70b | paid shisa-ai/shisa-v2-llama3.3-70b:free | free raifle/sorcererlm-8x22b | paid switchpoint/router | paid @@ -333,9 +325,9 @@ export interface IKBotOptions { thedrummer/unslopnemo-12b | paid thedrummer/valkyrie-49b-v1 | paid thudm/glm-4-32b | paid - thudm/glm-4-32b:free | free thudm/glm-4.1v-9b-thinking | paid thudm/glm-z1-32b:free | free + tngtech/deepseek-r1t-chimera | paid tngtech/deepseek-r1t-chimera:free | free tngtech/deepseek-r1t2-chimera:free | free undi95/toppy-m-7b | paid @@ -350,6 +342,10 @@ export interface IKBotOptions { x-ai/grok-3-mini-beta | paid x-ai/grok-4 | paid x-ai/grok-vision-beta | paid + z-ai/glm-4-32b | paid + z-ai/glm-4.5 | paid + z-ai/glm-4.5-air | paid + z-ai/glm-4.5-air:free | free   OpenAI models:  @@ -408,8 +404,6 @@ export interface IKBotOptions { o1-2024-12-17 o1-mini o1-mini-2024-09-12 - o1-preview - o1-preview-2024-09-12 o1-pro o1-pro-2025-03-19 o3-mini diff --git a/packages/kbot/dist/main_node.js b/packages/kbot/dist/main_node.js index 84cf837e..fe2f8a80 100644 --- a/packages/kbot/dist/main_node.js +++ b/packages/kbot/dist/main_node.js @@ -21419,6 +21419,234 @@ function range(a, b, str) { } +/***/ }), + +/***/ 79272: +/***/ ((module, exports, __webpack_require__) => { + +/** + * Module dependencies. + */ + +var fs = __webpack_require__(79896), + path = __webpack_require__(16928), + fileURLToPath = __webpack_require__(25241), + join = path.join, + dirname = path.dirname, + exists = + (fs.accessSync && + function(path) { + try { + fs.accessSync(path); + } catch (e) { + return false; + } + return true; + }) || + fs.existsSync || + path.existsSync, + defaults = { + arrow: process.env.NODE_BINDINGS_ARROW || ' → ', + compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled', + platform: process.platform, + arch: process.arch, + nodePreGyp: + 'node-v' + + process.versions.modules + + '-' + + process.platform + + '-' + + process.arch, + version: process.versions.node, + bindings: 'bindings.node', + try: [ + // node-gyp's linked version in the "build" dir + ['module_root', 'build', 'bindings'], + // node-waf and gyp_addon (a.k.a node-gyp) + ['module_root', 'build', 'Debug', 'bindings'], + ['module_root', 'build', 'Release', 'bindings'], + // Debug files, for development (legacy behavior, remove for node v0.9) + ['module_root', 'out', 'Debug', 'bindings'], + ['module_root', 'Debug', 'bindings'], + // Release files, but manually compiled (legacy behavior, remove for node v0.9) + ['module_root', 'out', 'Release', 'bindings'], + ['module_root', 'Release', 'bindings'], + // Legacy from node-waf, node <= 0.4.x + ['module_root', 'build', 'default', 'bindings'], + // Production "Release" buildtype binary (meh...) + ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'], + // node-qbs builds + ['module_root', 'addon-build', 'release', 'install-root', 'bindings'], + ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'], + ['module_root', 'addon-build', 'default', 'install-root', 'bindings'], + // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch} + ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings'] + ] + }; + +/** + * The main `bindings()` function loads the compiled bindings for a given module. + * It uses V8's Error API to determine the parent filename that this function is + * being invoked from, which is then used to find the root directory. + */ + +function bindings(opts) { + // Argument surgery + if (typeof opts == 'string') { + opts = { bindings: opts }; + } else if (!opts) { + opts = {}; + } + + // maps `defaults` onto `opts` object + Object.keys(defaults).map(function(i) { + if (!(i in opts)) opts[i] = defaults[i]; + }); + + // Get the module root + if (!opts.module_root) { + opts.module_root = exports.getRoot(exports.getFileName()); + } + + // Ensure the given bindings name ends with .node + if (path.extname(opts.bindings) != '.node') { + opts.bindings += '.node'; + } + + // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035 + var requireFunc = + true + ? require + : 0; + + var tries = [], + i = 0, + l = opts.try.length, + n, + b, + err; + + for (; i < l; i++) { + n = join.apply( + null, + opts.try[i].map(function(p) { + return opts[p] || p; + }) + ); + tries.push(n); + try { + b = opts.path ? requireFunc.resolve(n) : requireFunc(n); + if (!opts.path) { + b.path = n; + } + return b; + } catch (e) { + if (e.code !== 'MODULE_NOT_FOUND' && + e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' && + !/not find/i.test(e.message)) { + throw e; + } + } + } + + err = new Error( + 'Could not locate the bindings file. Tried:\n' + + tries + .map(function(a) { + return opts.arrow + a; + }) + .join('\n') + ); + err.tries = tries; + throw err; +} +module.exports = exports = bindings; + +/** + * Gets the filename of the JavaScript file that invokes this function. + * Used to help find the root directory of a module. + * Optionally accepts an filename argument to skip when searching for the invoking filename + */ + +exports.getFileName = function getFileName(calling_file) { + var origPST = Error.prepareStackTrace, + origSTL = Error.stackTraceLimit, + dummy = {}, + fileName; + + Error.stackTraceLimit = 10; + + Error.prepareStackTrace = function(e, st) { + for (var i = 0, l = st.length; i < l; i++) { + fileName = st[i].getFileName(); + if (fileName !== __filename) { + if (calling_file) { + if (fileName !== calling_file) { + return; + } + } else { + return; + } + } + } + }; + + // run the 'prepareStackTrace' function above + Error.captureStackTrace(dummy); + dummy.stack; + + // cleanup + Error.prepareStackTrace = origPST; + Error.stackTraceLimit = origSTL; + + // handle filename that starts with "file://" + var fileSchema = 'file://'; + if (fileName.indexOf(fileSchema) === 0) { + fileName = fileURLToPath(fileName); + } + + return fileName; +}; + +/** + * Gets the root directory of a module, given an arbitrary filename + * somewhere in the module tree. The "root directory" is the directory + * containing the `package.json` file. + * + * In: /home/nate/node-native-module/lib/index.js + * Out: /home/nate/node-native-module + */ + +exports.getRoot = function getRoot(file) { + var dir = dirname(file), + prev; + while (true) { + if (dir === '.') { + // Avoids an infinite loop in rare cases, like the REPL + dir = process.cwd(); + } + if ( + exists(join(dir, 'package.json')) || + exists(join(dir, 'node_modules')) + ) { + // Found the 'package.json' file or 'node_modules' dir; we're done + return dir; + } + if (prev === dir) { + // Got to the top + throw new Error( + 'Could not find module root given file: "' + + file + + '". Do you have a `package.json` file? ' + ); + } + // Try the parent dir next + prev = dir; + dir = join(dir, '..'); + } +}; + + /***/ }), /***/ 96586: @@ -28733,6 +28961,79 @@ var fecha = { //# sourceMappingURL=fecha.js.map +/***/ }), + +/***/ 25241: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/** + * Module dependencies. + */ + +var sep = (__webpack_require__(16928).sep) || '/'; + +/** + * Module exports. + */ + +module.exports = fileUriToPath; + +/** + * File URI to Path function. + * + * @param {String} uri + * @return {String} path + * @api public + */ + +function fileUriToPath (uri) { + if ('string' != typeof uri || + uri.length <= 7 || + 'file://' != uri.substring(0, 7)) { + throw new TypeError('must pass in a file:// URI to convert to a file path'); + } + + var rest = decodeURI(uri.substring(7)); + var firstSlash = rest.indexOf('/'); + var host = rest.substring(0, firstSlash); + var path = rest.substring(firstSlash + 1); + + // 2. Scheme Definition + // As a special case, can be the string "localhost" or the empty + // string; this is interpreted as "the machine from which the URL is + // being interpreted". + if ('localhost' == host) host = ''; + + if (host) { + host = sep + sep + host; + } + + // 3.2 Drives, drive letters, mount points, file system root + // Drive letters are mapped into the top of a file URI in various ways, + // depending on the implementation; some applications substitute + // vertical bar ("|") for the colon after the drive letter, yielding + // "file:///c|/tmp/test.txt". In some cases, the colon is left + // unchanged, as in "file:///c:/tmp/test.txt". In other cases, the + // colon is simply omitted, as in "file:///c/tmp/test.txt". + path = path.replace(/^(.+)\|/, '$1:'); + + // for Windows, we need to invert the path separators from what a URI uses + if (sep == '\\') { + path = path.replace(/\//g, '\\'); + } + + if (/^.+\:/.test(path)) { + // has Windows drive at beginning of path + } else { + // unix path… + path = sep + path; + } + + return host + path; +} + + /***/ }), /***/ 67027: @@ -33003,6 +33304,2972 @@ module.exports = function () { }; +/***/ }), + +/***/ 10298: +/***/ ((module) => { + +"use strict"; + + +const codes = {}; + +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } + + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } + + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + + codes[code] = NodeError; +} + +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } + + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} + +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } + + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } + + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + +module.exports.F = codes; + + +/***/ }), + +/***/ 60161: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + + + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ + +module.exports = Duplex; +var Readable = __webpack_require__(56935); +var Writable = __webpack_require__(34027); +__webpack_require__(53972)(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } + } +} +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); + +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(onEndNT, this); +} +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +/***/ }), + +/***/ 54965: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + + + +module.exports = PassThrough; +var Transform = __webpack_require__(39191); +__webpack_require__(53972)(PassThrough, Transform); +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); +} +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; + +/***/ }), + +/***/ 56935: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +module.exports = Readable; + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = (__webpack_require__(24434).EventEmitter); +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __webpack_require__(51129); +/**/ + +var Buffer = (__webpack_require__(20181).Buffer); +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ +var debugUtil = __webpack_require__(39023); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ + +var BufferList = __webpack_require__(21586); +var destroyImpl = __webpack_require__(55951); +var _require = __webpack_require__(83392), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = (__webpack_require__(10298)/* .codes */ .F), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__webpack_require__(53972)(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(60161); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = (__webpack_require__(58184)/* .StringDecoder */ .I); + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} +function Readable(options) { + Duplex = Duplex || __webpack_require__(60161); + if (!(this instanceof Readable)) return new Readable(options); + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + } + + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = (__webpack_require__(58184)/* .StringDecoder */ .I); + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; + +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } + + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; + + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __webpack_require__(46550); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __webpack_require__(91789); + } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} + +/***/ }), + +/***/ 39191: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; +var _require$codes = (__webpack_require__(10298)/* .codes */ .F), + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +var Duplex = __webpack_require__(60161); +__webpack_require__(53972)(Transform, Duplex); +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} +function prefinish() { + var _this = this; + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} + +/***/ }), + +/***/ 34027: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var internalUtil = { + deprecate: __webpack_require__(32926) +}; +/**/ + +/**/ +var Stream = __webpack_require__(51129); +/**/ + +var Buffer = (__webpack_require__(20181).Buffer); +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __webpack_require__(55951); +var _require = __webpack_require__(83392), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = (__webpack_require__(10298)/* .codes */ .F), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__webpack_require__(53972)(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(60161); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __webpack_require__(60161); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; +}; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; + +/***/ }), + +/***/ 46550: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __webpack_require__(17749); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } + + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; + +/***/ }), + +/***/ 21586: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __webpack_require__(20181), + Buffer = _require.Buffer; +var _require2 = __webpack_require__(39023), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } + + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); + +/***/ }), + +/***/ 55951: +/***/ ((module) => { + +"use strict"; + + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. + + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; + +/***/ }), + +/***/ 17749: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). + + + +var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(10298)/* .codes */ .F).ERR_STREAM_PREMATURE_CLOSE; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; +} +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; + +/***/ }), + +/***/ 91789: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var ERR_INVALID_ARG_TYPE = (__webpack_require__(10298)/* .codes */ .F).ERR_INVALID_ARG_TYPE; +function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + // Reading boolean to protect against _read + // being called before last iteration completion. + var reading = false; + readable._read = function () { + if (!reading) { + reading = true; + next(); + } + }; + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } + return readable; +} +module.exports = from; + + +/***/ }), + +/***/ 19791: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). + + + +var eos; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; +} +var _require$codes = (__webpack_require__(10298)/* .codes */ .F), + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; + }); + if (eos === undefined) eos = __webpack_require__(17749); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; + + // request.destroy just do .end - .abort is what we want + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); + }; +} +function call(fn) { + fn(); +} +function pipe(from, to) { + return from.pipe(to); +} +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); + } + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); +} +module.exports = pipeline; + +/***/ }), + +/***/ 83392: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var ERR_INVALID_OPT_VALUE = (__webpack_require__(10298)/* .codes */ .F).ERR_INVALID_OPT_VALUE; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; + +/***/ }), + +/***/ 51129: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(2203); + + +/***/ }), + +/***/ 72093: +/***/ ((module, exports, __webpack_require__) => { + +var Stream = __webpack_require__(2203); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream.Readable; + Object.assign(module.exports, Stream); + module.exports.Stream = Stream; +} else { + exports = module.exports = __webpack_require__(56935); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = __webpack_require__(34027); + exports.Duplex = __webpack_require__(60161); + exports.Transform = __webpack_require__(39191); + exports.PassThrough = __webpack_require__(54965); + exports.finished = __webpack_require__(17749); + exports.pipeline = __webpack_require__(19791); +} + + /***/ }), /***/ 50980: @@ -34148,6 +37415,273 @@ const removeCirculars = (obj, branch = new Map(), path = "root") => { }; +/***/ }), + +/***/ 67322: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(79272)('node_sqlite3.node'); + + +/***/ }), + +/***/ 45430: +/***/ ((module, exports, __webpack_require__) => { + +const path = __webpack_require__(16928); +const sqlite3 = __webpack_require__(67322); +const EventEmitter = (__webpack_require__(24434).EventEmitter); +module.exports = exports = sqlite3; + +function normalizeMethod (fn) { + return function (sql) { + let errBack; + const args = Array.prototype.slice.call(arguments, 1); + + if (typeof args[args.length - 1] === 'function') { + const callback = args[args.length - 1]; + errBack = function(err) { + if (err) { + callback(err); + } + }; + } + const statement = new Statement(this, sql, errBack); + return fn.call(this, statement, args); + }; +} + +function inherits(target, source) { + for (const k in source.prototype) + target.prototype[k] = source.prototype[k]; +} + +sqlite3.cached = { + Database: function(file, a, b) { + if (file === '' || file === ':memory:') { + // Don't cache special databases. + return new Database(file, a, b); + } + + let db; + file = path.resolve(file); + + if (!sqlite3.cached.objects[file]) { + db = sqlite3.cached.objects[file] = new Database(file, a, b); + } + else { + // Make sure the callback is called. + db = sqlite3.cached.objects[file]; + const callback = (typeof a === 'number') ? b : a; + if (typeof callback === 'function') { + function cb() { callback.call(db, null); } + if (db.open) process.nextTick(cb); + else db.once('open', cb); + } + } + + return db; + }, + objects: {} +}; + + +const Database = sqlite3.Database; +const Statement = sqlite3.Statement; +const Backup = sqlite3.Backup; + +inherits(Database, EventEmitter); +inherits(Statement, EventEmitter); +inherits(Backup, EventEmitter); + +// Database#prepare(sql, [bind1, bind2, ...], [callback]) +Database.prototype.prepare = normalizeMethod(function(statement, params) { + return params.length + ? statement.bind.apply(statement, params) + : statement; +}); + +// Database#run(sql, [bind1, bind2, ...], [callback]) +Database.prototype.run = normalizeMethod(function(statement, params) { + statement.run.apply(statement, params).finalize(); + return this; +}); + +// Database#get(sql, [bind1, bind2, ...], [callback]) +Database.prototype.get = normalizeMethod(function(statement, params) { + statement.get.apply(statement, params).finalize(); + return this; +}); + +// Database#all(sql, [bind1, bind2, ...], [callback]) +Database.prototype.all = normalizeMethod(function(statement, params) { + statement.all.apply(statement, params).finalize(); + return this; +}); + +// Database#each(sql, [bind1, bind2, ...], [callback], [complete]) +Database.prototype.each = normalizeMethod(function(statement, params) { + statement.each.apply(statement, params).finalize(); + return this; +}); + +Database.prototype.map = normalizeMethod(function(statement, params) { + statement.map.apply(statement, params).finalize(); + return this; +}); + +// Database#backup(filename, [callback]) +// Database#backup(filename, destName, sourceName, filenameIsDest, [callback]) +Database.prototype.backup = function() { + let backup; + if (arguments.length <= 2) { + // By default, we write the main database out to the main database of the named file. + // This is the most likely use of the backup api. + backup = new Backup(this, arguments[0], 'main', 'main', true, arguments[1]); + } else { + // Otherwise, give the user full control over the sqlite3_backup_init arguments. + backup = new Backup(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); + } + // Per the sqlite docs, exclude the following errors as non-fatal by default. + backup.retryErrors = [sqlite3.BUSY, sqlite3.LOCKED]; + return backup; +}; + +Statement.prototype.map = function() { + const params = Array.prototype.slice.call(arguments); + const callback = params.pop(); + params.push(function(err, rows) { + if (err) return callback(err); + const result = {}; + if (rows.length) { + const keys = Object.keys(rows[0]); + const key = keys[0]; + if (keys.length > 2) { + // Value is an object + for (let i = 0; i < rows.length; i++) { + result[rows[i][key]] = rows[i]; + } + } else { + const value = keys[1]; + // Value is a plain value + for (let i = 0; i < rows.length; i++) { + result[rows[i][key]] = rows[i][value]; + } + } + } + callback(err, result); + }); + return this.all.apply(this, params); +}; + +let isVerbose = false; + +const supportedEvents = [ 'trace', 'profile', 'change' ]; + +Database.prototype.addListener = Database.prototype.on = function(type) { + const val = EventEmitter.prototype.addListener.apply(this, arguments); + if (supportedEvents.indexOf(type) >= 0) { + this.configure(type, true); + } + return val; +}; + +Database.prototype.removeListener = function(type) { + const val = EventEmitter.prototype.removeListener.apply(this, arguments); + if (supportedEvents.indexOf(type) >= 0 && !this._events[type]) { + this.configure(type, false); + } + return val; +}; + +Database.prototype.removeAllListeners = function(type) { + const val = EventEmitter.prototype.removeAllListeners.apply(this, arguments); + if (supportedEvents.indexOf(type) >= 0) { + this.configure(type, false); + } + return val; +}; + +// Save the stack trace over EIO callbacks. +sqlite3.verbose = function() { + if (!isVerbose) { + const trace = __webpack_require__(60738); + [ + 'prepare', + 'get', + 'run', + 'all', + 'each', + 'map', + 'close', + 'exec' + ].forEach(function (name) { + trace.extendTrace(Database.prototype, name); + }); + [ + 'bind', + 'get', + 'run', + 'all', + 'each', + 'map', + 'reset', + 'finalize', + ].forEach(function (name) { + trace.extendTrace(Statement.prototype, name); + }); + isVerbose = true; + } + + return sqlite3; +}; + + +/***/ }), + +/***/ 60738: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +// Inspired by https://github.com/tlrobinson/long-stack-traces +const util = __webpack_require__(39023); + +function extendTrace(object, property, pos) { + const old = object[property]; + object[property] = function() { + const error = new Error(); + const name = object.constructor.name + '#' + property + '(' + + Array.prototype.slice.call(arguments).map(function(el) { + return util.inspect(el, false, 0); + }).join(', ') + ')'; + + if (typeof pos === 'undefined') pos = -1; + if (pos < 0) pos += arguments.length; + const cb = arguments[pos]; + if (typeof arguments[pos] === 'function') { + arguments[pos] = function replacement() { + const err = arguments[0]; + if (err && err.stack && !err.__augmented) { + err.stack = filter(err).join('\n'); + err.stack += '\n--> in ' + name; + err.stack += '\n' + filter(error).slice(1).join('\n'); + err.__augmented = true; + } + return cb.apply(this, arguments); + }; + } + return old.apply(this, arguments); + }; +} +exports.extendTrace = extendTrace; + + +function filter(error) { + return error.stack.split('\n').filter(function(line) { + return line.indexOf(__filename) < 0; + }); +} + + /***/ }), /***/ 91370: @@ -34291,6 +37825,309 @@ exports._createParsedCallSite = function(properties) { }; +/***/ }), + +/***/ 58184: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +/**/ + +var Buffer = (__webpack_require__(50980).Buffer); +/**/ + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; + +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; + +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.I = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; + +StringDecoder.prototype.end = utf8End; + +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} + /***/ }), /***/ 94662: @@ -35307,7 +39144,7 @@ LegacyTransportStream.prototype.close = function close() { const util = __webpack_require__(39023); -const Writable = __webpack_require__(69271); +const Writable = __webpack_require__(34027); const { LEVEL } = __webpack_require__(80310); /** @@ -35517,2918 +39354,6 @@ TransportStream.prototype._nop = function _nop() { }; -/***/ }), - -/***/ 41806: -/***/ ((module) => { - -"use strict"; - - -const codes = {}; - -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } - - function getMessage (arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) - } - } - - class NodeError extends Base { - constructor (arg1, arg2, arg3) { - super(getMessage(arg1, arg2, arg3)); - } - } - - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; - - codes[code] = NodeError; -} - -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - const len = expected.length; - expected = expected.map((i) => String(i)); - if (len > 2) { - return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + - expected[len - 1]; - } else if (len === 2) { - return `one of ${thing} ${expected[0]} or ${expected[1]}`; - } else { - return `of ${thing} ${expected[0]}`; - } - } else { - return `of ${thing} ${String(expected)}`; - } -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - return str.substring(this_len - search.length, this_len) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; - } - - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; - } -} - -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - let determiner; - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } - - let msg; - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; - } else { - const type = includes(name, '.') ? 'property' : 'argument'; - msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; - } - - msg += `. Received type ${typeof actual}`; - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); - -module.exports.F = codes; - - -/***/ }), - -/***/ 70938: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - - - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; -}; -/**/ - -module.exports = Duplex; -var Readable = __webpack_require__(15715); -var Writable = __webpack_require__(69271); -__webpack_require__(53972)(Duplex, Readable); -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); - } - } -} -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -Object.defineProperty(Duplex.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); - -// the no-half-open enforcer -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - process.nextTick(onEndNT, this); -} -function onEndNT(self) { - self.end(); -} -Object.defineProperty(Duplex.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -/***/ }), - -/***/ 15715: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -module.exports = Readable; - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = (__webpack_require__(24434).EventEmitter); -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = __webpack_require__(93357); -/**/ - -var Buffer = (__webpack_require__(20181).Buffer); -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ -var debugUtil = __webpack_require__(39023); -var debug; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ - -var BufferList = __webpack_require__(65470); -var destroyImpl = __webpack_require__(97843); -var _require = __webpack_require__(54428), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(41806)/* .codes */ .F), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; - -// Lazy loaded to improve the startup performance. -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; -__webpack_require__(53972)(Readable, Stream); -var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} -function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(70938); - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; - - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; - - // Should .destroy() be called after 'end' (and potentially 'finish') - this.autoDestroy = !!options.autoDestroy; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = (__webpack_require__(95572)/* .StringDecoder */ .I); - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} -function Readable(options) { - Duplex = Duplex || __webpack_require__(70938); - if (!(this instanceof Readable)) return new Readable(options); - - // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); - - // legacy - this.readable = true; - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - Stream.call(this); -} -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } - - // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } - return er; -} -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = (__webpack_require__(95572)/* .StringDecoder */ .I); - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; - // If setEncoding(null), decoder.encoding equals utf8 - this._readableState.encoding = this._readableState.decoder.encoding; - - // Iterate over current buffer to convert already stored Buffers: - var p = this._readableState.buffer.head; - var content = ''; - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; - -// Don't raise the hwm > 1GB -var MAX_HWM = 0x40000000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; - } - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - if (ret !== null) this.emit('data', ret); - return ret; -}; -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); - } -} -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } - - // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(maybeReadMore_, stream, state); - } -} -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - return dest; -}; -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; - - // Try start flowing on next tick if stream isn't explicitly paused - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this); - } - } - } - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } - return res; -}; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } - return res; -}; -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; - - // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); - } -} -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - // we flow only if there is no one listening - // for readable, but we still have to call - // resume() - state.flowing = !state.readableListening; - resume(this, state); - } - state.paused = false; - return this; -}; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(resume_, stream, state); - } -} -function resume_(stream, state) { - debug('resume', state.reading); - if (!state.reading) { - stream.read(0); - } - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - this._readableState.paused = true; - return this; -}; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null); -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - return this; -}; -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(92146); - } - return createReadableStreamAsyncIterator(this); - }; -} -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; - } - } -}); - -// exposed for testing purposes only. -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; -} -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); - if (!state.endEmitted) { - state.ended = true; - process.nextTick(endReadableNT, state, stream); - } -} -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); - - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } - } - } -} -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(42097); - } - return from(Readable, iterable, opts); - }; -} -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} - -/***/ }), - -/***/ 69271: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var internalUtil = { - deprecate: __webpack_require__(32926) -}; -/**/ - -/**/ -var Stream = __webpack_require__(93357); -/**/ - -var Buffer = (__webpack_require__(20181).Buffer); -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -var destroyImpl = __webpack_require__(97843); -var _require = __webpack_require__(54428), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(41806)/* .codes */ .F), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; -var errorOrDestroy = destroyImpl.errorOrDestroy; -__webpack_require__(53972)(Writable, Stream); -function nop() {} -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(70938); - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; - - // Should .destroy() be called after 'finish' (and potentially 'end') - this.autoDestroy = !!options.autoDestroy; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; -} -function Writable(options) { - Duplex = Duplex || __webpack_require__(70938); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); - - // legacy. - this.writable = true; - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; - } - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); -}; -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); - // TODO: defer error events consistently everywhere, not just the cb - errorOrDestroy(stream, er); - process.nextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var er; - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - process.nextTick(cb, er); - return false; - } - return true; -} -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - return ret; -}; -Writable.prototype.cork = function () { - this._writableState.corked++; -}; -Writable.prototype.uncork = function () { - var state = this._writableState; - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - return ret; -} -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - process.nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - process.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } - } -} -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - if (entry === null) state.lastBufferedRequest = null; - } - state.bufferedRequest = entry; - state.bufferProcessing = false; -} -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; -Writable.prototype._writev = null; -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending) endWritable(this, state, cb); - return this; -}; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - errorOrDestroy(stream, err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - process.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } - return need; -} -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) process.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - - // reuse the free corkReq. - state.corkedRequestsFree.next = corkReq; -} -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - cb(err); -}; - -/***/ }), - -/***/ 92146: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var _Object$setPrototypeO; -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var finished = __webpack_require__(64105); -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); - // we defer if data is null - // we can be expecting either 'end' or - // 'error' - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); - } - } -} -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - process.nextTick(readAndResolve, iter); -} -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } - iter[kHandlePromise](resolve, reject); - }, reject); - }; -} -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, - next: function next() { - var _this = this; - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; - if (error !== null) { - return Promise.reject(error); - } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } - - // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time - var lastPromise = this[kLastPromise]; - var promise; - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } - promise = new Promise(this[kHandlePromise]); - } - this[kLastPromise] = promise; - return promise; - } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; - // reject if we are waiting for data in the Promise - // returned by next() and store the error - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } - iterator[kError] = err; - return; - } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); - } - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; -}; -module.exports = createReadableStreamAsyncIterator; - -/***/ }), - -/***/ 65470: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var _require = __webpack_require__(20181), - Buffer = _require.Buffer; -var _require2 = __webpack_require__(39023), - inspect = _require2.inspect; -var custom = inspect && inspect.custom || 'inspect'; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} -module.exports = /*#__PURE__*/function () { - function BufferList() { - _classCallCheck(this, BufferList); - this.head = null; - this.tail = null; - this.length = 0; - } - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; - } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) ret += s + p.data; - return ret; - } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - } - - // Consumes a specified amount of bytes or characters from the buffered data. - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } - return ret; - } - }, { - key: "first", - value: function first() { - return this.head.data; - } - - // Consumes a specified amount of characters from the buffered data. - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; - } - - // Consumes a specified amount of bytes from the buffered data. - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; - } - - // Make sure the linked list only shows the minimal necessary information. - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread(_objectSpread({}, options), {}, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); - } - }]); - return BufferList; -}(); - -/***/ }), - -/***/ 97843: -/***/ ((module) => { - -"use strict"; - - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - process.nextTick(emitErrorNT, this, err); - } - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - process.nextTick(emitErrorAndCloseNT, _this, err); - } else { - process.nextTick(emitCloseNT, _this); - } - } else if (cb) { - process.nextTick(emitCloseNT, _this); - cb(err); - } else { - process.nextTick(emitCloseNT, _this); - } - }); - return this; -} -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} -function emitErrorNT(self, err) { - self.emit('error', err); -} -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; - -/***/ }), - -/***/ 64105: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). - - - -var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(41806)/* .codes */ .F).ERR_STREAM_PREMATURE_CLOSE; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - callback.apply(this, args); - }; -} -function noop() {} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; - var onerror = function onerror(err) { - callback.call(stream, err); - }; - var onclose = function onclose() { - var err; - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - }; - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -} -module.exports = eos; - -/***/ }), - -/***/ 42097: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var ERR_INVALID_ARG_TYPE = (__webpack_require__(41806)/* .codes */ .F).ERR_INVALID_ARG_TYPE; -function from(Readable, iterable, opts) { - var iterator; - if (iterable && typeof iterable.next === 'function') { - iterator = iterable; - } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ - objectMode: true - }, opts)); - // Reading boolean to protect against _read - // being called before last iteration completion. - var reading = false; - readable._read = function () { - if (!reading) { - reading = true; - next(); - } - }; - function next() { - return _next2.apply(this, arguments); - } - function _next2() { - _next2 = _asyncToGenerator(function* () { - try { - var _yield$iterator$next = yield iterator.next(), - value = _yield$iterator$next.value, - done = _yield$iterator$next.done; - if (done) { - readable.push(null); - } else if (readable.push(yield value)) { - next(); - } else { - reading = false; - } - } catch (err) { - readable.destroy(err); - } - }); - return _next2.apply(this, arguments); - } - return readable; -} -module.exports = from; - - -/***/ }), - -/***/ 54428: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var ERR_INVALID_OPT_VALUE = (__webpack_require__(41806)/* .codes */ .F).ERR_INVALID_OPT_VALUE; -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; -} -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); - } - return Math.floor(hwm); - } - - // Default value - return state.objectMode ? 16 : 16 * 1024; -} -module.exports = { - getHighWaterMark: getHighWaterMark -}; - -/***/ }), - -/***/ 93357: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports = __webpack_require__(2203); - - -/***/ }), - -/***/ 95572: -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -/**/ - -var Buffer = (__webpack_require__(50980).Buffer); -/**/ - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.I = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'; - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'; - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'; - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character is added when ending on a partial -// character. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} - /***/ }), /***/ 23878: @@ -39231,7 +40156,7 @@ module.exports = class ExceptionHandler { -const { Writable } = __webpack_require__(98065); +const { Writable } = __webpack_require__(72093); /** * TODO: add class description. @@ -39293,7 +40218,7 @@ module.exports = class ExceptionStream extends Writable { -const { Stream, Transform } = __webpack_require__(98065); +const { Stream, Transform } = __webpack_require__(72093); const asyncForEach = __webpack_require__(22436); const { LEVEL, SPLAT } = __webpack_require__(80310); const isStream = __webpack_require__(79421); @@ -40298,7 +41223,7 @@ module.exports = class RejectionHandler { -const { Writable } = __webpack_require__(98065); +const { Writable } = __webpack_require__(72093); /** * TODO: add class description. @@ -40360,7 +41285,7 @@ module.exports = class RejectionStream extends Writable { const fs = __webpack_require__(79896); const { StringDecoder } = __webpack_require__(13193); -const { Stream } = __webpack_require__(98065); +const { Stream } = __webpack_require__(72093); /** * Simple no-op function. @@ -40629,7 +41554,7 @@ const path = __webpack_require__(16928); const asyncSeries = __webpack_require__(43745); const zlib = __webpack_require__(43106); const { MESSAGE } = __webpack_require__(80310); -const { Stream, PassThrough } = __webpack_require__(98065); +const { Stream, PassThrough } = __webpack_require__(72093); const TransportStream = __webpack_require__(86558); const debug = __webpack_require__(98005)('winston:file'); const os = __webpack_require__(70857); @@ -41396,7 +42321,7 @@ module.exports = class File extends TransportStream { const http = __webpack_require__(58611); const https = __webpack_require__(65692); -const { Stream } = __webpack_require__(98065); +const { Stream } = __webpack_require__(72093); const TransportStream = __webpack_require__(86558); const { configure } = __webpack_require__(27433); @@ -41784,3275 +42709,6 @@ module.exports = class Stream extends TransportStream { }; -/***/ }), - -/***/ 98350: -/***/ ((module) => { - -"use strict"; - - -const codes = {}; - -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } - - function getMessage (arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) - } - } - - class NodeError extends Base { - constructor (arg1, arg2, arg3) { - super(getMessage(arg1, arg2, arg3)); - } - } - - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; - - codes[code] = NodeError; -} - -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - const len = expected.length; - expected = expected.map((i) => String(i)); - if (len > 2) { - return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + - expected[len - 1]; - } else if (len === 2) { - return `one of ${thing} ${expected[0]} or ${expected[1]}`; - } else { - return `of ${thing} ${expected[0]}`; - } - } else { - return `of ${thing} ${String(expected)}`; - } -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - return str.substring(this_len - search.length, this_len) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; - } - - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; - } -} - -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - let determiner; - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } - - let msg; - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; - } else { - const type = includes(name, '.') ? 'property' : 'argument'; - msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; - } - - msg += `. Received type ${typeof actual}`; - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); - -module.exports.F = codes; - - -/***/ }), - -/***/ 73709: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - - - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; -}; -/**/ - -module.exports = Duplex; -var Readable = __webpack_require__(42275); -var Writable = __webpack_require__(14071); -__webpack_require__(53972)(Duplex, Readable); -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); - } - } -} -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -Object.defineProperty(Duplex.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); - -// the no-half-open enforcer -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - process.nextTick(onEndNT, this); -} -function onEndNT(self) { - self.end(); -} -Object.defineProperty(Duplex.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -/***/ }), - -/***/ 29673: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - - - -module.exports = PassThrough; -var Transform = __webpack_require__(13299); -__webpack_require__(53972)(PassThrough, Transform); -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - Transform.call(this, options); -} -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; - -/***/ }), - -/***/ 42275: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -module.exports = Readable; - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = (__webpack_require__(24434).EventEmitter); -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = __webpack_require__(16141); -/**/ - -var Buffer = (__webpack_require__(20181).Buffer); -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ -var debugUtil = __webpack_require__(39023); -var debug; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ - -var BufferList = __webpack_require__(91774); -var destroyImpl = __webpack_require__(85907); -var _require = __webpack_require__(70940), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(98350)/* .codes */ .F), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; - -// Lazy loaded to improve the startup performance. -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; -__webpack_require__(53972)(Readable, Stream); -var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} -function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(73709); - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; - - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; - - // Should .destroy() be called after 'end' (and potentially 'finish') - this.autoDestroy = !!options.autoDestroy; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = (__webpack_require__(66612)/* .StringDecoder */ .I); - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} -function Readable(options) { - Duplex = Duplex || __webpack_require__(73709); - if (!(this instanceof Readable)) return new Readable(options); - - // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); - - // legacy - this.readable = true; - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - Stream.call(this); -} -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } - - // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } - return er; -} -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = (__webpack_require__(66612)/* .StringDecoder */ .I); - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; - // If setEncoding(null), decoder.encoding equals utf8 - this._readableState.encoding = this._readableState.decoder.encoding; - - // Iterate over current buffer to convert already stored Buffers: - var p = this._readableState.buffer.head; - var content = ''; - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; - -// Don't raise the hwm > 1GB -var MAX_HWM = 0x40000000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; - } - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - if (ret !== null) this.emit('data', ret); - return ret; -}; -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); - } -} -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } - - // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(maybeReadMore_, stream, state); - } -} -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - return dest; -}; -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; - - // Try start flowing on next tick if stream isn't explicitly paused - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this); - } - } - } - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } - return res; -}; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } - return res; -}; -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; - - // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); - } -} -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - // we flow only if there is no one listening - // for readable, but we still have to call - // resume() - state.flowing = !state.readableListening; - resume(this, state); - } - state.paused = false; - return this; -}; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(resume_, stream, state); - } -} -function resume_(stream, state) { - debug('resume', state.reading); - if (!state.reading) { - stream.read(0); - } - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - this._readableState.paused = true; - return this; -}; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null); -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - return this; -}; -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(27442); - } - return createReadableStreamAsyncIterator(this); - }; -} -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; - } - } -}); - -// exposed for testing purposes only. -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; -} -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); - if (!state.endEmitted) { - state.ended = true; - process.nextTick(endReadableNT, state, stream); - } -} -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); - - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } - } - } -} -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(76465); - } - return from(Readable, iterable, opts); - }; -} -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} - -/***/ }), - -/***/ 13299: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - - - -module.exports = Transform; -var _require$codes = (__webpack_require__(98350)/* .codes */ .F), - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; -var Duplex = __webpack_require__(73709); -__webpack_require__(53972)(Transform, Duplex); -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - var cb = ts.writecb; - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()); - } - ts.writechunk = null; - ts.writecb = null; - if (data != null) - // single equals check for both `null` and `undefined` - this.push(data); - cb(er); - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} -function prefinish() { - var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); -}; -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; -Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - }); -}; -function done(stream, er, data) { - if (er) return stream.emit('error', er); - if (data != null) - // single equals check for both `null` and `undefined` - stream.push(data); - - // TODO(BridgeAR): Write a test for these two error cases - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); - return stream.push(null); -} - -/***/ }), - -/***/ 14071: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var internalUtil = { - deprecate: __webpack_require__(32926) -}; -/**/ - -/**/ -var Stream = __webpack_require__(16141); -/**/ - -var Buffer = (__webpack_require__(20181).Buffer); -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -var destroyImpl = __webpack_require__(85907); -var _require = __webpack_require__(70940), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(98350)/* .codes */ .F), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; -var errorOrDestroy = destroyImpl.errorOrDestroy; -__webpack_require__(53972)(Writable, Stream); -function nop() {} -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(73709); - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; - - // Should .destroy() be called after 'finish' (and potentially 'end') - this.autoDestroy = !!options.autoDestroy; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; -} -function Writable(options) { - Duplex = Duplex || __webpack_require__(73709); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); - - // legacy. - this.writable = true; - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; - } - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); -}; -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); - // TODO: defer error events consistently everywhere, not just the cb - errorOrDestroy(stream, er); - process.nextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var er; - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - process.nextTick(cb, er); - return false; - } - return true; -} -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - return ret; -}; -Writable.prototype.cork = function () { - this._writableState.corked++; -}; -Writable.prototype.uncork = function () { - var state = this._writableState; - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - return ret; -} -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - process.nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - process.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } - } -} -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - if (entry === null) state.lastBufferedRequest = null; - } - state.bufferedRequest = entry; - state.bufferProcessing = false; -} -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; -Writable.prototype._writev = null; -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending) endWritable(this, state, cb); - return this; -}; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - errorOrDestroy(stream, err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - process.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } - return need; -} -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) process.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - - // reuse the free corkReq. - state.corkedRequestsFree.next = corkReq; -} -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - cb(err); -}; - -/***/ }), - -/***/ 27442: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var _Object$setPrototypeO; -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var finished = __webpack_require__(99369); -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); - // we defer if data is null - // we can be expecting either 'end' or - // 'error' - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); - } - } -} -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - process.nextTick(readAndResolve, iter); -} -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } - iter[kHandlePromise](resolve, reject); - }, reject); - }; -} -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, - next: function next() { - var _this = this; - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; - if (error !== null) { - return Promise.reject(error); - } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } - - // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time - var lastPromise = this[kLastPromise]; - var promise; - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } - promise = new Promise(this[kHandlePromise]); - } - this[kLastPromise] = promise; - return promise; - } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; - // reject if we are waiting for data in the Promise - // returned by next() and store the error - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } - iterator[kError] = err; - return; - } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); - } - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; -}; -module.exports = createReadableStreamAsyncIterator; - -/***/ }), - -/***/ 91774: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var _require = __webpack_require__(20181), - Buffer = _require.Buffer; -var _require2 = __webpack_require__(39023), - inspect = _require2.inspect; -var custom = inspect && inspect.custom || 'inspect'; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} -module.exports = /*#__PURE__*/function () { - function BufferList() { - _classCallCheck(this, BufferList); - this.head = null; - this.tail = null; - this.length = 0; - } - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; - } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) ret += s + p.data; - return ret; - } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - } - - // Consumes a specified amount of bytes or characters from the buffered data. - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } - return ret; - } - }, { - key: "first", - value: function first() { - return this.head.data; - } - - // Consumes a specified amount of characters from the buffered data. - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; - } - - // Consumes a specified amount of bytes from the buffered data. - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; - } - - // Make sure the linked list only shows the minimal necessary information. - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread(_objectSpread({}, options), {}, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); - } - }]); - return BufferList; -}(); - -/***/ }), - -/***/ 85907: -/***/ ((module) => { - -"use strict"; - - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - process.nextTick(emitErrorNT, this, err); - } - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - process.nextTick(emitErrorAndCloseNT, _this, err); - } else { - process.nextTick(emitCloseNT, _this); - } - } else if (cb) { - process.nextTick(emitCloseNT, _this); - cb(err); - } else { - process.nextTick(emitCloseNT, _this); - } - }); - return this; -} -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} -function emitErrorNT(self, err) { - self.emit('error', err); -} -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; - -/***/ }), - -/***/ 99369: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). - - - -var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(98350)/* .codes */ .F).ERR_STREAM_PREMATURE_CLOSE; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - callback.apply(this, args); - }; -} -function noop() {} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; - var onerror = function onerror(err) { - callback.call(stream, err); - }; - var onclose = function onclose() { - var err; - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - }; - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -} -module.exports = eos; - -/***/ }), - -/***/ 76465: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var ERR_INVALID_ARG_TYPE = (__webpack_require__(98350)/* .codes */ .F).ERR_INVALID_ARG_TYPE; -function from(Readable, iterable, opts) { - var iterator; - if (iterable && typeof iterable.next === 'function') { - iterator = iterable; - } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ - objectMode: true - }, opts)); - // Reading boolean to protect against _read - // being called before last iteration completion. - var reading = false; - readable._read = function () { - if (!reading) { - reading = true; - next(); - } - }; - function next() { - return _next2.apply(this, arguments); - } - function _next2() { - _next2 = _asyncToGenerator(function* () { - try { - var _yield$iterator$next = yield iterator.next(), - value = _yield$iterator$next.value, - done = _yield$iterator$next.done; - if (done) { - readable.push(null); - } else if (readable.push(yield value)) { - next(); - } else { - reading = false; - } - } catch (err) { - readable.destroy(err); - } - }); - return _next2.apply(this, arguments); - } - return readable; -} -module.exports = from; - - -/***/ }), - -/***/ 98219: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Ported from https://github.com/mafintosh/pump with -// permission from the author, Mathias Buus (@mafintosh). - - - -var eos; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - callback.apply(void 0, arguments); - }; -} -var _require$codes = (__webpack_require__(98350)/* .codes */ .F), - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; -function noop(err) { - // Rethrow the error if it exists to avoid swallowing it - if (err) throw err; -} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} -function destroyer(stream, reading, writing, callback) { - callback = once(callback); - var closed = false; - stream.on('close', function () { - closed = true; - }); - if (eos === undefined) eos = __webpack_require__(99369); - eos(stream, { - readable: reading, - writable: writing - }, function (err) { - if (err) return callback(err); - closed = true; - callback(); - }); - var destroyed = false; - return function (err) { - if (closed) return; - if (destroyed) return; - destroyed = true; - - // request.destroy just do .end - .abort is what we want - if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); - callback(err || new ERR_STREAM_DESTROYED('pipe')); - }; -} -function call(fn) { - fn(); -} -function pipe(from, to) { - return from.pipe(to); -} -function popCallback(streams) { - if (!streams.length) return noop; - if (typeof streams[streams.length - 1] !== 'function') return noop; - return streams.pop(); -} -function pipeline() { - for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { - streams[_key] = arguments[_key]; - } - var callback = popCallback(streams); - if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams'); - } - var error; - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1; - var writing = i > 0; - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err; - if (err) destroys.forEach(call); - if (reading) return; - destroys.forEach(call); - callback(error); - }); - }); - return streams.reduce(pipe); -} -module.exports = pipeline; - -/***/ }), - -/***/ 70940: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var ERR_INVALID_OPT_VALUE = (__webpack_require__(98350)/* .codes */ .F).ERR_INVALID_OPT_VALUE; -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; -} -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); - } - return Math.floor(hwm); - } - - // Default value - return state.objectMode ? 16 : 16 * 1024; -} -module.exports = { - getHighWaterMark: getHighWaterMark -}; - -/***/ }), - -/***/ 16141: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports = __webpack_require__(2203); - - -/***/ }), - -/***/ 98065: -/***/ ((module, exports, __webpack_require__) => { - -var Stream = __webpack_require__(2203); -if (process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream.Readable; - Object.assign(module.exports, Stream); - module.exports.Stream = Stream; -} else { - exports = module.exports = __webpack_require__(42275); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = __webpack_require__(14071); - exports.Duplex = __webpack_require__(73709); - exports.Transform = __webpack_require__(13299); - exports.PassThrough = __webpack_require__(29673); - exports.finished = __webpack_require__(99369); - exports.pipeline = __webpack_require__(98219); -} - - -/***/ }), - -/***/ 66612: -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -/**/ - -var Buffer = (__webpack_require__(50980).Buffer); -/**/ - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.I = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'; - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'; - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'; - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character is added when ending on a partial -// character. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} - /***/ }), /***/ 646: @@ -176113,7 +173769,7 @@ const ROUTER_BASE_URLS = { openai: '', // OpenAI uses default URL deepseek: 'https://api.deepseek.com', huggingface: 'https://api-inference.huggingface.co', - ollama: 'http://localhost:11434', // Ollama's default local API endpoint + ollama: 'http://localhost:11434/v1', // Ollama's default local API endpoint fireworks: 'https://api.fireworks.ai/v1', // Fireworks API endpoint gemini: 'https://generativelanguage.googleapis.com/v1beta', // Gemini API base URL xai: 'https://api.x.ai/v1', // XAI (Grok) API base URL @@ -176184,7 +173840,7 @@ const createClient = (options) => { baseURL, }); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFRLE1BQU0sTUFBTyxRQUFRLENBQUE7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBS3hDLE1BQU0sZ0JBQWdCLEdBQStCO0lBQ2pELFVBQVUsRUFBRSw4QkFBOEI7SUFDMUMsTUFBTSxFQUFFLEVBQUUsRUFBRSwwQkFBMEI7SUFDdEMsUUFBUSxFQUFFLDBCQUEwQjtJQUNwQyxXQUFXLEVBQUUsc0NBQXNDO0lBQ25ELE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxzQ0FBc0M7SUFDeEUsU0FBUyxFQUFFLDZCQUE2QixFQUFFLHlCQUF5QjtJQUNuRSxNQUFNLEVBQUUsa0RBQWtELEVBQUUsc0JBQXNCO0lBQ2xGLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEI7Q0FDekQsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUErQjtJQUMvQyxVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsdUJBQXVCO0lBQzFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDMUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QjtJQUNqRCxHQUFHLEVBQUUsUUFBUSxDQUFDLDJCQUEyQjtDQUM1QyxDQUFBO0FBQ0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUNsRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxDQUFDLEtBQUssQ0FDUiw4Q0FBOEM7WUFDOUMsd0VBQXdFLENBQzNFLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBZSxDQUFDO0lBRTFFLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFFN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBWTtnQkFDYixNQUFNLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUM7Z0JBQ2pDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO2dCQUM3QixNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLE1BQU0sR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssYUFBYTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUM7Z0JBQ2xDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QseURBQXlEO2dCQUN6RCxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsdUJBQXVCO2dCQUMxQyxNQUFNO1lBQ1YsS0FBSyxXQUFXO2dCQUNaLE1BQU0sR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxNQUFNLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLEtBQUs7Z0JBQ04sTUFBTSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMxQixNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7UUFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sTUFBTSw0RkFBNEYsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUNELE9BQU8sSUFBSSxNQUFNLENBQUM7UUFDZCxNQUFNO1FBQ04sT0FBTztLQUNWLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQSJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFRLE1BQU0sTUFBTyxRQUFRLENBQUE7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBS3hDLE1BQU0sZ0JBQWdCLEdBQStCO0lBQ2pELFVBQVUsRUFBRSw4QkFBOEI7SUFDMUMsTUFBTSxFQUFFLEVBQUUsRUFBRSwwQkFBMEI7SUFDdEMsUUFBUSxFQUFFLDBCQUEwQjtJQUNwQyxXQUFXLEVBQUUsc0NBQXNDO0lBQ25ELE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxzQ0FBc0M7SUFDM0UsU0FBUyxFQUFFLDZCQUE2QixFQUFFLHlCQUF5QjtJQUNuRSxNQUFNLEVBQUUsa0RBQWtELEVBQUUsc0JBQXNCO0lBQ2xGLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEI7Q0FDekQsQ0FBQTtBQUdELE1BQU0sY0FBYyxHQUErQjtJQUMvQyxVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsdUJBQXVCO0lBQzFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDMUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QjtJQUNqRCxHQUFHLEVBQUUsUUFBUSxDQUFDLDJCQUEyQjtDQUM1QyxDQUFBO0FBQ0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUNsRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxDQUFDLEtBQUssQ0FDUiw4Q0FBOEM7WUFDOUMsd0VBQXdFLENBQzNFLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBZSxDQUFDO0lBRTFFLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFFN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBWTtnQkFDYixNQUFNLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUM7Z0JBQ2pDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO2dCQUM3QixNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLE1BQU0sR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssYUFBYTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUM7Z0JBQ2xDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QseURBQXlEO2dCQUN6RCxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsdUJBQXVCO2dCQUMxQyxNQUFNO1lBQ1YsS0FBSyxXQUFXO2dCQUNaLE1BQU0sR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxNQUFNLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLEtBQUs7Z0JBQ04sTUFBTSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMxQixNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7UUFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sTUFBTSw0RkFBNEYsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUNELE9BQU8sSUFBSSxNQUFNLENBQUM7UUFDZCxNQUFNO1FBQ04sT0FBTztLQUNWLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQSJ9 // EXTERNAL MODULE: ./dist-in/zod_schema.js var zod_schema = __webpack_require__(23314); ;// ./dist-in/mime-handlers.js @@ -176402,6 +174058,10 @@ function merge(existingContent, newContent) { * @returns The final content written to the file or the original content if read fails. */ function writeOrAppend(dstPath, content, appendMode) { + if (appendMode === 'replace') { + (0,write/* sync */.OH)(dstPath, content); + return content; + } let finalContent = content; if ((0,exists/* sync */.OH)(dstPath) && appendMode) { const existingContentBuffer = (0,read/* sync */.OH)(dstPath); // Read returns Buffer | undefined @@ -176411,14 +174071,14 @@ function writeOrAppend(dstPath, content, appendMode) { finalContent = concat(existingContent, content); } else if (appendMode === 'merge') { - finalContent = merge(existingContent, content); // Using placeholder merge for now + finalContent = merge(existingContent, content); } } } (0,write/* sync */.OH)(dstPath, finalContent); return finalContent; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxlQUF1QixFQUFFLFVBQWtCO0lBQ2hFLE9BQU8sZUFBZSxHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBQ3JELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsZUFBdUIsRUFBRSxVQUFrQjtJQUMvRCxvQ0FBb0M7SUFDcEMsaUZBQWlGO0lBQ2pGLE9BQU8sZUFBZSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBZSxFQUNmLE9BQWUsRUFDZixVQUErQjtJQUUvQixJQUFJLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDM0IsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDL0UsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQzFELE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztZQUM1RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzVCLE9BQU8sWUFBWSxDQUFBO0FBQ3JCLENBQUMifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxlQUF1QixFQUFFLFVBQWtCO0lBQ2hFLE9BQU8sZUFBZSxHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBQ3JELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsZUFBdUIsRUFBRSxVQUFrQjtJQUMvRCxvQ0FBb0M7SUFDcEMsaUZBQWlGO0lBQ2pGLE9BQU8sZUFBZSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBZSxFQUNmLE9BQWUsRUFDZixVQUEyQztJQUUzQyxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDM0IsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDL0UsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQzFELE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdCLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMifQ== ;// ./dist-in/commands/run-completion.js @@ -176441,6 +174101,7 @@ const onCompletion = async (result = "", options) => { writeOrAppend(dstPath, result, options.append); const action = options.append ? `${options.append} content to` : 'Wrote completion result to'; options.logger?.debug(`${action} ${dstPath} : ${options.dst}`); + console.log(`wrote ${action} ${dstPath} : ${options.dst}`); } else { marked_esm/* marked */.xI.use((0,marked_terminal/* markedTerminal */.X)({ @@ -176470,7 +174131,7 @@ const runCompletion = async (client, params, options) => { result = await onCompletion(result, options); return result; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHakQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDekUsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQW1CLElBQUksRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDdkUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksZ0JBQWdCO1NBQzNDLENBQUE7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUEwQixDQUFDLENBQUE7UUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFBO1FBQzdGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFXLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyQixrQkFBa0I7SUFDbEIsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBRSxNQUFXLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDbEQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3SSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHakQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRSxPQUFrQixFQUFFLEVBQUU7SUFDekUsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQW1CLElBQUksRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDdkUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksZ0JBQWdCO1NBQzNDLENBQUE7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUEwQixDQUFDLENBQUE7UUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFBO1FBQzdGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsTUFBTSxJQUFJLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFXLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyQixrQkFBa0I7SUFDbEIsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBRSxNQUFXLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDbEQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQWE7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3SSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9 // EXTERNAL MODULE: ../fs/dist/inspect.js + 1 modules var inspect = __webpack_require__(1635); // EXTERNAL MODULE: ./dist-in/constants.js @@ -177014,18 +174675,25 @@ function createHandlers(options) { new text_handler_TextHandler(), ]; } + async function detectAndHandle(content, options) { const handlers = createHandlers(options); - // Check if content is a file path - const contentStr = content.toString(); - if ((0,exists/* sync */.OH)(contentStr)) { - const filePath = external_node_path_.resolve(contentStr); - for (const handler of handlers) { - if (await handler.canHandle(filePath, true)) { - return handler.handle(filePath, true); + const contentStr = content.toString().trim(); + try { + if ((0,dist/* isFile */.fo)(contentStr) && (0,exists/* sync */.OH)(contentStr)) { + const filePath = external_node_path_.resolve(contentStr); + for (const handler of handlers) { + if (await handler.canHandle(filePath, true)) { + return handler.handle(filePath, true); + } } } } + catch (e) { + // options.logger?.warn(`Malformed path detected. Treating as content. Error: ${e.message}`); + // If it's not a valid path, it will throw an error, so we just continue + console.error(`Malformed path detected. Treating as content. Error: ${e.message}`); + } // Handle as raw content for (const handler of handlers) { if (await handler.canHandle(content, false)) { @@ -177034,7 +174702,7 @@ async function detectAndHandle(content, options) { } throw new Error('No suitable handler found for the input content'); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUlwRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXFCO0lBQ2xELE9BQU87UUFDTCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksV0FBVyxFQUFFO0tBQ2xCLENBQUE7QUFDSCxDQUFDO0FBQ0QsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsT0FBd0IsRUFBRSxPQUFxQjtJQUNuRixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFJLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUlwRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXFCO0lBQ2xELE9BQU87UUFDTCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksV0FBVyxFQUFFO0tBQ2xCLENBQUE7QUFDSCxDQUFDO0FBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQXdCLEVBQUUsT0FBcUI7SUFDbkYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxJQUFJLENBQUM7UUFDSCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQy9CLElBQUksTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLDZGQUE2RjtRQUM3Rix3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFDckUsQ0FBQyJ9 ;// ./dist-in/utils/input.js @@ -178494,7 +176162,7 @@ include = [], options) { ROUTER: options.router || 'unknown_router' }; const potentialDstPath = external_node_path_.resolve((0,dist/* resolve */.hd)(options.dst, false, fullVarsForDst)); - if ((0,exists/* sync */.OH)(potentialDstPath)) { + if ((0,exists/* sync */.OH)(potentialDstPath) && options.append !== 'replace') { options.logger?.info(`Skipping source file ${external_node_path_.relative(projectPath, absoluteSrcFilePath)} as output ${potentialDstPath} already exists.`); } else { @@ -178574,7 +176242,7 @@ async function vectorize(file, options) { throw error; } } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUU3Qix3RkFBd0Y7QUFFeEYsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUEsQ0FBQyw2QkFBNkI7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbURBQW1EO0FBQ3JJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxzREFBc0Q7QUFDdEQsbUZBQW1GO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBLENBQUMsMkJBQTJCO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQSxDQUFDLCtCQUErQjtBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUEsQ0FBQyw4QkFBOEI7QUFFdkU7OztHQUdHO0FBRUgsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxrRUFBa0U7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFXLEVBQUU7SUFDekUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVks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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUU3Qix3RkFBd0Y7QUFFeEYsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUEsQ0FBQyw2QkFBNkI7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbURBQW1EO0FBQ3JJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxzREFBc0Q7QUFDdEQsbUZBQW1GO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBLENBQUMsMkJBQTJCO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQSxDQUFDLCtCQUErQjtBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUEsQ0FBQyw4QkFBOEI7QUFFdkU7OztHQUdHO0FBRUgsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxrRUFBa0U7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFXLEVBQUU7SUFDekUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVks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 ;// ./dist-in/utils/array.js const flatten = (value) => { let initialArray; @@ -178700,8 +176368,8 @@ const load = async (options) => { return profile.variables; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRWpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQVksS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFJbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpDLE1BQU0sUUFBUSxHQUFHLENBQUMsV0FBbUIsRUFBRSxFQUFFO0lBQ3JDLElBQUcsQ0FBQyxXQUFXLEVBQUMsQ0FBQztRQUNiLE9BQU07SUFDVixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDaEUsSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUE7QUFDOUIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxPQUFrQixFQUFtQyxFQUFFO0lBQzlFLElBQUksT0FBTyxHQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ3JGLElBQUksV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBQ2hHLElBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUE7SUFDNUIsQ0FBQztJQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFBO0lBQ25GLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQTtBQUM1QixDQUFDLENBQUEifQ== -// EXTERNAL MODULE: ./dist-in/tools.js + 83 modules -var tools = __webpack_require__(70261); +// EXTERNAL MODULE: ./dist-in/tools.js + 88 modules +var tools = __webpack_require__(49315); ;// ./dist-in/utils/content.js const content = (result) => { return result?.choices?.[0]?.message?.content || ""; @@ -178867,6 +176535,7 @@ var models = __webpack_require__(45000); + const default_sort = (files) => { @@ -178933,10 +176602,9 @@ const complete_options = async (opts) => { const complete_messages = async (opts, options) => { let chatMessages = []; const promptMessage = await prompt_prompt(opts); - if (!promptMessage?.content) { - return { messages: [], files: [] }; + if (promptMessage?.content) { + chatMessages.push(promptMessage); } - chatMessages.push(promptMessage); chatMessages.push((await preferences(opts))); const projectPath = external_node_path_.resolve(options.path || '.'); let sourceFiles = await get(projectPath, options.include, options) || []; @@ -179171,6 +176839,17 @@ const run = async (opts) => { opts.logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`); const _models = (0,models/* all */.Q7)(); for (const item of items) { + try { + const stats = (0,external_node_fs_.lstatSync)(item); + if (!stats.isFile()) { + opts.logger.warn(`Item from --each is not a file, skipping: ${item}`); + continue; + } + } + catch (e) { + opts.logger.warn(`Item from --each is not a valid path, skipping: ${item}`); + continue; + } const itemOpts = { ...opts, ITEM: item, @@ -179181,7 +176860,8 @@ const run = async (opts) => { itemOpts.model = item; } let currentItemSpecificIncludes = [(0,dist/* forward_slash */.Yf)(item)]; - itemOpts.include = [...opts.include, ...currentItemSpecificIncludes]; + const initialIncludes = [...opts.include]; // Store original includes + itemOpts.include = [...initialIncludes, ...currentItemSpecificIncludes]; const result = await processRun(itemOpts); if (result !== undefined) { ret.push(result); @@ -179196,7 +176876,7 @@ const run = async (opts) => { } return ret; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxHQUFHLElBQUksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUs3RCxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sT0FBTyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFp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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxHQUFHLElBQUksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBSzdELE9BQU8sRUFBRSxNQUFNLEVBQVcsTUFBTSxPQUFPLENBQUE7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIs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 /***/ }), @@ -179433,11 +177113,11 @@ var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4_0613"] = "gpt-4-0613"; E_OPENAI_MODEL["MODEL_GPT_4"] = "gpt-4"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO"] = "gpt-3.5-turbo"; - E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26"; - E_OPENAI_MODEL["MODEL_CODEX_MINI_LATEST"] = "codex-mini-latest"; - E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03"; - E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03"; - E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research"; + E_OPENAI_MODEL["MODEL_GPT_5_NANO"] = "gpt-5-nano"; + E_OPENAI_MODEL["MODEL_GPT_5"] = "gpt-5"; + E_OPENAI_MODEL["MODEL_GPT_5_MINI_2025_08_07"] = "gpt-5-mini-2025-08-07"; + E_OPENAI_MODEL["MODEL_GPT_5_MINI"] = "gpt-5-mini"; + E_OPENAI_MODEL["MODEL_GPT_5_NANO_2025_08_07"] = "gpt-5-nano-2025-08-07"; E_OPENAI_MODEL["MODEL_DAVINCI_002"] = "davinci-002"; E_OPENAI_MODEL["MODEL_BABBAGE_002"] = "babbage-002"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_INSTRUCT"] = "gpt-3.5-turbo-instruct"; @@ -179462,8 +177142,6 @@ var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4O_MINI"] = "gpt-4o-mini"; E_OPENAI_MODEL["MODEL_GPT_4O_2024_08_06"] = "gpt-4o-2024-08-06"; E_OPENAI_MODEL["MODEL_CHATGPT_4O_LATEST"] = "chatgpt-4o-latest"; - E_OPENAI_MODEL["MODEL_O1_PREVIEW_2024_09_12"] = "o1-preview-2024-09-12"; - E_OPENAI_MODEL["MODEL_O1_PREVIEW"] = "o1-preview"; E_OPENAI_MODEL["MODEL_O1_MINI_2024_09_12"] = "o1-mini-2024-09-12"; E_OPENAI_MODEL["MODEL_O1_MINI"] = "o1-mini"; E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01"] = "gpt-4o-realtime-preview-2024-10-01"; @@ -179483,8 +177161,6 @@ var E_OPENAI_MODEL; 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_GPT_4O_2024_11_20"] = "gpt-4o-2024-11-20"; - 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_GPT_4O_SEARCH_PREVIEW"] = "gpt-4o-search-preview"; E_OPENAI_MODEL["MODEL_GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11"] = "gpt-4o-mini-search-preview-2025-03-11"; @@ -179494,7 +177170,9 @@ var E_OPENAI_MODEL; 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_MINI_TTS"] = "gpt-4o-mini-tts"; + E_OPENAI_MODEL["MODEL_O3_2025_04_16"] = "o3-2025-04-16"; E_OPENAI_MODEL["MODEL_O4_MINI_2025_04_16"] = "o4-mini-2025-04-16"; + E_OPENAI_MODEL["MODEL_O3"] = "o3"; E_OPENAI_MODEL["MODEL_O4_MINI"] = "o4-mini"; E_OPENAI_MODEL["MODEL_GPT_4_1_2025_04_14"] = "gpt-4.1-2025-04-14"; E_OPENAI_MODEL["MODEL_GPT_4_1"] = "gpt-4.1"; @@ -179503,20 +177181,58 @@ var E_OPENAI_MODEL; E_OPENAI_MODEL["MODEL_GPT_4_1_NANO_2025_04_14"] = "gpt-4.1-nano-2025-04-14"; E_OPENAI_MODEL["MODEL_GPT_4_1_NANO"] = "gpt-4.1-nano"; E_OPENAI_MODEL["MODEL_GPT_IMAGE_1"] = "gpt-image-1"; + E_OPENAI_MODEL["MODEL_CODEX_MINI_LATEST"] = "codex-mini-latest"; + E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03"; + E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03"; + E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research"; + E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26"; + E_OPENAI_MODEL["MODEL_GPT_5_CHAT_LATEST"] = "gpt-5-chat-latest"; + E_OPENAI_MODEL["MODEL_GPT_5_2025_08_07"] = "gpt-5-2025-08-07"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_16K"] = "gpt-3.5-turbo-16k"; E_OPENAI_MODEL["MODEL_TTS_1"] = "tts-1"; E_OPENAI_MODEL["MODEL_WHISPER_1"] = "whisper-1"; E_OPENAI_MODEL["MODEL_TEXT_EMBEDDING_ADA_002"] = "text-embedding-ada-002"; })(E_OPENAI_MODEL || (E_OPENAI_MODEL = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQThFWDtBQTlFRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMsNkZBQTJFLENBQUE7SUFDM0UsK0RBQTZDLENBQUE7SUFDN0MsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsdUVBQXFELENBQUE7SUFDckQsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MsdUVBQXFELENBQUE7SUFDckQsaURBQStCLENBQUE7SUFDL0IsaUVBQStDLENBQUE7SUFDL0MsMkNBQXlCLENBQUE7SUFDekIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDJEQUF5QyxDQUFBO0lBQ3pDLGlGQUErRCxDQUFBO0lBQy9ELDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLGlFQUErQyxDQUFBO0lBQy9DLDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLDJDQUF5QixDQUFBO0lBQ3pCLDJFQUF5RCxDQUFBO0lBQ3pELHFEQUFtQyxDQUFBO0lBQ25DLDJFQUF5RCxDQUFBO0lBQ3pELHFEQUFtQyxDQUFBO0lBQ25DLG1EQUFpQyxDQUFBO0lBQ2pDLCtEQUE2QyxDQUFBO0lBQzdDLHVDQUFxQixDQUFBO0lBQ3JCLCtDQUE2QixDQUFBO0lBQzdCLHlFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUE5RVcsY0FBYyxLQUFkLGNBQWMsUUE4RXpCIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQW1GWDtBQW5GRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdUVBQXFELENBQUE7SUFDckQsaURBQStCLENBQUE7SUFDL0IsdUVBQXFELENBQUE7SUFDckQsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MsaUVBQStDLENBQUE7SUFDL0MsMkNBQXlCLENBQUE7SUFDekIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLHVEQUFxQyxDQUFBO0lBQ3JDLGlFQUErQyxDQUFBO0lBQy9DLGlDQUFlLENBQUE7SUFDZiwyQ0FBeUIsQ0FBQTtJQUN6QixpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6QiwyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQywyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQyxtREFBaUMsQ0FBQTtJQUNqQywrREFBNkMsQ0FBQTtJQUM3QyxpR0FBK0UsQ0FBQTtJQUMvRSwyRkFBeUUsQ0FBQTtJQUN6RSx1RUFBcUQsQ0FBQTtJQUNyRCw2RkFBMkUsQ0FBQTtJQUMzRSwrREFBNkMsQ0FBQTtJQUM3Qyw2REFBMkMsQ0FBQTtJQUMzQywrREFBNkMsQ0FBQTtJQUM3Qyx1Q0FBcUIsQ0FBQTtJQUNyQiwrQ0FBNkIsQ0FBQTtJQUM3Qix5RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBbkZXLGNBQWMsS0FBZCxjQUFjLFFBbUZ6QiJ9 ;// ./dist-in/models/cache/openrouter-models.js var E_OPENROUTER_MODEL; (function (E_OPENROUTER_MODEL) { - E_OPENROUTER_MODEL["MODEL_OPENROUTER_CYPHER_ALPHA_FREE"] = "openrouter/cypher-alpha:free"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_CHAT"] = "openai/gpt-5-chat"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5"] = "openai/gpt-5"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_MINI"] = "openai/gpt-5-mini"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_5_NANO"] = "openai/gpt-5-nano"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_120B"] = "openai/gpt-oss-120b"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_OSS_20B"] = "openai/gpt-oss-20b"; + E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_OPUS_4_1"] = "anthropic/claude-opus-4.1"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_CODESTRAL_2508"] = "mistralai/codestral-2508"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_30B_A3B_INSTRUCT_2507"] = "qwen/qwen3-30b-a3b-instruct-2507"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5"] = "z-ai/glm-4.5"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_5_AIR"] = "z-ai/glm-4.5-air"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_THINKING_2507"] = "qwen/qwen3-235b-a22b-thinking-2507"; + E_OPENROUTER_MODEL["MODEL_Z_AI_GLM_4_32B"] = "z-ai/glm-4-32b"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_CODER"] = "qwen/qwen3-coder"; + E_OPENROUTER_MODEL["MODEL_BYTEDANCE_UI_TARS_1_5_7B"] = "bytedance/ui-tars-1.5-7b"; + E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE"] = "google/gemini-2.5-flash-lite"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_2507"] = "qwen/qwen3-235b-a22b-2507"; + E_OPENROUTER_MODEL["MODEL_SWITCHPOINT_ROUTER"] = "switchpoint/router"; + E_OPENROUTER_MODEL["MODEL_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free"; + E_OPENROUTER_MODEL["MODEL_MOONSHOTAI_KIMI_K2"] = "moonshotai/kimi-k2"; + E_OPENROUTER_MODEL["MODEL_THUDM_GLM_4_1V_9B_THINKING"] = "thudm/glm-4.1v-9b-thinking"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_MEDIUM"] = "mistralai/devstral-medium"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_SMALL"] = "mistralai/devstral-small"; + E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE"] = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"; + E_OPENROUTER_MODEL["MODEL_X_AI_GROK_4"] = "x-ai/grok-4"; + E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3N_E2B_IT_FREE"] = "google/gemma-3n-e2b-it:free"; + E_OPENROUTER_MODEL["MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE"] = "tencent/hunyuan-a13b-instruct:free"; + E_OPENROUTER_MODEL["MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT"] = "tencent/hunyuan-a13b-instruct"; + E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE"] = "tngtech/deepseek-r1t2-chimera:free"; + E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V3_LARGE"] = "morph/morph-v3-large"; + E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V3_FAST"] = "morph/morph-v3-fast"; E_OPENROUTER_MODEL["MODEL_BAIDU_ERNIE_4_5_300B_A47B"] = "baidu/ernie-4.5-300b-a47b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_ANUBIS_70B_V1_1"] = "thedrummer/anubis-70b-v1.1"; E_OPENROUTER_MODEL["MODEL_INCEPTION_MERCURY"] = "inception/mercury"; - E_OPENROUTER_MODEL["MODEL_MORPH_MORPH_V2"] = "morph/morph-v2"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.2-24b-instruct:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT"] = "mistralai/mistral-small-3.2-24b-instruct"; E_OPENROUTER_MODEL["MODEL_MINIMAX_MINIMAX_M1"] = "minimax/minimax-m1"; @@ -179540,24 +177256,21 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_VALKYRIE_49B_V1"] = "thedrummer/valkyrie-49b-v1"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_OPUS_4"] = "anthropic/claude-opus-4"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_SONNET_4"] = "anthropic/claude-sonnet-4"; - E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_SMALL_FREE"] = "mistralai/devstral-small:free"; - E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_SMALL"] = "mistralai/devstral-small"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_SMALL_2505_FREE"] = "mistralai/devstral-small-2505:free"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_DEVSTRAL_SMALL_2505"] = "mistralai/devstral-small-2505"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3N_E4B_IT_FREE"] = "google/gemma-3n-e4b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3N_E4B_IT"] = "google/gemma-3n-e4b-it"; - E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20"] = "google/gemini-2.5-flash-preview-05-20"; - E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING"] = "google/gemini-2.5-flash-preview-05-20:thinking"; E_OPENROUTER_MODEL["MODEL_OPENAI_CODEX_MINI"] = "openai/codex-mini"; + E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_DEEPHERMES_3_MISTRAL_24B_PREVIEW"] = "nousresearch/deephermes-3-mistral-24b-preview"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_MEDIUM_3"] = "mistralai/mistral-medium-3"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06"] = "google/gemini-2.5-pro-preview-05-06"; - E_OPENROUTER_MODEL["MODEL_ARCEE_AI_CALLER_LARGE"] = "arcee-ai/caller-large"; E_OPENROUTER_MODEL["MODEL_ARCEE_AI_SPOTLIGHT"] = "arcee-ai/spotlight"; E_OPENROUTER_MODEL["MODEL_ARCEE_AI_MAESTRO_REASONING"] = "arcee-ai/maestro-reasoning"; E_OPENROUTER_MODEL["MODEL_ARCEE_AI_VIRTUOSO_LARGE"] = "arcee-ai/virtuoso-large"; E_OPENROUTER_MODEL["MODEL_ARCEE_AI_CODER_LARGE"] = "arcee-ai/coder-large"; - E_OPENROUTER_MODEL["MODEL_ARCEE_AI_VIRTUOSO_MEDIUM_V2"] = "arcee-ai/virtuoso-medium-v2"; - E_OPENROUTER_MODEL["MODEL_ARCEE_AI_ARCEE_BLITZ"] = "arcee-ai/arcee-blitz"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_4_REASONING_PLUS"] = "microsoft/phi-4-reasoning-plus"; E_OPENROUTER_MODEL["MODEL_INCEPTION_MERCURY_CODER"] = "inception/mercury-coder"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_4B_FREE"] = "qwen/qwen3-4b:free"; E_OPENROUTER_MODEL["MODEL_OPENGVLAB_INTERNVL3_14B"] = "opengvlab/internvl3-14b"; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_PROVER_V2"] = "deepseek/deepseek-prover-v2"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_4_12B"] = "meta-llama/llama-guard-4-12b"; @@ -179567,41 +177280,39 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_8B"] = "qwen/qwen3-8b"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_14B_FREE"] = "qwen/qwen3-14b:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_14B"] = "qwen/qwen3-14b"; - E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_32B_FREE"] = "qwen/qwen3-32b:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_32B"] = "qwen/qwen3-32b"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B_FREE"] = "qwen/qwen3-235b-a22b:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN3_235B_A22B"] = "qwen/qwen3-235b-a22b"; E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free"; + E_OPENROUTER_MODEL["MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA"] = "tngtech/deepseek-r1t-chimera"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_MAI_DS_R1_FREE"] = "microsoft/mai-ds-r1:free"; + E_OPENROUTER_MODEL["MODEL_MICROSOFT_MAI_DS_R1"] = "microsoft/mai-ds-r1"; E_OPENROUTER_MODEL["MODEL_THUDM_GLM_Z1_32B_FREE"] = "thudm/glm-z1-32b:free"; - E_OPENROUTER_MODEL["MODEL_THUDM_GLM_4_32B_FREE"] = "thudm/glm-4-32b:free"; E_OPENROUTER_MODEL["MODEL_THUDM_GLM_4_32B"] = "thudm/glm-4-32b"; - E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW"] = "google/gemini-2.5-flash-preview"; - E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_THINKING"] = "google/gemini-2.5-flash-preview:thinking"; E_OPENROUTER_MODEL["MODEL_OPENAI_O4_MINI_HIGH"] = "openai/o4-mini-high"; E_OPENROUTER_MODEL["MODEL_OPENAI_O3"] = "openai/o3"; E_OPENROUTER_MODEL["MODEL_OPENAI_O4_MINI"] = "openai/o4-mini"; E_OPENROUTER_MODEL["MODEL_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE"] = "shisa-ai/shisa-v2-llama3.3-70b:free"; + E_OPENROUTER_MODEL["MODEL_SHISA_AI_SHISA_V2_LLAMA3_3_70B"] = "shisa-ai/shisa-v2-llama3.3-70b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_1"] = "openai/gpt-4.1"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_1_MINI"] = "openai/gpt-4.1-mini"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_1_NANO"] = "openai/gpt-4.1-nano"; E_OPENROUTER_MODEL["MODEL_ELEUTHERAI_LLEMMA_7B"] = "eleutherai/llemma_7b"; E_OPENROUTER_MODEL["MODEL_ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY"] = "alfredpros/codellama-7b-instruct-solidity"; E_OPENROUTER_MODEL["MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE"] = "arliai/qwq-32b-arliai-rpr-v1:free"; + E_OPENROUTER_MODEL["MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1"] = "arliai/qwq-32b-arliai-rpr-v1"; E_OPENROUTER_MODEL["MODEL_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE"] = "agentica-org/deepcoder-14b-preview:free"; + E_OPENROUTER_MODEL["MODEL_AGENTICA_ORG_DEEPCODER_14B_PREVIEW"] = "agentica-org/deepcoder-14b-preview"; E_OPENROUTER_MODEL["MODEL_MOONSHOTAI_KIMI_VL_A3B_THINKING_FREE"] = "moonshotai/kimi-vl-a3b-thinking:free"; + E_OPENROUTER_MODEL["MODEL_MOONSHOTAI_KIMI_VL_A3B_THINKING"] = "moonshotai/kimi-vl-a3b-thinking"; E_OPENROUTER_MODEL["MODEL_X_AI_GROK_3_MINI_BETA"] = "x-ai/grok-3-mini-beta"; E_OPENROUTER_MODEL["MODEL_X_AI_GROK_3_BETA"] = "x-ai/grok-3-beta"; - E_OPENROUTER_MODEL["MODEL_NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_FREE"] = "nvidia/llama-3.3-nemotron-super-49b-v1:free"; E_OPENROUTER_MODEL["MODEL_NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1"] = "nvidia/llama-3.3-nemotron-super-49b-v1"; E_OPENROUTER_MODEL["MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1_FREE"] = "nvidia/llama-3.1-nemotron-ultra-253b-v1:free"; E_OPENROUTER_MODEL["MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1"] = "nvidia/llama-3.1-nemotron-ultra-253b-v1"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_4_MAVERICK_FREE"] = "meta-llama/llama-4-maverick:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_4_MAVERICK"] = "meta-llama/llama-4-maverick"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_4_SCOUT_FREE"] = "meta-llama/llama-4-scout:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_4_SCOUT"] = "meta-llama/llama-4-scout"; - E_OPENROUTER_MODEL["MODEL_ALL_HANDS_OPENHANDS_LM_32B_V0_1"] = "all-hands/openhands-lm-32b-v0.1"; - E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_V3_BASE_FREE"] = "deepseek/deepseek-v3-base:free"; + E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_V3_BASE"] = "deepseek/deepseek-v3-base"; E_OPENROUTER_MODEL["MODEL_SCB10X_LLAMA3_1_TYPHOON2_70B_INSTRUCT"] = "scb10x/llama3.1-typhoon2-70b-instruct"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_5_PRO_EXP_03_25"] = "google/gemini-2.5-pro-exp-03-25"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE"] = "qwen/qwen2.5-vl-32b-instruct:free"; @@ -179614,8 +177325,6 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT"] = "mistralai/mistral-small-3.1-24b-instruct"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_4B_IT_FREE"] = "google/gemma-3-4b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_4B_IT"] = "google/gemma-3-4b-it"; - E_OPENROUTER_MODEL["MODEL_AI21_JAMBA_1_6_LARGE"] = "ai21/jamba-1.6-large"; - E_OPENROUTER_MODEL["MODEL_AI21_JAMBA_1_6_MINI"] = "ai21/jamba-1.6-mini"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_12B_IT_FREE"] = "google/gemma-3-12b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_3_12B_IT"] = "google/gemma-3-12b-it"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_A"] = "cohere/command-a"; @@ -179633,7 +177342,6 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_QWEN_QWQ_32B_FREE"] = "qwen/qwq-32b:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWQ_32B"] = "qwen/qwq-32b"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_DEEPHERMES_3_LLAMA_3_8B_PREVIEW_FREE"] = "nousresearch/deephermes-3-llama-3-8b-preview:free"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_5_PREVIEW"] = "openai/gpt-4.5-preview"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_2_0_FLASH_LITE_001"] = "google/gemini-2.0-flash-lite-001"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_7_SONNET"] = "anthropic/claude-3.7-sonnet"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_7_SONNET_THINKING"] = "anthropic/claude-3.7-sonnet:thinking"; @@ -179641,7 +177349,9 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_PERPLEXITY_R1_1776"] = "perplexity/r1-1776"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_SABA"] = "mistralai/mistral-saba"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free"; + E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B"] = "cognitivecomputations/dolphin3.0-r1-mistral-24b"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-mistral-24b:free"; + E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B"] = "cognitivecomputations/dolphin3.0-mistral-24b"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_3_8B"] = "meta-llama/llama-guard-3-8b"; E_OPENROUTER_MODEL["MODEL_OPENAI_O3_MINI_HIGH"] = "openai/o3-mini-high"; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_8B"] = "deepseek/deepseek-r1-distill-llama-8b"; @@ -179674,11 +177384,9 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MINIMAX_MINIMAX_01"] = "minimax/minimax-01"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_CODESTRAL_2501"] = "mistralai/codestral-2501"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_4"] = "microsoft/phi-4"; - E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_CHAT_FREE"] = "deepseek/deepseek-chat:free"; E_OPENROUTER_MODEL["MODEL_DEEPSEEK_DEEPSEEK_CHAT"] = "deepseek/deepseek-chat"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_3_EURYALE_70B"] = "sao10k/l3.3-euryale-70b"; E_OPENROUTER_MODEL["MODEL_OPENAI_O1"] = "openai/o1"; - E_OPENROUTER_MODEL["MODEL_EVA_UNIT_01_EVA_LLAMA_3_33_70B"] = "eva-unit-01/eva-llama-3.33-70b"; E_OPENROUTER_MODEL["MODEL_X_AI_GROK_2_VISION_1212"] = "x-ai/grok-2-vision-1212"; E_OPENROUTER_MODEL["MODEL_X_AI_GROK_2_1212"] = "x-ai/grok-2-1212"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R7B_12_2024"] = "cohere/command-r7b-12-2024"; @@ -179689,7 +177397,6 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_AMAZON_NOVA_MICRO_V1"] = "amazon/nova-micro-v1"; E_OPENROUTER_MODEL["MODEL_AMAZON_NOVA_PRO_V1"] = "amazon/nova-pro-v1"; E_OPENROUTER_MODEL["MODEL_QWEN_QWQ_32B_PREVIEW"] = "qwen/qwq-32b-preview"; - E_OPENROUTER_MODEL["MODEL_EVA_UNIT_01_EVA_QWEN_2_5_72B"] = "eva-unit-01/eva-qwen-2.5-72b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_11_20"] = "openai/gpt-4o-2024-11-20"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE_2411"] = "mistralai/mistral-large-2411"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE_2407"] = "mistralai/mistral-large-2407"; @@ -179699,13 +177406,10 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE"] = "qwen/qwen-2.5-coder-32b-instruct:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT"] = "qwen/qwen-2.5-coder-32b-instruct"; E_OPENROUTER_MODEL["MODEL_RAIFLE_SORCERERLM_8X22B"] = "raifle/sorcererlm-8x22b"; - E_OPENROUTER_MODEL["MODEL_EVA_UNIT_01_EVA_QWEN_2_5_32B"] = "eva-unit-01/eva-qwen-2.5-32b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_UNSLOPNEMO_12B"] = "thedrummer/unslopnemo-12b"; + E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022"] = "anthropic/claude-3.5-haiku-20241022"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_BETA"] = "anthropic/claude-3.5-haiku:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU"] = "anthropic/claude-3.5-haiku"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_BETA"] = "anthropic/claude-3.5-haiku-20241022:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022"] = "anthropic/claude-3.5-haiku-20241022"; - E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_70B"] = "neversleep/llama-3.1-lumimaid-70b"; E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B"] = "anthracite-org/magnum-v4-72b"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_BETA"] = "anthropic/claude-3.5-sonnet:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET"] = "anthropic/claude-3.5-sonnet"; @@ -179717,84 +177421,74 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_INFLECTION_INFLECTION_3_PI"] = "inflection/inflection-3-pi"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_FLASH_1_5_8B"] = "google/gemini-flash-1.5-8b"; E_OPENROUTER_MODEL["MODEL_THEDRUMMER_ROCINANTE_12B"] = "thedrummer/rocinante-12b"; - E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B"] = "anthracite-org/magnum-v2-72b"; E_OPENROUTER_MODEL["MODEL_LIQUID_LFM_40B"] = "liquid/lfm-40b"; + E_OPENROUTER_MODEL["MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B"] = "anthracite-org/magnum-v2-72b"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-3b-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT"] = "meta-llama/llama-3.2-3b-instruct"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT"] = "meta-llama/llama-3.2-1b-instruct"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT"] = "meta-llama/llama-3.2-90b-vision-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT_FREE"] = "meta-llama/llama-3.2-11b-vision-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT"] = "meta-llama/llama-3.2-11b-vision-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT"] = "meta-llama/llama-3.2-90b-vision-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT"] = "meta-llama/llama-3.2-1b-instruct"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_72B_INSTRUCT_FREE"] = "qwen/qwen-2.5-72b-instruct:free"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_72B_INSTRUCT"] = "qwen/qwen-2.5-72b-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B"] = "neversleep/llama-3.1-lumimaid-8b"; - E_OPENROUTER_MODEL["MODEL_OPENAI_O1_PREVIEW"] = "openai/o1-preview"; - E_OPENROUTER_MODEL["MODEL_OPENAI_O1_PREVIEW_2024_09_12"] = "openai/o1-preview-2024-09-12"; E_OPENROUTER_MODEL["MODEL_OPENAI_O1_MINI"] = "openai/o1-mini"; E_OPENROUTER_MODEL["MODEL_OPENAI_O1_MINI_2024_09_12"] = "openai/o1-mini-2024-09-12"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_PIXTRAL_12B"] = "mistralai/pixtral-12b"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS_08_2024"] = "cohere/command-r-plus-08-2024"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_08_2024"] = "cohere/command-r-08-2024"; - E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT"] = "qwen/qwen-2.5-vl-7b-instruct"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_1_EURYALE_70B"] = "sao10k/l3.1-euryale-70b"; + E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT"] = "qwen/qwen-2.5-vl-7b-instruct"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT"] = "microsoft/phi-3.5-mini-128k-instruct"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B"] = "nousresearch/hermes-3-llama-3.1-70b"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B"] = "nousresearch/hermes-3-llama-3.1-405b"; E_OPENROUTER_MODEL["MODEL_OPENAI_CHATGPT_4O_LATEST"] = "openai/chatgpt-4o-latest"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_LUNARIS_8B"] = "sao10k/l3-lunaris-8b"; - E_OPENROUTER_MODEL["MODEL_AETHERWIING_MN_STARCANNON_12B"] = "aetherwiing/mn-starcannon-12b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_08_06"] = "openai/gpt-4o-2024-08-06"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B"] = "meta-llama/llama-3.1-405b"; - E_OPENROUTER_MODEL["MODEL_NOTHINGIISREAL_MN_CELESTE_12B"] = "nothingiisreal/mn-celeste-12b"; - E_OPENROUTER_MODEL["MODEL_PERPLEXITY_LLAMA_3_1_SONAR_SMALL_128K_ONLINE"] = "perplexity/llama-3.1-sonar-small-128k-online"; - E_OPENROUTER_MODEL["MODEL_PERPLEXITY_LLAMA_3_1_SONAR_LARGE_128K_ONLINE"] = "perplexity/llama-3.1-sonar-large-128k-online"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT"] = "meta-llama/llama-3.1-8b-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE"] = "meta-llama/llama-3.1-405b-instruct:free"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT"] = "meta-llama/llama-3.1-405b-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT"] = "meta-llama/llama-3.1-8b-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT"] = "meta-llama/llama-3.1-70b-instruct"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_NEMO_FREE"] = "mistralai/mistral-nemo:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_NEMO"] = "mistralai/mistral-nemo"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_MINI"] = "openai/gpt-4o-mini"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_MINI_2024_07_18"] = "openai/gpt-4o-mini-2024-07-18"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_27B_IT"] = "google/gemma-2-27b-it"; - E_OPENROUTER_MODEL["MODEL_ALPINDALE_MAGNUM_72B"] = "alpindale/magnum-72b"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_9B_IT_FREE"] = "google/gemma-2-9b-it:free"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMMA_2_9B_IT"] = "google/gemma-2-9b-it"; - E_OPENROUTER_MODEL["MODEL_01_AI_YI_LARGE"] = "01-ai/yi-large"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620_BETA"] = "anthropic/claude-3.5-sonnet-20240620:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620"] = "anthropic/claude-3.5-sonnet-20240620"; E_OPENROUTER_MODEL["MODEL_SAO10K_L3_EURYALE_70B"] = "sao10k/l3-euryale-70b"; E_OPENROUTER_MODEL["MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MIXTRAL_8X22B"] = "cognitivecomputations/dolphin-mixtral-8x22b"; E_OPENROUTER_MODEL["MODEL_QWEN_QWEN_2_72B_INSTRUCT"] = "qwen/qwen-2-72b-instruct"; + E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3"] = "mistralai/mistral-7b-instruct-v0.3"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT"] = "mistralai/mistral-7b-instruct"; E_OPENROUTER_MODEL["MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B"] = "nousresearch/hermes-2-pro-llama-3-8b"; - E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3"] = "mistralai/mistral-7b-instruct-v0.3"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT"] = "microsoft/phi-3-mini-128k-instruct"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT"] = "microsoft/phi-3-medium-128k-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_70B"] = "neversleep/llama-3-lumimaid-70b"; E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_FLASH_1_5"] = "google/gemini-flash-1.5"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_05_13"] = "openai/gpt-4o-2024-05-13"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O"] = "openai/gpt-4o"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_EXTENDED"] = "openai/gpt-4o:extended"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_GUARD_2_8B"] = "meta-llama/llama-guard-2-8b"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4O_2024_05_13"] = "openai/gpt-4o-2024-05-13"; - E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_8B"] = "neversleep/llama-3-lumimaid-8b"; - E_OPENROUTER_MODEL["MODEL_SAO10K_FIMBULVETR_11B_V2"] = "sao10k/fimbulvetr-11b-v2"; - E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT"] = "meta-llama/llama-3-8b-instruct"; E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT"] = "meta-llama/llama-3-70b-instruct"; + E_OPENROUTER_MODEL["MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT"] = "meta-llama/llama-3-8b-instruct"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT"] = "mistralai/mixtral-8x22b-instruct"; E_OPENROUTER_MODEL["MODEL_MICROSOFT_WIZARDLM_2_8X22B"] = "microsoft/wizardlm-2-8x22b"; - E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_PRO_1_5"] = "google/gemini-pro-1.5"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_TURBO"] = "openai/gpt-4-turbo"; + E_OPENROUTER_MODEL["MODEL_GOOGLE_GEMINI_PRO_1_5"] = "google/gemini-pro-1.5"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS"] = "cohere/command-r-plus"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_PLUS_04_2024"] = "cohere/command-r-plus-04-2024"; E_OPENROUTER_MODEL["MODEL_SOPHOSYMPATHEIA_MIDNIGHT_ROSE_70B"] = "sophosympatheia/midnight-rose-70b"; - E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND"] = "cohere/command"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R"] = "cohere/command-r"; + E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND"] = "cohere/command"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_HAIKU_BETA"] = "anthropic/claude-3-haiku:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_HAIKU"] = "anthropic/claude-3-haiku"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_OPUS_BETA"] = "anthropic/claude-3-opus:beta"; E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_OPUS"] = "anthropic/claude-3-opus"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_SONNET_BETA"] = "anthropic/claude-3-sonnet:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_3_SONNET"] = "anthropic/claude-3-sonnet"; E_OPENROUTER_MODEL["MODEL_COHERE_COMMAND_R_03_2024"] = "cohere/command-r-03-2024"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_LARGE"] = "mistralai/mistral-large"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_3_5_TURBO_0613"] = "openai/gpt-3.5-turbo-0613"; @@ -179805,11 +177499,6 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_2"] = "mistralai/mistral-7b-instruct-v0.2"; E_OPENROUTER_MODEL["MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT"] = "mistralai/mixtral-8x7b-instruct"; E_OPENROUTER_MODEL["MODEL_NEVERSLEEP_NOROMAID_20B"] = "neversleep/noromaid-20b"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2_1_BETA"] = "anthropic/claude-2.1:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2_1"] = "anthropic/claude-2.1"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2_BETA"] = "anthropic/claude-2:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2"] = "anthropic/claude-2"; - E_OPENROUTER_MODEL["MODEL_UNDI95_TOPPY_M_7B"] = "undi95/toppy-m-7b"; E_OPENROUTER_MODEL["MODEL_ALPINDALE_GOLIATH_120B"] = "alpindale/goliath-120b"; E_OPENROUTER_MODEL["MODEL_OPENROUTER_AUTO"] = "openrouter/auto"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_1106_PREVIEW"] = "openai/gpt-4-1106-preview"; @@ -179818,43 +177507,43 @@ var E_OPENROUTER_MODEL; E_OPENROUTER_MODEL["MODEL_PYGMALIONAI_MYTHALION_13B"] = "pygmalionai/mythalion-13b"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_3_5_TURBO_16K"] = "openai/gpt-3.5-turbo-16k"; E_OPENROUTER_MODEL["MODEL_MANCER_WEAVER"] = "mancer/weaver"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2_0_BETA"] = "anthropic/claude-2.0:beta"; - E_OPENROUTER_MODEL["MODEL_ANTHROPIC_CLAUDE_2_0"] = "anthropic/claude-2.0"; E_OPENROUTER_MODEL["MODEL_UNDI95_REMM_SLERP_L2_13B"] = "undi95/remm-slerp-l2-13b"; E_OPENROUTER_MODEL["MODEL_GRYPHE_MYTHOMAX_L2_13B"] = "gryphe/mythomax-l2-13b"; - E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4"] = "openai/gpt-4"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_3_5_TURBO"] = "openai/gpt-3.5-turbo"; E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4_0314"] = "openai/gpt-4-0314"; + E_OPENROUTER_MODEL["MODEL_OPENAI_GPT_4"] = "openai/gpt-4"; })(E_OPENROUTER_MODEL || (E_OPENROUTER_MODEL = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2NhY2hlL29wZW5yb3V0ZXItbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGtCQXlUWDtBQXpURCxXQUFZLGtCQUFrQjtJQUM1Qix5RkFBbUUsQ0FBQTtJQUNuRSxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCxtRUFBNkMsQ0FBQTtJQUM3Qyw2REFBdUMsQ0FBQTtJQUN2QywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixxRUFBK0MsQ0FBQTtJQUMvQyxxSEFBK0YsQ0FBQTtJQUMvRiwrRUFBeUQsQ0FBQTtJQUN6RCwyRUFBcUQsQ0FBQTtJQUNyRCx5RkFBbUUsQ0FBQTtJQUNuRSwyREFBcUMsQ0FBQTtJQUNyQyxpRUFBMkMsQ0FBQTtJQUMzQyx1REFBaUMsQ0FBQTtJQUNqQyw2RkFBdUUsQ0FBQTtJQUN2RSwrRkFBeUUsQ0FBQTtJQUN6RSxpSEFBMkYsQ0FBQTtJQUMzRiwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRiwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCw2RUFBdUQsQ0FBQTtJQUN2RCxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCwyR0FBcUYsQ0FBQTtJQUNyRiw2SEFBdUcsQ0FBQTtJQUN2RyxtRUFBNkMsQ0FBQTtJQUM3QyxxRkFBK0QsQ0FBQTtJQUMvRCx1R0FBaUYsQ0FBQTtJQUNqRiwyRUFBcUQsQ0FBQTtJQUNyRCxxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RUFBbUQsQ0FBQTtJQUNuRCx1RkFBaUUsQ0FBQTtJQUNqRSx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSwrRUFBeUQsQ0FBQTtJQUN6RCwrRUFBeUQsQ0FBQTtJQUN6RCx1RkFBaUUsQ0FBQTtJQUNqRSx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRUFBK0MsQ0FBQTtJQUMvQywyREFBcUMsQ0FBQTtJQUNyQyx1RUFBaUQsQ0FBQTtJQUNqRCw2REFBdUMsQ0FBQTtJQUN2Qyx1RUFBaUQsQ0FBQTtJQUNqRCw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtR0FBNkUsQ0FBQTtJQUM3RSxpRkFBMkQsQ0FBQTtJQUMzRCwyRUFBcUQsQ0FBQTtJQUNyRCx5RUFBbUQsQ0FBQTtJQUNuRCwrREFBeUMsQ0FBQTtJQUN6QywrRkFBeUUsQ0FBQTtJQUN6RSxpSEFBMkYsQ0FBQTtJQUMzRix1RUFBaUQsQ0FBQTtJQUNqRCxtREFBNkIsQ0FBQTtJQUM3Qiw2REFBdUMsQ0FBQTtJQUN2Qyx1R0FBaUYsQ0FBQTtJQUNqRiw2REFBdUMsQ0FBQTtJQUN2Qyx1RUFBaUQsQ0FBQTtJQUNqRCx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3RixtR0FBNkUsQ0FBQTtJQUM3RSwrR0FBeUYsQ0FBQTtJQUN6Rix5R0FBbUYsQ0FBQTtJQUNuRiwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyx1SEFBaUcsQ0FBQTtJQUNqRyw2R0FBdUYsQ0FBQTtJQUN2Rix5SEFBbUcsQ0FBQTtJQUNuRywrR0FBeUYsQ0FBQTtJQUN6RixpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCwrRkFBeUUsQ0FBQTtJQUN6RSw2RkFBdUUsQ0FBQTtJQUN2RSwyR0FBcUYsQ0FBQTtJQUNyRiwrRkFBeUUsQ0FBQTtJQUN6RSxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx1RkFBaUUsQ0FBQTtJQUNqRSwyREFBcUMsQ0FBQTtJQUNyQywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCx5RUFBbUQsQ0FBQTtJQUNuRCx1RUFBaUQsQ0FBQTtJQUNqRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtSUFBNkcsQ0FBQTtJQUM3Ryw2RUFBdUQsQ0FBQTtJQUN2RCxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSx5R0FBbUYsQ0FBQTtJQUNuRixpR0FBMkUsQ0FBQTtJQUMzRSxxRUFBK0MsQ0FBQTtJQUMvQyw2RUFBdUQsQ0FBQTtJQUN2RCx5SUFBbUgsQ0FBQTtJQUNuSCxtSUFBNkcsQ0FBQTtJQUM3Ryx1RkFBaUUsQ0FBQTtJQUNqRSx1RUFBaUQsQ0FBQTtJQUNqRCwyR0FBcUYsQ0FBQTtJQUNyRix1RkFBaUUsQ0FBQTtJQUNqRSxtRUFBNkMsQ0FBQTtJQUM3QyxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCw2RkFBdUUsQ0FBQTtJQUN2RSxpRUFBMkMsQ0FBQTtJQUMzQywrREFBeUMsQ0FBQTtJQUN6QyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QywyREFBcUMsQ0FBQTtJQUNyQyw2REFBdUMsQ0FBQTtJQUN2Qyw2R0FBdUYsQ0FBQTtJQUN2Riw2SEFBdUcsQ0FBQTtJQUN2RyxtSEFBNkYsQ0FBQTtJQUM3RiwyR0FBcUYsQ0FBQTtJQUNyRixxSEFBK0YsQ0FBQTtJQUMvRiwyR0FBcUYsQ0FBQTtJQUNyRixxRkFBK0QsQ0FBQTtJQUMvRCxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQywyREFBcUMsQ0FBQTtJQUNyQyx1SEFBaUcsQ0FBQTtJQUNqRyw2R0FBdUYsQ0FBQTtJQUN2RixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyxpRkFBMkQsQ0FBQTtJQUMzRCwrREFBeUMsQ0FBQTtJQUN6Qyx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCwrRUFBeUQsQ0FBQTtJQUN6RCxtREFBNkIsQ0FBQTtJQUM3Qiw2RkFBdUUsQ0FBQTtJQUN2RSwrRUFBeUQsQ0FBQTtJQUN6RCxpRUFBMkMsQ0FBQTtJQUMzQyxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2R0FBdUYsQ0FBQTtJQUN2RixtR0FBNkUsQ0FBQTtJQUM3RSx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyx5RUFBbUQsQ0FBQTtJQUNuRCx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwrRUFBeUQsQ0FBQTtJQUN6RCx5RkFBbUUsQ0FBQTtJQUNuRSxtRkFBNkQsQ0FBQTtJQUM3RCwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpSEFBMkYsQ0FBQTtJQUMzRix1R0FBaUYsQ0FBQTtJQUNqRixtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCw2RUFBdUQsQ0FBQTtJQUN2RCxtRkFBNkQsQ0FBQTtJQUM3RCw2R0FBdUYsQ0FBQTtJQUN2Rix5R0FBbUYsQ0FBQTtJQUNuRixxRkFBK0QsQ0FBQTtJQUMvRCxxRkFBK0QsQ0FBQTtJQUMvRCxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QyxpR0FBMkUsQ0FBQTtJQUMzRSxpR0FBMkUsQ0FBQTtJQUMzRSxpSEFBMkYsQ0FBQTtJQUMzRiwySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRiwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSxtRUFBNkMsQ0FBQTtJQUM3Qyx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCx5R0FBbUYsQ0FBQTtJQUNuRix1R0FBaUYsQ0FBQTtJQUNqRix5R0FBbUYsQ0FBQTtJQUNuRixpRkFBMkQsQ0FBQTtJQUMzRCx5RUFBbUQsQ0FBQTtJQUNuRCwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSx5SEFBbUcsQ0FBQTtJQUNuRyx5SEFBbUcsQ0FBQTtJQUNuRyxpR0FBMkUsQ0FBQTtJQUMzRSxxR0FBK0UsQ0FBQTtJQUMvRSxtR0FBNkUsQ0FBQTtJQUM3RSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxxRUFBK0MsQ0FBQTtJQUMvQywyRkFBcUUsQ0FBQTtJQUNyRSwyRUFBcUQsQ0FBQTtJQUNyRCx5RUFBbUQsQ0FBQTtJQUNuRCxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCw2REFBdUMsQ0FBQTtJQUN2QyxtSEFBNkYsQ0FBQTtJQUM3Rix5R0FBbUYsQ0FBQTtJQUNuRiwyRUFBcUQsQ0FBQTtJQUNyRCx1SEFBaUcsQ0FBQTtJQUNqRyxpRkFBMkQsQ0FBQTtJQUMzRCxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRixxR0FBK0UsQ0FBQTtJQUMvRSxxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCwyREFBcUMsQ0FBQTtJQUNyQyw2RUFBdUQsQ0FBQTtJQUN2RCx1RkFBaUUsQ0FBQTtJQUNqRSxpRkFBMkQsQ0FBQTtJQUMzRCw2RkFBdUUsQ0FBQTtJQUN2RSxpRkFBMkQsQ0FBQTtJQUMzRCw2RkFBdUUsQ0FBQTtJQUN2RSwrRkFBeUUsQ0FBQTtJQUN6RSxpR0FBMkUsQ0FBQTtJQUMzRSxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCxxRUFBK0MsQ0FBQTtJQUMvQywyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtR0FBNkUsQ0FBQTtJQUM3RSw2REFBdUMsQ0FBQTtJQUN2QyxpRUFBMkMsQ0FBQTtJQUMzQywyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCx1SEFBaUcsQ0FBQTtJQUNqRywrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCxxR0FBK0UsQ0FBQTtJQUMvRSwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxtRUFBNkMsQ0FBQTtJQUM3Qyw2RUFBdUQsQ0FBQTtJQUN2RCwrREFBeUMsQ0FBQTtJQUN6QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCw2RUFBdUQsQ0FBQTtJQUN2RCx5REFBbUMsQ0FBQTtJQUNuQyxtRUFBNkMsQ0FBQTtBQUMvQyxDQUFDLEVBelRXLGtCQUFrQixLQUFsQixrQkFBa0IsUUF5VDdCIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2NhY2hlL29wZW5yb3V0ZXItbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGtCQTRUWDtBQTVURCxXQUFZLGtCQUFrQjtJQUM1QixtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtRUFBNkMsQ0FBQTtJQUM3QyxtRUFBNkMsQ0FBQTtJQUM3Qyx1RUFBaUQsQ0FBQTtJQUNqRCwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCxpR0FBMkUsQ0FBQTtJQUMzRSx5REFBbUMsQ0FBQTtJQUNuQywyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxxR0FBK0UsQ0FBQTtJQUMvRSw2REFBdUMsQ0FBQTtJQUN2QyxpRUFBMkMsQ0FBQTtJQUMzQyxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSxtRkFBNkQsQ0FBQTtJQUM3RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwySkFBcUksQ0FBQTtJQUNySSx1REFBaUMsQ0FBQTtJQUNqQyx1RkFBaUUsQ0FBQTtJQUNqRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSx5RUFBbUQsQ0FBQTtJQUNuRCx1RUFBaUQsQ0FBQTtJQUNqRCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCxtRUFBNkMsQ0FBQTtJQUM3QywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixxRUFBK0MsQ0FBQTtJQUMvQyxxSEFBK0YsQ0FBQTtJQUMvRiwrRUFBeUQsQ0FBQTtJQUN6RCwyRUFBcUQsQ0FBQTtJQUNyRCx5RkFBbUUsQ0FBQTtJQUNuRSwyREFBcUMsQ0FBQTtJQUNyQyxpRUFBMkMsQ0FBQTtJQUMzQyx1REFBaUMsQ0FBQTtJQUNqQyw2RkFBdUUsQ0FBQTtJQUN2RSwrRkFBeUUsQ0FBQTtJQUN6RSxpSEFBMkYsQ0FBQTtJQUMzRiwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRiwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSw2RkFBdUUsQ0FBQTtJQUN2RSxtRkFBNkQsQ0FBQTtJQUM3RCw2RUFBdUQsQ0FBQTtJQUN2RCxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxtRUFBNkMsQ0FBQTtJQUM3QywySEFBcUcsQ0FBQTtJQUNyRyxxRkFBK0QsQ0FBQTtJQUMvRCx1R0FBaUYsQ0FBQTtJQUNqRixxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCx1RkFBaUUsQ0FBQTtJQUNqRSx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxxRUFBK0MsQ0FBQTtJQUMvQyxxRUFBK0MsQ0FBQTtJQUMvQywyREFBcUMsQ0FBQTtJQUNyQyx1RUFBaUQsQ0FBQTtJQUNqRCw2REFBdUMsQ0FBQTtJQUN2Qyw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCx1RUFBaUQsQ0FBQTtJQUNqRCwyRUFBcUQsQ0FBQTtJQUNyRCwrREFBeUMsQ0FBQTtJQUN6Qyx1RUFBaUQsQ0FBQTtJQUNqRCxtREFBNkIsQ0FBQTtJQUM3Qiw2REFBdUMsQ0FBQTtJQUN2Qyx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSw2REFBdUMsQ0FBQTtJQUN2Qyx1RUFBaUQsQ0FBQTtJQUNqRCx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3RixtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyw2R0FBdUYsQ0FBQTtJQUN2Rix5SEFBbUcsQ0FBQTtJQUNuRywrR0FBeUYsQ0FBQTtJQUN6Rix1RkFBaUUsQ0FBQTtJQUNqRSxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRiwrRkFBeUUsQ0FBQTtJQUN6RSxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx1RkFBaUUsQ0FBQTtJQUNqRSwyREFBcUMsQ0FBQTtJQUNyQywySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCxpRUFBMkMsQ0FBQTtJQUMzQyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSxpRkFBMkQsQ0FBQTtJQUMzRCxxRkFBK0QsQ0FBQTtJQUMvRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiw2RkFBdUUsQ0FBQTtJQUN2RSx5RUFBbUQsQ0FBQTtJQUNuRCw2RkFBdUUsQ0FBQTtJQUN2RSxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtJQUNuQyxtSUFBNkcsQ0FBQTtJQUM3RyxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSx5R0FBbUYsQ0FBQTtJQUNuRixpR0FBMkUsQ0FBQTtJQUMzRSxxRUFBK0MsQ0FBQTtJQUMvQyw2RUFBdUQsQ0FBQTtJQUN2RCx5SUFBbUgsQ0FBQTtJQUNuSCwrSEFBeUcsQ0FBQTtJQUN6RyxtSUFBNkcsQ0FBQTtJQUM3Ryx5SEFBbUcsQ0FBQTtJQUNuRyx1RkFBaUUsQ0FBQTtJQUNqRSx1RUFBaUQsQ0FBQTtJQUNqRCwyR0FBcUYsQ0FBQTtJQUNyRix1RkFBaUUsQ0FBQTtJQUNqRSxtRUFBNkMsQ0FBQTtJQUM3QyxxRUFBK0MsQ0FBQTtJQUMvQywrRUFBeUQsQ0FBQTtJQUN6RCw2RkFBdUUsQ0FBQTtJQUN2RSxpRUFBMkMsQ0FBQTtJQUMzQywrREFBeUMsQ0FBQTtJQUN6QyxtR0FBNkUsQ0FBQTtJQUM3RSx5RkFBbUUsQ0FBQTtJQUNuRSw2REFBdUMsQ0FBQTtJQUN2QywyREFBcUMsQ0FBQTtJQUNyQyw2REFBdUMsQ0FBQTtJQUN2Qyw2R0FBdUYsQ0FBQTtJQUN2Riw2SEFBdUcsQ0FBQTtJQUN2RyxtSEFBNkYsQ0FBQTtJQUM3RiwyR0FBcUYsQ0FBQTtJQUNyRixxSEFBK0YsQ0FBQTtJQUMvRiwyR0FBcUYsQ0FBQTtJQUNyRixxRkFBK0QsQ0FBQTtJQUMvRCxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQywyREFBcUMsQ0FBQTtJQUNyQyx1SEFBaUcsQ0FBQTtJQUNqRyw2R0FBdUYsQ0FBQTtJQUN2RixtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyxpRkFBMkQsQ0FBQTtJQUMzRCwrREFBeUMsQ0FBQTtJQUN6Qyw2RUFBdUQsQ0FBQTtJQUN2RCwrRUFBeUQsQ0FBQTtJQUN6RCxtREFBNkIsQ0FBQTtJQUM3QiwrRUFBeUQsQ0FBQTtJQUN6RCxpRUFBMkMsQ0FBQTtJQUMzQyxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2R0FBdUYsQ0FBQTtJQUN2RixtR0FBNkUsQ0FBQTtJQUM3RSx1RUFBaUQsQ0FBQTtJQUNqRCx5RUFBbUQsQ0FBQTtJQUNuRCxxRUFBK0MsQ0FBQTtJQUMvQyx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSx5RkFBbUUsQ0FBQTtJQUNuRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCx1R0FBaUYsQ0FBQTtJQUNqRiwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCx5RkFBbUUsQ0FBQTtJQUNuRSxpR0FBMkUsQ0FBQTtJQUMzRSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCw2RUFBdUQsQ0FBQTtJQUN2RCxtRkFBNkQsQ0FBQTtJQUM3RCw2R0FBdUYsQ0FBQTtJQUN2Rix5R0FBbUYsQ0FBQTtJQUNuRixxRkFBK0QsQ0FBQTtJQUMvRCxxRkFBK0QsQ0FBQTtJQUMvRCxpRkFBMkQsQ0FBQTtJQUMzRCw2REFBdUMsQ0FBQTtJQUN2Qyx5RkFBbUUsQ0FBQTtJQUNuRSwyR0FBcUYsQ0FBQTtJQUNyRixpR0FBMkUsQ0FBQTtJQUMzRSwySEFBcUcsQ0FBQTtJQUNyRyxpSEFBMkYsQ0FBQTtJQUMzRixpSEFBMkYsQ0FBQTtJQUMzRixpR0FBMkUsQ0FBQTtJQUMzRSwrRkFBeUUsQ0FBQTtJQUN6RSxxRkFBK0QsQ0FBQTtJQUMvRCxpR0FBMkUsQ0FBQTtJQUMzRSw2REFBdUMsQ0FBQTtJQUN2QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCx5RkFBbUUsQ0FBQTtJQUNuRSx5R0FBbUYsQ0FBQTtJQUNuRix1R0FBaUYsQ0FBQTtJQUNqRix5R0FBbUYsQ0FBQTtJQUNuRixpRkFBMkQsQ0FBQTtJQUMzRCx5RUFBbUQsQ0FBQTtJQUNuRCxpRkFBMkQsQ0FBQTtJQUMzRCxtRkFBNkQsQ0FBQTtJQUM3RCwrR0FBeUYsQ0FBQTtJQUN6RixxR0FBK0UsQ0FBQTtJQUMvRSxpR0FBMkUsQ0FBQTtJQUMzRSxtR0FBNkUsQ0FBQTtJQUM3RSx1RkFBaUUsQ0FBQTtJQUNqRSw2RUFBdUQsQ0FBQTtJQUN2RCxxRUFBK0MsQ0FBQTtJQUMvQywyRkFBcUUsQ0FBQTtJQUNyRSwyRUFBcUQsQ0FBQTtJQUNyRCxtRkFBNkQsQ0FBQTtJQUM3RCx5RUFBbUQsQ0FBQTtJQUNuRCxtSEFBNkYsQ0FBQTtJQUM3Rix5R0FBbUYsQ0FBQTtJQUNuRiwyRUFBcUQsQ0FBQTtJQUNyRCx1SEFBaUcsQ0FBQTtJQUNqRyxpRkFBMkQsQ0FBQTtJQUMzRCxxR0FBK0UsQ0FBQTtJQUMvRSxxR0FBK0UsQ0FBQTtJQUMvRSwyRkFBcUUsQ0FBQTtJQUNyRSx5R0FBbUYsQ0FBQTtJQUNuRixxR0FBK0UsQ0FBQTtJQUMvRSx5R0FBbUYsQ0FBQTtJQUNuRiwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyw2RUFBdUQsQ0FBQTtJQUN2RCx1RkFBaUUsQ0FBQTtJQUNqRSwrRkFBeUUsQ0FBQTtJQUN6RSw2RkFBdUUsQ0FBQTtJQUN2RSxpR0FBMkUsQ0FBQTtJQUMzRSxxRkFBK0QsQ0FBQTtJQUMvRCxxRUFBK0MsQ0FBQTtJQUMvQywyRUFBcUQsQ0FBQTtJQUNyRCwyRUFBcUQsQ0FBQTtJQUNyRCwyRkFBcUUsQ0FBQTtJQUNyRSxtR0FBNkUsQ0FBQTtJQUM3RSxpRUFBMkMsQ0FBQTtJQUMzQyw2REFBdUMsQ0FBQTtJQUN2QywyRkFBcUUsQ0FBQTtJQUNyRSxpRkFBMkQsQ0FBQTtJQUMzRCx5RkFBbUUsQ0FBQTtJQUNuRSwrRUFBeUQsQ0FBQTtJQUN6RCxpRkFBMkQsQ0FBQTtJQUMzRCwrRUFBeUQsQ0FBQTtJQUN6RCxtRkFBNkQsQ0FBQTtJQUM3RCxxRkFBK0QsQ0FBQTtJQUMvRCx1SEFBaUcsQ0FBQTtJQUNqRywrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCxxR0FBK0UsQ0FBQTtJQUMvRSwrRkFBeUUsQ0FBQTtJQUN6RSwrRUFBeUQsQ0FBQTtJQUN6RCw2RUFBdUQsQ0FBQTtJQUN2RCwrREFBeUMsQ0FBQTtJQUN6QyxtRkFBNkQsQ0FBQTtJQUM3RCwyRkFBcUUsQ0FBQTtJQUNyRSxxR0FBK0UsQ0FBQTtJQUMvRSxtRkFBNkQsQ0FBQTtJQUM3RCxpRkFBMkQsQ0FBQTtJQUMzRCwyREFBcUMsQ0FBQTtJQUNyQyxpRkFBMkQsQ0FBQTtJQUMzRCw2RUFBdUQsQ0FBQTtJQUN2RCx5RUFBbUQsQ0FBQTtJQUNuRCxtRUFBNkMsQ0FBQTtJQUM3Qyx5REFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBNVRXLGtCQUFrQixLQUFsQixrQkFBa0IsUUE0VDdCIn0= ;// ./dist-in/models/cache/openrouter-models-free.js var E_OPENROUTER_MODEL_FREE; (function (E_OPENROUTER_MODEL_FREE) { - E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENROUTER_CYPHER_ALPHA_FREE"] = "openrouter/cypher-alpha:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE"] = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE"] = "google/gemma-3n-e2b-it:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE"] = "tencent/hunyuan-a13b-instruct:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE"] = "tngtech/deepseek-r1t2-chimera:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.2-24b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_DEV_72B_FREE"] = "moonshotai/kimi-dev-72b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B_FREE"] = "deepseek/deepseek-r1-0528-qwen3-8b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE"] = "deepseek/deepseek-r1-0528:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_SARVAMAI_SARVAM_M_FREE"] = "sarvamai/sarvam-m:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_DEVSTRAL_SMALL_FREE"] = "mistralai/devstral-small:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_DEVSTRAL_SMALL_2505_FREE"] = "mistralai/devstral-small-2505:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE"] = "google/gemma-3n-e4b-it:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_4B_FREE"] = "qwen/qwen3-4b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_30B_A3B_FREE"] = "qwen/qwen3-30b-a3b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_8B_FREE"] = "qwen/qwen3-8b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_14B_FREE"] = "qwen/qwen3-14b:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_32B_FREE"] = "qwen/qwen3-32b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_235B_A22B_FREE"] = "qwen/qwen3-235b-a22b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MICROSOFT_MAI_DS_R1_FREE"] = "microsoft/mai-ds-r1:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_THUDM_GLM_Z1_32B_FREE"] = "thudm/glm-z1-32b:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_THUDM_GLM_4_32B_FREE"] = "thudm/glm-4-32b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE"] = "shisa-ai/shisa-v2-llama3.3-70b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE"] = "arliai/qwq-32b-arliai-rpr-v1:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE"] = "agentica-org/deepcoder-14b-preview:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_VL_A3B_THINKING_FREE"] = "moonshotai/kimi-vl-a3b-thinking:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_FREE"] = "nvidia/llama-3.3-nemotron-super-49b-v1:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1_FREE"] = "nvidia/llama-3.1-nemotron-ultra-253b-v1: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_DEEPSEEK_DEEPSEEK_V3_BASE_FREE"] = "deepseek/deepseek-v3-base:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMINI_2_5_PRO_EXP_03_25"] = "google/gemini-2.5-pro-exp-03-25"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE"] = "qwen/qwen2.5-vl-32b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_V3_0324_FREE"] = "deepseek/deepseek-chat-v3-0324:free"; @@ -179873,17 +177562,18 @@ var E_OPENROUTER_MODEL_FREE; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_14B_FREE"] = "deepseek/deepseek-r1-distill-qwen-14b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B_FREE"] = "deepseek/deepseek-r1-distill-llama-70b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_FREE"] = "deepseek/deepseek-r1:free"; - E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_FREE"] = "deepseek/deepseek-chat:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE"] = "google/gemini-2.0-flash-exp:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE"] = "meta-llama/llama-3.3-70b-instruct: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_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_11B_VISION_INSTRUCT_FREE"] = "meta-llama/llama-3.2-11b-vision-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_72B_INSTRUCT_FREE"] = "qwen/qwen-2.5-72b-instruct:free"; + E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE"] = "meta-llama/llama-3.1-405b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_NEMO_FREE"] = "mistralai/mistral-nemo:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_2_9B_IT_FREE"] = "google/gemma-2-9b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free"; })(E_OPENROUTER_MODEL_FREE || (E_OPENROUTER_MODEL_FREE = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkFzRFg7QUF0REQsV0FBWSx1QkFBdUI7SUFDakMsbUdBQXdFLENBQUE7SUFDeEUscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUseUhBQThGLENBQUE7SUFDOUYsdUdBQTRFLENBQUE7SUFDNUUsdUZBQTRELENBQUE7SUFDNUQscUdBQTBFLENBQUE7SUFDMUUsaUdBQXNFLENBQUE7SUFDdEUseUZBQThELENBQUE7SUFDOUQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsaUZBQXNELENBQUE7SUFDdEQsNkZBQWtFLENBQUE7SUFDbEUsNkdBQWtGLENBQUE7SUFDbEYsMkZBQWdFLENBQUE7SUFDaEUscUZBQTBELENBQUE7SUFDMUQsbUZBQXdELENBQUE7SUFDeEQsaUhBQXNGLENBQUE7SUFDdEYsNkdBQWtGLENBQUE7SUFDbEYseUhBQThGLENBQUE7SUFDOUYsbUhBQXdGLENBQUE7SUFDeEYsaUlBQXNHLENBQUE7SUFDdEcsbUlBQXdHLENBQUE7SUFDeEcsMkdBQWdGLENBQUE7SUFDaEYscUdBQTBFLENBQUE7SUFDMUUsdUdBQTRFLENBQUE7SUFDNUUseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsNkVBQWtELENBQUE7SUFDbEQsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkZBQWtFLENBQUE7SUFDbEUsaUdBQXNFLENBQUE7SUFDdEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXREVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBc0RsQyJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkF3RFg7QUF4REQsV0FBWSx1QkFBdUI7SUFDakMseUZBQThELENBQUE7SUFDOUQscUZBQTBELENBQUE7SUFDMUQseUZBQThELENBQUE7SUFDOUQscUtBQTBJLENBQUE7SUFDMUksaUdBQXNFLENBQUE7SUFDdEUsK0dBQW9GLENBQUE7SUFDcEYsK0dBQW9GLENBQUE7SUFDcEYscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUseUhBQThGLENBQUE7SUFDOUYsdUdBQTRFLENBQUE7SUFDNUUsdUZBQTRELENBQUE7SUFDNUQsK0dBQW9GLENBQUE7SUFDcEYsaUdBQXNFLENBQUE7SUFDdEUsK0VBQW9ELENBQUE7SUFDcEQseUZBQThELENBQUE7SUFDOUQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsNkZBQWtFLENBQUE7SUFDbEUsNkdBQWtGLENBQUE7SUFDbEYsMkZBQWdFLENBQUE7SUFDaEUscUZBQTBELENBQUE7SUFDMUQsaUhBQXNGLENBQUE7SUFDdEYsNkdBQWtGLENBQUE7SUFDbEYseUhBQThGLENBQUE7SUFDOUYsbUhBQXdGLENBQUE7SUFDeEYsbUlBQXdHLENBQUE7SUFDeEcseUdBQThFLENBQUE7SUFDOUUsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYsaUdBQXNFLENBQUE7SUFDdEUscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsMkZBQWdFLENBQUE7SUFDaEUsK0ZBQW9FLENBQUE7SUFDcEUsNkVBQWtELENBQUE7SUFDbEQsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsK0hBQW9HLENBQUE7SUFDcEcsaUlBQXNHLENBQUE7SUFDdEcsNkZBQWtFLENBQUE7SUFDbEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYscUlBQTBHLENBQUE7SUFDMUcseUdBQThFLENBQUE7SUFDOUUseUhBQThGLENBQUE7SUFDOUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXhEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBd0RsQyJ9 ;// ./dist-in/index.js @@ -180261,11 +177951,11 @@ function listModelsAsStrings(models) { return `${model.id} | ${isFree ? 'free' : 'paid'}`; }); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvb3BlbnJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQXlDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxpSEFBaUg7QUFDakgsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFBO0FBQzlHLE1BQU0sY0FBYyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLDJCQUEyQjtBQUV2RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxZQUFvQixVQUFVLEVBQXFDLEVBQUU7SUFDakcsSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFBO1FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvb3BlbnJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQTZEcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxpSEFBaUg7QUFDakgsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFBO0FBQzlHLE1BQU0sY0FBYyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLDJCQUEyQjtBQUV2RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxZQUFvQixVQUFVLEVBQXFDLEVBQUU7SUFDakcsSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFBO1FB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 /***/ }), -/***/ 70261: +/***/ 49315: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -189116,7 +186806,6 @@ const decodeContentSmart = (content, logger, identifier) => { }; const tools = (target, options) => { const logger = (0,ai_tools_dist/* toolLogger */.bw)('fs', options); - const category = 'fs'; return [ { type: 'function', @@ -189462,7 +187151,7 @@ const tools = (target, options) => { } ]; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2ZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRTVCLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFM0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRTtJQUN0QyxtREFBbUQ7SUFDbkQsdUNBQXVDO0lBQ3ZDLGlGQUFpRjtJQUNqRixJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxXQUFXLEdBQUcsd0JBQXdCLENBQUM7SUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJ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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2ZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRTVCLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFM0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRTtJQUN0QyxtREFBbUQ7SUFDbkQsdUNBQXVDO0lBQ3ZDLGlGQUFpRjtJQUNqRixJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxXQUFXLEdBQUcsd0JBQXdCLENBQUM7SUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJ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 // EXTERNAL MODULE: external "child_process" var external_child_process_ = __webpack_require__(35317); ;// ../ai-tools/node_modules/p-map/index.js @@ -199146,6 +196835,1449 @@ const web_tools = (target, options) => { ]; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy93ZWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLFVBQVUsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQUUsT0FBa0IsRUFBYyxFQUFFO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekMsT0FBTztRQUNIO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFO2dCQUNOLElBQUksRUFBRSxhQUFhO2dCQUNuQixXQUFXLEVBQUUsNkZBQTZGO2dCQUMxRyxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLEdBQUcsRUFBRTs0QkFDRCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsOEJBQThCO3lCQUM5QztxQkFDSjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7aUJBQ3BCO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUk7d0JBQ0EsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ3hELE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQzs0QkFDbkMsUUFBUSxFQUFFLElBQUk7NEJBQ2QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDO3lCQUNyRCxDQUFDLENBQUE7d0JBRUYsSUFBSTs0QkFDQSxN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 +// EXTERNAL MODULE: external "buffer" +var external_buffer_ = __webpack_require__(20181); +;// ../ai-tools/node_modules/@keyv/serialize/dist/index.js +// src/index.ts + +var defaultSerialize = (data) => { + if (data === void 0 || data === null) { + return "null"; + } + if (typeof data === "string") { + return JSON.stringify(data.startsWith(":") ? ":" + data : data); + } + if (external_buffer_.Buffer.isBuffer(data)) { + return JSON.stringify(":base64:" + data.toString("base64")); + } + if (data?.toJSON) { + data = data.toJSON(); + } + if (typeof data === "object") { + let s = ""; + const array = Array.isArray(data); + s = array ? "[" : "{"; + let first = true; + for (const k in data) { + const ignore = typeof data[k] === "function" || !array && data[k] === void 0; + if (!Object.hasOwn(data, k) || ignore) { + continue; + } + if (!first) { + s += ","; + } + first = false; + if (array) { + s += defaultSerialize(data[k]); + } else if (data[k] !== void 0) { + s += defaultSerialize(k) + ":" + defaultSerialize(data[k]); + } + } + s += array ? "]" : "}"; + return s; + } + return JSON.stringify(data); +}; +var defaultDeserialize = (data) => JSON.parse(data, (_, value) => { + if (typeof value === "string") { + if (value.startsWith(":base64:")) { + return external_buffer_.Buffer.from(value.slice(8), "base64"); + } + return value.startsWith(":") ? value.slice(1) : value; + } + return value; +}); + + +;// ../ai-tools/node_modules/keyv/dist/index.js +// src/index.ts + + +// src/event-manager.ts +var EventManager = class { + _eventListeners; + _maxListeners; + constructor() { + this._eventListeners = /* @__PURE__ */ new Map(); + this._maxListeners = 100; + } + maxListeners() { + return this._maxListeners; + } + // Add an event listener + addListener(event, listener) { + this.on(event, listener); + } + on(event, listener) { + if (!this._eventListeners.has(event)) { + this._eventListeners.set(event, []); + } + const listeners = this._eventListeners.get(event); + if (listeners) { + if (listeners.length >= this._maxListeners) { + console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`); + } + listeners.push(listener); + } + return this; + } + // Remove an event listener + removeListener(event, listener) { + this.off(event, listener); + } + off(event, listener) { + const listeners = this._eventListeners.get(event) ?? []; + const index = listeners.indexOf(listener); + if (index !== -1) { + listeners.splice(index, 1); + } + if (listeners.length === 0) { + this._eventListeners.delete(event); + } + } + once(event, listener) { + const onceListener = (...arguments_) => { + listener(...arguments_); + this.off(event, onceListener); + }; + this.on(event, onceListener); + } + // Emit an event + emit(event, ...arguments_) { + const listeners = this._eventListeners.get(event); + if (listeners && listeners.length > 0) { + for (const listener of listeners) { + listener(...arguments_); + } + } + } + // Get all listeners for a specific event + listeners(event) { + return this._eventListeners.get(event) ?? []; + } + // Remove all listeners for a specific event + removeAllListeners(event) { + if (event) { + this._eventListeners.delete(event); + } else { + this._eventListeners.clear(); + } + } + // Set the maximum number of listeners for a single event + setMaxListeners(n) { + this._maxListeners = n; + } +}; +var event_manager_default = EventManager; + +// src/hooks-manager.ts +var HooksManager = class extends event_manager_default { + _hookHandlers; + constructor() { + super(); + this._hookHandlers = /* @__PURE__ */ new Map(); + } + // Adds a handler function for a specific event + addHandler(event, handler) { + const eventHandlers = this._hookHandlers.get(event); + if (eventHandlers) { + eventHandlers.push(handler); + } else { + this._hookHandlers.set(event, [handler]); + } + } + // Removes a specific handler function for a specific event + removeHandler(event, handler) { + const eventHandlers = this._hookHandlers.get(event); + if (eventHandlers) { + const index = eventHandlers.indexOf(handler); + if (index !== -1) { + eventHandlers.splice(index, 1); + } + } + } + // Triggers all handlers for a specific event with provided data + trigger(event, data) { + const eventHandlers = this._hookHandlers.get(event); + if (eventHandlers) { + for (const handler of eventHandlers) { + try { + handler(data); + } catch (error) { + this.emit("error", new Error(`Error in hook handler for event "${event}": ${error.message}`)); + } + } + } + } + // Provides read-only access to the current handlers + get handlers() { + return new Map(this._hookHandlers); + } +}; +var hooks_manager_default = HooksManager; + +// src/stats-manager.ts +var StatsManager = class extends event_manager_default { + enabled = true; + hits = 0; + misses = 0; + sets = 0; + deletes = 0; + errors = 0; + constructor(enabled) { + super(); + if (enabled !== void 0) { + this.enabled = enabled; + } + this.reset(); + } + hit() { + if (this.enabled) { + this.hits++; + } + } + miss() { + if (this.enabled) { + this.misses++; + } + } + set() { + if (this.enabled) { + this.sets++; + } + } + delete() { + if (this.enabled) { + this.deletes++; + } + } + hitsOrMisses(array) { + for (const item of array) { + if (item === void 0) { + this.miss(); + } else { + this.hit(); + } + } + } + reset() { + this.hits = 0; + this.misses = 0; + this.sets = 0; + this.deletes = 0; + this.errors = 0; + } +}; +var stats_manager_default = StatsManager; + +// src/index.ts +var KeyvHooks = /* @__PURE__ */ ((KeyvHooks2) => { + KeyvHooks2["PRE_SET"] = "preSet"; + KeyvHooks2["POST_SET"] = "postSet"; + KeyvHooks2["PRE_GET"] = "preGet"; + KeyvHooks2["POST_GET"] = "postGet"; + KeyvHooks2["PRE_GET_MANY"] = "preGetMany"; + KeyvHooks2["POST_GET_MANY"] = "postGetMany"; + KeyvHooks2["PRE_GET_RAW"] = "preGetRaw"; + KeyvHooks2["POST_GET_RAW"] = "postGetRaw"; + KeyvHooks2["PRE_GET_MANY_RAW"] = "preGetManyRaw"; + KeyvHooks2["POST_GET_MANY_RAW"] = "postGetManyRaw"; + KeyvHooks2["PRE_DELETE"] = "preDelete"; + KeyvHooks2["POST_DELETE"] = "postDelete"; + return KeyvHooks2; +})(KeyvHooks || {}); +var iterableAdapters = [ + "sqlite", + "postgres", + "mysql", + "mongo", + "redis", + "valkey", + "etcd" +]; +var dist_Keyv = class extends event_manager_default { + opts; + iterator; + hooks = new hooks_manager_default(); + stats = new stats_manager_default(false); + /** + * Time to live in milliseconds + */ + _ttl; + /** + * Namespace + */ + _namespace; + /** + * Store + */ + _store = /* @__PURE__ */ new Map(); + _serialize = defaultSerialize; + _deserialize = defaultDeserialize; + _compression; + _useKeyPrefix = true; + _throwOnErrors = false; + /** + * Keyv Constructor + * @param {KeyvStoreAdapter | KeyvOptions} store + * @param {Omit} [options] if you provide the store you can then provide the Keyv Options + */ + constructor(store, options) { + super(); + options ??= {}; + store ??= {}; + this.opts = { + namespace: "keyv", + serialize: defaultSerialize, + deserialize: defaultDeserialize, + emitErrors: true, + // @ts-expect-error - Map is not a KeyvStoreAdapter + store: /* @__PURE__ */ new Map(), + ...options + }; + if (store && store.get) { + this.opts.store = store; + } else { + this.opts = { + ...this.opts, + ...store + }; + } + this._store = this.opts.store ?? /* @__PURE__ */ new Map(); + this._compression = this.opts.compression; + this._serialize = this.opts.serialize; + this._deserialize = this.opts.deserialize; + if (this.opts.namespace) { + this._namespace = this.opts.namespace; + } + if (this._store) { + if (!this._isValidStorageAdapter(this._store)) { + throw new Error("Invalid storage adapter"); + } + if (typeof this._store.on === "function") { + this._store.on("error", (error) => this.emit("error", error)); + } + this._store.namespace = this._namespace; + if (typeof this._store[Symbol.iterator] === "function" && this._store instanceof Map) { + this.iterator = this.generateIterator(this._store); + } else if ("iterator" in this._store && this._store.opts && this._checkIterableAdapter()) { + this.iterator = this.generateIterator(this._store.iterator.bind(this._store)); + } + } + if (this.opts.stats) { + this.stats.enabled = this.opts.stats; + } + if (this.opts.ttl) { + this._ttl = this.opts.ttl; + } + if (this.opts.useKeyPrefix !== void 0) { + this._useKeyPrefix = this.opts.useKeyPrefix; + } + if (this.opts.throwOnErrors !== void 0) { + this._throwOnErrors = this.opts.throwOnErrors; + } + } + /** + * Get the current store + */ + get store() { + return this._store; + } + /** + * Set the current store. This will also set the namespace, event error handler, and generate the iterator. If the store is not valid it will throw an error. + * @param {KeyvStoreAdapter | Map | any} store the store to set + */ + set store(store) { + if (this._isValidStorageAdapter(store)) { + this._store = store; + this.opts.store = store; + if (typeof store.on === "function") { + store.on("error", (error) => this.emit("error", error)); + } + if (this._namespace) { + this._store.namespace = this._namespace; + } + if (typeof store[Symbol.iterator] === "function" && store instanceof Map) { + this.iterator = this.generateIterator(store); + } else if ("iterator" in store && store.opts && this._checkIterableAdapter()) { + this.iterator = this.generateIterator(store.iterator.bind(store)); + } + } else { + throw new Error("Invalid storage adapter"); + } + } + /** + * Get the current compression function + * @returns {CompressionAdapter} The current compression function + */ + get compression() { + return this._compression; + } + /** + * Set the current compression function + * @param {CompressionAdapter} compress The compression function to set + */ + set compression(compress) { + this._compression = compress; + } + /** + * Get the current namespace. + * @returns {string | undefined} The current namespace. + */ + get namespace() { + return this._namespace; + } + /** + * Set the current namespace. + * @param {string | undefined} namespace The namespace to set. + */ + set namespace(namespace) { + this._namespace = namespace; + this.opts.namespace = namespace; + this._store.namespace = namespace; + if (this.opts.store) { + this.opts.store.namespace = namespace; + } + } + /** + * Get the current TTL. + * @returns {number} The current TTL. + */ + get ttl() { + return this._ttl; + } + /** + * Set the current TTL. + * @param {number} ttl The TTL to set. + */ + set ttl(ttl) { + this.opts.ttl = ttl; + this._ttl = ttl; + } + /** + * Get the current serialize function. + * @returns {Serialize} The current serialize function. + */ + get serialize() { + return this._serialize; + } + /** + * Set the current serialize function. + * @param {Serialize} serialize The serialize function to set. + */ + set serialize(serialize) { + this.opts.serialize = serialize; + this._serialize = serialize; + } + /** + * Get the current deserialize function. + * @returns {Deserialize} The current deserialize function. + */ + get deserialize() { + return this._deserialize; + } + /** + * Set the current deserialize function. + * @param {Deserialize} deserialize The deserialize function to set. + */ + set deserialize(deserialize) { + this.opts.deserialize = deserialize; + this._deserialize = deserialize; + } + /** + * Get the current useKeyPrefix value. This will enable or disable key prefixing. + * @returns {boolean} The current useKeyPrefix value. + * @default true + */ + get useKeyPrefix() { + return this._useKeyPrefix; + } + /** + * Set the current useKeyPrefix value. This will enable or disable key prefixing. + * @param {boolean} value The useKeyPrefix value to set. + */ + set useKeyPrefix(value) { + this._useKeyPrefix = value; + this.opts.useKeyPrefix = value; + } + /** + * Get the current throwErrors value. This will enable or disable throwing errors on methods in addition to emitting them. + * @return {boolean} The current throwOnErrors value. + */ + get throwOnErrors() { + return this._throwOnErrors; + } + /** + * Set the current throwOnErrors value. This will enable or disable throwing errors on methods in addition to emitting them. + * @param {boolean} value The throwOnErrors value to set. + */ + set throwOnErrors(value) { + this._throwOnErrors = value; + this.opts.throwOnErrors = value; + } + generateIterator(iterator) { + const function_ = async function* () { + for await (const [key, raw] of typeof iterator === "function" ? iterator(this._store.namespace) : iterator) { + const data = await this.deserializeData(raw); + if (this._useKeyPrefix && this._store.namespace && !key.includes(this._store.namespace)) { + continue; + } + if (typeof data.expires === "number" && Date.now() > data.expires) { + this.delete(key); + continue; + } + yield [this._getKeyUnprefix(key), data.value]; + } + }; + return function_.bind(this); + } + _checkIterableAdapter() { + return iterableAdapters.includes(this._store.opts.dialect) || iterableAdapters.some((element) => this._store.opts.url.includes(element)); + } + _getKeyPrefix(key) { + if (!this._useKeyPrefix) { + return key; + } + if (!this._namespace) { + return key; + } + return `${this._namespace}:${key}`; + } + _getKeyPrefixArray(keys) { + if (!this._useKeyPrefix) { + return keys; + } + if (!this._namespace) { + return keys; + } + return keys.map((key) => `${this._namespace}:${key}`); + } + _getKeyUnprefix(key) { + if (!this._useKeyPrefix) { + return key; + } + return key.split(":").splice(1).join(":"); + } + _isValidStorageAdapter(store) { + return store instanceof Map || typeof store.get === "function" && typeof store.set === "function" && typeof store.delete === "function" && typeof store.clear === "function"; + } + // eslint-disable-next-line @stylistic/max-len + async get(key, options) { + const { store } = this.opts; + const isArray = Array.isArray(key); + const keyPrefixed = isArray ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key); + const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires; + if (isArray) { + if (options?.raw === true) { + return this.getMany(key, { raw: true }); + } + return this.getMany(key, { raw: false }); + } + this.hooks.trigger("preGet" /* PRE_GET */, { key: keyPrefixed }); + let rawData; + try { + rawData = await store.get(keyPrefixed); + } catch (error) { + if (this.throwOnErrors) { + throw error; + } + } + const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData; + if (deserializedData === void 0 || deserializedData === null) { + this.stats.miss(); + return void 0; + } + if (isDataExpired(deserializedData)) { + await this.delete(key); + this.stats.miss(); + return void 0; + } + this.hooks.trigger("postGet" /* POST_GET */, { key: keyPrefixed, value: deserializedData }); + this.stats.hit(); + return options?.raw ? deserializedData : deserializedData.value; + } + async getMany(keys, options) { + const { store } = this.opts; + const keyPrefixed = this._getKeyPrefixArray(keys); + const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires; + this.hooks.trigger("preGetMany" /* PRE_GET_MANY */, { keys: keyPrefixed }); + if (store.getMany === void 0) { + const promises = keyPrefixed.map(async (key) => { + const rawData2 = await store.get(key); + const deserializedRow = typeof rawData2 === "string" || this.opts.compression ? await this.deserializeData(rawData2) : rawData2; + if (deserializedRow === void 0 || deserializedRow === null) { + return void 0; + } + if (isDataExpired(deserializedRow)) { + await this.delete(key); + return void 0; + } + return options?.raw ? deserializedRow : deserializedRow.value; + }); + const deserializedRows = await Promise.allSettled(promises); + const result2 = deserializedRows.map((row) => row.value); + this.hooks.trigger("postGetMany" /* POST_GET_MANY */, result2); + if (result2.length > 0) { + this.stats.hit(); + } + return result2; + } + const rawData = await store.getMany(keyPrefixed); + const result = []; + const expiredKeys = []; + for (const index in rawData) { + let row = rawData[index]; + if (typeof row === "string") { + row = await this.deserializeData(row); + } + if (row === void 0 || row === null) { + result.push(void 0); + continue; + } + if (isDataExpired(row)) { + expiredKeys.push(keys[index]); + result.push(void 0); + continue; + } + const value = options?.raw ? row : row.value; + result.push(value); + } + if (expiredKeys.length > 0) { + await this.deleteMany(expiredKeys); + } + this.hooks.trigger("postGetMany" /* POST_GET_MANY */, result); + if (result.length > 0) { + this.stats.hit(); + } + return result; + } + /** + * Get the raw value of a key. This is the replacement for setting raw to true in the get() method. + * @param {string} key the key to get + * @returns {Promise | undefined>} will return a StoredDataRaw or undefined if the key does not exist or is expired. + */ + async getRaw(key) { + const { store } = this.opts; + const keyPrefixed = this._getKeyPrefix(key); + this.hooks.trigger("preGetRaw" /* PRE_GET_RAW */, { key: keyPrefixed }); + const rawData = await store.get(keyPrefixed); + if (rawData === void 0 || rawData === null) { + this.stats.miss(); + return void 0; + } + const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData; + if (deserializedData !== void 0 && deserializedData.expires !== void 0 && deserializedData.expires !== null && deserializedData.expires < Date.now()) { + this.stats.miss(); + await this.delete(key); + return void 0; + } + this.stats.hit(); + this.hooks.trigger("postGetRaw" /* POST_GET_RAW */, { key: keyPrefixed, value: deserializedData }); + return deserializedData; + } + /** + * Get the raw values of many keys. This is the replacement for setting raw to true in the getMany() method. + * @param {string[]} keys the keys to get + * @returns {Promise>>} will return an array of StoredDataRaw or undefined if the key does not exist or is expired. + */ + async getManyRaw(keys) { + const { store } = this.opts; + const keyPrefixed = this._getKeyPrefixArray(keys); + if (keys.length === 0) { + const result2 = Array.from({ length: keys.length }).fill(void 0); + this.stats.misses += keys.length; + this.hooks.trigger("postGetManyRaw" /* POST_GET_MANY_RAW */, { keys: keyPrefixed, values: result2 }); + return result2; + } + let result = []; + if (store.getMany === void 0) { + const promises = keyPrefixed.map(async (key) => { + const rawData = await store.get(key); + if (rawData !== void 0 && rawData !== null) { + return this.deserializeData(rawData); + } + return void 0; + }); + const deserializedRows = await Promise.allSettled(promises); + result = deserializedRows.map((row) => row.value); + } else { + const rawData = await store.getMany(keyPrefixed); + for (const row of rawData) { + if (row !== void 0 && row !== null) { + result.push(await this.deserializeData(row)); + } else { + result.push(void 0); + } + } + } + const expiredKeys = []; + const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires; + for (const [index, row] of result.entries()) { + if (row !== void 0 && isDataExpired(row)) { + expiredKeys.push(keyPrefixed[index]); + result[index] = void 0; + } + } + if (expiredKeys.length > 0) { + await this.deleteMany(expiredKeys); + } + this.stats.hitsOrMisses(result); + this.hooks.trigger("postGetManyRaw" /* POST_GET_MANY_RAW */, { keys: keyPrefixed, values: result }); + return result; + } + /** + * Set an item to the store + * @param {string | Array} key the key to use. If you pass in an array of KeyvEntry it will set many items + * @param {Value} value the value of the key + * @param {number} [ttl] time to live in milliseconds + * @returns {boolean} if it sets then it will return a true. On failure will return false. + */ + async set(key, value, ttl) { + const data = { key, value, ttl }; + this.hooks.trigger("preSet" /* PRE_SET */, data); + const keyPrefixed = this._getKeyPrefix(data.key); + data.ttl ??= this._ttl; + if (data.ttl === 0) { + data.ttl = void 0; + } + const { store } = this.opts; + const expires = typeof data.ttl === "number" ? Date.now() + data.ttl : void 0; + if (typeof data.value === "symbol") { + this.emit("error", "symbol cannot be serialized"); + throw new Error("symbol cannot be serialized"); + } + const formattedValue = { value: data.value, expires }; + const serializedValue = await this.serializeData(formattedValue); + let result = true; + try { + const value2 = await store.set(keyPrefixed, serializedValue, data.ttl); + if (typeof value2 === "boolean") { + result = value2; + } + } catch (error) { + result = false; + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + } + this.hooks.trigger("postSet" /* POST_SET */, { key: keyPrefixed, value: serializedValue, ttl }); + this.stats.set(); + return result; + } + /** + * Set many items to the store + * @param {Array} entries the entries to set + * @returns {boolean[]} will return an array of booleans if it sets then it will return a true. On failure will return false. + */ + async setMany(entries) { + let results = []; + try { + if (this._store.setMany === void 0) { + const promises = []; + for (const entry of entries) { + promises.push(this.set(entry.key, entry.value, entry.ttl)); + } + const promiseResults = await Promise.all(promises); + results = promiseResults; + } else { + const serializedEntries = await Promise.all(entries.map(async ({ key, value, ttl }) => { + ttl ??= this._ttl; + if (ttl === 0) { + ttl = void 0; + } + const expires = typeof ttl === "number" ? Date.now() + ttl : void 0; + if (typeof value === "symbol") { + this.emit("error", "symbol cannot be serialized"); + throw new Error("symbol cannot be serialized"); + } + const formattedValue = { value, expires }; + const serializedValue = await this.serializeData(formattedValue); + return { key, value: serializedValue, ttl }; + })); + results = await this._store.setMany(serializedEntries); + } + } catch (error) { + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + results = entries.map(() => false); + } + return results; + } + /** + * Delete an Entry + * @param {string | string[]} key the key to be deleted. if an array it will delete many items + * @returns {boolean} will return true if item or items are deleted. false if there is an error + */ + async delete(key) { + const { store } = this.opts; + if (Array.isArray(key)) { + return this.deleteMany(key); + } + const keyPrefixed = this._getKeyPrefix(key); + this.hooks.trigger("preDelete" /* PRE_DELETE */, { key: keyPrefixed }); + let result = true; + try { + const value = await store.delete(keyPrefixed); + if (typeof value === "boolean") { + result = value; + } + } catch (error) { + result = false; + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + } + this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed, value: result }); + this.stats.delete(); + return result; + } + /** + * Delete many items from the store + * @param {string[]} keys the keys to be deleted + * @returns {boolean} will return true if item or items are deleted. false if there is an error + */ + async deleteMany(keys) { + try { + const { store } = this.opts; + const keyPrefixed = this._getKeyPrefixArray(keys); + this.hooks.trigger("preDelete" /* PRE_DELETE */, { key: keyPrefixed }); + if (store.deleteMany !== void 0) { + return await store.deleteMany(keyPrefixed); + } + const promises = keyPrefixed.map(async (key) => store.delete(key)); + const results = await Promise.all(promises); + const returnResult = results.every(Boolean); + this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed, value: returnResult }); + return returnResult; + } catch (error) { + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + return false; + } + } + /** + * Clear the store + * @returns {void} + */ + async clear() { + this.emit("clear"); + const { store } = this.opts; + try { + await store.clear(); + } catch (error) { + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + } + } + async has(key) { + if (Array.isArray(key)) { + return this.hasMany(key); + } + const keyPrefixed = this._getKeyPrefix(key); + const { store } = this.opts; + if (store.has !== void 0 && !(store instanceof Map)) { + return store.has(keyPrefixed); + } + let rawData; + try { + rawData = await store.get(keyPrefixed); + } catch (error) { + this.emit("error", error); + if (this._throwOnErrors) { + throw error; + } + return false; + } + if (rawData) { + const data = await this.deserializeData(rawData); + if (data) { + if (data.expires === void 0 || data.expires === null) { + return true; + } + return data.expires > Date.now(); + } + } + return false; + } + /** + * Check if many keys exist + * @param {string[]} keys the keys to check + * @returns {boolean[]} will return an array of booleans if the keys exist + */ + async hasMany(keys) { + const keyPrefixed = this._getKeyPrefixArray(keys); + const { store } = this.opts; + if (store.hasMany !== void 0) { + return store.hasMany(keyPrefixed); + } + const results = []; + for (const key of keyPrefixed) { + results.push(await this.has(key)); + } + return results; + } + /** + * Will disconnect the store. This is only available if the store has a disconnect method + * @returns {Promise} + */ + async disconnect() { + const { store } = this.opts; + this.emit("disconnect"); + if (typeof store.disconnect === "function") { + return store.disconnect(); + } + } + emit(event, ...arguments_) { + if (event === "error" && !this.opts.emitErrors) { + return; + } + super.emit(event, ...arguments_); + } + async serializeData(data) { + if (!this._serialize) { + return data; + } + if (this._compression?.compress) { + return this._serialize({ value: await this._compression.compress(data.value), expires: data.expires }); + } + return this._serialize(data); + } + async deserializeData(data) { + if (!this._deserialize) { + return data; + } + if (this._compression?.decompress && typeof data === "string") { + const result = await this._deserialize(data); + return { value: await this._compression.decompress(result?.value), expires: result?.expires }; + } + if (typeof data === "string") { + return this._deserialize(data); + } + return void 0; + } +}; +var index_default = dist_Keyv; + + +// EXTERNAL MODULE: external "events" +var external_events_ = __webpack_require__(24434); +// EXTERNAL MODULE: ../ai-tools/node_modules/sqlite3/lib/sqlite3.js +var sqlite3 = __webpack_require__(45430); +;// ../ai-tools/node_modules/@keyv/sqlite/dist/index.js +// src/index.ts + + + + +var dist_toString = (input) => String(input).search(/^[a-zA-Z]+$/) < 0 ? "_" + input : input; +var KeyvSqlite = class extends external_events_ { + ttlSupport; + opts; + namespace; + close; + query; + constructor(keyvOptions) { + super(); + this.ttlSupport = false; + let options = { + dialect: "sqlite", + uri: "sqlite://:memory:" + }; + if (typeof keyvOptions === "string") { + options.uri = keyvOptions; + } else { + options = { + ...options, + ...keyvOptions + }; + } + options.db = options.uri.replace(/^sqlite:\/\//, ""); + options.connect = async () => new Promise((resolve, reject) => { + const database = new sqlite3.Database(options.db, (error) => { + if (error) { + reject(error); + } else { + if (options.busyTimeout) { + database.configure("busyTimeout", options.busyTimeout); + } + resolve(database); + } + }); + }).then((database) => ({ query: (0,external_util_.promisify)(database.all).bind(database), close: (0,external_util_.promisify)(database.close).bind(database) })); + this.opts = { + table: "keyv", + keySize: 255, + ...options + }; + this.opts.table = dist_toString(this.opts.table); + const createTable = `CREATE TABLE IF NOT EXISTS ${this.opts.table}(key VARCHAR(${Number(this.opts.keySize)}) PRIMARY KEY, value TEXT )`; + const connected = this.opts.connect().then(async (database) => database.query(createTable).then(() => database)).catch((error) => this.emit("error", error)); + this.query = async (sqlString, ...parameter) => connected.then(async (database) => database.query(sqlString, ...parameter)); + this.close = async () => connected.then((database) => database.close()); + } + async get(key) { + const select = `SELECT * FROM ${this.opts.table} WHERE key = ?`; + const rows = await this.query(select, key); + const row = rows[0]; + if (row === void 0) { + return void 0; + } + return row.value; + } + async getMany(keys) { + const select = `SELECT * FROM ${this.opts.table} WHERE key IN (SELECT value FROM json_each(?))`; + const rows = await this.query(select, JSON.stringify(keys)); + return keys.map((key) => { + const row = rows.find((row2) => row2.key === key); + return row ? row.value : void 0; + }); + } + async set(key, value) { + const upsert = `INSERT INTO ${this.opts.table} (key, value) + VALUES(?, ?) + ON CONFLICT(key) + DO UPDATE SET value=excluded.value;`; + return this.query(upsert, key, value); + } + async delete(key) { + const select = `SELECT * FROM ${this.opts.table} WHERE key = ?`; + const del = `DELETE FROM ${this.opts.table} WHERE key = ?`; + const rows = await this.query(select, key); + const row = rows[0]; + if (row === void 0) { + return false; + } + await this.query(del, key); + return true; + } + async deleteMany(keys) { + const del = `DELETE FROM ${this.opts.table} WHERE key IN (SELECT value FROM json_each(?))`; + const results = await this.getMany(keys); + if (results.every((x) => x === void 0)) { + return false; + } + await this.query(del, JSON.stringify(keys)); + return true; + } + async clear() { + const del = `DELETE FROM ${this.opts.table} WHERE key LIKE ?`; + await this.query(del, this.namespace ? `${this.namespace}:%` : "%"); + } + async *iterator(namespace) { + const limit = Number.parseInt(this.opts.iterationLimit, 10) || 10; + async function* iterate(offset, options, query) { + const select = `SELECT * FROM ${options.table} WHERE key LIKE ? LIMIT ? OFFSET ?`; + const iterator = await query(select, [`${namespace ? namespace + ":" : ""}%`, limit, offset]); + const entries = [...iterator]; + if (entries.length === 0) { + return; + } + for (const entry of entries) { + offset += 1; + yield [entry.key, entry.value]; + } + yield* iterate(offset, options, query); + } + yield* iterate(0, this.opts, this.query); + } + async has(key) { + const exists = `SELECT EXISTS ( SELECT * FROM ${this.opts.table} WHERE key = ? )`; + const result = await this.query(exists, key); + return Object.values(result[0])[0] === 1; + } + async disconnect() { + await this.close(); + } +}; +var createKeyv = (keyvOptions) => new Keyv({ store: new KeyvSqlite(keyvOptions) }); +var dist_index_default = KeyvSqlite; + + +;// ../ai-tools/dist/lib/tools/keyv.js + + + + +const store = (storePath, ns = 'ns-unknown', opts = {}) => { + const keyvSqlite = new dist_index_default(external_path_.resolve((0,dist/* resolve */.hd)(storePath))); + return new index_default({ store: keyvSqlite, ttl: 5000, namespace: ns, ...opts }); +}; +const get = async (key, storePath, ns = 'ns-unknown', opts = {}) => { + const keyv = store(storePath, ns, opts); + return await keyv.get(key); +}; +const set = async (key, value, storePath, ns = 'ns-unknown', opts = {}) => { + const keyv = store(storePath, ns, opts); + return await keyv.set(key, value); +}; +const list = async (key, value, storePath, ns = 'ns-unknown', opts = {}) => { + const keyv = store(storePath, ns, opts); + return await keyv.set(key, value); +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5di5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMva2V5di50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFBO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEtBQWEsWUFBWSxFQUFFLE9BQVksRUFBRSxFQUFFLEVBQUU7SUFDbEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25FLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUE7QUFDN0UsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsU0FBaUIsRUFBRSxLQUFhLFlBQVksRUFBRSxPQUFZLEVBQUUsRUFBRSxFQUFFO0lBQ25HLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzlCLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEtBQVUsRUFBRSxTQUFpQixFQUFFLEtBQWEsWUFBWSxFQUFFLE9BQVksRUFBRSxFQUFFLEVBQUU7SUFDL0csTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdkMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3JDLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEtBQVUsRUFBRSxTQUFpQixFQUFFLEtBQWEsWUFBWSxFQUFFLE9BQVksRUFBRSxFQUFFLEVBQUU7SUFDaEgsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdkMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3JDLENBQUMsQ0FBQSJ9 +;// ../ai-tools/dist/lib/tools/memory.js + + + +// Helper function to get storage path +const getStoragePath = (options) => { + // For now, use default path. Later this can be configured via options + return external_path_.join(process.cwd(), 'memory.sqlite'); +}; +// Default collection name when none provided +const DEFAULT_COLLECTION = 'no-collection'; +// Helper function to process value based on format +const processValueForStorage = (value, format) => { + switch (format) { + case 'json': + try { + // Validate JSON by parsing and re-stringifying + JSON.parse(value); + return value; + } + catch (error) { + throw new Error('Invalid JSON format provided'); + } + case 'binary': + // For binary, we expect base64 encoded data + try { + // Validate base64 + Buffer.from(value, 'base64'); + return value; + } + catch (error) { + throw new Error('Invalid base64 format for binary data'); + } + case 'text': + default: + return value; + } +}; +// Helper function to create memory entry +const createMemoryEntry = (value, format) => { + const now = new Date().toISOString(); + return { + value: processValueForStorage(value, format), + meta: { + type: format, + created: now, + updated: now + } + }; +}; +const memory_tools = (target, options) => { + const logger = (0,ai_tools_dist/* toolLogger */.bw)('memory', options); + const storagePath = getStoragePath(options); + return [ + { + type: 'function', + function: { + name: 'memorize', + description: `Store information in memory as a key-value collection with format support. Supports text, JSON, and binary (base64) formats. + +Returns: { + success: boolean, + message: string, + meta: { + type: "text" | "json" | "binary", + created: string (ISO timestamp), + updated: string (ISO timestamp) + } +}`, + parameters: { + type: 'object', + properties: { + collection: { + type: 'string', + description: 'Collection name to organize related data (defaults to "no-collection" if not provided). Acts like a namespace.', + optional: true + }, + key: { + type: 'string', + description: 'Unique identifier for the data within the collection. Must be a string.' + }, + value: { + type: 'string', + description: 'The data to store. For format="text": any string. For format="json": valid JSON string. For format="binary": base64 encoded data.' + }, + format: { + type: 'string', + description: 'Data format type. "text" for plain text (default), "json" for JSON data (validates structure), "binary" for base64 encoded binary data.', + enum: ['text', 'json', 'binary'], + optional: true + } + }, + required: ['key', 'value'] + }, + function: async (params) => { + try { + const { collection = DEFAULT_COLLECTION, key, value, format = 'text' } = params; + logger.debug(`Tool::Memorize Storing ${key} in collection ${collection} as ${format}`); + const memoryEntry = createMemoryEntry(value, format); + await set(`${collection}:${key}`, memoryEntry, storagePath, collection); + return { + success: true, + message: `Stored ${key} in collection ${collection} as ${format}`, + meta: memoryEntry.meta + }; + } + catch (error) { + logger.error('Error storing memory', error); + return { + success: false, + message: error instanceof Error ? error.message : 'Unknown error occurred' + }; + } + }, + parse: JSON.parse + } + }, + { + type: 'function', + function: { + name: 'recall', + description: `Retrieve stored information from memory by collection and key, including format metadata. + +Returns: { + success: boolean, + value?: string (the stored data), + meta?: { + type: "text" | "json" | "binary", + created: string (ISO timestamp), + updated: string (ISO timestamp) + }, + key: string, + collection: string, + message?: string (error message if success=false) +}`, + parameters: { + type: 'object', + properties: { + collection: { + type: 'string', + description: 'Collection name to retrieve from (defaults to "no-collection" if not provided). Must match the collection used when storing.', + optional: true + }, + key: { + type: 'string', + description: 'The unique identifier of the data to retrieve. Must match the key used when storing.' + } + }, + required: ['key'] + }, + function: async (params) => { + try { + const { collection = DEFAULT_COLLECTION, key } = params; + logger.debug(`Tool::Recall Retrieving ${key} from collection ${collection}`); + const storedData = await get(`${collection}:${key}`, storagePath, collection); + if (storedData === undefined) { + return { success: false, message: `Key ${key} not found in collection ${collection}` }; + } + // Handle both old format (plain string) and new format (MemoryEntry) + let memoryEntry; + if (typeof storedData === 'string') { + // Legacy format - convert to new format + memoryEntry = { + value: storedData, + meta: { + type: 'text', + created: new Date().toISOString(), + updated: new Date().toISOString() + } + }; + } + else { + memoryEntry = storedData; + } + return { + success: true, + value: memoryEntry.value, + meta: memoryEntry.meta, + key, + collection + }; + } + catch (error) { + logger.error('Error retrieving memory', error); + return { + success: false, + message: error instanceof Error ? error.message : 'Unknown error occurred' + }; + } + }, + parse: JSON.parse + } + }, + { + type: 'function', + function: { + name: 'forget', + description: `Remove a specific key from memory collection. + +Returns: { + success: boolean, + message: string (confirmation or error message) +}`, + parameters: { + type: 'object', + properties: { + collection: { + type: 'string', + description: 'Collection name to remove from (defaults to "no-collection" if not provided). Must match the collection where the key was stored.', + optional: true + }, + key: { + type: 'string', + description: 'The unique identifier of the data to remove. Must match exactly the key used when storing.' + } + }, + required: ['key'] + }, + function: async (params) => { + try { + const { collection = DEFAULT_COLLECTION, key } = params; + logger.debug(`Tool::Forget Removing ${key} from collection ${collection}`); + const keyv = store(storagePath, collection); + const deleted = await keyv.delete(`${collection}:${key}`); + return { success: deleted, message: deleted ? `Removed ${key} from ${collection}` : `Key ${key} not found in ${collection}` }; + } + catch (error) { + logger.error('Error removing from memory', error); + return { + success: false, + message: error instanceof Error ? error.message : 'Unknown error occurred' + }; + } + }, + parse: JSON.parse + } + }, + { + type: 'function', + function: { + name: 'list_memories', + description: `List all keys in a specific collection using Keyv's iterator method. + +Returns: { + success: boolean, + collection: string (the collection name), + keys: string[] (array of key names in the collection), + entries: Array<{ + key: string, + meta?: { + type: "text" | "json" | "binary", + created: string (ISO timestamp), + updated: string (ISO timestamp) + } + }>, + count: number (total number of keys), + message?: string (info or error message) +}`, + parameters: { + type: 'object', + properties: { + collection: { + type: 'string', + description: 'Collection name to list keys from (defaults to "no-collection" if not provided). Will return all keys stored in this collection namespace.', + optional: true + } + }, + required: [] + }, + function: async (params) => { + try { + const { collection = DEFAULT_COLLECTION } = params; + logger.debug(`Tool::ListMemories Listing keys in collection ${collection}`); + // Create a Keyv instance for the specific collection to use iterator + const keyv = store(storagePath, collection); + const keys = []; + const entries = []; + try { + // Check if iterator method exists and use it + if (typeof keyv.iterator === 'function') { + try { + // Try calling iterator without arguments first + const iterator = keyv.iterator(); + for await (const [key, value] of iterator) { + // Remove the collection prefix from the key to get the clean key name + const cleanKey = key.replace(`${collection}:`, ''); + keys.push(cleanKey); + // Try to extract metadata if it's a MemoryEntry + let meta = undefined; + if (value && typeof value === 'object' && value.meta) { + meta = value.meta; + } + entries.push({ key: cleanKey, meta }); + } + } + catch (iteratorCallError) { + logger.warn(`Tool::ListMemories Iterator call failed:`, iteratorCallError); + // Fall through to the not available case + return { + success: true, + collection, + keys: [], + entries: [], + count: 0, + message: 'Iterator call failed. Unable to list keys.' + }; + } + } + else { + // Iterator not available, provide helpful message + logger.warn(`Tool::ListMemories Iterator method not available for Keyv instance`); + return { + success: true, + collection, + keys: [], + entries: [], + count: 0, + message: 'Iterator method not available in this Keyv version. Use individual key operations instead.' + }; + } + return { + success: true, + collection, + keys, + entries, + count: keys.length + }; + } + catch (iteratorError) { + // If iterator fails, fall back to returning basic info + logger.warn(`Tool::ListMemories Iterator failed for collection ${collection}:`, iteratorError); + return { + success: true, + collection, + keys: [], + entries: [], + count: 0, + message: 'Iterator failed or collection is empty' + }; + } + } + catch (error) { + logger.error('Error listing memories', error); + return { + success: false, + message: error instanceof Error ? error.message : 'Unknown error occurred' + }; + } + }, + parse: JSON.parse + } + } + ]; +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy9tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFJNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUUzQyxzQ0FBc0M7QUFDdEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFrQixFQUFVLEVBQUU7SUFDbEQsc0VBQXNFO0lBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsNkNBQTZDO0FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBZTNDLG1EQUFtRDtBQUNuRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWtCLEVBQVUsRUFBRTtJQUN6RSxRQUFRLE1BQU0sRUFBRTtRQUNaLEtBQUssTUFBTTtZQUNQLElBQUk7Z0JBQ0EsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQixPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQzthQUNuRDtRQUNMLEtBQUssUUFBUTtZQUNULDRDQUE0QztZQUM1QyxJQUFJO2dCQUNBLGtCQUFrQjtnQkFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1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 ;// ../ai-tools/dist/lib/tools/tools.js @@ -199155,6 +198287,7 @@ const web_tools = (target, options) => { + //import { tools as emailTools } from './email' const tools_tools = { fs: tools, @@ -199165,9 +198298,10 @@ const tools_tools = { user: user_tools, search: search_tools, web: web_tools, + memory: memory_tools, // email: emailTools }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLCtDQUErQztBQUUvQyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDakIsRUFBRSxFQUFFLE9BQU87SUFDWCxHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0lBQ2IsUUFBUSxFQUFFLGFBQWE7SUFDdkIsUUFBUSxFQUFFLGFBQWE7SUFDdkIsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsTUFBTTtJQUNkLEdBQUcsRUFBRSxRQUFRO0lBQ2Isb0JBQW9CO0NBQ3ZCLENBQUEifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2xELCtDQUErQztBQUUvQyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDakIsRUFBRSxFQUFFLE9BQU87SUFDWCxHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0lBQ2IsUUFBUSxFQUFFLGFBQWE7SUFDdkIsUUFBUSxFQUFFLGFBQWE7SUFDdkIsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsTUFBTTtJQUNkLEdBQUcsRUFBRSxRQUFRO0lBQ2IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsb0JBQW9CO0NBQ3ZCLENBQUEifQ== // EXTERNAL MODULE: ./dist-in/index.js + 3 modules var dist_in = __webpack_require__(88022); ;// ../core/dist/aspects_simple.js @@ -199426,7 +198560,7 @@ const tools_load = async (options) => { /* harmony import */ var json_schema_to_zod__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(47571); /* harmony import */ var _filters_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(98152); /* harmony import */ var _models_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(45000); -/* harmony import */ var _tools_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(70261); +/* harmony import */ var _tools_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(49315); /* harmony import */ var _models_openrouter_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(2761); /* harmony import */ var _models_openai_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(53382); @@ -199464,7 +198598,7 @@ const EType = zod__WEBPACK_IMPORTED_MODULE_14__.z.enum([ E_Mode.CUSTOM ]); // Define the new enum for append modes -const E_AppendMode = zod__WEBPACK_IMPORTED_MODULE_14__.z.enum(['concat', 'merge']); +const E_AppendMode = zod__WEBPACK_IMPORTED_MODULE_14__.z.enum(['concat', 'merge', 'replace']); // Define the new enum for wrap modes const E_WrapMode = zod__WEBPACK_IMPORTED_MODULE_14__.z.enum(['meta', 'none']); // Define the new enum for glob extensions (presets) @@ -199655,7 +198789,7 @@ const schemas = () => { (0,_polymech_commons__WEBPACK_IMPORTED_MODULE_3__/* .write */ .M9)([OptionsSchema()], 'schema.json', 'kbot', {}); (0,_polymech_fs_write__WEBPACK_IMPORTED_MODULE_5__/* .sync */ .OH)('schema_ui.json', schemaMap.getUISchema()); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQTtBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRixPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQTtBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRixPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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 /***/ }), diff --git a/packages/kbot/dist/package-lock.json b/packages/kbot/dist/package-lock.json index 9ff66c6b..42526aa8 100644 --- a/packages/kbot/dist/package-lock.json +++ b/packages/kbot/dist/package-lock.json @@ -1,12 +1,12 @@ { "name": "@plastichub/kbot", - "version": "1.1.46", + "version": "1.1.47", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@plastichub/kbot", - "version": "1.1.46", + "version": "1.1.47", "license": "ISC", "dependencies": { "node-emoji": "^2.2.0" diff --git a/packages/kbot/dist/package.json b/packages/kbot/dist/package.json index 4ee6c2bc..a20d63eb 100644 --- a/packages/kbot/dist/package.json +++ b/packages/kbot/dist/package.json @@ -1,6 +1,6 @@ { "name": "@plastichub/kbot", - "version": "1.1.46", + "version": "1.1.47", "main": "main_node.js", "author": "", "license": "ISC", diff --git a/packages/kbot/schema.json b/packages/kbot/schema.json index bc3ff392..a6dc5674 100644 --- a/packages/kbot/schema.json +++ b/packages/kbot/schema.json @@ -27,7 +27,8 @@ "type": "string", "enum": [ "concat", - "merge" + "merge", + "replace" ], "description": "How to handle output if --dst file already exists: \"concat\" (append) or \"merge\" (try to merge structures if possible, otherwise append). Only used if --dst is specified." }, @@ -118,7 +119,7 @@ }, "model": { "type": "string", - "description": "AI model to use for processing. Available models:\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenRouter models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n01-ai/yi-large | paid\nagentica-org/deepcoder-14b-preview | paid\nagentica-org/deepcoder-14b-preview:free | free\nai21/jamba-1.6-large | paid\nai21/jamba-1.6-mini | paid\naion-labs/aion-1.0 | paid\naion-labs/aion-1.0-mini | paid\naion-labs/aion-rp-llama-3.1-8b | paid\nalfredpros/codellama-7b-instruct-solidity | paid\namazon/nova-lite-v1 | paid\namazon/nova-micro-v1 | paid\namazon/nova-pro-v1 | paid\nanthropic/claude-3-haiku | paid\nanthropic/claude-3-haiku:beta | paid\nanthropic/claude-3-opus | paid\nanthropic/claude-3-opus:beta | paid\nanthropic/claude-3-sonnet | paid\nanthropic/claude-3.5-haiku | paid\nanthropic/claude-3.5-haiku-20241022 | paid\nanthropic/claude-3.5-haiku-20241022:beta | paid\nanthropic/claude-3.5-haiku:beta | paid\nanthropic/claude-3.5-sonnet | paid\nanthropic/claude-3.5-sonnet-20240620 | paid\nanthropic/claude-3.5-sonnet-20240620:beta | paid\nanthropic/claude-3.5-sonnet:beta | paid\nanthropic/claude-3.7-sonnet | paid\nanthropic/claude-3.7-sonnet:beta | paid\nanthropic/claude-3.7-sonnet:thinking | paid\nanthropic/claude-opus-4 | paid\nanthropic/claude-sonnet-4 | paid\narcee-ai/coder-large | paid\narcee-ai/maestro-reasoning | paid\narcee-ai/spotlight | paid\narcee-ai/virtuoso-large | paid\narliai/qwq-32b-arliai-rpr-v1 | paid\narliai/qwq-32b-arliai-rpr-v1:free | free\nopenrouter/auto | paid\nbaidu/ernie-4.5-300b-a47b | paid\nbytedance/ui-tars-1.5-7b | paid\ncohere/command | paid\ncohere/command-a | paid\ncohere/command-r | paid\ncohere/command-r-03-2024 | paid\ncohere/command-r-08-2024 | paid\ncohere/command-r-plus | paid\ncohere/command-r-plus-04-2024 | paid\ncohere/command-r-plus-08-2024 | paid\ncohere/command-r7b-12-2024 | paid\ndeepseek/deepseek-prover-v2 | paid\ndeepseek/deepseek-r1-0528-qwen3-8b | paid\ndeepseek/deepseek-r1-0528-qwen3-8b:free | free\ndeepseek/deepseek-chat | paid\ndeepseek/deepseek-chat-v3-0324 | paid\ndeepseek/deepseek-chat-v3-0324:free | free\ndeepseek/deepseek-v3-base | paid\ndeepseek/deepseek-r1 | paid\ndeepseek/deepseek-r1:free | free\ndeepseek/deepseek-r1-0528 | paid\ndeepseek/deepseek-r1-0528:free | free\ndeepseek/deepseek-r1-distill-llama-70b | paid\ndeepseek/deepseek-r1-distill-llama-70b:free | free\ndeepseek/deepseek-r1-distill-llama-8b | paid\ndeepseek/deepseek-r1-distill-qwen-1.5b | paid\ndeepseek/deepseek-r1-distill-qwen-14b | paid\ndeepseek/deepseek-r1-distill-qwen-14b:free | free\ndeepseek/deepseek-r1-distill-qwen-32b | paid\ndeepseek/deepseek-r1-distill-qwen-7b | paid\ncognitivecomputations/dolphin-mixtral-8x22b | paid\ncognitivecomputations/dolphin3.0-mistral-24b:free | free\ncognitivecomputations/dolphin3.0-r1-mistral-24b | paid\ncognitivecomputations/dolphin3.0-r1-mistral-24b:free | free\neleutherai/llemma_7b | paid\neva-unit-01/eva-qwen-2.5-72b | paid\nsao10k/fimbulvetr-11b-v2 | paid\nalpindale/goliath-120b | paid\ngoogle/gemini-flash-1.5 | paid\ngoogle/gemini-flash-1.5-8b | paid\ngoogle/gemini-pro-1.5 | paid\ngoogle/gemini-2.0-flash-001 | paid\ngoogle/gemini-2.0-flash-exp:free | free\ngoogle/gemini-2.0-flash-lite-001 | paid\ngoogle/gemini-2.5-flash | paid\ngoogle/gemini-2.5-flash-lite | paid\ngoogle/gemini-2.5-flash-lite-preview-06-17 | paid\ngoogle/gemini-2.5-pro | paid\ngoogle/gemini-2.5-pro-exp-03-25 | paid\ngoogle/gemini-2.5-pro-preview-05-06 | paid\ngoogle/gemini-2.5-pro-preview | paid\ngoogle/gemma-2-27b-it | paid\ngoogle/gemma-2-9b-it | paid\ngoogle/gemma-2-9b-it:free | free\ngoogle/gemma-3-12b-it | paid\ngoogle/gemma-3-12b-it:free | free\ngoogle/gemma-3-27b-it | paid\ngoogle/gemma-3-27b-it:free | free\ngoogle/gemma-3-4b-it | paid\ngoogle/gemma-3-4b-it:free | free\ngoogle/gemma-3n-e2b-it:free | free\ngoogle/gemma-3n-e4b-it | paid\ngoogle/gemma-3n-e4b-it:free | free\ninception/mercury | paid\ninception/mercury-coder | paid\ninfermatic/mn-inferor-12b | paid\ninflection/inflection-3-pi | paid\ninflection/inflection-3-productivity | paid\nmoonshotai/kimi-dev-72b:free | free\nliquid/lfm-3b | paid\nliquid/lfm-40b | paid\nliquid/lfm-7b | paid\nmeta-llama/llama-guard-3-8b | paid\nanthracite-org/magnum-v2-72b | paid\nanthracite-org/magnum-v4-72b | paid\nmancer/weaver | paid\nmeta-llama/llama-3-70b-instruct | paid\nmeta-llama/llama-3-8b-instruct | paid\nmeta-llama/llama-3.1-405b | paid\nmeta-llama/llama-3.1-405b-instruct | paid\nmeta-llama/llama-3.1-405b-instruct:free | free\nmeta-llama/llama-3.1-70b-instruct | paid\nmeta-llama/llama-3.1-8b-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct:free | free\nmeta-llama/llama-3.2-1b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct:free | free\nmeta-llama/llama-3.2-90b-vision-instruct | paid\nmeta-llama/llama-3.3-70b-instruct | paid\nmeta-llama/llama-3.3-70b-instruct:free | free\nmeta-llama/llama-4-maverick | paid\nmeta-llama/llama-4-scout | paid\nmeta-llama/llama-guard-4-12b | paid\nmeta-llama/llama-guard-2-8b | paid\nmicrosoft/mai-ds-r1 | paid\nmicrosoft/mai-ds-r1:free | free\nmicrosoft/phi-4 | paid\nmicrosoft/phi-4-multimodal-instruct | paid\nmicrosoft/phi-4-reasoning-plus | paid\nmicrosoft/phi-3-medium-128k-instruct | paid\nmicrosoft/phi-3-mini-128k-instruct | paid\nmicrosoft/phi-3.5-mini-128k-instruct | paid\nsophosympatheia/midnight-rose-70b | paid\nminimax/minimax-m1 | paid\nminimax/minimax-01 | paid\nmistralai/mistral-large | paid\nmistralai/mistral-large-2407 | paid\nmistralai/mistral-large-2411 | paid\nnothingiisreal/mn-celeste-12b | paid\nmistralai/mistral-small | paid\nmistralai/mistral-tiny | paid\nmistralai/codestral-2501 | paid\nmistralai/devstral-medium | paid\nmistralai/devstral-small | paid\nmistralai/devstral-small-2505 | paid\nmistralai/devstral-small-2505:free | free\nmistralai/magistral-medium-2506 | paid\nmistralai/magistral-medium-2506:thinking | paid\nmistralai/magistral-small-2506 | paid\nmistralai/ministral-3b | paid\nmistralai/ministral-8b | paid\nmistralai/mistral-7b-instruct | paid\nmistralai/mistral-7b-instruct:free | free\nmistralai/mistral-7b-instruct-v0.1 | paid\nmistralai/mistral-7b-instruct-v0.2 | paid\nmistralai/mistral-7b-instruct-v0.3 | paid\nmistralai/mistral-medium-3 | paid\nmistralai/mistral-nemo | paid\nmistralai/mistral-nemo:free | free\nmistralai/mistral-small-24b-instruct-2501 | paid\nmistralai/mistral-small-24b-instruct-2501:free | free\nmistralai/mistral-small-3.1-24b-instruct | paid\nmistralai/mistral-small-3.1-24b-instruct:free | free\nmistralai/mistral-small-3.2-24b-instruct | paid\nmistralai/mistral-small-3.2-24b-instruct:free | free\nmistralai/mixtral-8x22b-instruct | paid\nmistralai/mixtral-8x7b-instruct | paid\nmistralai/pixtral-12b | paid\nmistralai/pixtral-large-2411 | paid\nmistralai/mistral-saba | paid\nmoonshotai/kimi-vl-a3b-thinking | paid\nmoonshotai/kimi-vl-a3b-thinking:free | free\nmoonshotai/kimi-k2 | paid\nmoonshotai/kimi-k2:free | free\nmorph/morph-v2 | paid\nmorph/morph-v3-fast | paid\nmorph/morph-v3-large | paid\ngryphe/mythomax-l2-13b | paid\nneversleep/llama-3-lumimaid-70b | paid\nneversleep/llama-3.1-lumimaid-8b | paid\nneversleep/noromaid-20b | paid\nnousresearch/deephermes-3-llama-3-8b-preview:free | free\nnousresearch/deephermes-3-mistral-24b-preview | paid\nnousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid\nnousresearch/hermes-3-llama-3.1-405b | paid\nnousresearch/hermes-3-llama-3.1-70b | paid\nnousresearch/hermes-2-pro-llama-3-8b | paid\nnvidia/llama-3.1-nemotron-70b-instruct | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1 | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1:free | free\nnvidia/llama-3.3-nemotron-super-49b-v1 | paid\nopenai/chatgpt-4o-latest | paid\nopenai/codex-mini | paid\nopenai/gpt-3.5-turbo | paid\nopenai/gpt-3.5-turbo-0613 | paid\nopenai/gpt-3.5-turbo-16k | paid\nopenai/gpt-3.5-turbo-instruct | paid\nopenai/gpt-4 | paid\nopenai/gpt-4-0314 | paid\nopenai/gpt-4-turbo | paid\nopenai/gpt-4-1106-preview | paid\nopenai/gpt-4-turbo-preview | paid\nopenai/gpt-4.1 | paid\nopenai/gpt-4.1-mini | paid\nopenai/gpt-4.1-nano | paid\nopenai/gpt-4o | paid\nopenai/gpt-4o-2024-05-13 | paid\nopenai/gpt-4o-2024-08-06 | paid\nopenai/gpt-4o-2024-11-20 | paid\nopenai/gpt-4o:extended | paid\nopenai/gpt-4o-search-preview | paid\nopenai/gpt-4o-mini | paid\nopenai/gpt-4o-mini-2024-07-18 | paid\nopenai/gpt-4o-mini-search-preview | paid\nopenai/o1 | paid\nopenai/o1-mini | paid\nopenai/o1-mini-2024-09-12 | paid\nopenai/o1-preview | paid\nopenai/o1-preview-2024-09-12 | paid\nopenai/o1-pro | paid\nopenai/o3 | paid\nopenai/o3-mini | paid\nopenai/o3-mini-high | paid\nopenai/o3-pro | paid\nopenai/o4-mini | paid\nopenai/o4-mini-high | paid\nopengvlab/internvl3-14b | paid\nperplexity/r1-1776 | paid\nperplexity/sonar | paid\nperplexity/sonar-deep-research | paid\nperplexity/sonar-pro | paid\nperplexity/sonar-reasoning | paid\nperplexity/sonar-reasoning-pro | paid\npygmalionai/mythalion-13b | paid\nfeatherless/qwerky-72b:free | free\nqwen/qwen-2-72b-instruct | paid\nqwen/qwen-vl-max | paid\nqwen/qwen-vl-plus | paid\nqwen/qwen-max | paid\nqwen/qwen-plus | paid\nqwen/qwen-turbo | paid\nqwen/qwen2.5-vl-32b-instruct | paid\nqwen/qwen2.5-vl-32b-instruct:free | free\nqwen/qwen2.5-vl-72b-instruct | paid\nqwen/qwen2.5-vl-72b-instruct:free | free\nqwen/qwen-2.5-vl-7b-instruct | paid\nqwen/qwen3-14b | paid\nqwen/qwen3-14b:free | free\nqwen/qwen3-235b-a22b | paid\nqwen/qwen3-235b-a22b:free | free\nqwen/qwen3-235b-a22b-2507 | paid\nqwen/qwen3-235b-a22b-2507:free | free\nqwen/qwen3-235b-a22b-thinking-2507 | paid\nqwen/qwen3-30b-a3b | paid\nqwen/qwen3-30b-a3b:free | free\nqwen/qwen3-32b | paid\nqwen/qwen3-4b:free | free\nqwen/qwen3-8b | paid\nqwen/qwen3-8b:free | free\nqwen/qwen3-coder | paid\nqwen/qwen3-coder:free | free\nqwen/qwq-32b | paid\nqwen/qwq-32b:free | free\nqwen/qwq-32b-preview | paid\nqwen/qwen-2.5-72b-instruct | paid\nqwen/qwen-2.5-72b-instruct:free | free\nqwen/qwen-2.5-7b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct:free | free\nrekaai/reka-flash-3 | paid\nrekaai/reka-flash-3:free | free\nundi95/remm-slerp-l2-13b | paid\nsao10k/l3-lunaris-8b | paid\nsao10k/l3-euryale-70b | paid\nsao10k/l3.1-euryale-70b | paid\nsao10k/l3.3-euryale-70b | paid\nsarvamai/sarvam-m | paid\nsarvamai/sarvam-m:free | free\nshisa-ai/shisa-v2-llama3.3-70b | paid\nshisa-ai/shisa-v2-llama3.3-70b:free | free\nraifle/sorcererlm-8x22b | paid\nswitchpoint/router | paid\ntencent/hunyuan-a13b-instruct | paid\ntencent/hunyuan-a13b-instruct:free | free\nthedrummer/anubis-70b-v1.1 | paid\nthedrummer/anubis-pro-105b-v1 | paid\nthedrummer/rocinante-12b | paid\nthedrummer/skyfall-36b-v2 | paid\nthedrummer/unslopnemo-12b | paid\nthedrummer/valkyrie-49b-v1 | paid\nthudm/glm-4-32b | paid\nthudm/glm-4-32b:free | free\nthudm/glm-4.1v-9b-thinking | paid\nthudm/glm-z1-32b | paid\nthudm/glm-z1-32b:free | free\ntngtech/deepseek-r1t-chimera:free | free\ntngtech/deepseek-r1t2-chimera | paid\ntngtech/deepseek-r1t2-chimera:free | free\nundi95/toppy-m-7b | paid\nscb10x/llama3.1-typhoon2-70b-instruct | paid\ncognitivecomputations/dolphin-mistral-24b-venice-edition:free | free\nmicrosoft/wizardlm-2-8x22b | paid\nx-ai/grok-2-1212 | paid\nx-ai/grok-2-vision-1212 | paid\nx-ai/grok-3 | paid\nx-ai/grok-3-beta | paid\nx-ai/grok-3-mini | paid\nx-ai/grok-3-mini-beta | paid\nx-ai/grok-4 | paid\nx-ai/grok-vision-beta | paid\nz-ai/glm-4-32b | paid\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenAI models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nbabbage-002\nchatgpt-4o-latest\ncodex-mini-latest\ndall-e-2\ndall-e-3\ndavinci-002\ngpt-3.5-turbo\ngpt-3.5-turbo-0125\ngpt-3.5-turbo-1106\ngpt-3.5-turbo-16k\ngpt-3.5-turbo-instruct\ngpt-3.5-turbo-instruct-0914\ngpt-4\ngpt-4-0125-preview\ngpt-4-0613\ngpt-4-1106-preview\ngpt-4-turbo\ngpt-4-turbo-2024-04-09\ngpt-4-turbo-preview\ngpt-4.1\ngpt-4.1-2025-04-14\ngpt-4.1-mini\ngpt-4.1-mini-2025-04-14\ngpt-4.1-nano\ngpt-4.1-nano-2025-04-14\ngpt-4o\ngpt-4o-2024-05-13\ngpt-4o-2024-08-06\ngpt-4o-2024-11-20\ngpt-4o-audio-preview\ngpt-4o-audio-preview-2024-10-01\ngpt-4o-audio-preview-2024-12-17\ngpt-4o-audio-preview-2025-06-03\ngpt-4o-mini\ngpt-4o-mini-2024-07-18\ngpt-4o-mini-audio-preview\ngpt-4o-mini-audio-preview-2024-12-17\ngpt-4o-mini-realtime-preview\ngpt-4o-mini-realtime-preview-2024-12-17\ngpt-4o-mini-search-preview\ngpt-4o-mini-search-preview-2025-03-11\ngpt-4o-mini-transcribe\ngpt-4o-mini-tts\ngpt-4o-realtime-preview\ngpt-4o-realtime-preview-2024-10-01\ngpt-4o-realtime-preview-2024-12-17\ngpt-4o-realtime-preview-2025-06-03\ngpt-4o-search-preview\ngpt-4o-search-preview-2025-03-11\ngpt-4o-transcribe\ngpt-image-1\no1\no1-2024-12-17\no1-mini\no1-mini-2024-09-12\no1-preview\no1-preview-2024-09-12\no1-pro\no1-pro-2025-03-19\no3-mini\no3-mini-2025-01-31\no4-mini\no4-mini-2025-04-16\no4-mini-deep-research\no4-mini-deep-research-2025-06-26\nomni-moderation-2024-09-26\nomni-moderation-latest\ntext-embedding-3-large\ntext-embedding-3-small\ntext-embedding-ada-002\ntts-1\ntts-1-1106\ntts-1-hd\ntts-1-hd-1106\nwhisper-1\n-----\n\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m Deepseek models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\ndeepseek-chat\ndeepseek-reasoner\n-----\n" + "description": "AI model to use for processing. Available models:\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenRouter models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nagentica-org/deepcoder-14b-preview | paid\nagentica-org/deepcoder-14b-preview:free | free\nai21/jamba-1.6-large | paid\nai21/jamba-1.6-mini | paid\naion-labs/aion-1.0 | paid\naion-labs/aion-1.0-mini | paid\naion-labs/aion-rp-llama-3.1-8b | paid\nalfredpros/codellama-7b-instruct-solidity | paid\namazon/nova-lite-v1 | paid\namazon/nova-micro-v1 | paid\namazon/nova-pro-v1 | paid\nanthropic/claude-3-haiku | paid\nanthropic/claude-3-haiku:beta | paid\nanthropic/claude-3-opus | paid\nanthropic/claude-3-opus:beta | paid\nanthropic/claude-3.5-haiku | paid\nanthropic/claude-3.5-haiku-20241022 | paid\nanthropic/claude-3.5-haiku:beta | paid\nanthropic/claude-3.5-sonnet | paid\nanthropic/claude-3.5-sonnet-20240620 | paid\nanthropic/claude-3.5-sonnet-20240620:beta | paid\nanthropic/claude-3.5-sonnet:beta | paid\nanthropic/claude-3.7-sonnet | paid\nanthropic/claude-3.7-sonnet:beta | paid\nanthropic/claude-3.7-sonnet:thinking | paid\nanthropic/claude-opus-4 | paid\nanthropic/claude-opus-4.1 | paid\nanthropic/claude-sonnet-4 | paid\narcee-ai/coder-large | paid\narcee-ai/maestro-reasoning | paid\narcee-ai/spotlight | paid\narcee-ai/virtuoso-large | paid\narliai/qwq-32b-arliai-rpr-v1 | paid\narliai/qwq-32b-arliai-rpr-v1:free | free\nopenrouter/auto | paid\nbaidu/ernie-4.5-300b-a47b | paid\nbytedance/ui-tars-1.5-7b | paid\ncohere/command | paid\ncohere/command-a | paid\ncohere/command-r | paid\ncohere/command-r-03-2024 | paid\ncohere/command-r-08-2024 | paid\ncohere/command-r-plus | paid\ncohere/command-r-plus-04-2024 | paid\ncohere/command-r-plus-08-2024 | paid\ncohere/command-r7b-12-2024 | paid\ndeepseek/deepseek-prover-v2 | paid\ndeepseek/deepseek-r1-0528-qwen3-8b | paid\ndeepseek/deepseek-r1-0528-qwen3-8b:free | free\ndeepseek/deepseek-chat | paid\ndeepseek/deepseek-chat-v3-0324 | paid\ndeepseek/deepseek-chat-v3-0324:free | free\ndeepseek/deepseek-v3-base | paid\ndeepseek/deepseek-r1 | paid\ndeepseek/deepseek-r1:free | free\ndeepseek/deepseek-r1-0528 | paid\ndeepseek/deepseek-r1-0528:free | free\ndeepseek/deepseek-r1-distill-llama-70b | paid\ndeepseek/deepseek-r1-distill-llama-70b:free | free\ndeepseek/deepseek-r1-distill-llama-8b | paid\ndeepseek/deepseek-r1-distill-qwen-1.5b | paid\ndeepseek/deepseek-r1-distill-qwen-14b | paid\ndeepseek/deepseek-r1-distill-qwen-14b:free | free\ndeepseek/deepseek-r1-distill-qwen-32b | paid\ndeepseek/deepseek-r1-distill-qwen-7b | paid\ncognitivecomputations/dolphin-mixtral-8x22b | paid\ncognitivecomputations/dolphin3.0-mistral-24b | paid\ncognitivecomputations/dolphin3.0-mistral-24b:free | free\ncognitivecomputations/dolphin3.0-r1-mistral-24b | paid\ncognitivecomputations/dolphin3.0-r1-mistral-24b:free | free\neleutherai/llemma_7b | paid\nsao10k/fimbulvetr-11b-v2 | paid\nalpindale/goliath-120b | paid\ngoogle/gemini-flash-1.5 | paid\ngoogle/gemini-flash-1.5-8b | paid\ngoogle/gemini-pro-1.5 | paid\ngoogle/gemini-2.0-flash-001 | paid\ngoogle/gemini-2.0-flash-exp:free | free\ngoogle/gemini-2.0-flash-lite-001 | paid\ngoogle/gemini-2.5-flash | paid\ngoogle/gemini-2.5-flash-lite | paid\ngoogle/gemini-2.5-flash-lite-preview-06-17 | paid\ngoogle/gemini-2.5-pro | paid\ngoogle/gemini-2.5-pro-exp-03-25 | paid\ngoogle/gemini-2.5-pro-preview-05-06 | paid\ngoogle/gemini-2.5-pro-preview | paid\ngoogle/gemma-2-27b-it | paid\ngoogle/gemma-2-9b-it | paid\ngoogle/gemma-2-9b-it:free | free\ngoogle/gemma-3-12b-it | paid\ngoogle/gemma-3-12b-it:free | free\ngoogle/gemma-3-27b-it | paid\ngoogle/gemma-3-27b-it:free | free\ngoogle/gemma-3-4b-it | paid\ngoogle/gemma-3-4b-it:free | free\ngoogle/gemma-3n-e2b-it:free | free\ngoogle/gemma-3n-e4b-it | paid\ngoogle/gemma-3n-e4b-it:free | free\nopenrouter/horizon-beta | paid\ninception/mercury | paid\ninception/mercury-coder | paid\ninfermatic/mn-inferor-12b | paid\ninflection/inflection-3-pi | paid\ninflection/inflection-3-productivity | paid\nmoonshotai/kimi-dev-72b:free | free\nliquid/lfm-3b | paid\nliquid/lfm-40b | paid\nliquid/lfm-7b | paid\nmeta-llama/llama-guard-3-8b | paid\nanthracite-org/magnum-v2-72b | paid\nanthracite-org/magnum-v4-72b | paid\nmancer/weaver | paid\nmeta-llama/llama-3-70b-instruct | paid\nmeta-llama/llama-3-8b-instruct | paid\nmeta-llama/llama-3.1-405b | paid\nmeta-llama/llama-3.1-405b-instruct | paid\nmeta-llama/llama-3.1-405b-instruct:free | free\nmeta-llama/llama-3.1-70b-instruct | paid\nmeta-llama/llama-3.1-8b-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct:free | free\nmeta-llama/llama-3.2-1b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct:free | free\nmeta-llama/llama-3.2-90b-vision-instruct | paid\nmeta-llama/llama-3.3-70b-instruct | paid\nmeta-llama/llama-3.3-70b-instruct:free | free\nmeta-llama/llama-4-maverick | paid\nmeta-llama/llama-4-scout | paid\nmeta-llama/llama-guard-4-12b | paid\nmeta-llama/llama-guard-2-8b | paid\nmicrosoft/mai-ds-r1 | paid\nmicrosoft/mai-ds-r1:free | free\nmicrosoft/phi-4 | paid\nmicrosoft/phi-4-multimodal-instruct | paid\nmicrosoft/phi-4-reasoning-plus | paid\nmicrosoft/phi-3-medium-128k-instruct | paid\nmicrosoft/phi-3-mini-128k-instruct | paid\nmicrosoft/phi-3.5-mini-128k-instruct | paid\nsophosympatheia/midnight-rose-70b | paid\nminimax/minimax-m1 | paid\nminimax/minimax-01 | paid\nmistralai/mistral-large | paid\nmistralai/mistral-large-2407 | paid\nmistralai/mistral-large-2411 | paid\nmistralai/mistral-small | paid\nmistralai/mistral-tiny | paid\nmistralai/codestral-2501 | paid\nmistralai/codestral-2508 | paid\nmistralai/devstral-medium | paid\nmistralai/devstral-small | paid\nmistralai/devstral-small-2505 | paid\nmistralai/devstral-small-2505:free | free\nmistralai/magistral-medium-2506 | paid\nmistralai/magistral-medium-2506:thinking | paid\nmistralai/magistral-small-2506 | paid\nmistralai/ministral-3b | paid\nmistralai/ministral-8b | paid\nmistralai/mistral-7b-instruct | paid\nmistralai/mistral-7b-instruct:free | free\nmistralai/mistral-7b-instruct-v0.1 | paid\nmistralai/mistral-7b-instruct-v0.2 | paid\nmistralai/mistral-7b-instruct-v0.3 | paid\nmistralai/mistral-medium-3 | paid\nmistralai/mistral-nemo | paid\nmistralai/mistral-nemo:free | free\nmistralai/mistral-small-24b-instruct-2501 | paid\nmistralai/mistral-small-24b-instruct-2501:free | free\nmistralai/mistral-small-3.1-24b-instruct | paid\nmistralai/mistral-small-3.1-24b-instruct:free | free\nmistralai/mistral-small-3.2-24b-instruct | paid\nmistralai/mistral-small-3.2-24b-instruct:free | free\nmistralai/mixtral-8x22b-instruct | paid\nmistralai/mixtral-8x7b-instruct | paid\nmistralai/pixtral-12b | paid\nmistralai/pixtral-large-2411 | paid\nmistralai/mistral-saba | paid\nmoonshotai/kimi-vl-a3b-thinking | paid\nmoonshotai/kimi-vl-a3b-thinking:free | free\nmoonshotai/kimi-k2 | paid\nmoonshotai/kimi-k2:free | free\nmorph/morph-v3-fast | paid\nmorph/morph-v3-large | paid\ngryphe/mythomax-l2-13b | paid\nneversleep/llama-3-lumimaid-70b | paid\nneversleep/llama-3.1-lumimaid-8b | paid\nneversleep/noromaid-20b | paid\nnousresearch/deephermes-3-llama-3-8b-preview:free | free\nnousresearch/deephermes-3-mistral-24b-preview | paid\nnousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid\nnousresearch/hermes-3-llama-3.1-405b | paid\nnousresearch/hermes-3-llama-3.1-70b | paid\nnousresearch/hermes-2-pro-llama-3-8b | paid\nnvidia/llama-3.1-nemotron-70b-instruct | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1 | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1:free | free\nnvidia/llama-3.3-nemotron-super-49b-v1 | paid\nopenai/chatgpt-4o-latest | paid\nopenai/codex-mini | paid\nopenai/gpt-oss-120b | paid\nopenai/gpt-oss-20b | paid\nopenai/gpt-3.5-turbo | paid\nopenai/gpt-3.5-turbo-0613 | paid\nopenai/gpt-3.5-turbo-16k | paid\nopenai/gpt-3.5-turbo-instruct | paid\nopenai/gpt-4 | paid\nopenai/gpt-4-0314 | paid\nopenai/gpt-4-turbo | paid\nopenai/gpt-4-1106-preview | paid\nopenai/gpt-4-turbo-preview | paid\nopenai/gpt-4.1 | paid\nopenai/gpt-4.1-mini | paid\nopenai/gpt-4.1-nano | paid\nopenai/gpt-4o | paid\nopenai/gpt-4o-2024-05-13 | paid\nopenai/gpt-4o-2024-08-06 | paid\nopenai/gpt-4o-2024-11-20 | paid\nopenai/gpt-4o:extended | paid\nopenai/gpt-4o-search-preview | paid\nopenai/gpt-4o-mini | paid\nopenai/gpt-4o-mini-2024-07-18 | paid\nopenai/gpt-4o-mini-search-preview | paid\nopenai/o1 | paid\nopenai/o1-mini | paid\nopenai/o1-mini-2024-09-12 | paid\nopenai/o1-pro | paid\nopenai/o3 | paid\nopenai/o3-mini | paid\nopenai/o3-mini-high | paid\nopenai/o3-pro | paid\nopenai/o4-mini | paid\nopenai/o4-mini-high | paid\nopengvlab/internvl3-14b | paid\nperplexity/r1-1776 | paid\nperplexity/sonar | paid\nperplexity/sonar-deep-research | paid\nperplexity/sonar-pro | paid\nperplexity/sonar-reasoning | paid\nperplexity/sonar-reasoning-pro | paid\npygmalionai/mythalion-13b | paid\nfeatherless/qwerky-72b:free | free\nqwen/qwen-2-72b-instruct | paid\nqwen/qwen-vl-max | paid\nqwen/qwen-vl-plus | paid\nqwen/qwen-max | paid\nqwen/qwen-plus | paid\nqwen/qwen-turbo | paid\nqwen/qwen2.5-vl-32b-instruct | paid\nqwen/qwen2.5-vl-32b-instruct:free | free\nqwen/qwen2.5-vl-72b-instruct | paid\nqwen/qwen2.5-vl-72b-instruct:free | free\nqwen/qwen-2.5-vl-7b-instruct | paid\nqwen/qwen3-14b | paid\nqwen/qwen3-14b:free | free\nqwen/qwen3-235b-a22b | paid\nqwen/qwen3-235b-a22b:free | free\nqwen/qwen3-235b-a22b-2507 | paid\nqwen/qwen3-235b-a22b-thinking-2507 | paid\nqwen/qwen3-30b-a3b | paid\nqwen/qwen3-30b-a3b:free | free\nqwen/qwen3-30b-a3b-instruct-2507 | paid\nqwen/qwen3-32b | paid\nqwen/qwen3-4b:free | free\nqwen/qwen3-8b | paid\nqwen/qwen3-8b:free | free\nqwen/qwen3-coder | paid\nqwen/qwq-32b | paid\nqwen/qwq-32b:free | free\nqwen/qwq-32b-preview | paid\nqwen/qwen-2.5-72b-instruct | paid\nqwen/qwen-2.5-72b-instruct:free | free\nqwen/qwen-2.5-7b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct:free | free\nrekaai/reka-flash-3:free | free\nundi95/remm-slerp-l2-13b | paid\nsao10k/l3-lunaris-8b | paid\nsao10k/l3-euryale-70b | paid\nsao10k/l3.1-euryale-70b | paid\nsao10k/l3.3-euryale-70b | paid\nsarvamai/sarvam-m:free | free\nshisa-ai/shisa-v2-llama3.3-70b | paid\nshisa-ai/shisa-v2-llama3.3-70b:free | free\nraifle/sorcererlm-8x22b | paid\nswitchpoint/router | paid\ntencent/hunyuan-a13b-instruct | paid\ntencent/hunyuan-a13b-instruct:free | free\nthedrummer/anubis-70b-v1.1 | paid\nthedrummer/anubis-pro-105b-v1 | paid\nthedrummer/rocinante-12b | paid\nthedrummer/skyfall-36b-v2 | paid\nthedrummer/unslopnemo-12b | paid\nthedrummer/valkyrie-49b-v1 | paid\nthudm/glm-4-32b | paid\nthudm/glm-4.1v-9b-thinking | paid\nthudm/glm-z1-32b:free | free\ntngtech/deepseek-r1t-chimera | paid\ntngtech/deepseek-r1t-chimera:free | free\ntngtech/deepseek-r1t2-chimera:free | free\nundi95/toppy-m-7b | paid\nscb10x/llama3.1-typhoon2-70b-instruct | paid\ncognitivecomputations/dolphin-mistral-24b-venice-edition:free | free\nmicrosoft/wizardlm-2-8x22b | paid\nx-ai/grok-2-1212 | paid\nx-ai/grok-2-vision-1212 | paid\nx-ai/grok-3 | paid\nx-ai/grok-3-beta | paid\nx-ai/grok-3-mini | paid\nx-ai/grok-3-mini-beta | paid\nx-ai/grok-4 | paid\nx-ai/grok-vision-beta | paid\nz-ai/glm-4-32b | paid\nz-ai/glm-4.5 | paid\nz-ai/glm-4.5-air | paid\nz-ai/glm-4.5-air:free | free\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenAI models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nbabbage-002\nchatgpt-4o-latest\ncodex-mini-latest\ndall-e-2\ndall-e-3\ndavinci-002\ngpt-3.5-turbo\ngpt-3.5-turbo-0125\ngpt-3.5-turbo-1106\ngpt-3.5-turbo-16k\ngpt-3.5-turbo-instruct\ngpt-3.5-turbo-instruct-0914\ngpt-4\ngpt-4-0125-preview\ngpt-4-0613\ngpt-4-1106-preview\ngpt-4-turbo\ngpt-4-turbo-2024-04-09\ngpt-4-turbo-preview\ngpt-4.1\ngpt-4.1-2025-04-14\ngpt-4.1-mini\ngpt-4.1-mini-2025-04-14\ngpt-4.1-nano\ngpt-4.1-nano-2025-04-14\ngpt-4o\ngpt-4o-2024-05-13\ngpt-4o-2024-08-06\ngpt-4o-2024-11-20\ngpt-4o-audio-preview\ngpt-4o-audio-preview-2024-10-01\ngpt-4o-audio-preview-2024-12-17\ngpt-4o-audio-preview-2025-06-03\ngpt-4o-mini\ngpt-4o-mini-2024-07-18\ngpt-4o-mini-audio-preview\ngpt-4o-mini-audio-preview-2024-12-17\ngpt-4o-mini-realtime-preview\ngpt-4o-mini-realtime-preview-2024-12-17\ngpt-4o-mini-search-preview\ngpt-4o-mini-search-preview-2025-03-11\ngpt-4o-mini-transcribe\ngpt-4o-mini-tts\ngpt-4o-realtime-preview\ngpt-4o-realtime-preview-2024-10-01\ngpt-4o-realtime-preview-2024-12-17\ngpt-4o-realtime-preview-2025-06-03\ngpt-4o-search-preview\ngpt-4o-search-preview-2025-03-11\ngpt-4o-transcribe\ngpt-image-1\no1\no1-2024-12-17\no1-mini\no1-mini-2024-09-12\no1-pro\no1-pro-2025-03-19\no3-mini\no3-mini-2025-01-31\no4-mini\no4-mini-2025-04-16\no4-mini-deep-research\no4-mini-deep-research-2025-06-26\nomni-moderation-2024-09-26\nomni-moderation-latest\ntext-embedding-3-large\ntext-embedding-3-small\ntext-embedding-ada-002\ntts-1\ntts-1-1106\ntts-1-hd\ntts-1-hd-1106\nwhisper-1\n-----\n\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m Deepseek models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\ndeepseek-chat\ndeepseek-reasoner\n-----\n" }, "router": { "type": "string", diff --git a/packages/kbot/schema_ui.json b/packages/kbot/schema_ui.json index 25f9512c..6f714873 100644 --- a/packages/kbot/schema_ui.json +++ b/packages/kbot/schema_ui.json @@ -79,7 +79,7 @@ "ui:title": "Api_key" }, "model": { - "ui:description": "AI model to use for processing. Available models:\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenRouter models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n01-ai/yi-large | paid\nagentica-org/deepcoder-14b-preview | paid\nagentica-org/deepcoder-14b-preview:free | free\nai21/jamba-1.6-large | paid\nai21/jamba-1.6-mini | paid\naion-labs/aion-1.0 | paid\naion-labs/aion-1.0-mini | paid\naion-labs/aion-rp-llama-3.1-8b | paid\nalfredpros/codellama-7b-instruct-solidity | paid\namazon/nova-lite-v1 | paid\namazon/nova-micro-v1 | paid\namazon/nova-pro-v1 | paid\nanthropic/claude-3-haiku | paid\nanthropic/claude-3-haiku:beta | paid\nanthropic/claude-3-opus | paid\nanthropic/claude-3-opus:beta | paid\nanthropic/claude-3-sonnet | paid\nanthropic/claude-3.5-haiku | paid\nanthropic/claude-3.5-haiku-20241022 | paid\nanthropic/claude-3.5-haiku-20241022:beta | paid\nanthropic/claude-3.5-haiku:beta | paid\nanthropic/claude-3.5-sonnet | paid\nanthropic/claude-3.5-sonnet-20240620 | paid\nanthropic/claude-3.5-sonnet-20240620:beta | paid\nanthropic/claude-3.5-sonnet:beta | paid\nanthropic/claude-3.7-sonnet | paid\nanthropic/claude-3.7-sonnet:beta | paid\nanthropic/claude-3.7-sonnet:thinking | paid\nanthropic/claude-opus-4 | paid\nanthropic/claude-sonnet-4 | paid\narcee-ai/coder-large | paid\narcee-ai/maestro-reasoning | paid\narcee-ai/spotlight | paid\narcee-ai/virtuoso-large | paid\narliai/qwq-32b-arliai-rpr-v1 | paid\narliai/qwq-32b-arliai-rpr-v1:free | free\nopenrouter/auto | paid\nbaidu/ernie-4.5-300b-a47b | paid\nbytedance/ui-tars-1.5-7b | paid\ncohere/command | paid\ncohere/command-a | paid\ncohere/command-r | paid\ncohere/command-r-03-2024 | paid\ncohere/command-r-08-2024 | paid\ncohere/command-r-plus | paid\ncohere/command-r-plus-04-2024 | paid\ncohere/command-r-plus-08-2024 | paid\ncohere/command-r7b-12-2024 | paid\ndeepseek/deepseek-prover-v2 | paid\ndeepseek/deepseek-r1-0528-qwen3-8b | paid\ndeepseek/deepseek-r1-0528-qwen3-8b:free | free\ndeepseek/deepseek-chat | paid\ndeepseek/deepseek-chat-v3-0324 | paid\ndeepseek/deepseek-chat-v3-0324:free | free\ndeepseek/deepseek-v3-base | paid\ndeepseek/deepseek-r1 | paid\ndeepseek/deepseek-r1:free | free\ndeepseek/deepseek-r1-0528 | paid\ndeepseek/deepseek-r1-0528:free | free\ndeepseek/deepseek-r1-distill-llama-70b | paid\ndeepseek/deepseek-r1-distill-llama-70b:free | free\ndeepseek/deepseek-r1-distill-llama-8b | paid\ndeepseek/deepseek-r1-distill-qwen-1.5b | paid\ndeepseek/deepseek-r1-distill-qwen-14b | paid\ndeepseek/deepseek-r1-distill-qwen-14b:free | free\ndeepseek/deepseek-r1-distill-qwen-32b | paid\ndeepseek/deepseek-r1-distill-qwen-7b | paid\ncognitivecomputations/dolphin-mixtral-8x22b | paid\ncognitivecomputations/dolphin3.0-mistral-24b:free | free\ncognitivecomputations/dolphin3.0-r1-mistral-24b | paid\ncognitivecomputations/dolphin3.0-r1-mistral-24b:free | free\neleutherai/llemma_7b | paid\neva-unit-01/eva-qwen-2.5-72b | paid\nsao10k/fimbulvetr-11b-v2 | paid\nalpindale/goliath-120b | paid\ngoogle/gemini-flash-1.5 | paid\ngoogle/gemini-flash-1.5-8b | paid\ngoogle/gemini-pro-1.5 | paid\ngoogle/gemini-2.0-flash-001 | paid\ngoogle/gemini-2.0-flash-exp:free | free\ngoogle/gemini-2.0-flash-lite-001 | paid\ngoogle/gemini-2.5-flash | paid\ngoogle/gemini-2.5-flash-lite | paid\ngoogle/gemini-2.5-flash-lite-preview-06-17 | paid\ngoogle/gemini-2.5-pro | paid\ngoogle/gemini-2.5-pro-exp-03-25 | paid\ngoogle/gemini-2.5-pro-preview-05-06 | paid\ngoogle/gemini-2.5-pro-preview | paid\ngoogle/gemma-2-27b-it | paid\ngoogle/gemma-2-9b-it | paid\ngoogle/gemma-2-9b-it:free | free\ngoogle/gemma-3-12b-it | paid\ngoogle/gemma-3-12b-it:free | free\ngoogle/gemma-3-27b-it | paid\ngoogle/gemma-3-27b-it:free | free\ngoogle/gemma-3-4b-it | paid\ngoogle/gemma-3-4b-it:free | free\ngoogle/gemma-3n-e2b-it:free | free\ngoogle/gemma-3n-e4b-it | paid\ngoogle/gemma-3n-e4b-it:free | free\ninception/mercury | paid\ninception/mercury-coder | paid\ninfermatic/mn-inferor-12b | paid\ninflection/inflection-3-pi | paid\ninflection/inflection-3-productivity | paid\nmoonshotai/kimi-dev-72b:free | free\nliquid/lfm-3b | paid\nliquid/lfm-40b | paid\nliquid/lfm-7b | paid\nmeta-llama/llama-guard-3-8b | paid\nanthracite-org/magnum-v2-72b | paid\nanthracite-org/magnum-v4-72b | paid\nmancer/weaver | paid\nmeta-llama/llama-3-70b-instruct | paid\nmeta-llama/llama-3-8b-instruct | paid\nmeta-llama/llama-3.1-405b | paid\nmeta-llama/llama-3.1-405b-instruct | paid\nmeta-llama/llama-3.1-405b-instruct:free | free\nmeta-llama/llama-3.1-70b-instruct | paid\nmeta-llama/llama-3.1-8b-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct:free | free\nmeta-llama/llama-3.2-1b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct:free | free\nmeta-llama/llama-3.2-90b-vision-instruct | paid\nmeta-llama/llama-3.3-70b-instruct | paid\nmeta-llama/llama-3.3-70b-instruct:free | free\nmeta-llama/llama-4-maverick | paid\nmeta-llama/llama-4-scout | paid\nmeta-llama/llama-guard-4-12b | paid\nmeta-llama/llama-guard-2-8b | paid\nmicrosoft/mai-ds-r1 | paid\nmicrosoft/mai-ds-r1:free | free\nmicrosoft/phi-4 | paid\nmicrosoft/phi-4-multimodal-instruct | paid\nmicrosoft/phi-4-reasoning-plus | paid\nmicrosoft/phi-3-medium-128k-instruct | paid\nmicrosoft/phi-3-mini-128k-instruct | paid\nmicrosoft/phi-3.5-mini-128k-instruct | paid\nsophosympatheia/midnight-rose-70b | paid\nminimax/minimax-m1 | paid\nminimax/minimax-01 | paid\nmistralai/mistral-large | paid\nmistralai/mistral-large-2407 | paid\nmistralai/mistral-large-2411 | paid\nnothingiisreal/mn-celeste-12b | paid\nmistralai/mistral-small | paid\nmistralai/mistral-tiny | paid\nmistralai/codestral-2501 | paid\nmistralai/devstral-medium | paid\nmistralai/devstral-small | paid\nmistralai/devstral-small-2505 | paid\nmistralai/devstral-small-2505:free | free\nmistralai/magistral-medium-2506 | paid\nmistralai/magistral-medium-2506:thinking | paid\nmistralai/magistral-small-2506 | paid\nmistralai/ministral-3b | paid\nmistralai/ministral-8b | paid\nmistralai/mistral-7b-instruct | paid\nmistralai/mistral-7b-instruct:free | free\nmistralai/mistral-7b-instruct-v0.1 | paid\nmistralai/mistral-7b-instruct-v0.2 | paid\nmistralai/mistral-7b-instruct-v0.3 | paid\nmistralai/mistral-medium-3 | paid\nmistralai/mistral-nemo | paid\nmistralai/mistral-nemo:free | free\nmistralai/mistral-small-24b-instruct-2501 | paid\nmistralai/mistral-small-24b-instruct-2501:free | free\nmistralai/mistral-small-3.1-24b-instruct | paid\nmistralai/mistral-small-3.1-24b-instruct:free | free\nmistralai/mistral-small-3.2-24b-instruct | paid\nmistralai/mistral-small-3.2-24b-instruct:free | free\nmistralai/mixtral-8x22b-instruct | paid\nmistralai/mixtral-8x7b-instruct | paid\nmistralai/pixtral-12b | paid\nmistralai/pixtral-large-2411 | paid\nmistralai/mistral-saba | paid\nmoonshotai/kimi-vl-a3b-thinking | paid\nmoonshotai/kimi-vl-a3b-thinking:free | free\nmoonshotai/kimi-k2 | paid\nmoonshotai/kimi-k2:free | free\nmorph/morph-v2 | paid\nmorph/morph-v3-fast | paid\nmorph/morph-v3-large | paid\ngryphe/mythomax-l2-13b | paid\nneversleep/llama-3-lumimaid-70b | paid\nneversleep/llama-3.1-lumimaid-8b | paid\nneversleep/noromaid-20b | paid\nnousresearch/deephermes-3-llama-3-8b-preview:free | free\nnousresearch/deephermes-3-mistral-24b-preview | paid\nnousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid\nnousresearch/hermes-3-llama-3.1-405b | paid\nnousresearch/hermes-3-llama-3.1-70b | paid\nnousresearch/hermes-2-pro-llama-3-8b | paid\nnvidia/llama-3.1-nemotron-70b-instruct | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1 | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1:free | free\nnvidia/llama-3.3-nemotron-super-49b-v1 | paid\nopenai/chatgpt-4o-latest | paid\nopenai/codex-mini | paid\nopenai/gpt-3.5-turbo | paid\nopenai/gpt-3.5-turbo-0613 | paid\nopenai/gpt-3.5-turbo-16k | paid\nopenai/gpt-3.5-turbo-instruct | paid\nopenai/gpt-4 | paid\nopenai/gpt-4-0314 | paid\nopenai/gpt-4-turbo | paid\nopenai/gpt-4-1106-preview | paid\nopenai/gpt-4-turbo-preview | paid\nopenai/gpt-4.1 | paid\nopenai/gpt-4.1-mini | paid\nopenai/gpt-4.1-nano | paid\nopenai/gpt-4o | paid\nopenai/gpt-4o-2024-05-13 | paid\nopenai/gpt-4o-2024-08-06 | paid\nopenai/gpt-4o-2024-11-20 | paid\nopenai/gpt-4o:extended | paid\nopenai/gpt-4o-search-preview | paid\nopenai/gpt-4o-mini | paid\nopenai/gpt-4o-mini-2024-07-18 | paid\nopenai/gpt-4o-mini-search-preview | paid\nopenai/o1 | paid\nopenai/o1-mini | paid\nopenai/o1-mini-2024-09-12 | paid\nopenai/o1-preview | paid\nopenai/o1-preview-2024-09-12 | paid\nopenai/o1-pro | paid\nopenai/o3 | paid\nopenai/o3-mini | paid\nopenai/o3-mini-high | paid\nopenai/o3-pro | paid\nopenai/o4-mini | paid\nopenai/o4-mini-high | paid\nopengvlab/internvl3-14b | paid\nperplexity/r1-1776 | paid\nperplexity/sonar | paid\nperplexity/sonar-deep-research | paid\nperplexity/sonar-pro | paid\nperplexity/sonar-reasoning | paid\nperplexity/sonar-reasoning-pro | paid\npygmalionai/mythalion-13b | paid\nfeatherless/qwerky-72b:free | free\nqwen/qwen-2-72b-instruct | paid\nqwen/qwen-vl-max | paid\nqwen/qwen-vl-plus | paid\nqwen/qwen-max | paid\nqwen/qwen-plus | paid\nqwen/qwen-turbo | paid\nqwen/qwen2.5-vl-32b-instruct | paid\nqwen/qwen2.5-vl-32b-instruct:free | free\nqwen/qwen2.5-vl-72b-instruct | paid\nqwen/qwen2.5-vl-72b-instruct:free | free\nqwen/qwen-2.5-vl-7b-instruct | paid\nqwen/qwen3-14b | paid\nqwen/qwen3-14b:free | free\nqwen/qwen3-235b-a22b | paid\nqwen/qwen3-235b-a22b:free | free\nqwen/qwen3-235b-a22b-2507 | paid\nqwen/qwen3-235b-a22b-2507:free | free\nqwen/qwen3-235b-a22b-thinking-2507 | paid\nqwen/qwen3-30b-a3b | paid\nqwen/qwen3-30b-a3b:free | free\nqwen/qwen3-32b | paid\nqwen/qwen3-4b:free | free\nqwen/qwen3-8b | paid\nqwen/qwen3-8b:free | free\nqwen/qwen3-coder | paid\nqwen/qwen3-coder:free | free\nqwen/qwq-32b | paid\nqwen/qwq-32b:free | free\nqwen/qwq-32b-preview | paid\nqwen/qwen-2.5-72b-instruct | paid\nqwen/qwen-2.5-72b-instruct:free | free\nqwen/qwen-2.5-7b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct:free | free\nrekaai/reka-flash-3 | paid\nrekaai/reka-flash-3:free | free\nundi95/remm-slerp-l2-13b | paid\nsao10k/l3-lunaris-8b | paid\nsao10k/l3-euryale-70b | paid\nsao10k/l3.1-euryale-70b | paid\nsao10k/l3.3-euryale-70b | paid\nsarvamai/sarvam-m | paid\nsarvamai/sarvam-m:free | free\nshisa-ai/shisa-v2-llama3.3-70b | paid\nshisa-ai/shisa-v2-llama3.3-70b:free | free\nraifle/sorcererlm-8x22b | paid\nswitchpoint/router | paid\ntencent/hunyuan-a13b-instruct | paid\ntencent/hunyuan-a13b-instruct:free | free\nthedrummer/anubis-70b-v1.1 | paid\nthedrummer/anubis-pro-105b-v1 | paid\nthedrummer/rocinante-12b | paid\nthedrummer/skyfall-36b-v2 | paid\nthedrummer/unslopnemo-12b | paid\nthedrummer/valkyrie-49b-v1 | paid\nthudm/glm-4-32b | paid\nthudm/glm-4-32b:free | free\nthudm/glm-4.1v-9b-thinking | paid\nthudm/glm-z1-32b | paid\nthudm/glm-z1-32b:free | free\ntngtech/deepseek-r1t-chimera:free | free\ntngtech/deepseek-r1t2-chimera | paid\ntngtech/deepseek-r1t2-chimera:free | free\nundi95/toppy-m-7b | paid\nscb10x/llama3.1-typhoon2-70b-instruct | paid\ncognitivecomputations/dolphin-mistral-24b-venice-edition:free | free\nmicrosoft/wizardlm-2-8x22b | paid\nx-ai/grok-2-1212 | paid\nx-ai/grok-2-vision-1212 | paid\nx-ai/grok-3 | paid\nx-ai/grok-3-beta | paid\nx-ai/grok-3-mini | paid\nx-ai/grok-3-mini-beta | paid\nx-ai/grok-4 | paid\nx-ai/grok-vision-beta | paid\nz-ai/glm-4-32b | paid\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenAI models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nbabbage-002\nchatgpt-4o-latest\ncodex-mini-latest\ndall-e-2\ndall-e-3\ndavinci-002\ngpt-3.5-turbo\ngpt-3.5-turbo-0125\ngpt-3.5-turbo-1106\ngpt-3.5-turbo-16k\ngpt-3.5-turbo-instruct\ngpt-3.5-turbo-instruct-0914\ngpt-4\ngpt-4-0125-preview\ngpt-4-0613\ngpt-4-1106-preview\ngpt-4-turbo\ngpt-4-turbo-2024-04-09\ngpt-4-turbo-preview\ngpt-4.1\ngpt-4.1-2025-04-14\ngpt-4.1-mini\ngpt-4.1-mini-2025-04-14\ngpt-4.1-nano\ngpt-4.1-nano-2025-04-14\ngpt-4o\ngpt-4o-2024-05-13\ngpt-4o-2024-08-06\ngpt-4o-2024-11-20\ngpt-4o-audio-preview\ngpt-4o-audio-preview-2024-10-01\ngpt-4o-audio-preview-2024-12-17\ngpt-4o-audio-preview-2025-06-03\ngpt-4o-mini\ngpt-4o-mini-2024-07-18\ngpt-4o-mini-audio-preview\ngpt-4o-mini-audio-preview-2024-12-17\ngpt-4o-mini-realtime-preview\ngpt-4o-mini-realtime-preview-2024-12-17\ngpt-4o-mini-search-preview\ngpt-4o-mini-search-preview-2025-03-11\ngpt-4o-mini-transcribe\ngpt-4o-mini-tts\ngpt-4o-realtime-preview\ngpt-4o-realtime-preview-2024-10-01\ngpt-4o-realtime-preview-2024-12-17\ngpt-4o-realtime-preview-2025-06-03\ngpt-4o-search-preview\ngpt-4o-search-preview-2025-03-11\ngpt-4o-transcribe\ngpt-image-1\no1\no1-2024-12-17\no1-mini\no1-mini-2024-09-12\no1-preview\no1-preview-2024-09-12\no1-pro\no1-pro-2025-03-19\no3-mini\no3-mini-2025-01-31\no4-mini\no4-mini-2025-04-16\no4-mini-deep-research\no4-mini-deep-research-2025-06-26\nomni-moderation-2024-09-26\nomni-moderation-latest\ntext-embedding-3-large\ntext-embedding-3-small\ntext-embedding-ada-002\ntts-1\ntts-1-1106\ntts-1-hd\ntts-1-hd-1106\nwhisper-1\n-----\n\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m Deepseek models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\ndeepseek-chat\ndeepseek-reasoner\n-----\n", + "ui:description": "AI model to use for processing. Available models:\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenRouter models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nagentica-org/deepcoder-14b-preview | paid\nagentica-org/deepcoder-14b-preview:free | free\nai21/jamba-1.6-large | paid\nai21/jamba-1.6-mini | paid\naion-labs/aion-1.0 | paid\naion-labs/aion-1.0-mini | paid\naion-labs/aion-rp-llama-3.1-8b | paid\nalfredpros/codellama-7b-instruct-solidity | paid\namazon/nova-lite-v1 | paid\namazon/nova-micro-v1 | paid\namazon/nova-pro-v1 | paid\nanthropic/claude-3-haiku | paid\nanthropic/claude-3-haiku:beta | paid\nanthropic/claude-3-opus | paid\nanthropic/claude-3-opus:beta | paid\nanthropic/claude-3.5-haiku | paid\nanthropic/claude-3.5-haiku-20241022 | paid\nanthropic/claude-3.5-haiku:beta | paid\nanthropic/claude-3.5-sonnet | paid\nanthropic/claude-3.5-sonnet-20240620 | paid\nanthropic/claude-3.5-sonnet-20240620:beta | paid\nanthropic/claude-3.5-sonnet:beta | paid\nanthropic/claude-3.7-sonnet | paid\nanthropic/claude-3.7-sonnet:beta | paid\nanthropic/claude-3.7-sonnet:thinking | paid\nanthropic/claude-opus-4 | paid\nanthropic/claude-opus-4.1 | paid\nanthropic/claude-sonnet-4 | paid\narcee-ai/coder-large | paid\narcee-ai/maestro-reasoning | paid\narcee-ai/spotlight | paid\narcee-ai/virtuoso-large | paid\narliai/qwq-32b-arliai-rpr-v1 | paid\narliai/qwq-32b-arliai-rpr-v1:free | free\nopenrouter/auto | paid\nbaidu/ernie-4.5-300b-a47b | paid\nbytedance/ui-tars-1.5-7b | paid\ncohere/command | paid\ncohere/command-a | paid\ncohere/command-r | paid\ncohere/command-r-03-2024 | paid\ncohere/command-r-08-2024 | paid\ncohere/command-r-plus | paid\ncohere/command-r-plus-04-2024 | paid\ncohere/command-r-plus-08-2024 | paid\ncohere/command-r7b-12-2024 | paid\ndeepseek/deepseek-prover-v2 | paid\ndeepseek/deepseek-r1-0528-qwen3-8b | paid\ndeepseek/deepseek-r1-0528-qwen3-8b:free | free\ndeepseek/deepseek-chat | paid\ndeepseek/deepseek-chat-v3-0324 | paid\ndeepseek/deepseek-chat-v3-0324:free | free\ndeepseek/deepseek-v3-base | paid\ndeepseek/deepseek-r1 | paid\ndeepseek/deepseek-r1:free | free\ndeepseek/deepseek-r1-0528 | paid\ndeepseek/deepseek-r1-0528:free | free\ndeepseek/deepseek-r1-distill-llama-70b | paid\ndeepseek/deepseek-r1-distill-llama-70b:free | free\ndeepseek/deepseek-r1-distill-llama-8b | paid\ndeepseek/deepseek-r1-distill-qwen-1.5b | paid\ndeepseek/deepseek-r1-distill-qwen-14b | paid\ndeepseek/deepseek-r1-distill-qwen-14b:free | free\ndeepseek/deepseek-r1-distill-qwen-32b | paid\ndeepseek/deepseek-r1-distill-qwen-7b | paid\ncognitivecomputations/dolphin-mixtral-8x22b | paid\ncognitivecomputations/dolphin3.0-mistral-24b | paid\ncognitivecomputations/dolphin3.0-mistral-24b:free | free\ncognitivecomputations/dolphin3.0-r1-mistral-24b | paid\ncognitivecomputations/dolphin3.0-r1-mistral-24b:free | free\neleutherai/llemma_7b | paid\nsao10k/fimbulvetr-11b-v2 | paid\nalpindale/goliath-120b | paid\ngoogle/gemini-flash-1.5 | paid\ngoogle/gemini-flash-1.5-8b | paid\ngoogle/gemini-pro-1.5 | paid\ngoogle/gemini-2.0-flash-001 | paid\ngoogle/gemini-2.0-flash-exp:free | free\ngoogle/gemini-2.0-flash-lite-001 | paid\ngoogle/gemini-2.5-flash | paid\ngoogle/gemini-2.5-flash-lite | paid\ngoogle/gemini-2.5-flash-lite-preview-06-17 | paid\ngoogle/gemini-2.5-pro | paid\ngoogle/gemini-2.5-pro-exp-03-25 | paid\ngoogle/gemini-2.5-pro-preview-05-06 | paid\ngoogle/gemini-2.5-pro-preview | paid\ngoogle/gemma-2-27b-it | paid\ngoogle/gemma-2-9b-it | paid\ngoogle/gemma-2-9b-it:free | free\ngoogle/gemma-3-12b-it | paid\ngoogle/gemma-3-12b-it:free | free\ngoogle/gemma-3-27b-it | paid\ngoogle/gemma-3-27b-it:free | free\ngoogle/gemma-3-4b-it | paid\ngoogle/gemma-3-4b-it:free | free\ngoogle/gemma-3n-e2b-it:free | free\ngoogle/gemma-3n-e4b-it | paid\ngoogle/gemma-3n-e4b-it:free | free\nopenrouter/horizon-beta | paid\ninception/mercury | paid\ninception/mercury-coder | paid\ninfermatic/mn-inferor-12b | paid\ninflection/inflection-3-pi | paid\ninflection/inflection-3-productivity | paid\nmoonshotai/kimi-dev-72b:free | free\nliquid/lfm-3b | paid\nliquid/lfm-40b | paid\nliquid/lfm-7b | paid\nmeta-llama/llama-guard-3-8b | paid\nanthracite-org/magnum-v2-72b | paid\nanthracite-org/magnum-v4-72b | paid\nmancer/weaver | paid\nmeta-llama/llama-3-70b-instruct | paid\nmeta-llama/llama-3-8b-instruct | paid\nmeta-llama/llama-3.1-405b | paid\nmeta-llama/llama-3.1-405b-instruct | paid\nmeta-llama/llama-3.1-405b-instruct:free | free\nmeta-llama/llama-3.1-70b-instruct | paid\nmeta-llama/llama-3.1-8b-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct | paid\nmeta-llama/llama-3.2-11b-vision-instruct:free | free\nmeta-llama/llama-3.2-1b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct | paid\nmeta-llama/llama-3.2-3b-instruct:free | free\nmeta-llama/llama-3.2-90b-vision-instruct | paid\nmeta-llama/llama-3.3-70b-instruct | paid\nmeta-llama/llama-3.3-70b-instruct:free | free\nmeta-llama/llama-4-maverick | paid\nmeta-llama/llama-4-scout | paid\nmeta-llama/llama-guard-4-12b | paid\nmeta-llama/llama-guard-2-8b | paid\nmicrosoft/mai-ds-r1 | paid\nmicrosoft/mai-ds-r1:free | free\nmicrosoft/phi-4 | paid\nmicrosoft/phi-4-multimodal-instruct | paid\nmicrosoft/phi-4-reasoning-plus | paid\nmicrosoft/phi-3-medium-128k-instruct | paid\nmicrosoft/phi-3-mini-128k-instruct | paid\nmicrosoft/phi-3.5-mini-128k-instruct | paid\nsophosympatheia/midnight-rose-70b | paid\nminimax/minimax-m1 | paid\nminimax/minimax-01 | paid\nmistralai/mistral-large | paid\nmistralai/mistral-large-2407 | paid\nmistralai/mistral-large-2411 | paid\nmistralai/mistral-small | paid\nmistralai/mistral-tiny | paid\nmistralai/codestral-2501 | paid\nmistralai/codestral-2508 | paid\nmistralai/devstral-medium | paid\nmistralai/devstral-small | paid\nmistralai/devstral-small-2505 | paid\nmistralai/devstral-small-2505:free | free\nmistralai/magistral-medium-2506 | paid\nmistralai/magistral-medium-2506:thinking | paid\nmistralai/magistral-small-2506 | paid\nmistralai/ministral-3b | paid\nmistralai/ministral-8b | paid\nmistralai/mistral-7b-instruct | paid\nmistralai/mistral-7b-instruct:free | free\nmistralai/mistral-7b-instruct-v0.1 | paid\nmistralai/mistral-7b-instruct-v0.2 | paid\nmistralai/mistral-7b-instruct-v0.3 | paid\nmistralai/mistral-medium-3 | paid\nmistralai/mistral-nemo | paid\nmistralai/mistral-nemo:free | free\nmistralai/mistral-small-24b-instruct-2501 | paid\nmistralai/mistral-small-24b-instruct-2501:free | free\nmistralai/mistral-small-3.1-24b-instruct | paid\nmistralai/mistral-small-3.1-24b-instruct:free | free\nmistralai/mistral-small-3.2-24b-instruct | paid\nmistralai/mistral-small-3.2-24b-instruct:free | free\nmistralai/mixtral-8x22b-instruct | paid\nmistralai/mixtral-8x7b-instruct | paid\nmistralai/pixtral-12b | paid\nmistralai/pixtral-large-2411 | paid\nmistralai/mistral-saba | paid\nmoonshotai/kimi-vl-a3b-thinking | paid\nmoonshotai/kimi-vl-a3b-thinking:free | free\nmoonshotai/kimi-k2 | paid\nmoonshotai/kimi-k2:free | free\nmorph/morph-v3-fast | paid\nmorph/morph-v3-large | paid\ngryphe/mythomax-l2-13b | paid\nneversleep/llama-3-lumimaid-70b | paid\nneversleep/llama-3.1-lumimaid-8b | paid\nneversleep/noromaid-20b | paid\nnousresearch/deephermes-3-llama-3-8b-preview:free | free\nnousresearch/deephermes-3-mistral-24b-preview | paid\nnousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid\nnousresearch/hermes-3-llama-3.1-405b | paid\nnousresearch/hermes-3-llama-3.1-70b | paid\nnousresearch/hermes-2-pro-llama-3-8b | paid\nnvidia/llama-3.1-nemotron-70b-instruct | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1 | paid\nnvidia/llama-3.1-nemotron-ultra-253b-v1:free | free\nnvidia/llama-3.3-nemotron-super-49b-v1 | paid\nopenai/chatgpt-4o-latest | paid\nopenai/codex-mini | paid\nopenai/gpt-oss-120b | paid\nopenai/gpt-oss-20b | paid\nopenai/gpt-3.5-turbo | paid\nopenai/gpt-3.5-turbo-0613 | paid\nopenai/gpt-3.5-turbo-16k | paid\nopenai/gpt-3.5-turbo-instruct | paid\nopenai/gpt-4 | paid\nopenai/gpt-4-0314 | paid\nopenai/gpt-4-turbo | paid\nopenai/gpt-4-1106-preview | paid\nopenai/gpt-4-turbo-preview | paid\nopenai/gpt-4.1 | paid\nopenai/gpt-4.1-mini | paid\nopenai/gpt-4.1-nano | paid\nopenai/gpt-4o | paid\nopenai/gpt-4o-2024-05-13 | paid\nopenai/gpt-4o-2024-08-06 | paid\nopenai/gpt-4o-2024-11-20 | paid\nopenai/gpt-4o:extended | paid\nopenai/gpt-4o-search-preview | paid\nopenai/gpt-4o-mini | paid\nopenai/gpt-4o-mini-2024-07-18 | paid\nopenai/gpt-4o-mini-search-preview | paid\nopenai/o1 | paid\nopenai/o1-mini | paid\nopenai/o1-mini-2024-09-12 | paid\nopenai/o1-pro | paid\nopenai/o3 | paid\nopenai/o3-mini | paid\nopenai/o3-mini-high | paid\nopenai/o3-pro | paid\nopenai/o4-mini | paid\nopenai/o4-mini-high | paid\nopengvlab/internvl3-14b | paid\nperplexity/r1-1776 | paid\nperplexity/sonar | paid\nperplexity/sonar-deep-research | paid\nperplexity/sonar-pro | paid\nperplexity/sonar-reasoning | paid\nperplexity/sonar-reasoning-pro | paid\npygmalionai/mythalion-13b | paid\nfeatherless/qwerky-72b:free | free\nqwen/qwen-2-72b-instruct | paid\nqwen/qwen-vl-max | paid\nqwen/qwen-vl-plus | paid\nqwen/qwen-max | paid\nqwen/qwen-plus | paid\nqwen/qwen-turbo | paid\nqwen/qwen2.5-vl-32b-instruct | paid\nqwen/qwen2.5-vl-32b-instruct:free | free\nqwen/qwen2.5-vl-72b-instruct | paid\nqwen/qwen2.5-vl-72b-instruct:free | free\nqwen/qwen-2.5-vl-7b-instruct | paid\nqwen/qwen3-14b | paid\nqwen/qwen3-14b:free | free\nqwen/qwen3-235b-a22b | paid\nqwen/qwen3-235b-a22b:free | free\nqwen/qwen3-235b-a22b-2507 | paid\nqwen/qwen3-235b-a22b-thinking-2507 | paid\nqwen/qwen3-30b-a3b | paid\nqwen/qwen3-30b-a3b:free | free\nqwen/qwen3-30b-a3b-instruct-2507 | paid\nqwen/qwen3-32b | paid\nqwen/qwen3-4b:free | free\nqwen/qwen3-8b | paid\nqwen/qwen3-8b:free | free\nqwen/qwen3-coder | paid\nqwen/qwq-32b | paid\nqwen/qwq-32b:free | free\nqwen/qwq-32b-preview | paid\nqwen/qwen-2.5-72b-instruct | paid\nqwen/qwen-2.5-72b-instruct:free | free\nqwen/qwen-2.5-7b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct | paid\nqwen/qwen-2.5-coder-32b-instruct:free | free\nrekaai/reka-flash-3:free | free\nundi95/remm-slerp-l2-13b | paid\nsao10k/l3-lunaris-8b | paid\nsao10k/l3-euryale-70b | paid\nsao10k/l3.1-euryale-70b | paid\nsao10k/l3.3-euryale-70b | paid\nsarvamai/sarvam-m:free | free\nshisa-ai/shisa-v2-llama3.3-70b | paid\nshisa-ai/shisa-v2-llama3.3-70b:free | free\nraifle/sorcererlm-8x22b | paid\nswitchpoint/router | paid\ntencent/hunyuan-a13b-instruct | paid\ntencent/hunyuan-a13b-instruct:free | free\nthedrummer/anubis-70b-v1.1 | paid\nthedrummer/anubis-pro-105b-v1 | paid\nthedrummer/rocinante-12b | paid\nthedrummer/skyfall-36b-v2 | paid\nthedrummer/unslopnemo-12b | paid\nthedrummer/valkyrie-49b-v1 | paid\nthudm/glm-4-32b | paid\nthudm/glm-4.1v-9b-thinking | paid\nthudm/glm-z1-32b:free | free\ntngtech/deepseek-r1t-chimera | paid\ntngtech/deepseek-r1t-chimera:free | free\ntngtech/deepseek-r1t2-chimera:free | free\nundi95/toppy-m-7b | paid\nscb10x/llama3.1-typhoon2-70b-instruct | paid\ncognitivecomputations/dolphin-mistral-24b-venice-edition:free | free\nmicrosoft/wizardlm-2-8x22b | paid\nx-ai/grok-2-1212 | paid\nx-ai/grok-2-vision-1212 | paid\nx-ai/grok-3 | paid\nx-ai/grok-3-beta | paid\nx-ai/grok-3-mini | paid\nx-ai/grok-3-mini-beta | paid\nx-ai/grok-4 | paid\nx-ai/grok-vision-beta | paid\nz-ai/glm-4-32b | paid\nz-ai/glm-4.5 | paid\nz-ai/glm-4.5-air | paid\nz-ai/glm-4.5-air:free | free\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m OpenAI models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\nbabbage-002\nchatgpt-4o-latest\ncodex-mini-latest\ndall-e-2\ndall-e-3\ndavinci-002\ngpt-3.5-turbo\ngpt-3.5-turbo-0125\ngpt-3.5-turbo-1106\ngpt-3.5-turbo-16k\ngpt-3.5-turbo-instruct\ngpt-3.5-turbo-instruct-0914\ngpt-4\ngpt-4-0125-preview\ngpt-4-0613\ngpt-4-1106-preview\ngpt-4-turbo\ngpt-4-turbo-2024-04-09\ngpt-4-turbo-preview\ngpt-4.1\ngpt-4.1-2025-04-14\ngpt-4.1-mini\ngpt-4.1-mini-2025-04-14\ngpt-4.1-nano\ngpt-4.1-nano-2025-04-14\ngpt-4o\ngpt-4o-2024-05-13\ngpt-4o-2024-08-06\ngpt-4o-2024-11-20\ngpt-4o-audio-preview\ngpt-4o-audio-preview-2024-10-01\ngpt-4o-audio-preview-2024-12-17\ngpt-4o-audio-preview-2025-06-03\ngpt-4o-mini\ngpt-4o-mini-2024-07-18\ngpt-4o-mini-audio-preview\ngpt-4o-mini-audio-preview-2024-12-17\ngpt-4o-mini-realtime-preview\ngpt-4o-mini-realtime-preview-2024-12-17\ngpt-4o-mini-search-preview\ngpt-4o-mini-search-preview-2025-03-11\ngpt-4o-mini-transcribe\ngpt-4o-mini-tts\ngpt-4o-realtime-preview\ngpt-4o-realtime-preview-2024-10-01\ngpt-4o-realtime-preview-2024-12-17\ngpt-4o-realtime-preview-2025-06-03\ngpt-4o-search-preview\ngpt-4o-search-preview-2025-03-11\ngpt-4o-transcribe\ngpt-image-1\no1\no1-2024-12-17\no1-mini\no1-mini-2024-09-12\no1-pro\no1-pro-2025-03-19\no3-mini\no3-mini-2025-01-31\no4-mini\no4-mini-2025-04-16\no4-mini-deep-research\no4-mini-deep-research-2025-06-26\nomni-moderation-2024-09-26\nomni-moderation-latest\ntext-embedding-3-large\ntext-embedding-3-small\ntext-embedding-ada-002\ntts-1\ntts-1-1106\ntts-1-hd\ntts-1-hd-1106\nwhisper-1\n-----\n\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m Deepseek models:\u001b[22m\u001b[39m\n\u001b[35m\u001b[1m\u001b[22m\u001b[39m\ndeepseek-chat\ndeepseek-reasoner\n-----\n", "ui:title": "Model" }, "router": { diff --git a/packages/kbot/src/commands/handlers/index.ts b/packages/kbot/src/commands/handlers/index.ts index 2439aade..e7a761b2 100644 --- a/packages/kbot/src/commands/handlers/index.ts +++ b/packages/kbot/src/commands/handlers/index.ts @@ -14,17 +14,24 @@ export function createHandlers(options: IKBotOptions): IHandler[] { new TextHandler(), ] } +import { isFile } from '@polymech/commons'; + export async function detectAndHandle(content: Buffer | string, options: IKBotOptions): Promise { - const handlers = createHandlers(options) - // Check if content is a file path - const contentStr = content.toString(); - if (exists(contentStr)) { - const filePath = path.resolve(contentStr); - for (const handler of handlers) { - if (await handler.canHandle(filePath, true)) { - return handler.handle(filePath, true); + const handlers = createHandlers(options) + const contentStr = content.toString().trim(); + try { + if (isFile(contentStr) && exists(contentStr)) { + const filePath = path.resolve(contentStr); + for (const handler of handlers) { + if (await handler.canHandle(filePath, true)) { + return handler.handle(filePath, true); + } } } + } catch (e) { + // options.logger?.warn(`Malformed path detected. Treating as content. Error: ${e.message}`); + // If it's not a valid path, it will throw an error, so we just continue + console.error(`Malformed path detected. Treating as content. Error: ${e.message}`); } // Handle as raw content @@ -33,5 +40,6 @@ export async function detectAndHandle(content: Buffer | string, options: IKBotOp return handler.handle(content, false); } } + throw new Error('No suitable handler found for the input content'); } \ No newline at end of file diff --git a/packages/kbot/src/commands/run-completion.ts b/packages/kbot/src/commands/run-completion.ts index f85d68fd..70fd247b 100644 --- a/packages/kbot/src/commands/run-completion.ts +++ b/packages/kbot/src/commands/run-completion.ts @@ -24,6 +24,7 @@ export const onCompletion = async (result: any = "", options: IKBotTask) => { writeOrAppend(dstPath, result, options.append as E_AppendModeType) const action = options.append ? `${options.append} content to` : 'Wrote completion result to' options.logger?.debug(`${action} ${dstPath} : ${options.dst}`) + console.log(`wrote ${action} ${dstPath} : ${options.dst}`) } else { marked.use(markedTerminal({ emoji: false, diff --git a/packages/kbot/src/commands/run.ts b/packages/kbot/src/commands/run.ts index 91056924..d679293e 100644 --- a/packages/kbot/src/commands/run.ts +++ b/packages/kbot/src/commands/run.ts @@ -3,6 +3,7 @@ import { lookup } from 'mime-types' import { cwd as processCwd } from 'node:process' import { hasMagic } from 'glob' +import { lstatSync } from 'node:fs'; import { sync as dir } from '@polymech/fs/dir' import { sync as exists } from '@polymech/fs/exists' import { sync as write } from '@polymech/fs/write' @@ -116,10 +117,9 @@ export const complete_messages = async ( let chatMessages: Array = [] const promptMessage = await prompt(opts) - if (!promptMessage?.content) { - return { messages: [], files: [] } + if (promptMessage?.content) { + chatMessages.push(promptMessage as ChatCompletionMessageParam) } - chatMessages.push(promptMessage as ChatCompletionMessageParam) chatMessages.push((await preferences(opts)) as ChatCompletionMessageParam) const projectPath = path.resolve(options.path || '.') @@ -383,6 +383,16 @@ export const run = async (opts: IKBotTask): Promise => { opts.logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`) const _models = all() for (const item of items) { + try { + const stats = lstatSync(item); + if (!stats.isFile()) { + opts.logger.warn(`Item from --each is not a file, skipping: ${item}`); + continue; + } + } catch (e) { + opts.logger.warn(`Item from --each is not a valid path, skipping: ${item}`); + continue; + } const itemOpts = { ...opts, ITEM: item, @@ -395,7 +405,8 @@ export const run = async (opts: IKBotTask): Promise => { let currentItemSpecificIncludes = [forward_slash(item)]; - itemOpts.include = [...opts.include, ...currentItemSpecificIncludes]; + const initialIncludes = [...opts.include]; // Store original includes + itemOpts.include = [...initialIncludes, ...currentItemSpecificIncludes]; const result = await processRun(itemOpts) if (result !== undefined) { diff --git a/packages/kbot/src/models/cache/openai-models.ts b/packages/kbot/src/models/cache/openai-models.ts index 134bece1..76e9feb2 100644 --- a/packages/kbot/src/models/cache/openai-models.ts +++ b/packages/kbot/src/models/cache/openai-models.ts @@ -2,11 +2,11 @@ export enum E_OPENAI_MODEL { MODEL_GPT_4_0613 = "gpt-4-0613", MODEL_GPT_4 = "gpt-4", MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo", - MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26", - MODEL_CODEX_MINI_LATEST = "codex-mini-latest", - MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03", - MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03", - MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research", + MODEL_GPT_5_NANO = "gpt-5-nano", + MODEL_GPT_5 = "gpt-5", + MODEL_GPT_5_MINI_2025_08_07 = "gpt-5-mini-2025-08-07", + MODEL_GPT_5_MINI = "gpt-5-mini", + MODEL_GPT_5_NANO_2025_08_07 = "gpt-5-nano-2025-08-07", MODEL_DAVINCI_002 = "davinci-002", MODEL_BABBAGE_002 = "babbage-002", MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct", @@ -59,7 +59,9 @@ export enum E_OPENAI_MODEL { MODEL_O1_PRO_2025_03_19 = "o1-pro-2025-03-19", MODEL_O1_PRO = "o1-pro", MODEL_GPT_4O_MINI_TTS = "gpt-4o-mini-tts", + MODEL_O3_2025_04_16 = "o3-2025-04-16", MODEL_O4_MINI_2025_04_16 = "o4-mini-2025-04-16", + MODEL_O3 = "o3", MODEL_O4_MINI = "o4-mini", MODEL_GPT_4_1_2025_04_14 = "gpt-4.1-2025-04-14", MODEL_GPT_4_1 = "gpt-4.1", @@ -68,6 +70,13 @@ export enum E_OPENAI_MODEL { MODEL_GPT_4_1_NANO_2025_04_14 = "gpt-4.1-nano-2025-04-14", MODEL_GPT_4_1_NANO = "gpt-4.1-nano", MODEL_GPT_IMAGE_1 = "gpt-image-1", + MODEL_CODEX_MINI_LATEST = "codex-mini-latest", + MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03", + MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03", + MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research", + MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26", + MODEL_GPT_5_CHAT_LATEST = "gpt-5-chat-latest", + MODEL_GPT_5_2025_08_07 = "gpt-5-2025-08-07", MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k", MODEL_TTS_1 = "tts-1", MODEL_WHISPER_1 = "whisper-1", diff --git a/packages/kbot/src/models/cache/openrouter-models-free.ts b/packages/kbot/src/models/cache/openrouter-models-free.ts index 0c25d970..6fe338c9 100644 --- a/packages/kbot/src/models/cache/openrouter-models-free.ts +++ b/packages/kbot/src/models/cache/openrouter-models-free.ts @@ -1,5 +1,5 @@ export enum E_OPENROUTER_MODEL_FREE { - MODEL_FREE_OPENROUTER_HORIZON_BETA = "openrouter/horizon-beta", + MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free", MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", diff --git a/packages/kbot/src/models/cache/openrouter-models.ts b/packages/kbot/src/models/cache/openrouter-models.ts index d3834402..c28b082d 100644 --- a/packages/kbot/src/models/cache/openrouter-models.ts +++ b/packages/kbot/src/models/cache/openrouter-models.ts @@ -1,8 +1,12 @@ export enum E_OPENROUTER_MODEL { + MODEL_OPENAI_GPT_5_CHAT = "openai/gpt-5-chat", + MODEL_OPENAI_GPT_5 = "openai/gpt-5", + MODEL_OPENAI_GPT_5_MINI = "openai/gpt-5-mini", + MODEL_OPENAI_GPT_5_NANO = "openai/gpt-5-nano", MODEL_OPENAI_GPT_OSS_120B = "openai/gpt-oss-120b", + MODEL_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", MODEL_OPENAI_GPT_OSS_20B = "openai/gpt-oss-20b", MODEL_ANTHROPIC_CLAUDE_OPUS_4_1 = "anthropic/claude-opus-4.1", - MODEL_OPENROUTER_HORIZON_BETA = "openrouter/horizon-beta", MODEL_MISTRALAI_CODESTRAL_2508 = "mistralai/codestral-2508", MODEL_QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = "qwen/qwen3-30b-a3b-instruct-2507", MODEL_Z_AI_GLM_4_5 = "z-ai/glm-4.5", @@ -123,8 +127,6 @@ export enum E_OPENROUTER_MODEL { MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = "mistralai/mistral-small-3.1-24b-instruct", MODEL_GOOGLE_GEMMA_3_4B_IT_FREE = "google/gemma-3-4b-it:free", MODEL_GOOGLE_GEMMA_3_4B_IT = "google/gemma-3-4b-it", - MODEL_AI21_JAMBA_1_6_LARGE = "ai21/jamba-1.6-large", - MODEL_AI21_JAMBA_1_6_MINI = "ai21/jamba-1.6-mini", MODEL_GOOGLE_GEMMA_3_12B_IT_FREE = "google/gemma-3-12b-it:free", MODEL_GOOGLE_GEMMA_3_12B_IT = "google/gemma-3-12b-it", MODEL_COHERE_COMMAND_A = "cohere/command-a", @@ -207,9 +209,9 @@ export enum E_OPENROUTER_MODEL { MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct", MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b", MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b", + MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_BETA = "anthropic/claude-3.5-haiku:beta", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku", - MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022", MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_BETA = "anthropic/claude-3.5-sonnet:beta", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet", @@ -225,20 +227,20 @@ export enum E_OPENROUTER_MODEL { MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B = "anthracite-org/magnum-v2-72b", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct", - MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct", - MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT_FREE = "meta-llama/llama-3.2-11b-vision-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct", + MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct", + MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT_FREE = "qwen/qwen-2.5-72b-instruct:free", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct", MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b", - MODEL_OPENAI_O1_MINI_2024_09_12 = "openai/o1-mini-2024-09-12", MODEL_OPENAI_O1_MINI = "openai/o1-mini", + MODEL_OPENAI_O1_MINI_2024_09_12 = "openai/o1-mini-2024-09-12", MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b", - MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024", MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024", - MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", + MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024", MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b", + MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT = "microsoft/phi-3.5-mini-128k-instruct", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b", @@ -246,14 +248,14 @@ export enum E_OPENROUTER_MODEL { MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b", MODEL_OPENAI_GPT_4O_2024_08_06 = "openai/gpt-4o-2024-08-06", MODEL_META_LLAMA_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b", - MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct", MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT = "meta-llama/llama-3.1-8b-instruct", + MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", MODEL_MISTRALAI_MISTRAL_NEMO_FREE = "mistralai/mistral-nemo:free", MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo", - MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18", MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini", + MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18", MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it", MODEL_GOOGLE_GEMMA_2_9B_IT_FREE = "google/gemma-2-9b-it:free", MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it", @@ -263,29 +265,28 @@ export enum E_OPENROUTER_MODEL { MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MIXTRAL_8X22B = "cognitivecomputations/dolphin-mixtral-8x22b", MODEL_QWEN_QWEN_2_72B_INSTRUCT = "qwen/qwen-2-72b-instruct", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3", - MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT = "mistralai/mistral-7b-instruct", + MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b", MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT = "microsoft/phi-3-mini-128k-instruct", MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT = "microsoft/phi-3-medium-128k-instruct", MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_70B = "neversleep/llama-3-lumimaid-70b", MODEL_GOOGLE_GEMINI_FLASH_1_5 = "google/gemini-flash-1.5", - MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13", MODEL_OPENAI_GPT_4O = "openai/gpt-4o", MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended", - MODEL_SAO10K_FIMBULVETR_11B_V2 = "sao10k/fimbulvetr-11b-v2", - MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct", + MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct", + MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct", MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct", MODEL_MICROSOFT_WIZARDLM_2_8X22B = "microsoft/wizardlm-2-8x22b", - MODEL_GOOGLE_GEMINI_PRO_1_5 = "google/gemini-pro-1.5", MODEL_OPENAI_GPT_4_TURBO = "openai/gpt-4-turbo", + MODEL_GOOGLE_GEMINI_PRO_1_5 = "google/gemini-pro-1.5", MODEL_COHERE_COMMAND_R_PLUS = "cohere/command-r-plus", MODEL_COHERE_COMMAND_R_PLUS_04_2024 = "cohere/command-r-plus-04-2024", MODEL_SOPHOSYMPATHEIA_MIDNIGHT_ROSE_70B = "sophosympatheia/midnight-rose-70b", - MODEL_COHERE_COMMAND = "cohere/command", MODEL_COHERE_COMMAND_R = "cohere/command-r", + MODEL_COHERE_COMMAND = "cohere/command", MODEL_ANTHROPIC_CLAUDE_3_HAIKU_BETA = "anthropic/claude-3-haiku:beta", MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku", MODEL_ANTHROPIC_CLAUDE_3_OPUS_BETA = "anthropic/claude-3-opus:beta", @@ -301,17 +302,16 @@ export enum E_OPENROUTER_MODEL { MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT = "mistralai/mixtral-8x7b-instruct", MODEL_NEVERSLEEP_NOROMAID_20B = "neversleep/noromaid-20b", MODEL_ALPINDALE_GOLIATH_120B = "alpindale/goliath-120b", - MODEL_UNDI95_TOPPY_M_7B = "undi95/toppy-m-7b", MODEL_OPENROUTER_AUTO = "openrouter/auto", MODEL_OPENAI_GPT_4_1106_PREVIEW = "openai/gpt-4-1106-preview", - MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = "mistralai/mistral-7b-instruct-v0.1", MODEL_OPENAI_GPT_3_5_TURBO_INSTRUCT = "openai/gpt-3.5-turbo-instruct", + MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = "mistralai/mistral-7b-instruct-v0.1", MODEL_PYGMALIONAI_MYTHALION_13B = "pygmalionai/mythalion-13b", MODEL_OPENAI_GPT_3_5_TURBO_16K = "openai/gpt-3.5-turbo-16k", MODEL_MANCER_WEAVER = "mancer/weaver", MODEL_UNDI95_REMM_SLERP_L2_13B = "undi95/remm-slerp-l2-13b", MODEL_GRYPHE_MYTHOMAX_L2_13B = "gryphe/mythomax-l2-13b", - MODEL_OPENAI_GPT_4 = "openai/gpt-4", MODEL_OPENAI_GPT_3_5_TURBO = "openai/gpt-3.5-turbo", - MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314" + MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314", + MODEL_OPENAI_GPT_4 = "openai/gpt-4" } \ No newline at end of file diff --git a/packages/kbot/src/source.ts b/packages/kbot/src/source.ts index 71f50efe..cdddb8ab 100644 --- a/packages/kbot/src/source.ts +++ b/packages/kbot/src/source.ts @@ -88,7 +88,7 @@ export async function get( ROUTER: options.router || 'unknown_router' } const potentialDstPath = path.resolve(resolvePath(options.dst, false, fullVarsForDst)); - if (exists(potentialDstPath)) { + if (exists(potentialDstPath) && options.append !== 'replace') { options.logger?.info(`Skipping source file ${path.relative(projectPath, absoluteSrcFilePath)} as output ${potentialDstPath} already exists.`); } else { filesToKeepAfterDstCheck.push(absoluteSrcFilePath); diff --git a/packages/kbot/src/utils/merge.ts b/packages/kbot/src/utils/merge.ts index de159bd5..789d381a 100644 --- a/packages/kbot/src/utils/merge.ts +++ b/packages/kbot/src/utils/merge.ts @@ -40,20 +40,25 @@ export function merge(existingContent: string, newContent: string): string { export function writeOrAppend( dstPath: string, content: string, - appendMode?: 'concat' | 'merge' + appendMode?: 'concat' | 'merge' | 'replace' ): string { + if (appendMode === 'replace') { + write(dstPath, content); + return content; + } let finalContent = content; if (exists(dstPath) && appendMode) { const existingContentBuffer = read(dstPath); // Read returns Buffer | undefined if (existingContentBuffer) { // Check if read was successful const existingContent = existingContentBuffer.toString(); if (appendMode === 'concat') { - finalContent = concat(existingContent, content); + finalContent = concat(existingContent, content); } else if (appendMode === 'merge') { - finalContent = merge(existingContent, content); // Using placeholder merge for now + finalContent = merge(existingContent, content); } } } - write(dstPath, finalContent) - return finalContent + + write(dstPath, finalContent); + return finalContent; } \ No newline at end of file diff --git a/packages/kbot/src/zod_schema.ts b/packages/kbot/src/zod_schema.ts index 7260bd1a..3a3a64e9 100644 --- a/packages/kbot/src/zod_schema.ts +++ b/packages/kbot/src/zod_schema.ts @@ -41,9 +41,10 @@ export const EType = z.enum([ ]) // Define the new enum for append modes -export const E_AppendMode = z.enum(['concat', 'merge']) +export const E_AppendMode = z.enum(['concat', 'merge', 'replace']) export type E_AppendModeType = z.infer + // Define the new enum for wrap modes export const E_WrapMode = z.enum(['meta', 'none']) export type E_WrapModeType = z.infer diff --git a/packages/kbot/src/zod_types.ts b/packages/kbot/src/zod_types.ts index c003aa64..897e6b73 100644 --- a/packages/kbot/src/zod_types.ts +++ b/packages/kbot/src/zod_types.ts @@ -8,7 +8,7 @@ export interface IKBotOptions { /** Optional destination path for the result, will substitute ${MODEL_NAME} and ${ROUTER} in the path. Optional, used for "completion" mode */ dst?: string | undefined; /** How to handle output if --dst file already exists: "concat" (append) or "merge" (try to merge structures if possible, otherwise append). Only used if --dst is specified. */ - append?: ("concat" | "merge") | undefined; + append?: ("concat" | "merge" | "replace") | undefined; /** Specify how to wrap the output, "meta (file name, absolute path, cwd)" or "none". */ wrap?: "meta" | "none"; /** Iterate over items, supported: GLOB | Path to JSON File | array of strings (comma separated). To test different models, use --each="gpt-3.5-turbo,gpt-4o", the actual string will exposed as variable `ITEM`, eg: --dst="${ITEM}-output.md" */ @@ -31,7 +31,6 @@ export interface IKBotOptions {   OpenRouter models:  - 01-ai/yi-large | paid agentica-org/deepcoder-14b-preview | paid agentica-org/deepcoder-14b-preview:free | free ai21/jamba-1.6-large | paid @@ -47,10 +46,8 @@ export interface IKBotOptions { anthropic/claude-3-haiku:beta | paid anthropic/claude-3-opus | paid anthropic/claude-3-opus:beta | paid - anthropic/claude-3-sonnet | paid anthropic/claude-3.5-haiku | paid anthropic/claude-3.5-haiku-20241022 | paid - anthropic/claude-3.5-haiku-20241022:beta | paid anthropic/claude-3.5-haiku:beta | paid anthropic/claude-3.5-sonnet | paid anthropic/claude-3.5-sonnet-20240620 | paid @@ -60,6 +57,7 @@ export interface IKBotOptions { anthropic/claude-3.7-sonnet:beta | paid anthropic/claude-3.7-sonnet:thinking | paid anthropic/claude-opus-4 | paid + anthropic/claude-opus-4.1 | paid anthropic/claude-sonnet-4 | paid arcee-ai/coder-large | paid arcee-ai/maestro-reasoning | paid @@ -99,11 +97,11 @@ export interface IKBotOptions { deepseek/deepseek-r1-distill-qwen-32b | paid deepseek/deepseek-r1-distill-qwen-7b | paid cognitivecomputations/dolphin-mixtral-8x22b | paid + cognitivecomputations/dolphin3.0-mistral-24b | paid cognitivecomputations/dolphin3.0-mistral-24b:free | free cognitivecomputations/dolphin3.0-r1-mistral-24b | paid cognitivecomputations/dolphin3.0-r1-mistral-24b:free | free eleutherai/llemma_7b | paid - eva-unit-01/eva-qwen-2.5-72b | paid sao10k/fimbulvetr-11b-v2 | paid alpindale/goliath-120b | paid google/gemini-flash-1.5 | paid @@ -131,6 +129,7 @@ export interface IKBotOptions { google/gemma-3n-e2b-it:free | free google/gemma-3n-e4b-it | paid google/gemma-3n-e4b-it:free | free + openrouter/horizon-beta | paid inception/mercury | paid inception/mercury-coder | paid infermatic/mn-inferor-12b | paid @@ -177,10 +176,10 @@ export interface IKBotOptions { mistralai/mistral-large | paid mistralai/mistral-large-2407 | paid mistralai/mistral-large-2411 | paid - nothingiisreal/mn-celeste-12b | paid mistralai/mistral-small | paid mistralai/mistral-tiny | paid mistralai/codestral-2501 | paid + mistralai/codestral-2508 | paid mistralai/devstral-medium | paid mistralai/devstral-small | paid mistralai/devstral-small-2505 | paid @@ -213,7 +212,6 @@ export interface IKBotOptions { moonshotai/kimi-vl-a3b-thinking:free | free moonshotai/kimi-k2 | paid moonshotai/kimi-k2:free | free - morph/morph-v2 | paid morph/morph-v3-fast | paid morph/morph-v3-large | paid gryphe/mythomax-l2-13b | paid @@ -232,6 +230,8 @@ export interface IKBotOptions { nvidia/llama-3.3-nemotron-super-49b-v1 | paid openai/chatgpt-4o-latest | paid openai/codex-mini | paid + openai/gpt-oss-120b | paid + openai/gpt-oss-20b | paid openai/gpt-3.5-turbo | paid openai/gpt-3.5-turbo-0613 | paid openai/gpt-3.5-turbo-16k | paid @@ -256,8 +256,6 @@ export interface IKBotOptions { openai/o1 | paid openai/o1-mini | paid openai/o1-mini-2024-09-12 | paid - openai/o1-preview | paid - openai/o1-preview-2024-09-12 | paid openai/o1-pro | paid openai/o3 | paid openai/o3-mini | paid @@ -290,16 +288,15 @@ export interface IKBotOptions { qwen/qwen3-235b-a22b | paid qwen/qwen3-235b-a22b:free | free qwen/qwen3-235b-a22b-2507 | paid - qwen/qwen3-235b-a22b-2507:free | free qwen/qwen3-235b-a22b-thinking-2507 | paid qwen/qwen3-30b-a3b | paid qwen/qwen3-30b-a3b:free | free + qwen/qwen3-30b-a3b-instruct-2507 | paid qwen/qwen3-32b | paid qwen/qwen3-4b:free | free qwen/qwen3-8b | paid qwen/qwen3-8b:free | free qwen/qwen3-coder | paid - qwen/qwen3-coder:free | free qwen/qwq-32b | paid qwen/qwq-32b:free | free qwen/qwq-32b-preview | paid @@ -308,14 +305,12 @@ export interface IKBotOptions { qwen/qwen-2.5-7b-instruct | paid qwen/qwen-2.5-coder-32b-instruct | paid qwen/qwen-2.5-coder-32b-instruct:free | free - rekaai/reka-flash-3 | paid rekaai/reka-flash-3:free | free undi95/remm-slerp-l2-13b | paid sao10k/l3-lunaris-8b | paid sao10k/l3-euryale-70b | paid sao10k/l3.1-euryale-70b | paid sao10k/l3.3-euryale-70b | paid - sarvamai/sarvam-m | paid sarvamai/sarvam-m:free | free shisa-ai/shisa-v2-llama3.3-70b | paid shisa-ai/shisa-v2-llama3.3-70b:free | free @@ -330,12 +325,10 @@ export interface IKBotOptions { thedrummer/unslopnemo-12b | paid thedrummer/valkyrie-49b-v1 | paid thudm/glm-4-32b | paid - thudm/glm-4-32b:free | free thudm/glm-4.1v-9b-thinking | paid - thudm/glm-z1-32b | paid thudm/glm-z1-32b:free | free + tngtech/deepseek-r1t-chimera | paid tngtech/deepseek-r1t-chimera:free | free - tngtech/deepseek-r1t2-chimera | paid tngtech/deepseek-r1t2-chimera:free | free undi95/toppy-m-7b | paid scb10x/llama3.1-typhoon2-70b-instruct | paid @@ -350,6 +343,9 @@ export interface IKBotOptions { x-ai/grok-4 | paid x-ai/grok-vision-beta | paid z-ai/glm-4-32b | paid + z-ai/glm-4.5 | paid + z-ai/glm-4.5-air | paid + z-ai/glm-4.5-air:free | free   OpenAI models:  @@ -408,8 +404,6 @@ export interface IKBotOptions { o1-2024-12-17 o1-mini o1-mini-2024-09-12 - o1-preview - o1-preview-2024-09-12 o1-pro o1-pro-2025-03-19 o3-mini