@plastichub/osr-ai-tools
Version:
CLI and library for LLM tools
61 lines (60 loc) • 2.43 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.list = exports.options = void 0;
const tools_1 = require("../lib/tools/tools");
const __1 = require("../");
const zod_schemas_1 = require("../zod_schemas");
const write_1 = require("@plastichub/fs/write");
const osr_commons_1 = require("@plastichub/osr-commons");
const options = (yargs) => (0, osr_commons_1.toYargs)(yargs, zod_schemas_1.ListCommandSchema);
exports.options = options;
const list = async (argv, options) => {
const fsTools = tools_1.tools.fs(process.cwd(), options);
const npmTools = tools_1.tools.npm(process.cwd(), options);
const gitTools = tools_1.tools.git(process.cwd(), options);
const terminalTools = tools_1.tools.terminal(process.cwd(), options);
const toolsList = {
fs: fsTools.map(tool => ({
name: tool.function.name,
description: tool.function.description,
category: 'fs'
})),
npm: npmTools.map(tool => ({
name: tool.function.name,
description: tool.function.description,
category: 'npm'
})),
git: gitTools.map(tool => ({
name: tool.function.name,
description: tool.function.description,
category: 'git'
})),
terminal: terminalTools.map(tool => ({
name: tool.function.name,
description: tool.function.description,
category: 'terminal'
}))
};
__1.logger.info('Available Tools:\n');
__1.logger.info('Filesystem Tools:');
fsTools.forEach(tool => {
__1.logger.info(` ${tool.function.name}: ${tool.function.description}`);
});
__1.logger.info('\nNPM Tools:');
npmTools.forEach(tool => {
__1.logger.info(` ${tool.function.name}: ${tool.function.description}`);
});
__1.logger.info('\nGit Tools:');
gitTools.forEach(tool => {
__1.logger.info(` ${tool.function.name}: ${tool.function.description}`);
});
__1.logger.info('\nTerminal Tools:');
terminalTools.forEach(tool => {
__1.logger.info(` ${tool.function.name}: ${tool.function.description}`);
});
if (argv.output) {
__1.logger.info(`\nWriting tools list to ${argv.output}`);
(0, write_1.sync)(argv.output, JSON.stringify(toolsList, null, 2));
}
};
exports.list = list;
;