This is the procedure by which you will respond to input instructions and human query, as soon as you get it in the input:
Insert the missing punctuation to the query to form a meaningful question or command, translate it into English, and remember this result as updated query.
The English version of the sentence must of course be of the same type (imperative or interrogative).
Create the JavaScript code according to the following instructions.
Create a variable "aiModel" and write in it the name and version of your language model.
Create a "query" variable, and write in it the English version of the query you created.
Create a "change" variable, and write in it the boolean value true, if the query requires modification of your previous code, or false, if the query contains a completely new request.
If "change" === true, add the created English version of the query as the last instruction for the generated functions.
If "change" === false, the created English version of the query is the only ona instruction for the generated functions, and ignore the previous instructions.
Create an array named: "assistantAnswers" that will contain async functions that take a "pluginsInstances" parameter and return the answer as non-empty text form.
The answers will be in complete sentences, and it will make sense in cases where the variables that affect it will be empty or contain one or more elements.
The "assistantAnswers" array will contain a function for each plugin that can serves the instructions.
The functions returns text in the language "sk-SK".
Be careful to use only utf-8 characters that JavaScript supports.
Assume no error occurs in the code and don nott use try/catch.
The answer of functions is formulated as the answer of the virtual assistant to its master.
You can use the already existing static methods of the following (already initialized from his classes) plugin instances which enter to the "assistantAnswers" functions as the "pluginsInstances" parameter:
- instance "pluginsInstances.jjpluginSms_by_ObscurusGrassator" is defined as follows: ``
- instance "pluginsInstances.jjpluginFacebookChat_by_ObscurusGrassator" is defined as follows: ``
Only if the instructions could not be served by any of the previous plugins, you can also use the following static methods of plugin instances:
- instance "pluginsInstances.jjpluginSms_by_ObscurusGrassator" is defined as follows: `module.exports = class {

    /**
     * @param { string } name
     * @returns { Promise<{number: string, fullName: string}> }
     */
    async getContactByName(name) { return null; }

    /**
     * @param { string } smsNumber
     * @param { string } message
     * @param { string } [fullName]
     * @returns { Promise<void> }
     */
    async sendMessage(smsNumber, message, fullName) {}

    /**
     * Returns not readed messages array by sender mame from SMS.
     * If message reading is not explicitly required, assistant() print only the list of senders name.
     * Only if you print the message content, assistant() mark them as readed.
     * @param { Object } [options]
     * @param { boolean } [options.makrAsReaded = true]
     * @param { 'inbox' | 'sent' | 'draft' | 'outbox' | 'failed' | 'queued' | 'all' } [options.box = 'inbox']
     * @param { number } [options.minDateMilliseconds]
     * @param { number } [options.maxDateMilliseconds]
     * @param { string } [options.findMessageByRegex]
     * @param { boolean } [options.onlyReaded = false]
     * @param { string } [options.smsFromNumber]
     * @returns { Promise<{[number: string]: {messages: string[], timestamp: number, number: string, fullName: string}}> }
     */
    async getMessages(options = {}) { return null; }
};
`
- instance "pluginsInstances.jjpluginFacebookChat_by_ObscurusGrassator" is defined as follows: `module.exports = class {
    /**
     * Send message by Facebook Messenger.
     * @param { string } personName
     * @param { string } message
     * @returns { Promise<void> }
     */
    async sendMessage(personName, message) {}

    /**
     * Returns unread messages array by sender mame from Facebook Messenger.
     * If message reading is not explicitly required, assistant() print only the list of senders.
     * Only if you print the message content, assistant() mark them as readed.
     * @param { Object } [options]
     * @param { boolean } [options.makrAsReaded = false]
     * @param { string } [options.fromPersonName]
     * @returns { Promise<{[personName: string]: {message: string}[]}> }
     */
    async getMessages({makrAsReaded = false, fromPersonName} = {}, closeBrowserTab = false) { return {}; }
};
`
The instructions contains all mandatory input parameters of the described methods.
Do not forget to take into account the JSDoc description of the described methods.
Display only JavaScript code without your comments.
End of procedure definition.
These are the previous instructions:
- I have new messages
- The answer to this request should end with the word sir.
Input human Query for procedure: `odpoveď na túto požiadavku by sa mala končiť slovom pane`