Manifesto plugin (mayros.plugin.json)
Ogni plugin deve fornire un file mayros.plugin.json nella radice plugin.
Mayros usa questo manifesto per validare la configurazione senza eseguire codice plugin. Manifesti mancanti o non validi sono trattati come errori plugin e bloccano la validazione configurazione.
Vedi la guida completa sistema plugin: Plugin.
Campi obbligatori
json{ "id": "voice-call", "configSchema": { "type": "object", "additionalProperties": false, "properties": {} } }
Chiavi obbligatorie:
id(stringa): id plugin canonico.configSchema(oggetto): JSON Schema per configurazione plugin (inline).
Chiavi opzionali:
kind(stringa): tipo plugin (esempio:"memory").channels(array): id canali registrati da questo plugin (esempio:["matrix"]).providers(array): id provider registrati da questo plugin.skills(array): directory skill da caricare (relative alla radice plugin).name(stringa): nome visualizzazione per il plugin.description(stringa): breve riepilogo plugin.uiHints(oggetto): etichette/placeholder/flag sensibili campo configurazione per rendering UI.version(stringa): versione plugin (informativa).
Requisiti JSON Schema
- Ogni plugin deve fornire un JSON Schema, anche se non accetta configurazione.
- Uno schema vuoto è accettabile (es.
{ "type": "object", "additionalProperties": false }). - Gli schemi sono validati al momento di lettura/scrittura configurazione, non al runtime.
Comportamento validazione
- Le chiavi
channels.*sconosciute sono errori, a meno che l'id canale non sia dichiarato da un manifesto plugin. plugins.entries.<id>,plugins.allow,plugins.denyeplugins.slots.*devono riferirsi a id plugin scopribili. Gli id sconosciuti sono errori.- Se un plugin è installato ma ha un manifesto o schema rotto o mancante, la validazione fallisce e Doctor riporta l'errore plugin.
- Se esiste configurazione plugin ma il plugin è disabilitato, la configurazione viene mantenuta e un warning è mostrato in Doctor + log.
Note
- Il manifesto è richiesto per tutti i plugin, inclusi caricamenti filesystem locali.
- Il runtime carica ancora il modulo plugin separatamente; il manifesto è solo per discovery + validazione.
- Se il tuo plugin dipende da moduli nativi, documenta i passaggi build e eventuali requisiti allowlist package-manager (es. pnpm
allow-build-scripts-pnpm rebuild <package>).