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.deny e plugins.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>).