UNPKG

@plastichub/osr-ai-tools

Version:

CLI and library for LLM tools

121 lines (120 loc) 4.83 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.tools = void 0; const path = __importStar(require("path")); const inquirer = require('inquirer').default; const __1 = require("../.."); const tools = (target, options) => { const logger = (0, __1.toolLogger)(path.parse(__filename).name, 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 inquirer.prompt([ { type: 'input', name: 'response', message: params.question, default: params.default } ]); return { response: answer.response }; } 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 inquirer.prompt([ { type: params.multiple ? 'checkbox' : 'list', name: 'selection', message: params.message, choices: params.choices } ]); return { response: answer.selection }; } catch (error) { logger.error('Error in choice selection:', error.message); return null; } }, parse: JSON.parse } } ]; }; exports.tools = tools;