UNPKG

@nomyx/assistant-cli

Version:

A javascript-based assistant that can help you with your daily tasks

56 lines (54 loc) 2.5 kB
const fs = require('fs'); function getOrCreateFile(filename, defaultContent) { if (!fs.existsSync(filename)) { fs.writeFileSync(filename, defaultContent); } return fs.readFileSync(filename, 'utf-8'); } module.exports = { state: { modules: [{ name: 'learnedskills', description: 'Learned Skills', version: '0.0.1', }], }, schemas: [ {"type": "function", "function": {"name": "learned_skills_list", "description": "list all the learned skills that you have", "parameters": {}}}, {"type": "function", "function": {"name": "learned_skill_details", "description": "get the details of how to perform a learned skill", "parameters": {"type": "object", "properties": {"skill": {"type": "string", "description": "The name of the skill to get"}}, "required": ["skill"]}}}, {"type": "function", "function": {"name": "learned_skill_save_details", "description": "save the details of how to perform a learned skill", "parameters": {"type": "object", "properties": {"skill": {"type": "string", "description": "The name of the skill to get"}, "skillDetail": {"type": "string", "description": "The details of the skill"}}, "required": ["skill", "skillDetail"]}}} ], tools: { learned_skills_list: async () => { try { return getOrCreateFile('./skills.json', '{}'); } catch (err) { return JSON.stringify(err.message); } }, learned_skill_details: async ({ skill }) => { try { const sf = getOrCreateFile('./skills.json', '{}'); const skills = JSON.parse(sf.toString()); const skillDetail = skills[skill]; if (!skillDetail) { return `Skill ${skill} not found`; } return skillDetail; } catch (err) { return JSON.stringify(err.message); } }, learned_skill_save_details: async ({ skill, skillDetail }) => { try { const sf = getOrCreateFile('./skills.json', '{}'); const skills = JSON.parse(sf.toString()); skills[skill] = skillDetail; fs.writeFileSync('./skills.json', JSON.stringify(skills)); return `Skill ${skill} set`; } catch (err) { return JSON.stringify(err.message); } } } }