update - last
This commit is contained in:
parent
0c87df2d6e
commit
d6b6f2803d
8
packages/ai-tools/dist/commands/index.d.ts
vendored
8
packages/ai-tools/dist/commands/index.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import type { Argv } from 'yargs';
|
||||
export declare const commands: (yargs: Argv) => Argv<{
|
||||
env_key: string;
|
||||
}>;
|
||||
import type { Argv } from 'yargs';
|
||||
export declare const commands: (yargs: Argv) => Argv<{
|
||||
env_key: string;
|
||||
}>;
|
||||
|
||||
52
packages/ai-tools/dist/commands/index.js
vendored
52
packages/ai-tools/dist/commands/index.js
vendored
@ -1,26 +1,26 @@
|
||||
import { types } from './types.js';
|
||||
import { list, options as listOptions } from './list.js';
|
||||
import { invoke, invokeOptions } from './invoke.js';
|
||||
import { CONFIG_DEFAULT } from '@polymech/commons';
|
||||
import { logger } from '../index.js';
|
||||
export const commands = (yargs) => {
|
||||
return yargs
|
||||
.command('types', 'Generate TypeScript interfaces from Zod schemas', {}, types)
|
||||
.command('list', 'List all available tools and their descriptions', listOptions, list)
|
||||
.command('invoke', 'Invoke a specific tool function', invokeOptions, invoke)
|
||||
.option('env_key', {
|
||||
type: 'string',
|
||||
description: 'Environment configuration key'
|
||||
})
|
||||
.middleware([(argv) => {
|
||||
const config = CONFIG_DEFAULT(argv.env_key);
|
||||
if (!config) {
|
||||
logger.warn('No config found!');
|
||||
return;
|
||||
}
|
||||
return config;
|
||||
}])
|
||||
.strict()
|
||||
.help();
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFcEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBVyxFQUFFLEVBQUU7SUFDcEMsT0FBTyxLQUFLO1NBQ1AsT0FBTyxDQUFDLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDO1NBQzlFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsaURBQWlELEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztTQUNyRixPQUFPLENBQUMsUUFBUSxFQUFFLGlDQUFpQyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUM7U0FDM0UsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLCtCQUErQjtLQUMvQyxDQUFDO1NBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNoQyxPQUFPO2FBQ1Y7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztTQUNGLE1BQU0sRUFBRTtTQUNSLElBQUksRUFBRSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
|
||||
import { types } from './types.js';
|
||||
import { list, options as listOptions } from './list.js';
|
||||
import { invoke, invokeOptions } from './invoke.js';
|
||||
import { CONFIG_DEFAULT } from '@polymech/commons';
|
||||
import { logger } from '../index.js';
|
||||
export const commands = (yargs) => {
|
||||
return yargs
|
||||
.command('types', 'Generate TypeScript interfaces from Zod schemas', {}, types)
|
||||
.command('list', 'List all available tools and their descriptions', listOptions, list)
|
||||
.command('invoke', 'Invoke a specific tool function', invokeOptions, invoke)
|
||||
.option('env_key', {
|
||||
type: 'string',
|
||||
description: 'Environment configuration key'
|
||||
})
|
||||
.middleware([(argv) => {
|
||||
const config = CONFIG_DEFAULT(argv.env_key);
|
||||
if (!config) {
|
||||
logger.warn('No config found!');
|
||||
return;
|
||||
}
|
||||
return config;
|
||||
}])
|
||||
.strict()
|
||||
.help();
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFcEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBVyxFQUFFLEVBQUU7SUFDcEMsT0FBTyxLQUFLO1NBQ1AsT0FBTyxDQUFDLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDO1NBQzlFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsaURBQWlELEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztTQUNyRixPQUFPLENBQUMsUUFBUSxFQUFFLGlDQUFpQyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUM7U0FDM0UsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLCtCQUErQjtLQUMvQyxDQUFDO1NBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDVixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2hDLE9BQU87WUFDWCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7U0FDRixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUUsQ0FBQztBQUNoQixDQUFDLENBQUMifQ==
|
||||
8
packages/ai-tools/dist/commands/invoke.d.ts
vendored
8
packages/ai-tools/dist/commands/invoke.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import type { Argv } from 'yargs';
|
||||
declare const options: (yargs: Argv) => CLI.Argv;
|
||||
export declare const invoke: (argv: any) => Promise<any>;
|
||||
export { options as invokeOptions };
|
||||
import type { Argv } from 'yargs';
|
||||
declare const options: (yargs: Argv) => CLI.Argv;
|
||||
export declare const invoke: (argv: any) => Promise<any>;
|
||||
export { options as invokeOptions };
|
||||
|
||||
94
packages/ai-tools/dist/commands/invoke.js
vendored
94
packages/ai-tools/dist/commands/invoke.js
vendored
@ -1,47 +1,47 @@
|
||||
import { tools } from '../lib/tools/tools.js';
|
||||
import { logger } from '../index.js';
|
||||
import { InvokeToolSchema } from '../zod_schemas.js';
|
||||
import { toYargs } from '@polymech/commons/schemas';
|
||||
import { sync as write } from '@polymech/fs/write';
|
||||
import * as path from 'path';
|
||||
const options = (yargs) => toYargs(yargs, InvokeToolSchema);
|
||||
export const invoke = async (argv) => {
|
||||
try {
|
||||
const { tools: toolCategory, function: funcName, target, params, output } = argv;
|
||||
// Get tool category
|
||||
const toolSet = tools[toolCategory];
|
||||
if (!toolSet) {
|
||||
logger.error(`Tool category '${toolCategory}' not found`);
|
||||
return;
|
||||
}
|
||||
// Initialize tools with target directory
|
||||
const toolList = toolSet(target);
|
||||
// Find specific function
|
||||
const tool = toolList.find(t => t.function.name === funcName);
|
||||
if (!tool) {
|
||||
logger.error(`Function '${funcName}' not found in ${toolCategory} tools`);
|
||||
return;
|
||||
}
|
||||
// Parse parameters if provided
|
||||
const parameters = params ? JSON.parse(params) : {};
|
||||
// Execute tool function
|
||||
logger.info(`Invoking ${toolCategory}::${funcName}`);
|
||||
const result = await tool.function.function(parameters);
|
||||
// Handle output
|
||||
if (output) {
|
||||
const outputPath = path.isAbsolute(output) ? output : path.join(process.cwd(), output);
|
||||
logger.info(`Writing output to ${outputPath}`);
|
||||
write(outputPath, JSON.stringify(result, null, 2));
|
||||
}
|
||||
else {
|
||||
logger.info('Result:', result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error invoking tool:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
export { options as invokeOptions };
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2ludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVsRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUU1QixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBUyxFQUFFLEVBQUU7SUFDdEMsSUFBSTtRQUNBLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFakYsb0JBQW9CO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsWUFBWSxhQUFhLENBQUMsQ0FBQztZQUMxRCxPQUFPO1NBQ1Y7UUFFRCx5Q0FBeUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLHlCQUF5QjtRQUN6QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxRQUFRLGtCQUFrQixZQUFZLFFBQVEsQ0FBQyxDQUFDO1lBQzFFLE9BQU87U0FDVjtRQUVELCtCQUErQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVwRCx3QkFBd0I7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEQsZ0JBQWdCO1FBQ2hCLElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RixNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO1FBRUQsT0FBTyxNQUFNLENBQUM7S0FDakI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUM7S0FDZjtBQUNMLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLENBQUMifQ==
|
||||
import { tools } from '../lib/tools/tools.js';
|
||||
import { logger } from '../index.js';
|
||||
import { InvokeToolSchema } from '../zod_schemas.js';
|
||||
import { toYargs } from '@polymech/commons/schemas';
|
||||
import { sync as write } from '@polymech/fs/write';
|
||||
import * as path from 'path';
|
||||
const options = (yargs) => toYargs(yargs, InvokeToolSchema);
|
||||
export const invoke = async (argv) => {
|
||||
try {
|
||||
const { tools: toolCategory, function: funcName, target, params, output } = argv;
|
||||
// Get tool category
|
||||
const toolSet = tools[toolCategory];
|
||||
if (!toolSet) {
|
||||
logger.error(`Tool category '${toolCategory}' not found`);
|
||||
return;
|
||||
}
|
||||
// Initialize tools with target directory
|
||||
const toolList = toolSet(target);
|
||||
// Find specific function
|
||||
const tool = toolList.find(t => t.function.name === funcName);
|
||||
if (!tool) {
|
||||
logger.error(`Function '${funcName}' not found in ${toolCategory} tools`);
|
||||
return;
|
||||
}
|
||||
// Parse parameters if provided
|
||||
const parameters = params ? JSON.parse(params) : {};
|
||||
// Execute tool function
|
||||
logger.info(`Invoking ${toolCategory}::${funcName}`);
|
||||
const result = await tool.function.function(parameters);
|
||||
// Handle output
|
||||
if (output) {
|
||||
const outputPath = path.isAbsolute(output) ? output : path.join(process.cwd(), output);
|
||||
logger.info(`Writing output to ${outputPath}`);
|
||||
write(outputPath, JSON.stringify(result, null, 2));
|
||||
}
|
||||
else {
|
||||
logger.info('Result:', result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error invoking tool:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
export { options as invokeOptions };
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2ludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVsRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUU1QixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBUyxFQUFFLEVBQUU7SUFDdEMsSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVqRixvQkFBb0I7UUFDcEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLFlBQVksYUFBYSxDQUFDLENBQUM7WUFDMUQsT0FBTztRQUNYLENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLHlCQUF5QjtRQUN6QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLFFBQVEsa0JBQWtCLFlBQVksUUFBUSxDQUFDLENBQUM7WUFDMUUsT0FBTztRQUNYLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEQsd0JBQXdCO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhELGdCQUFnQjtRQUNoQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RixNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDIn0=
|
||||
34
packages/ai-tools/dist/commands/list.d.ts
vendored
34
packages/ai-tools/dist/commands/list.d.ts
vendored
@ -1,17 +1,17 @@
|
||||
import type { Argv } from 'yargs';
|
||||
export declare const options: (yargs: Argv) => CLI.Argv;
|
||||
interface FSParameters {
|
||||
type: string;
|
||||
properties: Record<string, any>;
|
||||
required: string[];
|
||||
}
|
||||
interface FSDefinition {
|
||||
name: string;
|
||||
description: string;
|
||||
category: string;
|
||||
parameters: FSParameters;
|
||||
}
|
||||
export declare const signature: (definition: FSDefinition) => string;
|
||||
export declare function format(category: string, data: any): string;
|
||||
export declare const list: (argv: any, options?: any) => Promise<void>;
|
||||
export {};
|
||||
import type { Argv } from 'yargs';
|
||||
export declare const options: (yargs: Argv) => CLI.Argv;
|
||||
interface FSParameters {
|
||||
type: string;
|
||||
properties: Record<string, any>;
|
||||
required: string[];
|
||||
}
|
||||
interface FSDefinition {
|
||||
name: string;
|
||||
description: string;
|
||||
category: string;
|
||||
parameters: FSParameters;
|
||||
}
|
||||
export declare const signature: (definition: FSDefinition) => string;
|
||||
export declare function format(category: string, data: any): string;
|
||||
export declare const list: (argv: any, options?: any) => Promise<void>;
|
||||
export {};
|
||||
|
||||
108
packages/ai-tools/dist/commands/list.js
vendored
108
packages/ai-tools/dist/commands/list.js
vendored
@ -1,54 +1,54 @@
|
||||
import { tools } from '../lib/tools/tools.js';
|
||||
import { ListCommandSchema } from '../zod_schemas.js';
|
||||
import { sync as write } from '@polymech/fs/write';
|
||||
import { toYargs } from '@polymech/commons/schemas';
|
||||
export const options = (yargs) => toYargs(yargs, ListCommandSchema);
|
||||
export const signature = (definition) => {
|
||||
const { properties } = definition.parameters;
|
||||
const requiredKeys = definition.parameters.required || [];
|
||||
const params = Object.entries(properties).map(([key, val]) => {
|
||||
const isRequired = requiredKeys.includes(key);
|
||||
const isOptional = !!val.optional || !isRequired;
|
||||
return isOptional ? `?${key}` : key;
|
||||
});
|
||||
return `(${params.join(", ")})`;
|
||||
};
|
||||
export function format(category, data) {
|
||||
const lines = [`## ${category}\n`];
|
||||
data.forEach(definition => {
|
||||
const functionName = definition.name;
|
||||
const args = `${signature(definition)}`;
|
||||
const summary = definition.description;
|
||||
lines.push(`- ${functionName}${args}: ${summary}`);
|
||||
});
|
||||
return lines.join("\n");
|
||||
}
|
||||
export const list = async (argv, options) => {
|
||||
const getCategorizedTools = (category, options) => {
|
||||
const toolsArray = tools[category](process.cwd(), options);
|
||||
return toolsArray.map(tool => ({
|
||||
name: tool.function.name,
|
||||
description: tool.function.description,
|
||||
category,
|
||||
parameters: tool.function.parameters
|
||||
}));
|
||||
};
|
||||
const toolsList = {
|
||||
email: getCategorizedTools('email', options),
|
||||
search: getCategorizedTools('search', options),
|
||||
interact: getCategorizedTools('email', options),
|
||||
fs: getCategorizedTools('fs', options),
|
||||
npm: getCategorizedTools('npm', options),
|
||||
git: getCategorizedTools('git', options),
|
||||
terminal: getCategorizedTools('terminal', options)
|
||||
};
|
||||
//write(argv.output + '.json', Object.keys(toolsList).map((k,v)=>format(k,v as any)).join('\n') );
|
||||
const shortDescription = Object.keys(toolsList).map((value) => {
|
||||
return format(value, toolsList[value]);
|
||||
}).join('\n\n');
|
||||
if (argv.output) {
|
||||
write(argv.output, JSON.stringify(toolsList, null, 2));
|
||||
write(argv.output + '.md', shortDescription);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVuRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQWlCekUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsVUFBd0IsRUFBVSxFQUFFO0lBQzFELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUMxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDekQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJ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
|
||||
import { tools } from '../lib/tools/tools.js';
|
||||
import { ListCommandSchema } from '../zod_schemas.js';
|
||||
import { sync as write } from '@polymech/fs/write';
|
||||
import { toYargs } from '@polymech/commons/schemas';
|
||||
export const options = (yargs) => toYargs(yargs, ListCommandSchema);
|
||||
export const signature = (definition) => {
|
||||
const { properties } = definition.parameters;
|
||||
const requiredKeys = definition.parameters.required || [];
|
||||
const params = Object.entries(properties).map(([key, val]) => {
|
||||
const isRequired = requiredKeys.includes(key);
|
||||
const isOptional = !!val.optional || !isRequired;
|
||||
return isOptional ? `?${key}` : key;
|
||||
});
|
||||
return `(${params.join(", ")})`;
|
||||
};
|
||||
export function format(category, data) {
|
||||
const lines = [`## ${category}\n`];
|
||||
data.forEach(definition => {
|
||||
const functionName = definition.name;
|
||||
const args = `${signature(definition)}`;
|
||||
const summary = definition.description;
|
||||
lines.push(`- ${functionName}${args}: ${summary}`);
|
||||
});
|
||||
return lines.join("\n");
|
||||
}
|
||||
export const list = async (argv, options) => {
|
||||
const getCategorizedTools = (category, options) => {
|
||||
const toolsArray = tools[category](process.cwd(), options);
|
||||
return toolsArray.map(tool => ({
|
||||
name: tool.function.name,
|
||||
description: tool.function.description,
|
||||
category,
|
||||
parameters: tool.function.parameters
|
||||
}));
|
||||
};
|
||||
const toolsList = {
|
||||
email: getCategorizedTools('email', options),
|
||||
search: getCategorizedTools('search', options),
|
||||
interact: getCategorizedTools('email', options),
|
||||
fs: getCategorizedTools('fs', options),
|
||||
npm: getCategorizedTools('npm', options),
|
||||
git: getCategorizedTools('git', options),
|
||||
terminal: getCategorizedTools('terminal', options)
|
||||
};
|
||||
//write(argv.output + '.json', Object.keys(toolsList).map((k,v)=>format(k,v as any)).join('\n') );
|
||||
const shortDescription = Object.keys(toolsList).map((value) => {
|
||||
return format(value, toolsList[value]);
|
||||
}).join('\n\n');
|
||||
if (argv.output) {
|
||||
write(argv.output, JSON.stringify(toolsList, null, 2));
|
||||
write(argv.output + '.md', shortDescription);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVuRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQWlCekUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsVUFBd0IsRUFBVSxFQUFFO0lBQzFELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUMxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDekQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJ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
|
||||
2
packages/ai-tools/dist/commands/types.d.ts
vendored
2
packages/ai-tools/dist/commands/types.d.ts
vendored
@ -1 +1 @@
|
||||
export declare const types: () => Promise<void>;
|
||||
export declare const types: () => Promise<void>;
|
||||
|
||||
32
packages/ai-tools/dist/commands/types.js
vendored
32
packages/ai-tools/dist/commands/types.js
vendored
@ -1,17 +1,17 @@
|
||||
import { generate_interfaces } from '@polymech/commons';
|
||||
import { FileListingOptionsSchema, FileRemovalOptionsSchema, GitCommitSchema, GitRevertSchema, GitSwitchVersionSchema, InvokeToolSchema, ToolListingOptionsSchema, TerminalCommandSchema, ListCommandSchema, NpmRunSchema } from '../zod_schemas.js';
|
||||
export const types = async () => {
|
||||
return generate_interfaces([
|
||||
FileListingOptionsSchema,
|
||||
FileRemovalOptionsSchema,
|
||||
GitCommitSchema,
|
||||
GitRevertSchema,
|
||||
GitSwitchVersionSchema,
|
||||
InvokeToolSchema,
|
||||
ToolListingOptionsSchema,
|
||||
TerminalCommandSchema,
|
||||
ListCommandSchema,
|
||||
NpmRunSchema
|
||||
], 'src/zod_types.ts');
|
||||
};
|
||||
import { generate_interfaces } from '@polymech/commons';
|
||||
import { FileListingOptionsSchema, FileRemovalOptionsSchema, GitCommitSchema, GitRevertSchema, GitSwitchVersionSchema, InvokeToolSchema, ToolListingOptionsSchema, TerminalCommandSchema, ListCommandSchema, NpmRunSchema } from '../zod_schemas.js';
|
||||
export const types = async () => {
|
||||
return generate_interfaces([
|
||||
FileListingOptionsSchema,
|
||||
FileRemovalOptionsSchema,
|
||||
GitCommitSchema,
|
||||
GitRevertSchema,
|
||||
GitSwitchVersionSchema,
|
||||
InvokeToolSchema,
|
||||
ToolListingOptionsSchema,
|
||||
TerminalCommandSchema,
|
||||
ListCommandSchema,
|
||||
NpmRunSchema
|
||||
], 'src/zod_types.ts');
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFdkQsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDZixNQUFNLG1CQUFtQixDQUFBO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRTtJQUM1QixPQUFPLG1CQUFtQixDQUFDO1FBQ3ZCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLFlBQVk7S0FDZixFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDMUIsQ0FBQyxDQUFBIn0=
|
||||
4
packages/ai-tools/dist/constants.d.ts
vendored
4
packages/ai-tools/dist/constants.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
export declare const LOGGER_NAME = "llm-tools-cli";
|
||||
export declare const EXCLUDE_GLOB: string[];
|
||||
export declare const LOGGER_NAME = "llm-tools-cli";
|
||||
export declare const EXCLUDE_GLOB: string[];
|
||||
|
||||
20
packages/ai-tools/dist/constants.js
vendored
20
packages/ai-tools/dist/constants.js
vendored
@ -1,11 +1,11 @@
|
||||
export const LOGGER_NAME = 'llm-tools-cli';
|
||||
export const EXCLUDE_GLOB = [
|
||||
"**/node_modules/**",
|
||||
"**/dist/**",
|
||||
"**/build/**",
|
||||
"**/coverage/**",
|
||||
"*.log",
|
||||
".kbot",
|
||||
".git"
|
||||
];
|
||||
export const LOGGER_NAME = 'llm-tools-cli';
|
||||
export const EXCLUDE_GLOB = [
|
||||
"**/node_modules/**",
|
||||
"**/dist/**",
|
||||
"**/build/**",
|
||||
"**/coverage/**",
|
||||
"*.log",
|
||||
".kbot",
|
||||
".git"
|
||||
];
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFBO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLE9BQU87SUFDUCxNQUFNO0NBQ1QsQ0FBQSJ9
|
||||
68
packages/ai-tools/dist/index.d.ts
vendored
68
packages/ai-tools/dist/index.d.ts
vendored
@ -1,30 +1,38 @@
|
||||
import { z } from 'zod';
|
||||
import { ISettingsParam, Logger } from "tslog";
|
||||
import * as winston from 'winston';
|
||||
import { IKBotTask } from './types.js';
|
||||
export declare let logger: Logger<unknown>;
|
||||
export declare const TLogLevelNameSchema: z.ZodEnum<["silly", "trace", "debug", "info", "warn", "error", "fatal"]>;
|
||||
export type LogLevel = z.infer<typeof TLogLevelNameSchema>;
|
||||
export declare enum LogLevelEx {
|
||||
silly = 0,
|
||||
trace = 1,
|
||||
debug = 2,
|
||||
info = 3,
|
||||
warn = 4,
|
||||
error = 5,
|
||||
fatal = 6
|
||||
}
|
||||
export declare enum ELogTargets {
|
||||
Console = 1,
|
||||
FileText = 2,
|
||||
FileJson = 4,
|
||||
Seq = 8
|
||||
}
|
||||
export declare function createLogger(name: string, options?: ISettingsParam<any>): Logger<unknown>;
|
||||
export declare const defaultLogger: Logger<unknown>;
|
||||
export declare const winstonLogger: (name: string, file: string, targets?: ELogTargets) => winston.Logger;
|
||||
export declare const createFileLogger: (logger: Logger<unknown>, level: number, file: string) => Logger<unknown>;
|
||||
export declare const toolLoggerTS: (name: any, options: IKBotTask) => Logger<unknown>;
|
||||
export declare const toolLogger: (name: any, options?: IKBotTask) => winston.Logger;
|
||||
export * from './types.js';
|
||||
export * from './types_kbot.js';
|
||||
import { z } from 'zod';
|
||||
import { ISettingsParam, Logger } from "tslog";
|
||||
import * as winston from 'winston';
|
||||
import { IKBotTask } from './types.js';
|
||||
export declare let logger: Logger<unknown>;
|
||||
export declare const TLogLevelNameSchema: z.ZodEnum<{
|
||||
silly: "silly";
|
||||
trace: "trace";
|
||||
debug: "debug";
|
||||
info: "info";
|
||||
warn: "warn";
|
||||
error: "error";
|
||||
fatal: "fatal";
|
||||
}>;
|
||||
export type LogLevel = z.infer<typeof TLogLevelNameSchema>;
|
||||
export declare enum LogLevelEx {
|
||||
silly = 0,
|
||||
trace = 1,
|
||||
debug = 2,
|
||||
info = 3,
|
||||
warn = 4,
|
||||
error = 5,
|
||||
fatal = 6
|
||||
}
|
||||
export declare enum ELogTargets {
|
||||
Console = 1,
|
||||
FileText = 2,
|
||||
FileJson = 4,
|
||||
Seq = 8
|
||||
}
|
||||
export declare function createLogger(name: string, options?: ISettingsParam<any>): Logger<unknown>;
|
||||
export declare const defaultLogger: Logger<unknown>;
|
||||
export declare const winstonLogger: (name: string, file: string, targets?: ELogTargets) => winston.Logger;
|
||||
export declare const createFileLogger: (logger: Logger<unknown>, level: number, file: string) => Logger<unknown>;
|
||||
export declare const toolLoggerTS: (name: any, options: IKBotTask) => Logger<unknown>;
|
||||
export declare const toolLogger: (name: any, options?: IKBotTask) => winston.Logger;
|
||||
export * from './types.js';
|
||||
export * from './types_kbot.js';
|
||||
|
||||
326
packages/ai-tools/dist/index.js
vendored
326
packages/ai-tools/dist/index.js
vendored
File diff suppressed because one or more lines are too long
6
packages/ai-tools/dist/lib/tools/fs.d.ts
vendored
6
packages/ai-tools/dist/lib/tools/fs.d.ts
vendored
@ -1,3 +1,3 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const decode_base64: (base64: string) => string;
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const decode_base64: (base64: string) => string;
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
864
packages/ai-tools/dist/lib/tools/fs.js
vendored
864
packages/ai-tools/dist/lib/tools/fs.js
vendored
File diff suppressed because one or more lines are too long
4
packages/ai-tools/dist/lib/tools/git.d.ts
vendored
4
packages/ai-tools/dist/lib/tools/git.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
312
packages/ai-tools/dist/lib/tools/git.js
vendored
312
packages/ai-tools/dist/lib/tools/git.js
vendored
File diff suppressed because one or more lines are too long
16
packages/ai-tools/dist/lib/tools/index.d.ts
vendored
16
packages/ai-tools/dist/lib/tools/index.d.ts
vendored
@ -1,8 +1,8 @@
|
||||
import { RunnableToolFunctionWithParse } from 'openai/lib/RunnableFunction';
|
||||
import { ZodSchema, z } from 'zod';
|
||||
export declare const zodFunction: <T extends object>({ function: fn, schema, description, name, }: {
|
||||
function: (args: T) => Promise<object>;
|
||||
schema: ZodSchema<T, z.ZodTypeDef, T>;
|
||||
description?: string;
|
||||
name?: string;
|
||||
}) => RunnableToolFunctionWithParse<T>;
|
||||
import { RunnableToolFunctionWithParse } from 'openai/lib/RunnableFunction';
|
||||
import { ZodSchema } from 'zod';
|
||||
export declare const zodFunction: <T extends object>({ function: fn, schema, description, name, }: {
|
||||
function: (args: T) => Promise<object>;
|
||||
schema: ZodSchema<T>;
|
||||
description?: string;
|
||||
name?: string;
|
||||
}) => RunnableToolFunctionWithParse<T>;
|
||||
|
||||
36
packages/ai-tools/dist/lib/tools/index.js
vendored
36
packages/ai-tools/dist/lib/tools/index.js
vendored
@ -1,18 +1,18 @@
|
||||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||||
// see https://github.com/openai/openai-node/blob/master/examples/tool-call-helpers-zod.ts
|
||||
export const zodFunction = ({ function: fn, schema, description = '', name, }) => {
|
||||
return {
|
||||
type: 'function',
|
||||
function: {
|
||||
function: fn,
|
||||
name: name ?? fn.name,
|
||||
description: description,
|
||||
parameters: zodToJsonSchema(schema),
|
||||
parse(input) {
|
||||
const obj = JSON.parse(input);
|
||||
return schema.parse(obj);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVwRCwwRkFBMEY7QUFDMUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFFLENBQW1CLEVBQ3pDLFFBQVEsRUFBRSxFQUFFLEVBQ1osTUFBTSxFQUNOLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLElBQUksR0FNTCxFQUFxQyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQWU7WUFDakQsS0FBSyxDQUFDLEtBQWE7Z0JBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMxQixDQUFDO1NBQ0Y7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
|
||||
import { z } from 'zod';
|
||||
// see https://github.com/openai/openai-node/blob/master/examples/tool-call-helpers-zod.ts
|
||||
export const zodFunction = ({ function: fn, schema, description = '', name, }) => {
|
||||
return {
|
||||
type: 'function',
|
||||
function: {
|
||||
function: fn,
|
||||
name: name ?? fn.name,
|
||||
description: description,
|
||||
parameters: z.toJSONSchema(schema),
|
||||
parse(input) {
|
||||
const obj = JSON.parse(input);
|
||||
return schema.parse(obj);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFbEMsMEZBQTBGO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRSxDQUFtQixFQUN6QyxRQUFRLEVBQUUsRUFBRSxFQUNaLE1BQU0sRUFDTixXQUFXLEdBQUcsRUFBRSxFQUNoQixJQUFJLEdBTUwsRUFBcUMsRUFBRTtJQUN0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLEVBQUU7WUFDWixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJO1lBQ3JCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBZTtZQUNoRCxLQUFLLENBQUMsS0FBYTtnQkFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzFCLENBQUM7U0FDRjtLQUNGLENBQUE7QUFDSCxDQUFDLENBQUEifQ==
|
||||
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
170
packages/ai-tools/dist/lib/tools/interact.js
vendored
170
packages/ai-tools/dist/lib/tools/interact.js
vendored
@ -1,85 +1,85 @@
|
||||
import { toolLogger } from '../../index.js';
|
||||
import { input, select } from '@inquirer/prompts';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('interact', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'ask_question',
|
||||
description: 'Ask user a simple question and get response',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
question: {
|
||||
type: 'string',
|
||||
description: 'Question to ask the user'
|
||||
},
|
||||
default: {
|
||||
type: 'string',
|
||||
description: 'Default answer',
|
||||
optional: true
|
||||
}
|
||||
},
|
||||
required: ['question']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const answer = await input({
|
||||
message: params.question,
|
||||
default: params.default
|
||||
});
|
||||
return { response: answer };
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error asking question:', error.message);
|
||||
return null;
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'choose_option',
|
||||
description: 'Ask user to choose from multiple options',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
message: {
|
||||
type: 'string',
|
||||
description: 'Message to show the user'
|
||||
},
|
||||
choices: {
|
||||
type: 'array',
|
||||
items: { type: 'string' },
|
||||
description: 'List of choices'
|
||||
},
|
||||
multiple: {
|
||||
type: 'boolean',
|
||||
description: 'Allow multiple selections',
|
||||
optional: true
|
||||
}
|
||||
},
|
||||
required: ['message', 'choices']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const answer = await select({
|
||||
message: params.message,
|
||||
choices: params.choices
|
||||
});
|
||||
return { response: answer };
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error in choice selection:', error.message);
|
||||
return null;
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2ludGVyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBRSxPQUFrQixFQUFjLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM5QyxPQUFPO1FBQ0g7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFdBQVcsRUFBRSw2Q0FBNkM7Z0JBQzFELFVBQVUsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxVQUFVLEVBQUU7d0JBQ1IsUUFBUSxFQUFFOzRCQUNOLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSwwQkFBMEI7eUJBQzFDO3dCQUNELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsZ0JBQWdCOzRCQUM3QixRQUFRLEVBQUUsSUFBSTt5QkFDakI7cUJBQ0o7b0JBQ0QsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN6QjtnQkFDRCxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQVcsRUFBRSxFQUFFO29CQUM1QixJQUFJO3dCQUNBLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUN0Qjs0QkFDSSxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVE7NEJBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzt5QkFDMUIsQ0FDSixDQUFBO3dCQUNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUE7cUJBQzlCO29CQUFDLE9BQU8sS0FBVSxFQUFFO3dCQUNqQixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDdEQsT0FBTyxJQUFJLENBQUM7cUJBQ2Y7Z0JBQ0wsQ0FBQztnQkFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEI7U0FDeUI7UUFDOUI7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFVBQVUsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxVQUFVLEVBQUU7d0JBQ1IsT0FBTyxFQUFFOzRCQUNMLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSwwQkFBMEI7eUJBQzFDO3dCQUNELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsT0FBTzs0QkFDYixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFOzRCQUN6QixXQUFXLEVBQUUsaUJBQWlCO3lCQUNqQzt3QkFDRCxRQUFRLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFNBQVM7NEJBQ2YsV0FBVyxFQUFFLDJCQUEyQjs0QkFDeEMsUUFBUSxFQUFFLElBQUk7eUJBQ2pCO3FCQUNKO29CQUNELFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQ25DO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUk7d0JBQ0EsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQ3ZCOzRCQUNJLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzs0QkFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3lCQUMxQixDQUNKLENBQUM7d0JBQ0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQTtxQkFDOUI7b0JBQUMsT0FBTyxLQUFVLEVBQUU7d0JBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMxRCxPQUFPLElBQUksQ0FBQztxQkFDZjtnQkFDTCxDQUFDO2dCQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQjtTQUN5QjtLQUNqQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBIn0=
|
||||
import { toolLogger } from '../../index.js';
|
||||
import { input, select } from '@inquirer/prompts';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('interact', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'ask_question',
|
||||
description: 'Ask user a simple question and get response',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
question: {
|
||||
type: 'string',
|
||||
description: 'Question to ask the user'
|
||||
},
|
||||
default: {
|
||||
type: 'string',
|
||||
description: 'Default answer',
|
||||
optional: true
|
||||
}
|
||||
},
|
||||
required: ['question']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const answer = await input({
|
||||
message: params.question,
|
||||
default: params.default
|
||||
});
|
||||
return { response: answer };
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error asking question:', error.message);
|
||||
return null;
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'choose_option',
|
||||
description: 'Ask user to choose from multiple options',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
message: {
|
||||
type: 'string',
|
||||
description: 'Message to show the user'
|
||||
},
|
||||
choices: {
|
||||
type: 'array',
|
||||
items: { type: 'string' },
|
||||
description: 'List of choices'
|
||||
},
|
||||
multiple: {
|
||||
type: 'boolean',
|
||||
description: 'Allow multiple selections',
|
||||
optional: true
|
||||
}
|
||||
},
|
||||
required: ['message', 'choices']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const answer = await select({
|
||||
message: params.message,
|
||||
choices: params.choices
|
||||
});
|
||||
return { response: answer };
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error in choice selection:', error.message);
|
||||
return null;
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2ludGVyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBRSxPQUFrQixFQUFjLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM5QyxPQUFPO1FBQ0g7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFdBQVcsRUFBRSw2Q0FBNkM7Z0JBQzFELFVBQVUsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxVQUFVLEVBQUU7d0JBQ1IsUUFBUSxFQUFFOzRCQUNOLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSwwQkFBMEI7eUJBQzFDO3dCQUNELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsZ0JBQWdCOzRCQUM3QixRQUFRLEVBQUUsSUFBSTt5QkFDakI7cUJBQ0o7b0JBQ0QsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN6QjtnQkFDRCxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQVcsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUM7d0JBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQ3RCOzRCQUNJLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUTs0QkFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3lCQUMxQixDQUNKLENBQUE7d0JBQ0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQTtvQkFDL0IsQ0FBQztvQkFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO3dCQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDdEQsT0FBTyxJQUFJLENBQUM7b0JBQ2hCLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEI7U0FDeUI7UUFDOUI7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFVBQVUsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxVQUFVLEVBQUU7d0JBQ1IsT0FBTyxFQUFFOzRCQUNMLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSwwQkFBMEI7eUJBQzFDO3dCQUNELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsT0FBTzs0QkFDYixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFOzRCQUN6QixXQUFXLEVBQUUsaUJBQWlCO3lCQUNqQzt3QkFDRCxRQUFRLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFNBQVM7NEJBQ2YsV0FBVyxFQUFFLDJCQUEyQjs0QkFDeEMsUUFBUSxFQUFFLElBQUk7eUJBQ2pCO3FCQUNKO29CQUNELFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQ25DO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQzt3QkFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FDdkI7NEJBQ0ksT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPOzRCQUN2QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87eUJBQzFCLENBQ0osQ0FBQzt3QkFDRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFBO29CQUMvQixDQUFDO29CQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7d0JBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMxRCxPQUFPLElBQUksQ0FBQztvQkFDaEIsQ0FBQztnQkFDTCxDQUFDO2dCQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQjtTQUN5QjtLQUNqQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBIn0=
|
||||
8
packages/ai-tools/dist/lib/tools/keyv.d.ts
vendored
8
packages/ai-tools/dist/lib/tools/keyv.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import Keyv from 'keyv';
|
||||
export declare const store: (storePath: string, ns?: string, opts?: any) => Keyv<any>;
|
||||
export declare const get: (key: string, storePath: string, ns?: string, opts?: any) => Promise<any>;
|
||||
export declare const set: (key: string, value: any, storePath: string, ns?: string, opts?: any) => Promise<boolean>;
|
||||
import Keyv from 'keyv';
|
||||
export declare const store: (storePath: string, ns?: string, opts?: any) => Keyv<any>;
|
||||
export declare const get: (key: string, storePath: string, ns?: string, opts?: any) => Promise<any>;
|
||||
export declare const set: (key: string, value: any, storePath: string, ns?: string, opts?: any) => Promise<boolean>;
|
||||
|
||||
38
packages/ai-tools/dist/lib/tools/keyv.js
vendored
38
packages/ai-tools/dist/lib/tools/keyv.js
vendored
@ -1,20 +1,20 @@
|
||||
import * as path from 'path';
|
||||
import Keyv from 'keyv';
|
||||
import { KeyvFile } from 'keyv-file';
|
||||
import { resolve } from '@polymech/commons';
|
||||
export const store = (storePath, ns = 'ns-unknown', opts = {}) => {
|
||||
const keyvFile = new KeyvFile({
|
||||
filename: path.resolve(resolve(storePath)),
|
||||
writeDelay: 100, // ms
|
||||
});
|
||||
return new Keyv({ store: keyvFile, namespace: ns, ...opts });
|
||||
};
|
||||
export const get = async (key, storePath, ns = 'ns-unknown', opts = {}) => {
|
||||
const keyv = store(storePath, ns, opts);
|
||||
return await keyv.get(key);
|
||||
};
|
||||
export const set = async (key, value, storePath, ns = 'ns-unknown', opts = {}) => {
|
||||
const keyv = store(storePath, ns, opts);
|
||||
return await keyv.set(key, value);
|
||||
};
|
||||
import * as path from 'path';
|
||||
import Keyv from 'keyv';
|
||||
import { KeyvFile } from 'keyv-file';
|
||||
import { resolve } from '@polymech/commons';
|
||||
export const store = (storePath, ns = 'ns-unknown', opts = {}) => {
|
||||
const keyvFile = new KeyvFile({
|
||||
filename: path.resolve(resolve(storePath)),
|
||||
writeDelay: 100, // ms
|
||||
});
|
||||
return new Keyv({ store: keyvFile, namespace: ns, ...opts });
|
||||
};
|
||||
export const get = async (key, storePath, ns = 'ns-unknown', opts = {}) => {
|
||||
const keyv = store(storePath, ns, opts);
|
||||
return await keyv.get(key);
|
||||
};
|
||||
export const set = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5di5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMva2V5di50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFM0MsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsU0FBaUIsRUFBRSxLQUFhLFlBQVksRUFBRSxPQUFZLEVBQUUsRUFBRSxFQUFFO0lBQ2xGLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDO1FBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUs7S0FDekIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUE7QUFDaEUsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsU0FBaUIsRUFBRSxLQUFhLFlBQVksRUFBRSxPQUFZLEVBQUUsRUFBRSxFQUFFO0lBQ25HLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzlCLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEtBQVUsRUFBRSxTQUFpQixFQUFFLEtBQWEsWUFBWSxFQUFFLE9BQVksRUFBRSxFQUFFLEVBQUU7SUFDL0csTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdkMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3JDLENBQUMsQ0FBQSJ9
|
||||
4
packages/ai-tools/dist/lib/tools/memory.d.ts
vendored
4
packages/ai-tools/dist/lib/tools/memory.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
620
packages/ai-tools/dist/lib/tools/memory.js
vendored
620
packages/ai-tools/dist/lib/tools/memory.js
vendored
File diff suppressed because one or more lines are too long
4
packages/ai-tools/dist/lib/tools/npm.d.ts
vendored
4
packages/ai-tools/dist/lib/tools/npm.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
300
packages/ai-tools/dist/lib/tools/npm.js
vendored
300
packages/ai-tools/dist/lib/tools/npm.js
vendored
File diff suppressed because one or more lines are too long
32
packages/ai-tools/dist/lib/tools/process.d.ts
vendored
32
packages/ai-tools/dist/lib/tools/process.d.ts
vendored
@ -1,16 +1,16 @@
|
||||
export declare enum STATUS {
|
||||
OK = 0,
|
||||
ERROR = 1,
|
||||
PENDING = 2
|
||||
}
|
||||
export declare class Process {
|
||||
binary: string;
|
||||
cwd: string;
|
||||
args: string;
|
||||
buffer: string[];
|
||||
constructor(options?: any);
|
||||
exec(command: string, args?: string[]): Promise<any>;
|
||||
}
|
||||
export declare class Helper {
|
||||
static run(cwd: any, cmd: string, args: string[], buffer?: string[], debug_stream?: boolean): Promise<any>;
|
||||
}
|
||||
export declare enum STATUS {
|
||||
OK = 0,
|
||||
ERROR = 1,
|
||||
PENDING = 2
|
||||
}
|
||||
export declare class Process {
|
||||
binary: string;
|
||||
cwd: string;
|
||||
args: string;
|
||||
buffer: string[];
|
||||
constructor(options?: any);
|
||||
exec(command: string, args?: string[]): Promise<any>;
|
||||
}
|
||||
export declare class Helper {
|
||||
static run(cwd: any, cmd: string, args: string[], buffer?: string[], debug_stream?: boolean): Promise<any>;
|
||||
}
|
||||
|
||||
252
packages/ai-tools/dist/lib/tools/process.js
vendored
252
packages/ai-tools/dist/lib/tools/process.js
vendored
@ -1,126 +1,126 @@
|
||||
import { logger } from '../../index.js';
|
||||
import { spawn } from 'child_process';
|
||||
export var STATUS;
|
||||
(function (STATUS) {
|
||||
STATUS[STATUS["OK"] = 0] = "OK";
|
||||
STATUS[STATUS["ERROR"] = 1] = "ERROR";
|
||||
STATUS[STATUS["PENDING"] = 2] = "PENDING";
|
||||
})(STATUS = STATUS || (STATUS = {}));
|
||||
const fatalHandler = (message, fn) => {
|
||||
if (message.startsWith('fatal:')) {
|
||||
fn('\t\ ' + message);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const defaultFilter = (message) => {
|
||||
return message.length > 0 &&
|
||||
message !== '\n' &&
|
||||
message !== '\r' &&
|
||||
message !== '\r\n' &&
|
||||
!message.startsWith('Debugger attached') &&
|
||||
!message.includes('NODE_TLS_REJECT_UNAUTHORIZED') &&
|
||||
!message.includes('Waiting for the debugger to disconnect');
|
||||
};
|
||||
const subscribe = (signal, collector = () => { }) => {
|
||||
if (!signal || !signal.on) {
|
||||
return;
|
||||
}
|
||||
signal.on('message', (message) => logger.debug('message', message));
|
||||
signal.on('error', (error) => logger.error('std-error', error));
|
||||
signal.on('data', (data) => {
|
||||
/*
|
||||
const msg = data.toString().replace(ansiRegex(), "")
|
||||
if (!defaultFilter(msg)) {
|
||||
return
|
||||
}
|
||||
collector(msg)*/
|
||||
process.stdout.write(data);
|
||||
});
|
||||
};
|
||||
const merge = (buffer, data) => buffer.concat(data);
|
||||
const hook = (child, resolve, reject, cmd, buffer = []) => {
|
||||
const collector = (data) => { buffer.push(data); };
|
||||
//subscribe(child.stderr, collector)
|
||||
//process.stdin.pipe(child.stdin)
|
||||
debugger;
|
||||
child.on('exit', (code, signal) => {
|
||||
debugger;
|
||||
if (code) {
|
||||
resolve({
|
||||
code: STATUS.ERROR,
|
||||
command: cmd,
|
||||
error: code,
|
||||
messages: buffer
|
||||
});
|
||||
}
|
||||
else {
|
||||
resolve({
|
||||
code: STATUS.OK,
|
||||
command: cmd,
|
||||
messages: buffer
|
||||
});
|
||||
}
|
||||
});
|
||||
return child;
|
||||
};
|
||||
export class Process {
|
||||
binary = '';
|
||||
cwd = '';
|
||||
args = '';
|
||||
buffer = [];
|
||||
constructor(options = {}) {
|
||||
this.binary = options.binary || this.binary;
|
||||
this.cwd = options.cwd || process.cwd();
|
||||
this.buffer = options.buffer || [];
|
||||
}
|
||||
async exec(command, args = []) {
|
||||
args = [command].concat(args);
|
||||
try {
|
||||
let cmd = `${this.binary} ${args.join(' ')}`;
|
||||
/*
|
||||
const p = new Promise<any>((resolve, reject) => {
|
||||
const p = exec(cmd, {
|
||||
cwd: this.cwd
|
||||
})
|
||||
return hook(p, resolve, reject, this.binary + ' ' + args.join(' '), this.buffer)
|
||||
})
|
||||
return p
|
||||
*/
|
||||
try {
|
||||
//stdio: ['pipe', 'pipe', 'pipe'],
|
||||
debugger;
|
||||
const p = new Promise((resolve, reject) => {
|
||||
const cp = spawn(cmd, args, {
|
||||
cwd: this.cwd,
|
||||
shell: true,
|
||||
stdio: 'inherit',
|
||||
env: {
|
||||
...process.env
|
||||
},
|
||||
});
|
||||
return hook(cp, resolve, reject, cmd, this.buffer);
|
||||
});
|
||||
return p;
|
||||
}
|
||||
catch (e) {
|
||||
logger.error('Error executing command', e);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
logger.error('Error executing command', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
export class Helper {
|
||||
static async run(cwd, cmd, args, buffer = [], debug_stream = false) {
|
||||
debug_stream && logger.info(`Run ${cmd} in ${cwd}`, args);
|
||||
const gitProcess = new Process({
|
||||
cwd,
|
||||
binary: cmd,
|
||||
buffer
|
||||
});
|
||||
return gitProcess.exec('', args);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMvcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkMsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbkQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLCtCQUFFLENBQUE7SUFDRixxQ0FBSyxDQUFBO0lBQ0wseUNBQU8sQ0FBQTtBQUNYLENBQUMsRUFKVyxNQUFNLEdBQU4sTUFBTSxLQUFOLE1BQU0sUUFJakI7QUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUF5QixFQUFXLEVBQUU7SUFDekUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzlCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUE7UUFDcEIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBZSxFQUFXLEVBQUU7SUFDL0MsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDckIsT0FBTyxLQUFLLElBQUk7UUFDaEIsT0FBTyxLQUFLLElBQUk7UUFDaEIsT0FBTyxLQUFLLE1BQU07UUFDbEIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQztRQUNqRCxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNuRSxDQUFDLENBQUE7QUFFRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQXVCLEVBQUUsWUFBaUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7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
|
||||
import { logger } from '../../index.js';
|
||||
import { spawn } from 'child_process';
|
||||
export var STATUS;
|
||||
(function (STATUS) {
|
||||
STATUS[STATUS["OK"] = 0] = "OK";
|
||||
STATUS[STATUS["ERROR"] = 1] = "ERROR";
|
||||
STATUS[STATUS["PENDING"] = 2] = "PENDING";
|
||||
})(STATUS || (STATUS = {}));
|
||||
const fatalHandler = (message, fn) => {
|
||||
if (message.startsWith('fatal:')) {
|
||||
fn('\t\ ' + message);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const defaultFilter = (message) => {
|
||||
return message.length > 0 &&
|
||||
message !== '\n' &&
|
||||
message !== '\r' &&
|
||||
message !== '\r\n' &&
|
||||
!message.startsWith('Debugger attached') &&
|
||||
!message.includes('NODE_TLS_REJECT_UNAUTHORIZED') &&
|
||||
!message.includes('Waiting for the debugger to disconnect');
|
||||
};
|
||||
const subscribe = (signal, collector = () => { }) => {
|
||||
if (!signal || !signal.on) {
|
||||
return;
|
||||
}
|
||||
signal.on('message', (message) => logger.debug('message', message));
|
||||
signal.on('error', (error) => logger.error('std-error', error));
|
||||
signal.on('data', (data) => {
|
||||
/*
|
||||
const msg = data.toString().replace(ansiRegex(), "")
|
||||
if (!defaultFilter(msg)) {
|
||||
return
|
||||
}
|
||||
collector(msg)*/
|
||||
process.stdout.write(data);
|
||||
});
|
||||
};
|
||||
const merge = (buffer, data) => buffer.concat(data);
|
||||
const hook = (child, resolve, reject, cmd, buffer = []) => {
|
||||
const collector = (data) => { buffer.push(data); };
|
||||
//subscribe(child.stderr, collector)
|
||||
//process.stdin.pipe(child.stdin)
|
||||
debugger;
|
||||
child.on('exit', (code, signal) => {
|
||||
debugger;
|
||||
if (code) {
|
||||
resolve({
|
||||
code: STATUS.ERROR,
|
||||
command: cmd,
|
||||
error: code,
|
||||
messages: buffer
|
||||
});
|
||||
}
|
||||
else {
|
||||
resolve({
|
||||
code: STATUS.OK,
|
||||
command: cmd,
|
||||
messages: buffer
|
||||
});
|
||||
}
|
||||
});
|
||||
return child;
|
||||
};
|
||||
export class Process {
|
||||
binary = '';
|
||||
cwd = '';
|
||||
args = '';
|
||||
buffer = [];
|
||||
constructor(options = {}) {
|
||||
this.binary = options.binary || this.binary;
|
||||
this.cwd = options.cwd || process.cwd();
|
||||
this.buffer = options.buffer || [];
|
||||
}
|
||||
async exec(command, args = []) {
|
||||
args = [command].concat(args);
|
||||
try {
|
||||
let cmd = `${this.binary} ${args.join(' ')}`;
|
||||
/*
|
||||
const p = new Promise<any>((resolve, reject) => {
|
||||
const p = exec(cmd, {
|
||||
cwd: this.cwd
|
||||
})
|
||||
return hook(p, resolve, reject, this.binary + ' ' + args.join(' '), this.buffer)
|
||||
})
|
||||
return p
|
||||
*/
|
||||
try {
|
||||
//stdio: ['pipe', 'pipe', 'pipe'],
|
||||
debugger;
|
||||
const p = new Promise((resolve, reject) => {
|
||||
const cp = spawn(cmd, args, {
|
||||
cwd: this.cwd,
|
||||
shell: true,
|
||||
stdio: 'inherit',
|
||||
env: {
|
||||
...process.env
|
||||
},
|
||||
});
|
||||
return hook(cp, resolve, reject, cmd, this.buffer);
|
||||
});
|
||||
return p;
|
||||
}
|
||||
catch (e) {
|
||||
logger.error('Error executing command', e);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
logger.error('Error executing command', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
export class Helper {
|
||||
static async run(cwd, cmd, args, buffer = [], debug_stream = false) {
|
||||
debug_stream && logger.info(`Run ${cmd} in ${cwd}`, args);
|
||||
const gitProcess = new Process({
|
||||
cwd,
|
||||
binary: cmd,
|
||||
buffer
|
||||
});
|
||||
return gitProcess.exec('', args);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMvcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkMsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbkQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLCtCQUFFLENBQUE7SUFDRixxQ0FBSyxDQUFBO0lBQ0wseUNBQU8sQ0FBQTtBQUNYLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQXlCLEVBQVcsRUFBRTtJQUN6RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMvQixFQUFFLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWUsRUFBVyxFQUFFO0lBQy9DLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxJQUFJO1FBQ2hCLE9BQU8sS0FBSyxJQUFJO1FBQ2hCLE9BQU8sS0FBSyxNQUFNO1FBQ2xCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUM7UUFDakQsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDbkUsQ0FBQyxDQUFBO0FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUF1QixFQUFFLFlBQWlDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFF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
|
||||
4
packages/ai-tools/dist/lib/tools/search.d.ts
vendored
4
packages/ai-tools/dist/lib/tools/search.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
180
packages/ai-tools/dist/lib/tools/search.js
vendored
180
packages/ai-tools/dist/lib/tools/search.js
vendored
@ -1,90 +1,90 @@
|
||||
import { isArray } from '@polymech/core/primitives';
|
||||
import { CONFIG_DEFAULT } from '@polymech/commons';
|
||||
import { toolLogger } from '../../index.js';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('search', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'google',
|
||||
description: 'Searches Google for the given query',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string' }
|
||||
},
|
||||
required: ['query']
|
||||
},
|
||||
function: async (params) => {
|
||||
const { query } = params;
|
||||
const config = CONFIG_DEFAULT();
|
||||
let apiKey = config?.google?.api_key;
|
||||
let cse = config?.google?.cse;
|
||||
if (!config || !apiKey || !cse) {
|
||||
logger.debug("Config not found in $HOME/.osr/config.json. " +
|
||||
"Optionally, export OSR_CONFIG with the path to the configuration file " +
|
||||
"");
|
||||
return undefined;
|
||||
}
|
||||
const res = await fetch(`https://www.googleapis.com/customsearch/v1?key=${apiKey}&cx=${cse}&q=${encodeURIComponent(query)}`);
|
||||
const data = await res.json();
|
||||
let results = data.items?.map((item) => ({
|
||||
title: item.title,
|
||||
link: item.link,
|
||||
snippet: item.snippet,
|
||||
...item
|
||||
})) ?? [];
|
||||
return JSON.stringify(results);
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'serpapi',
|
||||
description: 'Searches Serpapi (finds locations (engine:google_local), places on the map (engine:google_maps) ) for the given query',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string' },
|
||||
engine: { type: 'string', default: 'google' },
|
||||
},
|
||||
required: ['query']
|
||||
},
|
||||
function: async (params) => {
|
||||
const { query, engine } = params;
|
||||
const config = CONFIG_DEFAULT();
|
||||
let apiKey = config?.serpapi?.key || config?.serpapi?.api_key;
|
||||
if (!config || !apiKey) {
|
||||
logger.debug("Config not found in $HOME/.osr/config.json. " +
|
||||
"Optionally, export OSR_CONFIG with the path to the configuration file " +
|
||||
"");
|
||||
return undefined;
|
||||
}
|
||||
const url = `https://serpapi.com/search?api_key=${apiKey}&engine=${engine || 'google'}&q=${encodeURIComponent(query)}&google_domain=google.com`;
|
||||
const res = await fetch(url);
|
||||
logger.debug(`Searching ${url}`);
|
||||
if (!res.ok) {
|
||||
throw new Error(`HTTP error! status: ${res.status}`);
|
||||
}
|
||||
const data = await res.json();
|
||||
let items = data.organic_results || data.local_results || data.place_results || data.places || data.maps_results || [];
|
||||
if (items && !isArray(items)) {
|
||||
items = [items];
|
||||
}
|
||||
let results = items.map((item) => ({
|
||||
title: item.title,
|
||||
link: item.link,
|
||||
snippet: item.snippet,
|
||||
...item
|
||||
})) ?? [];
|
||||
return JSON.stringify(results);
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0MsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWtCLEVBQWMsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVDLE9BQU87UUFDSDtZQUNJLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUscUNBQXFDO2dCQUNsRCxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7cUJBQzVCO29CQUNELFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDdEI7Z0JBQ0QsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFXLEVBQUUsRUFBRTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQTtvQkFDeEIsTUFBTSxNQUFNLEdBQUcsY0FBYyxFQUFTLENBQUE7b0JBQ3RDLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFBO29CQUNwQyxJQUFJLEdBQUcsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDNUIsTUFBTSxDQUFDLEtB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
|
||||
import { isArray } from '@polymech/core/primitives';
|
||||
import { CONFIG_DEFAULT } from '@polymech/commons';
|
||||
import { toolLogger } from '../../index.js';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('search', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'google',
|
||||
description: 'Searches Google for the given query',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string' }
|
||||
},
|
||||
required: ['query']
|
||||
},
|
||||
function: async (params) => {
|
||||
const { query } = params;
|
||||
const config = CONFIG_DEFAULT();
|
||||
let apiKey = config?.google?.api_key;
|
||||
let cse = config?.google?.cse;
|
||||
if (!config || !apiKey || !cse) {
|
||||
logger.debug("Config not found in $HOME/.osr/config.json. " +
|
||||
"Optionally, export OSR_CONFIG with the path to the configuration file " +
|
||||
"");
|
||||
return undefined;
|
||||
}
|
||||
const res = await fetch(`https://www.googleapis.com/customsearch/v1?key=${apiKey}&cx=${cse}&q=${encodeURIComponent(query)}`);
|
||||
const data = await res.json();
|
||||
let results = data.items?.map((item) => ({
|
||||
title: item.title,
|
||||
link: item.link,
|
||||
snippet: item.snippet,
|
||||
...item
|
||||
})) ?? [];
|
||||
return JSON.stringify(results);
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'serpapi',
|
||||
description: 'Searches Serpapi (finds locations (engine:google_local), places on the map (engine:google_maps) ) for the given query',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string' },
|
||||
engine: { type: 'string', default: 'google' },
|
||||
},
|
||||
required: ['query']
|
||||
},
|
||||
function: async (params) => {
|
||||
const { query, engine } = params;
|
||||
const config = CONFIG_DEFAULT();
|
||||
let apiKey = config?.serpapi?.key || config?.serpapi?.api_key;
|
||||
if (!config || !apiKey) {
|
||||
logger.debug("Config not found in $HOME/.osr/config.json. " +
|
||||
"Optionally, export OSR_CONFIG with the path to the configuration file " +
|
||||
"");
|
||||
return undefined;
|
||||
}
|
||||
const url = `https://serpapi.com/search?api_key=${apiKey}&engine=${engine || 'google'}&q=${encodeURIComponent(query)}&google_domain=google.com`;
|
||||
const res = await fetch(url);
|
||||
logger.debug(`Searching ${url}`);
|
||||
if (!res.ok) {
|
||||
throw new Error(`HTTP error! status: ${res.status}`);
|
||||
}
|
||||
const data = await res.json();
|
||||
let items = data.organic_results || data.local_results || data.place_results || data.places || data.maps_results || [];
|
||||
if (items && !isArray(items)) {
|
||||
items = [items];
|
||||
}
|
||||
let results = items.map((item) => ({
|
||||
title: item.title,
|
||||
link: item.link,
|
||||
snippet: item.snippet,
|
||||
...item
|
||||
})) ?? [];
|
||||
return JSON.stringify(results);
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0MsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWtCLEVBQWMsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVDLE9BQU87UUFDSDtZQUNJLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUscUNBQXFDO2dCQUNsRCxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7cUJBQzVCO29CQUNELFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDdEI7Z0JBQ0QsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFXLEVBQUUsRUFBRTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQTtvQkFDeEIsTUFBTSxNQUFNLEdBQUcsY0FBYyxFQUFTLENBQUE7b0JBQ3RDLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFBO29CQUNwQyxJQUFJLEdBQUcsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUM3QixNQUFNLENB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
|
||||
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
232
packages/ai-tools/dist/lib/tools/terminal.js
vendored
232
packages/ai-tools/dist/lib/tools/terminal.js
vendored
@ -1,116 +1,116 @@
|
||||
import * as path from 'path';
|
||||
import { spawn } from 'child_process';
|
||||
import { toolLogger } from '../../index.js';
|
||||
import { Helper } from './process.js';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('terminal', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'execute_command',
|
||||
description: 'Execute a terminal command and capture output',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
command: {
|
||||
type: 'string',
|
||||
description: 'Command to execute'
|
||||
},
|
||||
args: {
|
||||
type: 'array',
|
||||
items: { type: 'string' },
|
||||
description: 'Command arguments',
|
||||
optional: true
|
||||
},
|
||||
cwd: {
|
||||
type: 'string',
|
||||
description: 'Working directory for command execution',
|
||||
optional: true
|
||||
},
|
||||
background: {
|
||||
type: 'boolean',
|
||||
description: 'Run command in background (non-blocking)',
|
||||
optional: true,
|
||||
default: false
|
||||
},
|
||||
window: {
|
||||
type: 'boolean',
|
||||
description: 'Open command in new terminal window',
|
||||
optional: true,
|
||||
default: false
|
||||
},
|
||||
detached: {
|
||||
type: 'boolean',
|
||||
description: 'Run process detached from parent',
|
||||
optional: true,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
required: ['command']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
debugger;
|
||||
const cwd = params.cwd ? path.join(target, params.cwd) : target;
|
||||
const args = params.args || [];
|
||||
logger.debug(`Tool::Terminal : ExecuteCommand Running '${params.command}' in ${cwd}`, params);
|
||||
if (params.detached) {
|
||||
const isWindows = process.platform === 'win32';
|
||||
if (isWindows) {
|
||||
spawn('cmd', ['/c', 'start', 'cmd', '/k', params.command, ...args], {
|
||||
cwd: cwd,
|
||||
detached: true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
}
|
||||
else {
|
||||
// For macOS/Linux
|
||||
spawn('x-terminal-emulator', ['-e', `${params.command} ${args.join(' ')}`], {
|
||||
cwd: cwd,
|
||||
detached: true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
output: 'Command launched in new window',
|
||||
error: null
|
||||
};
|
||||
}
|
||||
if (params.background || params.detached) {
|
||||
const child = spawn(params.command, args, {
|
||||
cwd: cwd,
|
||||
detached: params.detached === true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
if (params.detached) {
|
||||
child.unref();
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
output: `Process started with PID: ${child.pid}`,
|
||||
error: null
|
||||
};
|
||||
}
|
||||
const cmd = `${params.command} ${args.join(' ')}`.trim();
|
||||
logger.debug(`Tool::ExecuteCommand Running '${cmd}' in ${cwd}`);
|
||||
const collector = [];
|
||||
const ret = await Helper.run(cwd, cmd, [], collector, true);
|
||||
return ret;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error executing command', error);
|
||||
return {
|
||||
success: false,
|
||||
output: null,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL3Rlcm1pbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRTVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFckMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWtCLEVBQWMsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzlDLE9BQU87UUFDSDtZQUNJLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixXQUFXLEVBQUUsK0NBQStDO2dCQUM1RCxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsb0JBQW9CO3lCQUNwQzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTs0QkFDekIsV0FBVyxFQUFFLG1CQUFtQjs0QkFDaEMsUUFBUSxFQUFFLElBQUk7eUJBQ2pCO3dCQUNELEdBQUcsRUFBRTs0QkFDRCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUseUNBQXlDOzRCQUN0RCxRQUFRLEVBQUUsSUFBSTt5QkFDakI7d0JBQ0QsVUFBVSxFQUFFOzRCQUNSLElBQUksRUFBRSxTQUFTOzRCQUNmLFdBQVcsRUFBRSwwQ0FBMEM7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
|
||||
import * as path from 'path';
|
||||
import { spawn } from 'child_process';
|
||||
import { toolLogger } from '../../index.js';
|
||||
import { Helper } from './process.js';
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('terminal', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'execute_command',
|
||||
description: 'Execute a terminal command and capture output',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
command: {
|
||||
type: 'string',
|
||||
description: 'Command to execute'
|
||||
},
|
||||
args: {
|
||||
type: 'array',
|
||||
items: { type: 'string' },
|
||||
description: 'Command arguments',
|
||||
optional: true
|
||||
},
|
||||
cwd: {
|
||||
type: 'string',
|
||||
description: 'Working directory for command execution',
|
||||
optional: true
|
||||
},
|
||||
background: {
|
||||
type: 'boolean',
|
||||
description: 'Run command in background (non-blocking)',
|
||||
optional: true,
|
||||
default: false
|
||||
},
|
||||
window: {
|
||||
type: 'boolean',
|
||||
description: 'Open command in new terminal window',
|
||||
optional: true,
|
||||
default: false
|
||||
},
|
||||
detached: {
|
||||
type: 'boolean',
|
||||
description: 'Run process detached from parent',
|
||||
optional: true,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
required: ['command']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
debugger;
|
||||
const cwd = params.cwd ? path.join(target, params.cwd) : target;
|
||||
const args = params.args || [];
|
||||
logger.debug(`Tool::Terminal : ExecuteCommand Running '${params.command}' in ${cwd}`, params);
|
||||
if (params.detached) {
|
||||
const isWindows = process.platform === 'win32';
|
||||
if (isWindows) {
|
||||
spawn('cmd', ['/c', 'start', 'cmd', '/k', params.command, ...args], {
|
||||
cwd: cwd,
|
||||
detached: true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
}
|
||||
else {
|
||||
// For macOS/Linux
|
||||
spawn('x-terminal-emulator', ['-e', `${params.command} ${args.join(' ')}`], {
|
||||
cwd: cwd,
|
||||
detached: true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
output: 'Command launched in new window',
|
||||
error: null
|
||||
};
|
||||
}
|
||||
if (params.background || params.detached) {
|
||||
const child = spawn(params.command, args, {
|
||||
cwd: cwd,
|
||||
detached: params.detached === true,
|
||||
stdio: 'ignore'
|
||||
});
|
||||
if (params.detached) {
|
||||
child.unref();
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
output: `Process started with PID: ${child.pid}`,
|
||||
error: null
|
||||
};
|
||||
}
|
||||
const cmd = `${params.command} ${args.join(' ')}`.trim();
|
||||
logger.debug(`Tool::ExecuteCommand Running '${cmd}' in ${cwd}`);
|
||||
const collector = [];
|
||||
const ret = await Helper.run(cwd, cmd, [], collector, true);
|
||||
return ret;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error executing command', error);
|
||||
return {
|
||||
success: false,
|
||||
output: null,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL3Rlcm1pbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRTVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFckMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWtCLEVBQWMsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzlDLE9BQU87UUFDSDtZQUNJLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixXQUFXLEVBQUUsK0NBQStDO2dCQUM1RCxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsb0JBQW9CO3lCQUNwQzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTs0QkFDekIsV0FBVyxFQUFFLG1CQUFtQjs0QkFDaEMsUUFBUSxFQUFFLElBQUk7eUJBQ2pCO3dCQUNELEdBQUcsRUFBRTs0QkFDRCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUseUNBQXlDOzRCQUN0RCxRQUFRLEVBQUUsSUFBSTt5QkFDakI7d0JBQ0QsVUFBVSxFQUFFOzRCQUNSLElBQUksRUFBRSxTQUFTOzRCQUNmLFdBQVcsRUFBRSwwQ0FBMEM7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
|
||||
20
packages/ai-tools/dist/lib/tools/tools.d.ts
vendored
20
packages/ai-tools/dist/lib/tools/tools.d.ts
vendored
@ -1,10 +1,10 @@
|
||||
export declare const tools: {
|
||||
fs: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
npm: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
git: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
terminal: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
interact: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
user: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
search: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
memory: (target: string, options: import("../../types.js").IKBotTask) => any[];
|
||||
};
|
||||
export declare const tools: {
|
||||
fs: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
npm: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
git: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
terminal: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
interact: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
user: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
search: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
memory: (target: string, options: import("../../types.js").IKBotTask) => Array<any>;
|
||||
};
|
||||
|
||||
44
packages/ai-tools/dist/lib/tools/tools.js
vendored
44
packages/ai-tools/dist/lib/tools/tools.js
vendored
@ -1,23 +1,23 @@
|
||||
import { tools as fsTools } from './fs.js';
|
||||
import { tools as npmTools } from './npm.js';
|
||||
import { tools as gitTools } from './git.js';
|
||||
import { tools as terminalTools } from './terminal.js';
|
||||
import { tools as interactTools } from './interact.js';
|
||||
import { tools as userTools } from './user.js';
|
||||
import { tools as search } from './search.js';
|
||||
//import { tools as webTools } from './web.js'
|
||||
import { tools as memoryTools } from './memory.js';
|
||||
// import { tools as emailTools } from './email'
|
||||
export const tools = {
|
||||
fs: fsTools,
|
||||
npm: npmTools,
|
||||
git: gitTools,
|
||||
terminal: terminalTools,
|
||||
interact: interactTools,
|
||||
user: userTools,
|
||||
search: search,
|
||||
// web: webTools,
|
||||
memory: memoryTools
|
||||
// email: emailTools
|
||||
};
|
||||
import { tools as fsTools } from './fs.js';
|
||||
import { tools as npmTools } from './npm.js';
|
||||
import { tools as gitTools } from './git.js';
|
||||
import { tools as terminalTools } from './terminal.js';
|
||||
import { tools as interactTools } from './interact.js';
|
||||
import { tools as userTools } from './user.js';
|
||||
import { tools as search } from './search.js';
|
||||
//import { tools as webTools } from './web.js'
|
||||
import { tools as memoryTools } from './memory.js';
|
||||
// import { tools as emailTools } from './email'
|
||||
export const tools = {
|
||||
fs: fsTools,
|
||||
npm: npmTools,
|
||||
git: gitTools,
|
||||
terminal: terminalTools,
|
||||
interact: interactTools,
|
||||
user: userTools,
|
||||
search: search,
|
||||
// web: webTools,
|
||||
memory: memoryTools
|
||||
// email: emailTools
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsS0FBSyxJQUFJLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsRCxnREFBZ0Q7QUFFaEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLEVBQUUsRUFBRSxPQUFPO0lBQ1gsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsUUFBUTtJQUNiLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLElBQUksRUFBRSxTQUFTO0lBQ2YsTUFBTSxFQUFFLE1BQU07SUFDZCxpQkFBaUI7SUFDakIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsb0JBQW9CO0NBQ3ZCLENBQUEifQ==
|
||||
8
packages/ai-tools/dist/lib/tools/user.d.ts
vendored
8
packages/ai-tools/dist/lib/tools/user.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const mime: (file?: string) => any;
|
||||
export declare const fileToBase64: (filePath: string) => string | null;
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const mime: (file?: string) => any;
|
||||
export declare const fileToBase64: (filePath: string) => string | null;
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
156
packages/ai-tools/dist/lib/tools/user.js
vendored
156
packages/ai-tools/dist/lib/tools/user.js
vendored
@ -1,78 +1,78 @@
|
||||
import { parse, join } from 'path';
|
||||
import * as fs from 'fs';
|
||||
import { lookup } from 'mime-types';
|
||||
import { toolLogger } from '../../index.js';
|
||||
export const mime = (file = '') => parse(file).ext ? lookup(file) : null;
|
||||
//const screenshot = require('screenshot-desktop')
|
||||
export const fileToBase64 = (filePath) => {
|
||||
try {
|
||||
const fileBuffer = fs.readFileSync(filePath);
|
||||
const mimeType = lookup(filePath);
|
||||
if (!mimeType) {
|
||||
throw new Error('Unable to determine MIME type.');
|
||||
}
|
||||
const base64Data = fileBuffer.toString('base64');
|
||||
return `data:${mimeType};base64,${base64Data}`;
|
||||
}
|
||||
catch (error) {
|
||||
console.error('fileToBase64 : Error reading file:', error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('user', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'capture_screen',
|
||||
description: 'Capture a screenshot and store it as file (jpg). Returns the path to the file',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
file: { type: 'string' }
|
||||
},
|
||||
required: ['file']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const outputPath = join(target, params.file);
|
||||
const takeScreenshot = async () => {
|
||||
/*
|
||||
return new Promise((resolve, reject) => {
|
||||
screenshot({ format: 'jpg' }).then((img) => {
|
||||
write(outputPath, img)
|
||||
resolve({ success: true, path: outputPath})
|
||||
}).catch(reject)
|
||||
})
|
||||
*/
|
||||
};
|
||||
const { path } = await takeScreenshot();
|
||||
return {
|
||||
"role": "user",
|
||||
"content": [
|
||||
/*
|
||||
{
|
||||
type: "image_url",
|
||||
image_url: {
|
||||
url: fileToBase64( path),
|
||||
}
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error capturing screenshot:', error);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUdsQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRW5DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFaEYsa0RBQWtEO0FBRWxELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWdCLEVBQWlCLEVBQUU7SUFDNUQsSUFBSTtRQUNBLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUE7U0FDcEQ7UUFDRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sUUFBUSxRQUFRLFdBQVcsVUFBVSxFQUFFLENBQUE7S0FDakQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDMUQsT0FBTyxJQUFJLENBQUE7S0FDZDtBQUNMLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBRSxPQUFrQixFQUFjLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxQyxPQUFPO1FBQ0g7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsV0FBVyxFQUFFLCtFQUErRTtnQkFDNUYsVUFBVSxFQUFFO29CQUNSLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDUixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3FCQUMzQjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ3JCO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUk7d0JBQ0EsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBQzVDLE1BQU0sY0FBYyxHQUFHLEtBQUssSUFBbUIsRUFBRTs0QkFDN0M7Ozs7Ozs7OEJBT0U7d0JBQ04sQ0FBQyxDQUFBO3dCQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLGNBQWMsRUFBRSxDQUFBO3dCQUN2QyxPQUFPOzRCQUNILE1BQU0sRUFBRSxNQUFNOzRCQUNkLFNBQVMsRUFDUDs0QkFDRTs7Ozs7Ozs4QkFPRTs2QkFDSDt5QkFDSixDQUFBO3FCQUNOO29CQUFDLE9BQU8sS0FBVSxFQUFFO3dCQUNqQixNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxPQUFPOzRCQUNILE9BQU8sRUFBRSxLQUFLOzRCQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTzt5QkFDdkIsQ0FBQztxQkFDTDtnQkFDTCxDQUFDO2dCQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQjtTQUN5QjtLQUNqQyxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=
|
||||
import { parse, join } from 'path';
|
||||
import * as fs from 'fs';
|
||||
import { lookup } from 'mime-types';
|
||||
import { toolLogger } from '../../index.js';
|
||||
export const mime = (file = '') => parse(file).ext ? lookup(file) : null;
|
||||
//const screenshot = require('screenshot-desktop')
|
||||
export const fileToBase64 = (filePath) => {
|
||||
try {
|
||||
const fileBuffer = fs.readFileSync(filePath);
|
||||
const mimeType = lookup(filePath);
|
||||
if (!mimeType) {
|
||||
throw new Error('Unable to determine MIME type.');
|
||||
}
|
||||
const base64Data = fileBuffer.toString('base64');
|
||||
return `data:${mimeType};base64,${base64Data}`;
|
||||
}
|
||||
catch (error) {
|
||||
console.error('fileToBase64 : Error reading file:', error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('user', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'capture_screen',
|
||||
description: 'Capture a screenshot and store it as file (jpg). Returns the path to the file',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
file: { type: 'string' }
|
||||
},
|
||||
required: ['file']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
const outputPath = join(target, params.file);
|
||||
const takeScreenshot = async () => {
|
||||
/*
|
||||
return new Promise((resolve, reject) => {
|
||||
screenshot({ format: 'jpg' }).then((img) => {
|
||||
write(outputPath, img)
|
||||
resolve({ success: true, path: outputPath})
|
||||
}).catch(reject)
|
||||
})
|
||||
*/
|
||||
};
|
||||
const { path } = await takeScreenshot();
|
||||
return {
|
||||
"role": "user",
|
||||
"content": [
|
||||
/*
|
||||
{
|
||||
type: "image_url",
|
||||
image_url: {
|
||||
url: fileToBase64( path),
|
||||
}
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error capturing screenshot:', error);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9vbHMvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUdsQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRW5DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFaEYsa0RBQWtEO0FBRWxELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWdCLEVBQWlCLEVBQUU7SUFDNUQsSUFBSSxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sUUFBUSxRQUFRLFdBQVcsVUFBVSxFQUFFLENBQUE7SUFDbEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzFELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBRSxPQUFrQixFQUFjLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxQyxPQUFPO1FBQ0g7WUFDSSxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsV0FBVyxFQUFFLCtFQUErRTtnQkFDNUYsVUFBVSxFQUFFO29CQUNSLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDUixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3FCQUMzQjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ3JCO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQzt3QkFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDNUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFtQixFQUFFOzRCQUM3Qzs7Ozs7Ozs4QkFPRTt3QkFDTixDQUFDLENBQUE7d0JBQ0QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sY0FBYyxFQUFFLENBQUE7d0JBQ3ZDLE9BQU87NEJBQ0gsTUFBTSxFQUFFLE1BQU07NEJBQ2QsU0FBUyxFQUNQOzRCQUNFOzs7Ozs7OzhCQU9FOzZCQUNIO3lCQUNKLENBQUE7b0JBQ1AsQ0FBQztvQkFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO3dCQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxPQUFPOzRCQUNILE9BQU8sRUFBRSxLQUFLOzRCQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTzt5QkFDdkIsQ0FBQztvQkFDTixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCO1NBQ3lCO0tBQ2pDLENBQUM7QUFDTixDQUFDLENBQUMifQ==
|
||||
4
packages/ai-tools/dist/lib/tools/web.d.ts
vendored
4
packages/ai-tools/dist/lib/tools/web.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
import { IKBotTask } from '../../types.js';
|
||||
export declare const tools: (target: string, options: IKBotTask) => Array<any>;
|
||||
|
||||
198
packages/ai-tools/dist/lib/tools/web.js
vendored
198
packages/ai-tools/dist/lib/tools/web.js
vendored
@ -1,99 +1,99 @@
|
||||
import puppeteer from 'puppeteer';
|
||||
import TurndownService from 'turndown';
|
||||
import { toolLogger } from '../../index.js';
|
||||
const turndown = new TurndownService();
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('web', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'browse_page',
|
||||
description: 'Browse a webpage and return its content as markdown, all links, images and pages main image',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
url: {
|
||||
type: 'string',
|
||||
description: 'URL of the webpage to browse'
|
||||
}
|
||||
},
|
||||
required: ['url']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
logger.debug(`Tool::BrowsePage Browsing ${params.url}`);
|
||||
const browser = await puppeteer.launch({
|
||||
headless: true,
|
||||
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
||||
});
|
||||
try {
|
||||
const page = await browser.newPage();
|
||||
logger.debug(`Tool::Web::BrowsePage Opening page ${params.url}`);
|
||||
await page.goto(params.url, {
|
||||
waitUntil: 'networkidle2'
|
||||
});
|
||||
const pageData = await page.evaluate((selector) => {
|
||||
const elementsToRemove = document.querySelectorAll('script, style, link, meta, noscript, iframe, [style*="display:none"],[style*="display: none"], .hidden');
|
||||
elementsToRemove.forEach(el => el.remove());
|
||||
const links = Array.from(document.querySelectorAll('a'))
|
||||
.map(a => ({
|
||||
text: a.textContent?.trim() || '',
|
||||
href: a.href
|
||||
}))
|
||||
.filter(link => link.href && link.href.startsWith('http'))
|
||||
.slice(0, 20);
|
||||
const images = Array.from(document.querySelectorAll('img'))
|
||||
.map(img => ({
|
||||
src: img.src,
|
||||
alt: img.alt || '',
|
||||
width: img.width,
|
||||
height: img.height
|
||||
}))
|
||||
.filter(img => img.src && img.src.startsWith('http'))
|
||||
.slice(0, 20);
|
||||
const mainImage = document.querySelector('meta[property="og:image"]')?.getAttribute('content') ||
|
||||
document.querySelector('meta[name="og:image"]')?.getAttribute('content');
|
||||
let content;
|
||||
const body = document.body;
|
||||
content = body ? body.innerHTML : '';
|
||||
return {
|
||||
content,
|
||||
links,
|
||||
images,
|
||||
ogImage: mainImage
|
||||
};
|
||||
}, null);
|
||||
const markdown = turndown.turndown(pageData.content);
|
||||
await browser.close();
|
||||
const ret = {
|
||||
success: true,
|
||||
markdown: markdown,
|
||||
links: pageData.links,
|
||||
images: pageData.images,
|
||||
mainImage: pageData.ogImage,
|
||||
url: params.url
|
||||
};
|
||||
return ret;
|
||||
}
|
||||
catch (error) {
|
||||
logger.debug('Error browsing page:', error.message, error);
|
||||
await browser.close();
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
logger.debug('Error browsing page:', error.message);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message,
|
||||
url: params.url
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy93ZWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLFVBQVUsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQUUsT0FBa0IsRUFBYyxFQUFFO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekMsT0FBTztRQUNIO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFO2dCQUNOLElBQUksRUFBRSxhQUFhO2dCQUNuQixXQUFXLEVBQUUsNkZBQTZGO2dCQUMxRyxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLEdBQUcsRUFBRTs0QkFDRCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsOEJBQThCO3lCQUM5QztxQkFDSjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7aUJBQ3BCO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUk7d0JBQ0EsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ3hELE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQzs0QkFDbkMsUUFBUSxFQUFFLElBQUk7NEJBQ2QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDO3lCQUNyRCxDQUFDLENBQUE7d0JBRUYsSUFBSTs0QkFDQSxN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
|
||||
import puppeteer from 'puppeteer';
|
||||
import TurndownService from 'turndown';
|
||||
import { toolLogger } from '../../index.js';
|
||||
const turndown = new TurndownService();
|
||||
export const tools = (target, options) => {
|
||||
const logger = toolLogger('web', options);
|
||||
return [
|
||||
{
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'browse_page',
|
||||
description: 'Browse a webpage and return its content as markdown, all links, images and pages main image',
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
url: {
|
||||
type: 'string',
|
||||
description: 'URL of the webpage to browse'
|
||||
}
|
||||
},
|
||||
required: ['url']
|
||||
},
|
||||
function: async (params) => {
|
||||
try {
|
||||
logger.debug(`Tool::BrowsePage Browsing ${params.url}`);
|
||||
const browser = await puppeteer.launch({
|
||||
headless: true,
|
||||
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
||||
});
|
||||
try {
|
||||
const page = await browser.newPage();
|
||||
logger.debug(`Tool::Web::BrowsePage Opening page ${params.url}`);
|
||||
await page.goto(params.url, {
|
||||
waitUntil: 'networkidle2'
|
||||
});
|
||||
const pageData = await page.evaluate((selector) => {
|
||||
const elementsToRemove = document.querySelectorAll('script, style, link, meta, noscript, iframe, [style*="display:none"],[style*="display: none"], .hidden');
|
||||
elementsToRemove.forEach(el => el.remove());
|
||||
const links = Array.from(document.querySelectorAll('a'))
|
||||
.map(a => ({
|
||||
text: a.textContent?.trim() || '',
|
||||
href: a.href
|
||||
}))
|
||||
.filter(link => link.href && link.href.startsWith('http'))
|
||||
.slice(0, 20);
|
||||
const images = Array.from(document.querySelectorAll('img'))
|
||||
.map(img => ({
|
||||
src: img.src,
|
||||
alt: img.alt || '',
|
||||
width: img.width,
|
||||
height: img.height
|
||||
}))
|
||||
.filter(img => img.src && img.src.startsWith('http'))
|
||||
.slice(0, 20);
|
||||
const mainImage = document.querySelector('meta[property="og:image"]')?.getAttribute('content') ||
|
||||
document.querySelector('meta[name="og:image"]')?.getAttribute('content');
|
||||
let content;
|
||||
const body = document.body;
|
||||
content = body ? body.innerHTML : '';
|
||||
return {
|
||||
content,
|
||||
links,
|
||||
images,
|
||||
ogImage: mainImage
|
||||
};
|
||||
}, null);
|
||||
const markdown = turndown.turndown(pageData.content);
|
||||
await browser.close();
|
||||
const ret = {
|
||||
success: true,
|
||||
markdown: markdown,
|
||||
links: pageData.links,
|
||||
images: pageData.images,
|
||||
mainImage: pageData.ogImage,
|
||||
url: params.url
|
||||
};
|
||||
return ret;
|
||||
}
|
||||
catch (error) {
|
||||
logger.debug('Error browsing page:', error.message, error);
|
||||
await browser.close();
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
logger.debug('Error browsing page:', error.message);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message,
|
||||
url: params.url
|
||||
};
|
||||
}
|
||||
},
|
||||
parse: JSON.parse
|
||||
}
|
||||
}
|
||||
];
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29scy93ZWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLFVBQVUsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQUUsT0FBa0IsRUFBYyxFQUFFO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekMsT0FBTztRQUNIO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFO2dCQUNOLElBQUksRUFBRSxhQUFhO2dCQUNuQixXQUFXLEVBQUUsNkZBQTZGO2dCQUMxRyxVQUFVLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNSLEdBQUcsRUFBRTs0QkFDRCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsOEJBQThCO3lCQUM5QztxQkFDSjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7aUJBQ3BCO2dCQUNELFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBVyxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQzt3QkFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzt3QkFDeEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDOzRCQUNuQyxRQUFRLEVBQUUsSUFBSTs0QkFDZCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUM7eUJBQ3JELENBQUMsQ0FBQTt3QkFFRixJQUFJLENB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
|
||||
4
packages/ai-tools/dist/main.d.ts
vendored
4
packages/ai-tools/dist/main.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
#!/usr/bin/env node
|
||||
export {};
|
||||
#!/usr/bin/env node
|
||||
export {};
|
||||
|
||||
34
packages/ai-tools/dist/main.js
vendored
34
packages/ai-tools/dist/main.js
vendored
@ -1,17 +1,17 @@
|
||||
#!/usr/bin/env node
|
||||
import { commands } from './commands/index.js';
|
||||
import { logger } from './index.js';
|
||||
import cli from 'yargs';
|
||||
import { hideBin } from 'yargs/helpers';
|
||||
const yargs = cli(hideBin(process.argv));
|
||||
async function main() {
|
||||
try {
|
||||
const argv = await commands(yargs).argv;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error executing command:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
main();
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUE7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRXhDLEtBQUssVUFBVSxJQUFJO0lBQ2YsSUFBSTtRQUNBLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQTtLQUMxQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ1osTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0FBQ0wsQ0FBQztBQUNELElBQUksRUFBRSxDQUFBIn0=
|
||||
#!/usr/bin/env node
|
||||
import { commands } from './commands/index.js';
|
||||
import { logger } from './index.js';
|
||||
import cli from 'yargs';
|
||||
import { hideBin } from 'yargs/helpers';
|
||||
const yargs = cli(hideBin(process.argv));
|
||||
async function main() {
|
||||
try {
|
||||
const argv = await commands(yargs).argv;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error executing command:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
main();
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUE7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRXhDLEtBQUssVUFBVSxJQUFJO0lBQ2YsSUFBSSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzNDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDO0FBQ0QsSUFBSSxFQUFFLENBQUEifQ==
|
||||
47
packages/ai-tools/dist/types.d.ts
vendored
47
packages/ai-tools/dist/types.d.ts
vendored
@ -1,23 +1,24 @@
|
||||
import { ChatCompletion, ChatCompletionMessage, ChatCompletionMessageParam } from 'openai/resources';
|
||||
import { IKBotOptions } from './types_kbot.js';
|
||||
import OpenAI from 'openai';
|
||||
import { Logger, ILogObj } from 'tslog';
|
||||
import { RunnableFunctionWithParse } from 'openai/lib/RunnableFunction';
|
||||
export type onToolBefore = (ctx: RunnableFunctionWithParse<any>, args: any) => Promise<any>;
|
||||
export type onToolAfter = (ctx: RunnableFunctionWithParse<any>, args: any, result?: any) => Promise<any>;
|
||||
export interface ICollector {
|
||||
onMessage: (message: ChatCompletionMessageParam) => void;
|
||||
onToolCall: (tool: ChatCompletionMessage.FunctionCall) => void;
|
||||
onFunctionCallResult: (content: string) => void;
|
||||
onChatCompletion: (completion: ChatCompletion) => void;
|
||||
onContent: (content: string) => void;
|
||||
onTool: (category: string, name: string, args: any, result?: any) => void;
|
||||
onToolBefore: onToolBefore;
|
||||
onToolAfter: onToolAfter;
|
||||
}
|
||||
export interface IKBotTask extends IKBotOptions {
|
||||
client?: OpenAI;
|
||||
collector?: ICollector;
|
||||
onRun?: (ctx: IKBotTask) => Promise<IKBotTask>;
|
||||
logger?: Logger<ILogObj>;
|
||||
}
|
||||
import { ChatCompletion, ChatCompletionMessage, ChatCompletionMessageParam } from 'openai/resources';
|
||||
import { IKBotOptions } from './types_kbot.js';
|
||||
import OpenAI from 'openai';
|
||||
import { Logger, ILogObj } from 'tslog';
|
||||
import { RunnableFunctionWithParse } from 'openai/lib/RunnableFunction';
|
||||
export type onToolBefore = (ctx: RunnableFunctionWithParse<any>, args: any) => Promise<any>;
|
||||
export type onToolAfter = (ctx: RunnableFunctionWithParse<any>, args: any, result?: any) => Promise<any>;
|
||||
export interface ICollector {
|
||||
onMessage: (message: ChatCompletionMessageParam) => void;
|
||||
onToolCall: (tool: ChatCompletionMessage.FunctionCall) => void;
|
||||
onFunctionCallResult: (content: string) => void;
|
||||
onChatCompletion: (completion: ChatCompletion) => void;
|
||||
onContent: (content: string) => void;
|
||||
onTool: (category: string, name: string, args: any, result?: any) => void;
|
||||
onToolBefore: onToolBefore;
|
||||
onToolAfter: onToolAfter;
|
||||
}
|
||||
export interface IKBotTask extends IKBotOptions {
|
||||
client?: OpenAI;
|
||||
collector?: ICollector;
|
||||
onRun?: (ctx: IKBotTask) => Promise<IKBotTask>;
|
||||
logger?: Logger<ILogObj>;
|
||||
customTools?: any[];
|
||||
}
|
||||
|
||||
2
packages/ai-tools/dist/types.js
vendored
2
packages/ai-tools/dist/types.js
vendored
@ -1,2 +1,2 @@
|
||||
export {};
|
||||
export {};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
||||
1130
packages/ai-tools/dist/types_kbot.d.ts
vendored
1130
packages/ai-tools/dist/types_kbot.d.ts
vendored
File diff suppressed because it is too large
Load Diff
2
packages/ai-tools/dist/types_kbot.js
vendored
2
packages/ai-tools/dist/types_kbot.js
vendored
@ -1,2 +1,2 @@
|
||||
export {};
|
||||
export {};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNfa2JvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlc19rYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
||||
206
packages/ai-tools/dist/zod_schemas.d.ts
vendored
206
packages/ai-tools/dist/zod_schemas.d.ts
vendored
@ -1,145 +1,61 @@
|
||||
import { z } from 'zod';
|
||||
/** Schema for listing files in a directory */
|
||||
export declare const FileListingOptionsSchema: z.ZodObject<{
|
||||
directory: z.ZodString;
|
||||
pattern: z.ZodOptional<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
directory?: string;
|
||||
pattern?: string;
|
||||
}, {
|
||||
directory?: string;
|
||||
pattern?: string;
|
||||
}>;
|
||||
/** Schema for file removal operations */
|
||||
export declare const FileRemovalOptionsSchema: z.ZodObject<{
|
||||
path: z.ZodString;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
path?: string;
|
||||
}, {
|
||||
path?: string;
|
||||
}>;
|
||||
/** Schema for git commit operations */
|
||||
export declare const GitCommitSchema: z.ZodObject<{
|
||||
files: z.ZodArray<z.ZodString, "many">;
|
||||
message: z.ZodString;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
message?: string;
|
||||
files?: string[];
|
||||
}, {
|
||||
message?: string;
|
||||
files?: string[];
|
||||
}>;
|
||||
/** Schema for git revert operations */
|
||||
export declare const GitRevertSchema: z.ZodObject<{
|
||||
files: z.ZodArray<z.ZodString, "many">;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
files?: string[];
|
||||
}, {
|
||||
files?: string[];
|
||||
}>;
|
||||
/** Schema for git version switch operations */
|
||||
export declare const GitSwitchVersionSchema: z.ZodObject<{
|
||||
branch: z.ZodString;
|
||||
remote: z.ZodDefault<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
branch?: string;
|
||||
remote?: string;
|
||||
}, {
|
||||
branch?: string;
|
||||
remote?: string;
|
||||
}>;
|
||||
/** Schema for git raw file retrieval */
|
||||
export declare const GitRawFileSchema: z.ZodEffects<z.ZodObject<{
|
||||
url: z.ZodOptional<z.ZodString>;
|
||||
repo: z.ZodOptional<z.ZodString>;
|
||||
path: z.ZodOptional<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
path?: string;
|
||||
url?: string;
|
||||
repo?: string;
|
||||
}, {
|
||||
path?: string;
|
||||
url?: string;
|
||||
repo?: string;
|
||||
}>, {
|
||||
path?: string;
|
||||
url?: string;
|
||||
repo?: string;
|
||||
}, {
|
||||
path?: string;
|
||||
url?: string;
|
||||
repo?: string;
|
||||
}>;
|
||||
/** Schema for npm run command */
|
||||
export declare const NpmRunSchema: z.ZodObject<{
|
||||
command: z.ZodString;
|
||||
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
command?: string;
|
||||
args?: string[];
|
||||
}, {
|
||||
command?: string;
|
||||
args?: string[];
|
||||
}>;
|
||||
/** Schema for terminal command execution */
|
||||
export declare const TerminalCommandSchema: z.ZodObject<{
|
||||
command: z.ZodString;
|
||||
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
||||
cwd: z.ZodOptional<z.ZodString>;
|
||||
background: z.ZodOptional<z.ZodBoolean>;
|
||||
window: z.ZodOptional<z.ZodBoolean>;
|
||||
detached: z.ZodOptional<z.ZodBoolean>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
command?: string;
|
||||
args?: string[];
|
||||
cwd?: string;
|
||||
background?: boolean;
|
||||
window?: boolean;
|
||||
detached?: boolean;
|
||||
}, {
|
||||
command?: string;
|
||||
args?: string[];
|
||||
cwd?: string;
|
||||
background?: boolean;
|
||||
window?: boolean;
|
||||
detached?: boolean;
|
||||
}>;
|
||||
/** Schema for tool invocation parameters */
|
||||
export declare const InvokeToolSchema: z.ZodObject<{
|
||||
tools: z.ZodString;
|
||||
function: z.ZodString;
|
||||
target: z.ZodDefault<z.ZodString>;
|
||||
params: z.ZodOptional<z.ZodString>;
|
||||
output: z.ZodOptional<z.ZodString>;
|
||||
env_key: z.ZodOptional<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
function?: string;
|
||||
tools?: string;
|
||||
params?: string;
|
||||
target?: string;
|
||||
output?: string;
|
||||
env_key?: string;
|
||||
}, {
|
||||
function?: string;
|
||||
tools?: string;
|
||||
params?: string;
|
||||
target?: string;
|
||||
output?: string;
|
||||
env_key?: string;
|
||||
}>;
|
||||
/** Schema for list command options */
|
||||
export declare const ListCommandSchema: z.ZodObject<{
|
||||
output: z.ZodDefault<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
output?: string;
|
||||
}, {
|
||||
output?: string;
|
||||
}>;
|
||||
/** Schema for tool listing options */
|
||||
export declare const ToolListingOptionsSchema: z.ZodObject<{
|
||||
output: z.ZodDefault<z.ZodString>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
output?: string;
|
||||
}, {
|
||||
output?: string;
|
||||
}>;
|
||||
import { z } from 'zod';
|
||||
/** Schema for listing files in a directory */
|
||||
export declare const FileListingOptionsSchema: z.ZodObject<{
|
||||
directory: z.ZodString;
|
||||
pattern: z.ZodOptional<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for file removal operations */
|
||||
export declare const FileRemovalOptionsSchema: z.ZodObject<{
|
||||
path: z.ZodString;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for git commit operations */
|
||||
export declare const GitCommitSchema: z.ZodObject<{
|
||||
files: z.ZodArray<z.ZodString>;
|
||||
message: z.ZodString;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for git revert operations */
|
||||
export declare const GitRevertSchema: z.ZodObject<{
|
||||
files: z.ZodArray<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for git version switch operations */
|
||||
export declare const GitSwitchVersionSchema: z.ZodObject<{
|
||||
branch: z.ZodString;
|
||||
remote: z.ZodDefault<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for git raw file retrieval */
|
||||
export declare const GitRawFileSchema: z.ZodObject<{
|
||||
url: z.ZodOptional<z.ZodString>;
|
||||
repo: z.ZodOptional<z.ZodString>;
|
||||
path: z.ZodOptional<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for npm run command */
|
||||
export declare const NpmRunSchema: z.ZodObject<{
|
||||
command: z.ZodString;
|
||||
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for terminal command execution */
|
||||
export declare const TerminalCommandSchema: z.ZodObject<{
|
||||
command: z.ZodString;
|
||||
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
||||
cwd: z.ZodOptional<z.ZodString>;
|
||||
background: z.ZodOptional<z.ZodBoolean>;
|
||||
window: z.ZodOptional<z.ZodBoolean>;
|
||||
detached: z.ZodOptional<z.ZodBoolean>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for tool invocation parameters */
|
||||
export declare const InvokeToolSchema: z.ZodObject<{
|
||||
tools: z.ZodString;
|
||||
function: z.ZodString;
|
||||
target: z.ZodDefault<z.ZodString>;
|
||||
params: z.ZodOptional<z.ZodString>;
|
||||
output: z.ZodOptional<z.ZodString>;
|
||||
env_key: z.ZodOptional<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for list command options */
|
||||
export declare const ListCommandSchema: z.ZodObject<{
|
||||
output: z.ZodDefault<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
/** Schema for tool listing options */
|
||||
export declare const ToolListingOptionsSchema: z.ZodObject<{
|
||||
output: z.ZodDefault<z.ZodString>;
|
||||
}, z.core.$strip>;
|
||||
|
||||
122
packages/ai-tools/dist/zod_schemas.js
vendored
122
packages/ai-tools/dist/zod_schemas.js
vendored
@ -1,62 +1,62 @@
|
||||
import { z } from 'zod';
|
||||
/** Schema for listing files in a directory */
|
||||
export const FileListingOptionsSchema = z.object({
|
||||
directory: z.string().describe('Directory path to list files from'),
|
||||
pattern: z.string().optional().describe('Glob pattern for filtering files')
|
||||
}).describe('IFileListingOptions');
|
||||
/** Schema for file removal operations */
|
||||
export const FileRemovalOptionsSchema = z.object({
|
||||
path: z.string().describe('Path of the file to remove')
|
||||
}).describe('IFileRemovalOptions');
|
||||
/** Schema for git commit operations */
|
||||
export const GitCommitSchema = z.object({
|
||||
files: z.array(z.string()).describe('Files to commit'),
|
||||
message: z.string().describe('Commit message')
|
||||
}).describe('IGitCommitOptions');
|
||||
/** Schema for git revert operations */
|
||||
export const GitRevertSchema = z.object({
|
||||
files: z.array(z.string()).describe('Files to revert')
|
||||
}).describe('IGitRevertOptions');
|
||||
/** Schema for git version switch operations */
|
||||
export const GitSwitchVersionSchema = z.object({
|
||||
branch: z.string().describe('Branch name to switch to'),
|
||||
remote: z.string().default('origin').describe('Remote name')
|
||||
}).describe('IGitSwitchVersionOptions');
|
||||
/** Schema for git raw file retrieval */
|
||||
export const GitRawFileSchema = z.object({
|
||||
url: z.string().optional().describe('Full GitHub raw URL'),
|
||||
repo: z.string().optional().describe('Repository in format owner/repo'),
|
||||
path: z.string().optional().describe('File path within repository')
|
||||
}).refine(data => (data.url) || (data.repo && data.path), 'Either url or both repo and path must be provided').describe('IGitRawFileOptions');
|
||||
/** Schema for npm run command */
|
||||
export const NpmRunSchema = z.object({
|
||||
command: z.string().describe('Command to run (e.g. install, test, etc)'),
|
||||
args: z.array(z.string()).optional().describe('Additional arguments for the command')
|
||||
}).describe('INpmRunOptions');
|
||||
/** Schema for terminal command execution */
|
||||
export const TerminalCommandSchema = z.object({
|
||||
command: z.string().describe('Command to execute'),
|
||||
args: z.array(z.string()).optional().describe('Command arguments'),
|
||||
cwd: z.string().optional().describe('Working directory for command execution'),
|
||||
background: z.boolean().optional().describe('Run command in background (non-blocking)'),
|
||||
window: z.boolean().optional().describe('Open command in new terminal window'),
|
||||
detached: z.boolean().optional().describe('Run process detached from parent')
|
||||
}).describe('ITerminalCommandOptions');
|
||||
/** Schema for tool invocation parameters */
|
||||
export const InvokeToolSchema = z.object({
|
||||
tools: z.string().describe('Tool category to use (fs, npm, git, terminal)'),
|
||||
function: z.string().describe('Function name to invoke'),
|
||||
target: z.string().default(process.cwd()).describe('Target directory'),
|
||||
params: z.string().optional().describe('JSON string of parameters'),
|
||||
output: z.string().optional().describe('Path to write the output to'),
|
||||
env_key: z.string().optional().describe('Environment configuration key')
|
||||
}).describe('IInvokeToolOptions');
|
||||
/** Schema for list command options */
|
||||
export const ListCommandSchema = z.object({
|
||||
output: z.string().default("./llm-tools.json").describe('Output file path for tools list')
|
||||
}).describe('IListCommandOptions');
|
||||
/** Schema for tool listing options */
|
||||
export const ToolListingOptionsSchema = z.object({
|
||||
output: z.string().default('./llm-tools.json').describe('Path to write the output to')
|
||||
}).describe('IToolListingOptions');
|
||||
import { z } from 'zod';
|
||||
/** Schema for listing files in a directory */
|
||||
export const FileListingOptionsSchema = z.object({
|
||||
directory: z.string().describe('Directory path to list files from'),
|
||||
pattern: z.string().optional().describe('Glob pattern for filtering files')
|
||||
}).describe('IFileListingOptions');
|
||||
/** Schema for file removal operations */
|
||||
export const FileRemovalOptionsSchema = z.object({
|
||||
path: z.string().describe('Path of the file to remove')
|
||||
}).describe('IFileRemovalOptions');
|
||||
/** Schema for git commit operations */
|
||||
export const GitCommitSchema = z.object({
|
||||
files: z.array(z.string()).describe('Files to commit'),
|
||||
message: z.string().describe('Commit message')
|
||||
}).describe('IGitCommitOptions');
|
||||
/** Schema for git revert operations */
|
||||
export const GitRevertSchema = z.object({
|
||||
files: z.array(z.string()).describe('Files to revert')
|
||||
}).describe('IGitRevertOptions');
|
||||
/** Schema for git version switch operations */
|
||||
export const GitSwitchVersionSchema = z.object({
|
||||
branch: z.string().describe('Branch name to switch to'),
|
||||
remote: z.string().default('origin').describe('Remote name')
|
||||
}).describe('IGitSwitchVersionOptions');
|
||||
/** Schema for git raw file retrieval */
|
||||
export const GitRawFileSchema = z.object({
|
||||
url: z.string().optional().describe('Full GitHub raw URL'),
|
||||
repo: z.string().optional().describe('Repository in format owner/repo'),
|
||||
path: z.string().optional().describe('File path within repository')
|
||||
}).refine(data => (data.url) || (data.repo && data.path), 'Either url or both repo and path must be provided').describe('IGitRawFileOptions');
|
||||
/** Schema for npm run command */
|
||||
export const NpmRunSchema = z.object({
|
||||
command: z.string().describe('Command to run (e.g. install, test, etc)'),
|
||||
args: z.array(z.string()).optional().describe('Additional arguments for the command')
|
||||
}).describe('INpmRunOptions');
|
||||
/** Schema for terminal command execution */
|
||||
export const TerminalCommandSchema = z.object({
|
||||
command: z.string().describe('Command to execute'),
|
||||
args: z.array(z.string()).optional().describe('Command arguments'),
|
||||
cwd: z.string().optional().describe('Working directory for command execution'),
|
||||
background: z.boolean().optional().describe('Run command in background (non-blocking)'),
|
||||
window: z.boolean().optional().describe('Open command in new terminal window'),
|
||||
detached: z.boolean().optional().describe('Run process detached from parent')
|
||||
}).describe('ITerminalCommandOptions');
|
||||
/** Schema for tool invocation parameters */
|
||||
export const InvokeToolSchema = z.object({
|
||||
tools: z.string().describe('Tool category to use (fs, npm, git, terminal)'),
|
||||
function: z.string().describe('Function name to invoke'),
|
||||
target: z.string().default(process.cwd()).describe('Target directory'),
|
||||
params: z.string().optional().describe('JSON string of parameters'),
|
||||
output: z.string().optional().describe('Path to write the output to'),
|
||||
env_key: z.string().optional().describe('Environment configuration key')
|
||||
}).describe('IInvokeToolOptions');
|
||||
/** Schema for list command options */
|
||||
export const ListCommandSchema = z.object({
|
||||
output: z.string().default("./llm-tools.json").describe('Output file path for tools list')
|
||||
}).describe('IListCommandOptions');
|
||||
/** Schema for tool listing options */
|
||||
export const ToolListingOptionsSchema = z.object({
|
||||
output: z.string().default('./llm-tools.json').describe('Path to write the output to')
|
||||
}).describe('IToolListingOptions');
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvem9kX3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qiw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQztJQUNuRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztDQUM5RSxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFbEMseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUM7Q0FDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRW5DLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDdEQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7Q0FDakQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRWpDLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNw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
|
||||
421
packages/ai-tools/dist/zod_types.d.ts
vendored
421
packages/ai-tools/dist/zod_types.d.ts
vendored
@ -1,353 +1,68 @@
|
||||
export interface IKBotOptions {
|
||||
/** Target directory */
|
||||
path?: string;
|
||||
/** The prompt. Supports file paths and environment variables. */
|
||||
prompt?: string;
|
||||
/** Optional output path for modified files (Tool mode only) */
|
||||
output?: string | undefined;
|
||||
/** Optional destination path for the result, will substitute ${MODEL_NAME} and ${ROUTER} in the path. Optional, used for "completion" mode */
|
||||
dst?: string | undefined;
|
||||
/** 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" */
|
||||
each?: string | undefined;
|
||||
/** Disable tools categories, eg: --disable=fs,git,interact,terminal,search,web,email,user */
|
||||
disable?: string[];
|
||||
/** List of specific tools to disable */
|
||||
disableTools?: string[];
|
||||
/** List of tools to use. Can be built-in tool names or paths to custom tool files. Default: fs,git,interact,terminal,search,web,email,user */
|
||||
tools?: (string[] | string);
|
||||
/** Comma separated glob patterns or paths, eg --include=src/*.tsx,src/*.ts --include=package.json */
|
||||
include?: string[] | undefined;
|
||||
/** Explicit API key to use */
|
||||
api_key?: string | undefined;
|
||||
/** AI model to use for processing. Available models:
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m OpenRouter models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
01-ai/yi-large | paid
|
||||
aetherwiing/mn-starcannon-12b | paid
|
||||
ai21/jamba-1-5-large | paid
|
||||
ai21/jamba-1-5-mini | paid
|
||||
ai21/jamba-instruct | paid
|
||||
aion-labs/aion-1.0 | paid
|
||||
aion-labs/aion-1.0-mini | paid
|
||||
aion-labs/aion-rp-llama-3.1-8b | paid
|
||||
jondurbin/airoboros-l2-70b | paid
|
||||
amazon/nova-lite-v1 | paid
|
||||
amazon/nova-micro-v1 | paid
|
||||
amazon/nova-pro-v1 | paid
|
||||
anthropic/claude-3-haiku | paid
|
||||
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
|
||||
anthropic/claude-3.5-sonnet-20240620:beta | paid
|
||||
anthropic/claude-3.5-sonnet:beta | 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
|
||||
openrouter/auto | paid
|
||||
cohere/command | paid
|
||||
cohere/command-r | paid
|
||||
cohere/command-r-03-2024 | paid
|
||||
cohere/command-r-08-2024 | paid
|
||||
cohere/command-r-plus | paid
|
||||
cohere/command-r-plus-04-2024 | paid
|
||||
cohere/command-r-plus-08-2024 | paid
|
||||
cohere/command-r7b-12-2024 | paid
|
||||
databricks/dbrx-instruct | paid
|
||||
deepseek/deepseek-chat-v2.5 | paid
|
||||
deepseek/deepseek-chat | paid
|
||||
deepseek/deepseek-chat:free | free
|
||||
deepseek/deepseek-r1 | paid
|
||||
deepseek/deepseek-r1:free | free
|
||||
deepseek/deepseek-r1-distill-llama-70b | paid
|
||||
deepseek/deepseek-r1-distill-llama-70b:free | free
|
||||
deepseek/deepseek-r1-distill-llama-8b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-1.5b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-14b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-32b | paid
|
||||
cognitivecomputations/dolphin-mixtral-8x7b | paid
|
||||
cognitivecomputations/dolphin-mixtral-8x22b | paid
|
||||
eva-unit-01/eva-llama-3.33-70b | paid
|
||||
eva-unit-01/eva-qwen-2.5-32b | paid
|
||||
eva-unit-01/eva-qwen-2.5-72b | paid
|
||||
sao10k/fimbulvetr-11b-v2 | paid
|
||||
alpindale/goliath-120b | paid
|
||||
google/gemini-2.0-flash-thinking-exp-1219:free | free
|
||||
google/gemini-2.0-flash-thinking-exp:free | free
|
||||
google/gemini-exp-1206:free | free
|
||||
google/gemini-flash-1.5 | paid
|
||||
google/gemini-flash-1.5-8b | paid
|
||||
google/gemini-flash-1.5-8b-exp | paid
|
||||
google/gemini-2.0-flash-001 | paid
|
||||
google/gemini-2.0-flash-exp:free | free
|
||||
google/gemini-2.0-flash-lite-preview-02-05:free | free
|
||||
google/gemini-pro | paid
|
||||
google/gemini-pro-1.5 | paid
|
||||
google/gemini-2.0-pro-exp-02-05:free | free
|
||||
google/gemini-pro-vision | paid
|
||||
google/gemma-2-27b-it | paid
|
||||
google/gemma-2-9b-it | paid
|
||||
google/gemma-2-9b-it:free | free
|
||||
google/gemma-7b-it | paid
|
||||
google/learnlm-1.5-pro-experimental:free | free
|
||||
google/palm-2-chat-bison | paid
|
||||
google/palm-2-chat-bison-32k | paid
|
||||
google/palm-2-codechat-bison | paid
|
||||
google/palm-2-codechat-bison-32k | paid
|
||||
huggingfaceh4/zephyr-7b-beta:free | free
|
||||
infermatic/mn-inferor-12b | paid
|
||||
inflection/inflection-3-pi | paid
|
||||
inflection/inflection-3-productivity | paid
|
||||
liquid/lfm-3b | paid
|
||||
liquid/lfm-40b | paid
|
||||
liquid/lfm-7b | paid
|
||||
allenai/llama-3.1-tulu-3-405b | paid
|
||||
alpindale/magnum-72b | paid
|
||||
anthracite-org/magnum-v2-72b | paid
|
||||
anthracite-org/magnum-v4-72b | paid
|
||||
mancer/weaver | paid
|
||||
meta-llama/llama-2-13b-chat | paid
|
||||
meta-llama/llama-2-70b-chat | paid
|
||||
meta-llama/llama-3-70b-instruct | paid
|
||||
meta-llama/llama-3-8b-instruct | paid
|
||||
meta-llama/llama-3-8b-instruct:free | free
|
||||
meta-llama/llama-3.1-405b | paid
|
||||
meta-llama/llama-3.1-405b-instruct | paid
|
||||
meta-llama/llama-3.1-70b-instruct | paid
|
||||
meta-llama/llama-3.1-8b-instruct | paid
|
||||
meta-llama/llama-3.2-11b-vision-instruct | paid
|
||||
meta-llama/llama-3.2-11b-vision-instruct:free | free
|
||||
meta-llama/llama-3.2-1b-instruct | paid
|
||||
meta-llama/llama-3.2-3b-instruct | paid
|
||||
meta-llama/llama-3.2-90b-vision-instruct | paid
|
||||
meta-llama/llama-3.3-70b-instruct | paid
|
||||
meta-llama/llama-3.3-70b-instruct:free | free
|
||||
meta-llama/llama-guard-2-8b | paid
|
||||
microsoft/phi-4 | paid
|
||||
microsoft/phi-3-medium-128k-instruct | paid
|
||||
microsoft/phi-3-medium-128k-instruct:free | free
|
||||
microsoft/phi-3-mini-128k-instruct | paid
|
||||
microsoft/phi-3-mini-128k-instruct:free | free
|
||||
microsoft/phi-3.5-mini-128k-instruct | paid
|
||||
sophosympatheia/midnight-rose-70b | paid
|
||||
minimax/minimax-01 | paid
|
||||
mistralai/mistral-large | paid
|
||||
mistralai/mistral-large-2407 | paid
|
||||
mistralai/mistral-large-2411 | paid
|
||||
mistralai/mistral-medium | paid
|
||||
nothingiisreal/mn-celeste-12b | paid
|
||||
mistralai/mistral-small | paid
|
||||
mistralai/mistral-tiny | paid
|
||||
mistralai/codestral-2501 | paid
|
||||
mistralai/codestral-mamba | paid
|
||||
mistralai/ministral-3b | paid
|
||||
mistralai/ministral-8b | paid
|
||||
mistralai/mistral-7b-instruct | paid
|
||||
mistralai/mistral-7b-instruct:free | free
|
||||
mistralai/mistral-7b-instruct-v0.1 | paid
|
||||
mistralai/mistral-7b-instruct-v0.3 | paid
|
||||
mistralai/mistral-nemo | paid
|
||||
mistralai/mistral-small-24b-instruct-2501 | paid
|
||||
mistralai/mixtral-8x22b-instruct | paid
|
||||
mistralai/mixtral-8x7b | paid
|
||||
mistralai/mixtral-8x7b-instruct | paid
|
||||
mistralai/pixtral-12b | paid
|
||||
mistralai/pixtral-large-2411 | paid
|
||||
gryphe/mythomax-l2-13b | paid
|
||||
gryphe/mythomax-l2-13b:free | free
|
||||
neversleep/llama-3-lumimaid-70b | paid
|
||||
neversleep/llama-3-lumimaid-8b | paid
|
||||
neversleep/llama-3-lumimaid-8b:extended | paid
|
||||
neversleep/llama-3.1-lumimaid-70b | paid
|
||||
neversleep/llama-3.1-lumimaid-8b | paid
|
||||
neversleep/noromaid-20b | paid
|
||||
nousresearch/nous-hermes-llama2-13b | 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
|
||||
nousresearch/hermes-2-pro-llama-3-8b | paid
|
||||
nvidia/llama-3.1-nemotron-70b-instruct | paid
|
||||
nvidia/llama-3.1-nemotron-70b-instruct:free | free
|
||||
openai/chatgpt-4o-latest | paid
|
||||
openai/gpt-3.5-turbo | paid
|
||||
openai/gpt-3.5-turbo-0613 | paid
|
||||
openai/gpt-3.5-turbo-16k | paid
|
||||
openai/gpt-3.5-turbo-0125 | paid
|
||||
openai/gpt-3.5-turbo-1106 | paid
|
||||
openai/gpt-3.5-turbo-instruct | paid
|
||||
openai/gpt-4 | paid
|
||||
openai/gpt-4-0314 | paid
|
||||
openai/gpt-4-32k | paid
|
||||
openai/gpt-4-32k-0314 | paid
|
||||
openai/gpt-4-turbo | paid
|
||||
openai/gpt-4-1106-preview | paid
|
||||
openai/gpt-4-turbo-preview | paid
|
||||
openai/gpt-4o | paid
|
||||
openai/gpt-4o-2024-05-13 | paid
|
||||
openai/gpt-4o-2024-08-06 | paid
|
||||
openai/gpt-4o-2024-11-20 | paid
|
||||
openai/gpt-4o:extended | paid
|
||||
openai/gpt-4o-mini | paid
|
||||
openai/gpt-4o-mini-2024-07-18 | paid
|
||||
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/o3-mini | paid
|
||||
openchat/openchat-7b | paid
|
||||
openchat/openchat-7b:free | free
|
||||
teknium/openhermes-2.5-mistral-7b | paid
|
||||
perplexity/llama-3.1-sonar-huge-128k-online | paid
|
||||
perplexity/llama-3.1-sonar-large-128k-chat | paid
|
||||
perplexity/llama-3.1-sonar-large-128k-online | paid
|
||||
perplexity/llama-3.1-sonar-small-128k-chat | paid
|
||||
perplexity/llama-3.1-sonar-small-128k-online | paid
|
||||
perplexity/sonar | paid
|
||||
perplexity/sonar-reasoning | paid
|
||||
pygmalionai/mythalion-13b | paid
|
||||
qwen/qwen-2-72b-instruct | paid
|
||||
qwen/qwen-2-7b-instruct | paid
|
||||
qwen/qwen-2-7b-instruct:free | free
|
||||
qwen/qvq-72b-preview | paid
|
||||
qwen/qwen-vl-plus:free | free
|
||||
qwen/qwen-max | paid
|
||||
qwen/qwen-plus | paid
|
||||
qwen/qwen-turbo | paid
|
||||
qwen/qwen2.5-vl-72b-instruct:free | free
|
||||
qwen/qwq-32b-preview | paid
|
||||
qwen/qwen-2-vl-72b-instruct | paid
|
||||
qwen/qwen-2-vl-7b-instruct | paid
|
||||
qwen/qwen-2.5-72b-instruct | paid
|
||||
qwen/qwen-2.5-7b-instruct | paid
|
||||
qwen/qwen-2.5-coder-32b-instruct | paid
|
||||
undi95/remm-slerp-l2-13b | paid
|
||||
thedrummer/rocinante-12b | paid
|
||||
sophosympatheia/rogue-rose-103b-v0.2:free | free
|
||||
sao10k/l3-lunaris-8b | paid
|
||||
sao10k/l3-euryale-70b | paid
|
||||
sao10k/l3.1-70b-hanami-x1 | paid
|
||||
sao10k/l3.1-euryale-70b | paid
|
||||
sao10k/l3.3-euryale-70b | paid
|
||||
raifle/sorcererlm-8x22b | paid
|
||||
undi95/toppy-m-7b | paid
|
||||
undi95/toppy-m-7b:free | free
|
||||
thedrummer/unslopnemo-12b | paid
|
||||
microsoft/wizardlm-2-7b | paid
|
||||
microsoft/wizardlm-2-8x22b | paid
|
||||
x-ai/grok-2-1212 | paid
|
||||
x-ai/grok-2-vision-1212 | paid
|
||||
x-ai/grok-beta | paid
|
||||
x-ai/grok-vision-beta | paid
|
||||
xwin-lm/xwin-lm-70b | paid
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m OpenAI models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
babbage-002
|
||||
chatgpt-4o-latest
|
||||
dall-e-2
|
||||
dall-e-3
|
||||
davinci-002
|
||||
gpt-3.5-turbo
|
||||
gpt-3.5-turbo-0125
|
||||
gpt-3.5-turbo-1106
|
||||
gpt-3.5-turbo-16k
|
||||
gpt-3.5-turbo-instruct
|
||||
gpt-3.5-turbo-instruct-0914
|
||||
gpt-4
|
||||
gpt-4-0125-preview
|
||||
gpt-4-0613
|
||||
gpt-4-1106-preview
|
||||
gpt-4-turbo
|
||||
gpt-4-turbo-2024-04-09
|
||||
gpt-4-turbo-preview
|
||||
gpt-4o
|
||||
gpt-4o-2024-05-13
|
||||
gpt-4o-2024-08-06
|
||||
gpt-4o-2024-11-20
|
||||
gpt-4o-audio-preview
|
||||
gpt-4o-audio-preview-2024-10-01
|
||||
gpt-4o-audio-preview-2024-12-17
|
||||
gpt-4o-mini
|
||||
gpt-4o-mini-2024-07-18
|
||||
gpt-4o-mini-audio-preview
|
||||
gpt-4o-mini-audio-preview-2024-12-17
|
||||
gpt-4o-mini-realtime-preview
|
||||
gpt-4o-mini-realtime-preview-2024-12-17
|
||||
gpt-4o-realtime-preview
|
||||
gpt-4o-realtime-preview-2024-10-01
|
||||
gpt-4o-realtime-preview-2024-12-17
|
||||
o1-mini
|
||||
o1-mini-2024-09-12
|
||||
o1-preview
|
||||
o1-preview-2024-09-12
|
||||
omni-moderation-2024-09-26
|
||||
omni-moderation-latest
|
||||
text-embedding-3-large
|
||||
text-embedding-3-small
|
||||
text-embedding-ada-002
|
||||
tts-1
|
||||
tts-1-1106
|
||||
tts-1-hd
|
||||
tts-1-hd-1106
|
||||
whisper-1
|
||||
-----
|
||||
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m Deepseek models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
deepseek-chat
|
||||
deepseek-reasoner
|
||||
-----
|
||||
*/
|
||||
model?: string | undefined;
|
||||
/** Router to use: openai, openrouter or deepseek */
|
||||
router?: string;
|
||||
/** Chat completion mode:
|
||||
completion, tools, assistant.
|
||||
[32m[1mcompletion[22m[39m: no support for tools, please use --dst parameter to save the output.
|
||||
[32m[1mtools[22m[39m: allows for tools to be used, eg 'save to ./output.md'. Not all models support this mode.
|
||||
[32m[1massistant[22m[39m: : allows documents (PDF, DOCX, ...) to be added but dont support tools. Use --dst to save the output. Supported files :
|
||||
[32m[1mcustom[22m[39m: custom mode
|
||||
*/
|
||||
mode?: "completion" | "tools" | "assistant" | "custom";
|
||||
/** Logging level for the application */
|
||||
logLevel?: number;
|
||||
/** Path to profile for variables. Supports environment variables. */
|
||||
profile?: string | undefined;
|
||||
/** Base URL for the API, set via --router or directly */
|
||||
baseURL?: string | undefined;
|
||||
/** Path to JSON configuration file (API keys). Supports environment variables. */
|
||||
config?: string | undefined;
|
||||
/** Create a script */
|
||||
dump?: string | undefined;
|
||||
/** Path to preferences file, eg: location, your email address, gender, etc. Supports environment variables. */
|
||||
preferences?: string;
|
||||
/** Logging directory */
|
||||
logs?: string;
|
||||
/** Environment (in profile) */
|
||||
env?: string;
|
||||
variables?: {
|
||||
[x: string]: string;
|
||||
};
|
||||
/** List of filters to apply to the output.
|
||||
Used only in completion mode and a given output file specified with --dst.
|
||||
It unwraps by default any code or data in Markdown.
|
||||
Choices:
|
||||
JSON,JSONUnescape,JSONPretty,AlphaSort,code,JSONParse,trim
|
||||
*/
|
||||
filters?: (string | ("JSON" | "JSONUnescape" | "JSONPretty" | "AlphaSort" | "code" | "JSONParse" | "trim")[] | string[] | ((...args_0: unknown[]) => unknown)[]);
|
||||
/** Dry run - only write out parameters without making API calls */
|
||||
dry?: (boolean | string);
|
||||
}
|
||||
export interface IFileListingOptions {
|
||||
/** Directory path to list files from */
|
||||
directory: string;
|
||||
/** Glob pattern for filtering files */
|
||||
pattern?: string | undefined;
|
||||
}
|
||||
export interface IFileRemovalOptions {
|
||||
/** Path of the file to remove */
|
||||
path: string;
|
||||
}
|
||||
export interface IGitCommitOptions {
|
||||
/** Files to commit */
|
||||
files: string[];
|
||||
/** Commit message */
|
||||
message: string;
|
||||
}
|
||||
export interface IGitRevertOptions {
|
||||
/** Files to revert */
|
||||
files: string[];
|
||||
}
|
||||
export interface IGitSwitchVersionOptions {
|
||||
/** Branch name to switch to */
|
||||
branch: string;
|
||||
/** Remote name */
|
||||
remote: string;
|
||||
}
|
||||
export interface IInvokeToolOptions {
|
||||
/** Tool category to use (fs, npm, git, terminal) */
|
||||
tools: string;
|
||||
/** Function name to invoke */
|
||||
function: string;
|
||||
/** Target directory */
|
||||
target: string;
|
||||
/** JSON string of parameters */
|
||||
params?: string | undefined;
|
||||
/** Path to write the output to */
|
||||
output?: string | undefined;
|
||||
/** Environment configuration key */
|
||||
env_key?: string | undefined;
|
||||
}
|
||||
export interface IToolListingOptions {
|
||||
/** Path to write the output to */
|
||||
output: string;
|
||||
}
|
||||
export interface ITerminalCommandOptions {
|
||||
/** Command to execute */
|
||||
command: string;
|
||||
/** Command arguments */
|
||||
args?: string[] | undefined;
|
||||
/** Working directory for command execution */
|
||||
cwd?: string | undefined;
|
||||
/** Run command in background (non-blocking) */
|
||||
background?: boolean | undefined;
|
||||
/** Open command in new terminal window */
|
||||
window?: boolean | undefined;
|
||||
/** Run process detached from parent */
|
||||
detached?: boolean | undefined;
|
||||
}
|
||||
export interface IListCommandOptions {
|
||||
/** Output file path for tools list */
|
||||
output: string;
|
||||
}
|
||||
export interface INpmRunOptions {
|
||||
/** Command to run (e.g. install, test, etc) */
|
||||
command: string;
|
||||
/** Additional arguments for the command */
|
||||
args?: string[] | undefined;
|
||||
}
|
||||
|
||||
2
packages/ai-tools/dist/zod_types.js
vendored
2
packages/ai-tools/dist/zod_types.js
vendored
@ -1,2 +1,2 @@
|
||||
export {};
|
||||
export {};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3pvZF90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
||||
2286
packages/ai-tools/package-lock.json
generated
2286
packages/ai-tools/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -24,8 +24,8 @@
|
||||
"build": "tsc -p . --declaration",
|
||||
"start": "node ./main.js",
|
||||
"dev": "tsc -p . --watch --declaration",
|
||||
"types": "ts-node src/main.ts types",
|
||||
"list": "ts-node src/main.ts list"
|
||||
"types": "tsx src/main.ts types",
|
||||
"list": "tsx src/main.ts list"
|
||||
},
|
||||
"dependencies": {
|
||||
"@datalust/winston-seq": "^2.0.0",
|
||||
@ -45,7 +45,6 @@
|
||||
"marked": "^15.0.4",
|
||||
"mime-types": "^2.1.35",
|
||||
"nodemailer": "^7.0.13",
|
||||
"openai": "^5.8.2",
|
||||
"p-map": "^7.0.3",
|
||||
"rotating-file-stream": "^3.2.6",
|
||||
"screenshot-desktop": "^1.15.0",
|
||||
@ -57,18 +56,20 @@
|
||||
"type-fest": "^4.30.2",
|
||||
"winston": "^3.17.0",
|
||||
"yargs": "^17.7.2",
|
||||
"zod": "^3.24.3",
|
||||
"zod-to-json-schema": "^3.24.1"
|
||||
"zod": "^4.3.6",
|
||||
"zod-to-json-schema": "^3.25.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jsdom": "^21.1.7",
|
||||
"@types/marked": "^6.0.0",
|
||||
"@types/node": "^18.19.74",
|
||||
"@types/nodemailer": "^6.4.17",
|
||||
"@types/turndown": "^5.0.5",
|
||||
"@types/yargs": "^17.0.33",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^4.9.5"
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"openai": ">=4.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"puppeteer": "^24.2.1"
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { RunnableToolFunctionWithParse } from 'openai/lib/RunnableFunction'
|
||||
import { JSONSchema } from 'openai/lib/jsonschema'
|
||||
import { ZodSchema, z } from 'zod'
|
||||
import { zodToJsonSchema } from 'zod-to-json-schema'
|
||||
|
||||
// see https://github.com/openai/openai-node/blob/master/examples/tool-call-helpers-zod.ts
|
||||
export const zodFunction =<T extends object>({
|
||||
@ -21,7 +20,7 @@ export const zodFunction =<T extends object>({
|
||||
function: fn,
|
||||
name: name ?? fn.name,
|
||||
description: description,
|
||||
parameters: zodToJsonSchema(schema) as JSONSchema,
|
||||
parameters: z.toJSONSchema(schema) as JSONSchema,
|
||||
parse(input: string): T {
|
||||
const obj = JSON.parse(input)
|
||||
return schema.parse(obj)
|
||||
|
||||
@ -26,4 +26,5 @@ export interface IKBotTask extends IKBotOptions
|
||||
collector?: ICollector
|
||||
onRun?:(ctx: IKBotTask) => Promise<IKBotTask>
|
||||
logger?: Logger<ILogObj>
|
||||
customTools?: any[]
|
||||
}
|
||||
@ -78,6 +78,7 @@ export interface IKBotOptions {
|
||||
openrouter/bodybuilder | paid
|
||||
bytedance-seed/seed-1.6 | paid
|
||||
bytedance-seed/seed-1.6-flash | paid
|
||||
bytedance-seed/seed-2.0-lite | paid
|
||||
bytedance-seed/seed-2.0-mini | paid
|
||||
bytedance/ui-tars-1.5-7b | paid
|
||||
cohere/command-a | paid
|
||||
@ -89,7 +90,6 @@ export interface IKBotOptions {
|
||||
deepseek/deepseek-chat-v3-0324 | paid
|
||||
deepseek/deepseek-chat-v3.1 | paid
|
||||
deepseek/deepseek-v3.1-terminus | paid
|
||||
deepseek/deepseek-v3.1-terminus:exacto | paid
|
||||
deepseek/deepseek-v3.2 | paid
|
||||
deepseek/deepseek-v3.2-exp | paid
|
||||
deepseek/deepseek-v3.2-speciale | paid
|
||||
@ -147,7 +147,6 @@ export interface IKBotOptions {
|
||||
meta-llama/llama-3-70b-instruct | paid
|
||||
meta-llama/llama-3-8b-instruct | paid
|
||||
meta-llama/llama-3.1-405b | paid
|
||||
meta-llama/llama-3.1-405b-instruct | paid
|
||||
meta-llama/llama-3.1-70b-instruct | paid
|
||||
meta-llama/llama-3.1-8b-instruct | paid
|
||||
meta-llama/llama-3.2-11b-vision-instruct | paid
|
||||
@ -159,13 +158,14 @@ export interface IKBotOptions {
|
||||
meta-llama/llama-4-maverick | paid
|
||||
meta-llama/llama-4-scout | paid
|
||||
meta-llama/llama-guard-4-12b | paid
|
||||
meta-llama/llama-guard-2-8b | paid
|
||||
microsoft/phi-4 | paid
|
||||
minimax/minimax-m1 | paid
|
||||
minimax/minimax-m2 | paid
|
||||
minimax/minimax-m2-her | paid
|
||||
minimax/minimax-m2.1 | paid
|
||||
minimax/minimax-m2.5 | paid
|
||||
minimax/minimax-m2.5:free | free
|
||||
minimax/minimax-m2.7 | paid
|
||||
minimax/minimax-01 | paid
|
||||
mistralai/mistral-large | paid
|
||||
mistralai/mistral-large-2407 | paid
|
||||
@ -186,6 +186,7 @@ export interface IKBotOptions {
|
||||
mistralai/mistral-small-3.1-24b-instruct | paid
|
||||
mistralai/mistral-small-3.1-24b-instruct:free | free
|
||||
mistralai/mistral-small-3.2-24b-instruct | paid
|
||||
mistralai/mistral-small-2603 | paid
|
||||
mistralai/mistral-small-creative | paid
|
||||
mistralai/mixtral-8x22b-instruct | paid
|
||||
mistralai/mixtral-8x7b-instruct | paid
|
||||
@ -194,15 +195,12 @@ export interface IKBotOptions {
|
||||
mistralai/voxtral-small-24b-2507 | paid
|
||||
moonshotai/kimi-k2 | paid
|
||||
moonshotai/kimi-k2-0905 | paid
|
||||
moonshotai/kimi-k2-0905:exacto | paid
|
||||
moonshotai/kimi-k2-thinking | paid
|
||||
moonshotai/kimi-k2.5 | paid
|
||||
morph/morph-v3-fast | paid
|
||||
morph/morph-v3-large | paid
|
||||
gryphe/mythomax-l2-13b | paid
|
||||
neversleep/llama-3.1-lumimaid-8b | paid
|
||||
nex-agi/deepseek-v3.1-nex-n1 | paid
|
||||
neversleep/noromaid-20b | paid
|
||||
nousresearch/hermes-3-llama-3.1-405b | paid
|
||||
nousresearch/hermes-3-llama-3.1-405b:free | free
|
||||
nousresearch/hermes-3-llama-3.1-70b | paid
|
||||
@ -213,6 +211,8 @@ export interface IKBotOptions {
|
||||
nvidia/llama-3.3-nemotron-super-49b-v1.5 | paid
|
||||
nvidia/nemotron-3-nano-30b-a3b | paid
|
||||
nvidia/nemotron-3-nano-30b-a3b:free | free
|
||||
nvidia/nemotron-3-super-120b-a12b | paid
|
||||
nvidia/nemotron-3-super-120b-a12b:free | free
|
||||
nvidia/nemotron-nano-12b-v2-vl | paid
|
||||
nvidia/nemotron-nano-12b-v2-vl:free | free
|
||||
nvidia/nemotron-nano-9b-v2 | paid
|
||||
@ -261,9 +261,10 @@ export interface IKBotOptions {
|
||||
openai/gpt-5.3-chat | paid
|
||||
openai/gpt-5.3-codex | paid
|
||||
openai/gpt-5.4 | paid
|
||||
openai/gpt-5.4-mini | paid
|
||||
openai/gpt-5.4-nano | paid
|
||||
openai/gpt-5.4-pro | paid
|
||||
openai/gpt-oss-120b | paid
|
||||
openai/gpt-oss-120b:exacto | paid
|
||||
openai/gpt-oss-120b:free | free
|
||||
openai/gpt-oss-20b | paid
|
||||
openai/gpt-oss-20b:free | free
|
||||
@ -308,7 +309,6 @@ export interface IKBotOptions {
|
||||
qwen/qwen3-8b | paid
|
||||
qwen/qwen3-coder-30b-a3b-instruct | paid
|
||||
qwen/qwen3-coder | paid
|
||||
qwen/qwen3-coder:exacto | paid
|
||||
qwen/qwen3-coder:free | free
|
||||
qwen/qwen3-coder-flash | paid
|
||||
qwen/qwen3-coder-next | paid
|
||||
@ -330,6 +330,7 @@ export interface IKBotOptions {
|
||||
qwen/qwen3.5-122b-a10b | paid
|
||||
qwen/qwen3.5-27b | paid
|
||||
qwen/qwen3.5-35b-a3b | paid
|
||||
qwen/qwen3.5-9b | paid
|
||||
qwen/qwen3.5-flash-02-23 | paid
|
||||
qwen/qwq-32b | paid
|
||||
qwen/qwen-2.5-72b-instruct | paid
|
||||
@ -342,7 +343,6 @@ export interface IKBotOptions {
|
||||
sao10k/l3.1-70b-hanami-x1 | paid
|
||||
sao10k/l3.1-euryale-70b | paid
|
||||
sao10k/l3.3-euryale-70b | paid
|
||||
raifle/sorcererlm-8x22b | paid
|
||||
stepfun/step-3.5-flash | paid
|
||||
stepfun/step-3.5-flash:free | free
|
||||
switchpoint/router | paid
|
||||
@ -364,19 +364,23 @@ export interface IKBotOptions {
|
||||
x-ai/grok-4 | paid
|
||||
x-ai/grok-4-fast | paid
|
||||
x-ai/grok-4.1-fast | paid
|
||||
x-ai/grok-4.20-beta | paid
|
||||
x-ai/grok-4.20-multi-agent-beta | paid
|
||||
x-ai/grok-code-fast-1 | paid
|
||||
xiaomi/mimo-v2-flash | paid
|
||||
xiaomi/mimo-v2-omni | paid
|
||||
xiaomi/mimo-v2-pro | 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
|
||||
z-ai/glm-4.5v | paid
|
||||
z-ai/glm-4.6 | paid
|
||||
z-ai/glm-4.6:exacto | paid
|
||||
z-ai/glm-4.6v | paid
|
||||
z-ai/glm-4.7 | paid
|
||||
z-ai/glm-4.7-flash | paid
|
||||
z-ai/glm-5 | paid
|
||||
z-ai/glm-5-turbo | paid
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m OpenAI models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
@ -460,6 +464,10 @@ export interface IKBotOptions {
|
||||
gpt-5.3-codex
|
||||
gpt-5.4
|
||||
gpt-5.4-2026-03-05
|
||||
gpt-5.4-mini
|
||||
gpt-5.4-mini-2026-03-17
|
||||
gpt-5.4-nano
|
||||
gpt-5.4-nano-2026-03-17
|
||||
gpt-5.4-pro
|
||||
gpt-5.4-pro-2026-03-05
|
||||
gpt-audio
|
||||
|
||||
@ -1,353 +1,68 @@
|
||||
export interface IKBotOptions {
|
||||
export interface IFileListingOptions {
|
||||
/** Directory path to list files from */
|
||||
directory: string;
|
||||
/** Glob pattern for filtering files */
|
||||
pattern?: string | undefined;
|
||||
}
|
||||
export interface IFileRemovalOptions {
|
||||
/** Path of the file to remove */
|
||||
path: string;
|
||||
}
|
||||
export interface IGitCommitOptions {
|
||||
/** Files to commit */
|
||||
files: string[];
|
||||
/** Commit message */
|
||||
message: string;
|
||||
}
|
||||
export interface IGitRevertOptions {
|
||||
/** Files to revert */
|
||||
files: string[];
|
||||
}
|
||||
export interface IGitSwitchVersionOptions {
|
||||
/** Branch name to switch to */
|
||||
branch: string;
|
||||
/** Remote name */
|
||||
remote: string;
|
||||
}
|
||||
export interface IInvokeToolOptions {
|
||||
/** Tool category to use (fs, npm, git, terminal) */
|
||||
tools: string;
|
||||
/** Function name to invoke */
|
||||
function: string;
|
||||
/** Target directory */
|
||||
path?: string;
|
||||
/** The prompt. Supports file paths and environment variables. */
|
||||
prompt?: string;
|
||||
/** Optional output path for modified files (Tool mode only) */
|
||||
target: string;
|
||||
/** JSON string of parameters */
|
||||
params?: string | undefined;
|
||||
/** Path to write the output to */
|
||||
output?: string | undefined;
|
||||
/** Optional destination path for the result, will substitute ${MODEL_NAME} and ${ROUTER} in the path. Optional, used for "completion" mode */
|
||||
dst?: string | undefined;
|
||||
/** 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" */
|
||||
each?: string | undefined;
|
||||
/** Disable tools categories, eg: --disable=fs,git,interact,terminal,search,web,email,user */
|
||||
disable?: string[];
|
||||
/** List of specific tools to disable */
|
||||
disableTools?: string[];
|
||||
/** List of tools to use. Can be built-in tool names or paths to custom tool files. Default: fs,git,interact,terminal,search,web,email,user */
|
||||
tools?: (string[] | string);
|
||||
/** Comma separated glob patterns or paths, eg --include=src/*.tsx,src/*.ts --include=package.json */
|
||||
include?: string[] | undefined;
|
||||
/** Explicit API key to use */
|
||||
api_key?: string | undefined;
|
||||
/** AI model to use for processing. Available models:
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m OpenRouter models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
01-ai/yi-large | paid
|
||||
aetherwiing/mn-starcannon-12b | paid
|
||||
ai21/jamba-1-5-large | paid
|
||||
ai21/jamba-1-5-mini | paid
|
||||
ai21/jamba-instruct | paid
|
||||
aion-labs/aion-1.0 | paid
|
||||
aion-labs/aion-1.0-mini | paid
|
||||
aion-labs/aion-rp-llama-3.1-8b | paid
|
||||
jondurbin/airoboros-l2-70b | paid
|
||||
amazon/nova-lite-v1 | paid
|
||||
amazon/nova-micro-v1 | paid
|
||||
amazon/nova-pro-v1 | paid
|
||||
anthropic/claude-3-haiku | paid
|
||||
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
|
||||
anthropic/claude-3.5-sonnet-20240620:beta | paid
|
||||
anthropic/claude-3.5-sonnet:beta | 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
|
||||
openrouter/auto | paid
|
||||
cohere/command | paid
|
||||
cohere/command-r | paid
|
||||
cohere/command-r-03-2024 | paid
|
||||
cohere/command-r-08-2024 | paid
|
||||
cohere/command-r-plus | paid
|
||||
cohere/command-r-plus-04-2024 | paid
|
||||
cohere/command-r-plus-08-2024 | paid
|
||||
cohere/command-r7b-12-2024 | paid
|
||||
databricks/dbrx-instruct | paid
|
||||
deepseek/deepseek-chat-v2.5 | paid
|
||||
deepseek/deepseek-chat | paid
|
||||
deepseek/deepseek-chat:free | free
|
||||
deepseek/deepseek-r1 | paid
|
||||
deepseek/deepseek-r1:free | free
|
||||
deepseek/deepseek-r1-distill-llama-70b | paid
|
||||
deepseek/deepseek-r1-distill-llama-70b:free | free
|
||||
deepseek/deepseek-r1-distill-llama-8b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-1.5b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-14b | paid
|
||||
deepseek/deepseek-r1-distill-qwen-32b | paid
|
||||
cognitivecomputations/dolphin-mixtral-8x7b | paid
|
||||
cognitivecomputations/dolphin-mixtral-8x22b | paid
|
||||
eva-unit-01/eva-llama-3.33-70b | paid
|
||||
eva-unit-01/eva-qwen-2.5-32b | paid
|
||||
eva-unit-01/eva-qwen-2.5-72b | paid
|
||||
sao10k/fimbulvetr-11b-v2 | paid
|
||||
alpindale/goliath-120b | paid
|
||||
google/gemini-2.0-flash-thinking-exp-1219:free | free
|
||||
google/gemini-2.0-flash-thinking-exp:free | free
|
||||
google/gemini-exp-1206:free | free
|
||||
google/gemini-flash-1.5 | paid
|
||||
google/gemini-flash-1.5-8b | paid
|
||||
google/gemini-flash-1.5-8b-exp | paid
|
||||
google/gemini-2.0-flash-001 | paid
|
||||
google/gemini-2.0-flash-exp:free | free
|
||||
google/gemini-2.0-flash-lite-preview-02-05:free | free
|
||||
google/gemini-pro | paid
|
||||
google/gemini-pro-1.5 | paid
|
||||
google/gemini-2.0-pro-exp-02-05:free | free
|
||||
google/gemini-pro-vision | paid
|
||||
google/gemma-2-27b-it | paid
|
||||
google/gemma-2-9b-it | paid
|
||||
google/gemma-2-9b-it:free | free
|
||||
google/gemma-7b-it | paid
|
||||
google/learnlm-1.5-pro-experimental:free | free
|
||||
google/palm-2-chat-bison | paid
|
||||
google/palm-2-chat-bison-32k | paid
|
||||
google/palm-2-codechat-bison | paid
|
||||
google/palm-2-codechat-bison-32k | paid
|
||||
huggingfaceh4/zephyr-7b-beta:free | free
|
||||
infermatic/mn-inferor-12b | paid
|
||||
inflection/inflection-3-pi | paid
|
||||
inflection/inflection-3-productivity | paid
|
||||
liquid/lfm-3b | paid
|
||||
liquid/lfm-40b | paid
|
||||
liquid/lfm-7b | paid
|
||||
allenai/llama-3.1-tulu-3-405b | paid
|
||||
alpindale/magnum-72b | paid
|
||||
anthracite-org/magnum-v2-72b | paid
|
||||
anthracite-org/magnum-v4-72b | paid
|
||||
mancer/weaver | paid
|
||||
meta-llama/llama-2-13b-chat | paid
|
||||
meta-llama/llama-2-70b-chat | paid
|
||||
meta-llama/llama-3-70b-instruct | paid
|
||||
meta-llama/llama-3-8b-instruct | paid
|
||||
meta-llama/llama-3-8b-instruct:free | free
|
||||
meta-llama/llama-3.1-405b | paid
|
||||
meta-llama/llama-3.1-405b-instruct | paid
|
||||
meta-llama/llama-3.1-70b-instruct | paid
|
||||
meta-llama/llama-3.1-8b-instruct | paid
|
||||
meta-llama/llama-3.2-11b-vision-instruct | paid
|
||||
meta-llama/llama-3.2-11b-vision-instruct:free | free
|
||||
meta-llama/llama-3.2-1b-instruct | paid
|
||||
meta-llama/llama-3.2-3b-instruct | paid
|
||||
meta-llama/llama-3.2-90b-vision-instruct | paid
|
||||
meta-llama/llama-3.3-70b-instruct | paid
|
||||
meta-llama/llama-3.3-70b-instruct:free | free
|
||||
meta-llama/llama-guard-2-8b | paid
|
||||
microsoft/phi-4 | paid
|
||||
microsoft/phi-3-medium-128k-instruct | paid
|
||||
microsoft/phi-3-medium-128k-instruct:free | free
|
||||
microsoft/phi-3-mini-128k-instruct | paid
|
||||
microsoft/phi-3-mini-128k-instruct:free | free
|
||||
microsoft/phi-3.5-mini-128k-instruct | paid
|
||||
sophosympatheia/midnight-rose-70b | paid
|
||||
minimax/minimax-01 | paid
|
||||
mistralai/mistral-large | paid
|
||||
mistralai/mistral-large-2407 | paid
|
||||
mistralai/mistral-large-2411 | paid
|
||||
mistralai/mistral-medium | paid
|
||||
nothingiisreal/mn-celeste-12b | paid
|
||||
mistralai/mistral-small | paid
|
||||
mistralai/mistral-tiny | paid
|
||||
mistralai/codestral-2501 | paid
|
||||
mistralai/codestral-mamba | paid
|
||||
mistralai/ministral-3b | paid
|
||||
mistralai/ministral-8b | paid
|
||||
mistralai/mistral-7b-instruct | paid
|
||||
mistralai/mistral-7b-instruct:free | free
|
||||
mistralai/mistral-7b-instruct-v0.1 | paid
|
||||
mistralai/mistral-7b-instruct-v0.3 | paid
|
||||
mistralai/mistral-nemo | paid
|
||||
mistralai/mistral-small-24b-instruct-2501 | paid
|
||||
mistralai/mixtral-8x22b-instruct | paid
|
||||
mistralai/mixtral-8x7b | paid
|
||||
mistralai/mixtral-8x7b-instruct | paid
|
||||
mistralai/pixtral-12b | paid
|
||||
mistralai/pixtral-large-2411 | paid
|
||||
gryphe/mythomax-l2-13b | paid
|
||||
gryphe/mythomax-l2-13b:free | free
|
||||
neversleep/llama-3-lumimaid-70b | paid
|
||||
neversleep/llama-3-lumimaid-8b | paid
|
||||
neversleep/llama-3-lumimaid-8b:extended | paid
|
||||
neversleep/llama-3.1-lumimaid-70b | paid
|
||||
neversleep/llama-3.1-lumimaid-8b | paid
|
||||
neversleep/noromaid-20b | paid
|
||||
nousresearch/nous-hermes-llama2-13b | 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
|
||||
nousresearch/hermes-2-pro-llama-3-8b | paid
|
||||
nvidia/llama-3.1-nemotron-70b-instruct | paid
|
||||
nvidia/llama-3.1-nemotron-70b-instruct:free | free
|
||||
openai/chatgpt-4o-latest | paid
|
||||
openai/gpt-3.5-turbo | paid
|
||||
openai/gpt-3.5-turbo-0613 | paid
|
||||
openai/gpt-3.5-turbo-16k | paid
|
||||
openai/gpt-3.5-turbo-0125 | paid
|
||||
openai/gpt-3.5-turbo-1106 | paid
|
||||
openai/gpt-3.5-turbo-instruct | paid
|
||||
openai/gpt-4 | paid
|
||||
openai/gpt-4-0314 | paid
|
||||
openai/gpt-4-32k | paid
|
||||
openai/gpt-4-32k-0314 | paid
|
||||
openai/gpt-4-turbo | paid
|
||||
openai/gpt-4-1106-preview | paid
|
||||
openai/gpt-4-turbo-preview | paid
|
||||
openai/gpt-4o | paid
|
||||
openai/gpt-4o-2024-05-13 | paid
|
||||
openai/gpt-4o-2024-08-06 | paid
|
||||
openai/gpt-4o-2024-11-20 | paid
|
||||
openai/gpt-4o:extended | paid
|
||||
openai/gpt-4o-mini | paid
|
||||
openai/gpt-4o-mini-2024-07-18 | paid
|
||||
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/o3-mini | paid
|
||||
openchat/openchat-7b | paid
|
||||
openchat/openchat-7b:free | free
|
||||
teknium/openhermes-2.5-mistral-7b | paid
|
||||
perplexity/llama-3.1-sonar-huge-128k-online | paid
|
||||
perplexity/llama-3.1-sonar-large-128k-chat | paid
|
||||
perplexity/llama-3.1-sonar-large-128k-online | paid
|
||||
perplexity/llama-3.1-sonar-small-128k-chat | paid
|
||||
perplexity/llama-3.1-sonar-small-128k-online | paid
|
||||
perplexity/sonar | paid
|
||||
perplexity/sonar-reasoning | paid
|
||||
pygmalionai/mythalion-13b | paid
|
||||
qwen/qwen-2-72b-instruct | paid
|
||||
qwen/qwen-2-7b-instruct | paid
|
||||
qwen/qwen-2-7b-instruct:free | free
|
||||
qwen/qvq-72b-preview | paid
|
||||
qwen/qwen-vl-plus:free | free
|
||||
qwen/qwen-max | paid
|
||||
qwen/qwen-plus | paid
|
||||
qwen/qwen-turbo | paid
|
||||
qwen/qwen2.5-vl-72b-instruct:free | free
|
||||
qwen/qwq-32b-preview | paid
|
||||
qwen/qwen-2-vl-72b-instruct | paid
|
||||
qwen/qwen-2-vl-7b-instruct | paid
|
||||
qwen/qwen-2.5-72b-instruct | paid
|
||||
qwen/qwen-2.5-7b-instruct | paid
|
||||
qwen/qwen-2.5-coder-32b-instruct | paid
|
||||
undi95/remm-slerp-l2-13b | paid
|
||||
thedrummer/rocinante-12b | paid
|
||||
sophosympatheia/rogue-rose-103b-v0.2:free | free
|
||||
sao10k/l3-lunaris-8b | paid
|
||||
sao10k/l3-euryale-70b | paid
|
||||
sao10k/l3.1-70b-hanami-x1 | paid
|
||||
sao10k/l3.1-euryale-70b | paid
|
||||
sao10k/l3.3-euryale-70b | paid
|
||||
raifle/sorcererlm-8x22b | paid
|
||||
undi95/toppy-m-7b | paid
|
||||
undi95/toppy-m-7b:free | free
|
||||
thedrummer/unslopnemo-12b | paid
|
||||
microsoft/wizardlm-2-7b | paid
|
||||
microsoft/wizardlm-2-8x22b | paid
|
||||
x-ai/grok-2-1212 | paid
|
||||
x-ai/grok-2-vision-1212 | paid
|
||||
x-ai/grok-beta | paid
|
||||
x-ai/grok-vision-beta | paid
|
||||
xwin-lm/xwin-lm-70b | paid
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m OpenAI models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
babbage-002
|
||||
chatgpt-4o-latest
|
||||
dall-e-2
|
||||
dall-e-3
|
||||
davinci-002
|
||||
gpt-3.5-turbo
|
||||
gpt-3.5-turbo-0125
|
||||
gpt-3.5-turbo-1106
|
||||
gpt-3.5-turbo-16k
|
||||
gpt-3.5-turbo-instruct
|
||||
gpt-3.5-turbo-instruct-0914
|
||||
gpt-4
|
||||
gpt-4-0125-preview
|
||||
gpt-4-0613
|
||||
gpt-4-1106-preview
|
||||
gpt-4-turbo
|
||||
gpt-4-turbo-2024-04-09
|
||||
gpt-4-turbo-preview
|
||||
gpt-4o
|
||||
gpt-4o-2024-05-13
|
||||
gpt-4o-2024-08-06
|
||||
gpt-4o-2024-11-20
|
||||
gpt-4o-audio-preview
|
||||
gpt-4o-audio-preview-2024-10-01
|
||||
gpt-4o-audio-preview-2024-12-17
|
||||
gpt-4o-mini
|
||||
gpt-4o-mini-2024-07-18
|
||||
gpt-4o-mini-audio-preview
|
||||
gpt-4o-mini-audio-preview-2024-12-17
|
||||
gpt-4o-mini-realtime-preview
|
||||
gpt-4o-mini-realtime-preview-2024-12-17
|
||||
gpt-4o-realtime-preview
|
||||
gpt-4o-realtime-preview-2024-10-01
|
||||
gpt-4o-realtime-preview-2024-12-17
|
||||
o1-mini
|
||||
o1-mini-2024-09-12
|
||||
o1-preview
|
||||
o1-preview-2024-09-12
|
||||
omni-moderation-2024-09-26
|
||||
omni-moderation-latest
|
||||
text-embedding-3-large
|
||||
text-embedding-3-small
|
||||
text-embedding-ada-002
|
||||
tts-1
|
||||
tts-1-1106
|
||||
tts-1-hd
|
||||
tts-1-hd-1106
|
||||
whisper-1
|
||||
-----
|
||||
|
||||
[35m[1m[22m[39m
|
||||
[35m[1m Deepseek models:[22m[39m
|
||||
[35m[1m[22m[39m
|
||||
deepseek-chat
|
||||
deepseek-reasoner
|
||||
-----
|
||||
*/
|
||||
model?: string | undefined;
|
||||
/** Router to use: openai, openrouter or deepseek */
|
||||
router?: string;
|
||||
/** Chat completion mode:
|
||||
completion, tools, assistant.
|
||||
[32m[1mcompletion[22m[39m: no support for tools, please use --dst parameter to save the output.
|
||||
[32m[1mtools[22m[39m: allows for tools to be used, eg 'save to ./output.md'. Not all models support this mode.
|
||||
[32m[1massistant[22m[39m: : allows documents (PDF, DOCX, ...) to be added but dont support tools. Use --dst to save the output. Supported files :
|
||||
[32m[1mcustom[22m[39m: custom mode
|
||||
*/
|
||||
mode?: "completion" | "tools" | "assistant" | "custom";
|
||||
/** Logging level for the application */
|
||||
logLevel?: number;
|
||||
/** Path to profile for variables. Supports environment variables. */
|
||||
profile?: string | undefined;
|
||||
/** Base URL for the API, set via --router or directly */
|
||||
baseURL?: string | undefined;
|
||||
/** Path to JSON configuration file (API keys). Supports environment variables. */
|
||||
config?: string | undefined;
|
||||
/** Create a script */
|
||||
dump?: string | undefined;
|
||||
/** Path to preferences file, eg: location, your email address, gender, etc. Supports environment variables. */
|
||||
preferences?: string;
|
||||
/** Logging directory */
|
||||
logs?: string;
|
||||
/** Environment (in profile) */
|
||||
env?: string;
|
||||
variables?: {
|
||||
[x: string]: string;
|
||||
};
|
||||
/** List of filters to apply to the output.
|
||||
Used only in completion mode and a given output file specified with --dst.
|
||||
It unwraps by default any code or data in Markdown.
|
||||
Choices:
|
||||
JSON,JSONUnescape,JSONPretty,AlphaSort,code,JSONParse,trim
|
||||
*/
|
||||
filters?: (string | ("JSON" | "JSONUnescape" | "JSONPretty" | "AlphaSort" | "code" | "JSONParse" | "trim")[] | string[] | ((...args_0: unknown[]) => unknown)[]);
|
||||
/** Dry run - only write out parameters without making API calls */
|
||||
dry?: (boolean | string);
|
||||
/** Environment configuration key */
|
||||
env_key?: string | undefined;
|
||||
}
|
||||
export interface IToolListingOptions {
|
||||
/** Path to write the output to */
|
||||
output: string;
|
||||
}
|
||||
export interface ITerminalCommandOptions {
|
||||
/** Command to execute */
|
||||
command: string;
|
||||
/** Command arguments */
|
||||
args?: string[] | undefined;
|
||||
/** Working directory for command execution */
|
||||
cwd?: string | undefined;
|
||||
/** Run command in background (non-blocking) */
|
||||
background?: boolean | undefined;
|
||||
/** Open command in new terminal window */
|
||||
window?: boolean | undefined;
|
||||
/** Run process detached from parent */
|
||||
detached?: boolean | undefined;
|
||||
}
|
||||
export interface IListCommandOptions {
|
||||
/** Output file path for tools list */
|
||||
output: string;
|
||||
}
|
||||
export interface INpmRunOptions {
|
||||
/** Command to run (e.g. install, test, etc) */
|
||||
command: string;
|
||||
/** Additional arguments for the command */
|
||||
args?: string[] | undefined;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user