UNPKG

@plastichub/osr-ai-tools

Version:

CLI and library for LLM tools

61 lines (60 loc) 2.43 kB
"use strict"; 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;