Enasis Network Chatting Robie#
Configuration Container#
- class enrobie.robie.RobieConfig(sargs: dict[str, Any] | None = None, files: str | Path | list[str | Path] | tuple[str | Path] | set[str] | None = None, cargs: dict[str, Any] | None = None)[source]
Bases:
Config
Contain the configurations from the arguments and files.
- Parameters:
sargs – Additional arguments on the command line.
files – Complete or relative path to config files.
cargs – Configuration arguments in dictionary form, which will override contents from the config files.
- property config: dict[str, Any]
Return the configuration dumped from the Pydantic model.
Warning
This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.
- Returns:
Configuration dumped from the Pydantic model.
- property inserts: dict[Literal['clients', 'plugins'], dict[str, Any]]
Return the value for the attribute from class instance.
- Returns:
Value for the attribute from class instance.
- property params: RobieParams
Return the Pydantic model containing the configuration.
Warning
This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.
- Returns:
Pydantic model containing the configuration.
- register(name: str, *, client: Type[RobieClientParams] | None = None, plugin: Type[RobiePluginParams] | None = None, source: dict[str, Any] | None = None, merge: bool = True) None [source]
Register the plugin parameters for parameter processing.
- Parameters:
name – Name of the object within the Robie config.
client – Class definition for the instantiation.
plugin – Class definition for the instantiation.
source – Source for the parameters instantiation.
merge – Reprocess all parameters including added.
Parameters Container#
- pydantic model enrobie.robie.params.RobieParams[source]
Bases:
Params
Process and validate the core configuration parameters.
Show JSON schema
{ "title": "RobieParams", "description": "Process and validate the core configuration parameters.", "type": "object", "properties": { "enconfig": { "anyOf": [ { "$ref": "#/$defs/ConfigParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Config instance" }, "enlogger": { "anyOf": [ { "$ref": "#/$defs/LoggerParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Logger instance" }, "encrypts": { "anyOf": [ { "$ref": "#/$defs/CryptsParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Crypts instance" }, "database": { "default": "sqlite:///:memory:", "description": "Database connection string", "minLength": 1, "title": "Database", "type": "string" }, "printer": { "$ref": "#/$defs/RobiePrinterParams", "description": "Print messages to console" }, "service": { "$ref": "#/$defs/RobieServiceParams", "description": "Parameters for Robie Service" }, "clients": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/RobieClientParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Robie clients", "title": "Clients" }, "plugins": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/RobiePluginParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Robie plugins", "title": "Plugins" }, "persons": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/RobiePersonParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Robie persons", "title": "Persons" } }, "$defs": { "ConfigParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "paths": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Location of configuration files", "title": "Paths" } }, "title": "ConfigParams", "type": "object" }, "CryptParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "phrase": { "description": "Passphrase for the operations", "minLength": 1, "title": "Phrase", "type": "string" } }, "required": [ "phrase" ], "title": "CryptParams", "type": "object" }, "CryptsParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "phrases": { "additionalProperties": { "$ref": "#/$defs/CryptParams" }, "description": "Passphrases for the operations", "minProperties": 0, "title": "Phrases", "type": "object" } }, "required": [ "phrases" ], "title": "CryptsParams", "type": "object" }, "LoggerParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "stdo_level": { "anyOf": [ { "enum": [ "critical", "debug", "error", "info", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Minimum logging message level", "title": "Stdo Level" }, "file_level": { "anyOf": [ { "enum": [ "critical", "debug", "error", "info", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Minimum logging message level", "title": "File Level" }, "file_path": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Enable output to the log file", "title": "File Path" } }, "title": "LoggerParams", "type": "object" }, "RobieClientParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which client are parameters", "examples": [ "enrobie.clients.DSCClient", "enrobie.clients.IRCClient", "enrobie.clients.MTMClient" ], "title": "Locate" } }, "title": "RobieClientParams", "type": "object" }, "RobiePersonMatchParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "client": { "description": "Client where the user exists", "minLength": 1, "title": "Client", "type": "string" }, "match": { "description": "Values client uses to identify", "items": { "type": "string" }, "minItems": 1, "title": "Match", "type": "array" } }, "required": [ "client", "match" ], "title": "RobiePersonMatchParams", "type": "object" }, "RobiePersonParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "first": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "First" }, "last": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "Last" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "About" }, "matches": { "description": "How the user will be identified", "items": { "$ref": "#/$defs/RobiePersonMatchParams" }, "title": "Matches", "type": "array" }, "weight": { "default": 50, "description": "Determine order of precedence", "maximum": 100, "minimum": 1, "title": "Weight", "type": "integer" } }, "required": [ "matches" ], "title": "RobiePersonParams", "type": "object" }, "RobiePluginParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" } }, "title": "RobiePluginParams", "type": "object" }, "RobiePrinterParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "message": { "default": false, "description": "Print the messages to console", "title": "Message", "type": "boolean" }, "command": { "default": false, "description": "Print the commands to console", "title": "Command", "type": "boolean" } }, "title": "RobiePrinterParams", "type": "object" }, "RobieServiceParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "respite": { "$ref": "#/$defs/RobieServiceRespiteParams", "description": "When operates are performed" } }, "title": "RobieServiceParams", "type": "object" }, "RobieServiceRespiteParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "health": { "default": 3, "description": "How often health is checked", "maximum": 15, "minimum": 1, "title": "Health", "type": "integer" } }, "title": "RobieServiceRespiteParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
enconfig (Annotated[Optional[ConfigParams], Field(None, description='Parameters for Config instance')])
encrypts (Annotated[Optional[CryptsParams], Field(None, description='Parameters for Crypts instance')])
enlogger (Annotated[Optional[LoggerParams], Field(None, description='Parameters for Logger instance')])
- field clients: Annotated[dict[str, RobieClientParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie clients', metadata=[MinLen(min_length=1)])] = None
Parameters for Robie clients
- Constraints:
min_length = 1
- field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'
Database connection string
- Constraints:
min_length = 1
- field enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')] = None
Parameters for Config instance
- field encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')] = None
Parameters for Crypts instance
- field enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')] = None
Parameters for Logger instance
- field persons: Annotated[dict[str, RobiePersonParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie persons', metadata=[MinLen(min_length=1)])] = None
Parameters for Robie persons
- Constraints:
min_length = 1
- field plugins: Annotated[dict[str, RobiePluginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie plugins', metadata=[MinLen(min_length=1)])] = None
Parameters for Robie plugins
- Constraints:
min_length = 1
- field printer: Annotated[RobiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobiePrinterParams, description='Print messages to console')] [Optional]
Print messages to console
- field service: Annotated[RobieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobieServiceParams, description='Parameters for Robie Service')] [Optional]
Parameters for Robie Service
Homie Persons#
- pydantic model enrobie.robie.params.RobiePersonParams[source]
Bases:
RobieChildParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "RobiePersonParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "first": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "First" }, "last": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "Last" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Additional optional information", "title": "About" }, "matches": { "description": "How the user will be identified", "items": { "$ref": "#/$defs/RobiePersonMatchParams" }, "title": "Matches", "type": "array" }, "weight": { "default": 50, "description": "Determine order of precedence", "maximum": 100, "minimum": 1, "title": "Weight", "type": "integer" } }, "$defs": { "RobiePersonMatchParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "client": { "description": "Client where the user exists", "minLength": 1, "title": "Client", "type": "string" }, "match": { "description": "Values client uses to identify", "items": { "type": "string" }, "minItems": 1, "title": "Match", "type": "array" } }, "required": [ "client", "match" ], "title": "RobiePersonMatchParams", "type": "object" } }, "additionalProperties": false, "required": [ "matches" ] }
- Config:
extra: str = forbid
- Fields:
enable (Annotated[bool, Field(False, description='Determine whether child enabled')])
- field about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None
Additional optional information
- Constraints:
min_length = 1
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field first: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None
Additional optional information
- Constraints:
min_length = 1
- field last: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None
Additional optional information
- Constraints:
min_length = 1
- field matches: Annotated[list[RobiePersonMatchParams], FieldInfo(annotation=NoneType, required=True, description='How the user will be identified')] [Required]
How the user will be identified
Robie Clients#
- pydantic model enrobie.clients.discord.params.DSCClientParams[source]
Bases:
RobieClientParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "DSCClientParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which client are parameters", "examples": [ "enrobie.clients.DSCClient", "enrobie.clients.IRCClient", "enrobie.clients.MTMClient" ], "title": "Locate" }, "client": { "$ref": "#/$defs/ClientParams", "description": "Parameters for the base client" }, "intents": { "default": 4609, "description": "Timeout connecting to server", "maximum": 65535, "minimum": 0, "title": "Intents", "type": "integer" }, "delay": { "default": 15, "description": "Period to wait for reconnect", "maximum": 300, "minimum": 1, "title": "Delay", "type": "integer" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "ClientParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "appid": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional application identifier", "title": "Appid" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" }, "queue_size": { "default": 10000, "description": "Maximum size for queued events", "maximum": 1000000, "minimum": 1000, "title": "Queue Size", "type": "integer" } }, "required": [ "token" ], "title": "ClientParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "client" ] }
- Config:
extra: str = forbid
- Fields:
- field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]
Parameters for the base client
- field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15
Period to wait for reconnect
- Constraints:
ge = 1
le = 300
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field intents: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=4609, description='Timeout connecting to server', metadata=[Ge(ge=0), Le(le=65535)])] = 4609
Timeout connecting to server
- Constraints:
ge = 0
le = 65535
- field locate: Annotated[str | None, Field(None, description='For which client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None
For which client are parameters
- Constraints:
min_length = 1
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.clients.irc.params.IRCClientParams[source]
Bases:
RobieClientParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "IRCClientParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which client are parameters", "examples": [ "enrobie.clients.DSCClient", "enrobie.clients.IRCClient", "enrobie.clients.MTMClient" ], "title": "Locate" }, "client": { "$ref": "#/$defs/ClientParams", "description": "Parameters for the base client" }, "delay": { "default": 15, "description": "Period to wait for reconnect", "maximum": 300, "minimum": 1, "title": "Delay", "type": "integer" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "ClientParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "port": { "default": 6697, "description": "Server address for connection", "maximum": 65535, "minimum": 1, "title": "Port", "type": "integer" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "operate": { "default": "normal", "description": "Method for server connection", "enum": [ "normal", "service" ], "title": "Operate", "type": "string" }, "nickname": { "default": "ircbot", "description": "Parameter for the integration", "minLength": 1, "title": "Nickname", "type": "string" }, "username": { "default": "ircbot", "description": "Parameter for the integration", "minLength": 1, "title": "Username", "type": "string" }, "realname": { "default": "Chatting Robie", "description": "Parameter for the integration", "minLength": 1, "title": "Realname", "type": "string" }, "password": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Parameter for the integration", "title": "Password" }, "servername": { "default": "services.invalid", "description": "Parameter for the integration", "minLength": 1, "title": "Servername", "type": "string" }, "serverid": { "default": "42X", "description": "Unique identifier for services", "minLength": 1, "title": "Serverid", "type": "string" }, "ssl_enable": { "default": true, "description": "Enable connection encryption", "title": "Ssl Enable", "type": "boolean" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "queue_size": { "default": 10000, "description": "Maximum size for queued events", "maximum": 1000000, "minimum": 1000, "title": "Queue Size", "type": "integer" } }, "required": [ "server" ], "title": "ClientParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "client" ] }
- Config:
extra: str = forbid
- Fields:
- field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]
Parameters for the base client
- field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15
Period to wait for reconnect
- Constraints:
ge = 1
le = 300
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field locate: Annotated[str | None, Field(None, description='For which client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None
For which client are parameters
- Constraints:
min_length = 1
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.clients.mattermost.params.MTMClientParams[source]
Bases:
RobieClientParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "MTMClientParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which client are parameters", "examples": [ "enrobie.clients.DSCClient", "enrobie.clients.IRCClient", "enrobie.clients.MTMClient" ], "title": "Locate" }, "client": { "$ref": "#/$defs/ClientParams", "description": "Parameters for the base client" }, "delay": { "default": 15, "description": "Period to wait for reconnect", "maximum": 300, "minimum": 1, "title": "Delay", "type": "integer" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "ClientParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "port": { "default": 443, "description": "Server address for connection", "maximum": 65535, "minimum": 1, "title": "Port", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "teamid": { "description": "Parameter for the integration", "minLength": 1, "title": "Teamid", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" }, "queue_size": { "default": 10000, "description": "Maximum size for queued events", "maximum": 1000000, "minimum": 1000, "title": "Queue Size", "type": "integer" } }, "required": [ "server", "token", "teamid" ], "title": "ClientParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "client" ] }
- Config:
extra: str = forbid
- Fields:
- field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]
Parameters for the base client
- field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15
Period to wait for reconnect
- Constraints:
ge = 1
le = 300
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field locate: Annotated[str | None, Field(None, description='For which client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None
For which client are parameters
- Constraints:
min_length = 1
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
Robie Plugins#
- pydantic model enrobie.plugins.ainswer.params.AinswerPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "AinswerPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "database": { "default": "sqlite:///:memory:", "description": "Database connection string", "minLength": 1, "title": "Database", "type": "string" }, "histories": { "default": 10, "description": "Number of messages per anchor", "maximum": 1000, "minimum": 1, "title": "Histories", "type": "integer" }, "memories": { "default": 10, "description": "Number of messages per person", "maximum": 1000, "minimum": 1, "title": "Memories", "type": "integer" }, "clients": { "description": "List of clients to enable plugin", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "ainswer": { "$ref": "#/$defs/AinswerPluginAinswerParams", "description": "Parameters for the AI platforms" }, "prompt": { "$ref": "#/$defs/AinswerPluginPromptParams", "description": "Override the agent system prompt" }, "plugins": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of plugins to load tools", "title": "Plugins" }, "logger": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Logger for including recents", "title": "Logger" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "AinswerPluginAinswerParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "origin": { "description": "Which platform hosts the model", "enum": [ "anthropic", "openai" ], "title": "Origin", "type": "string" }, "model": { "description": "Platform model that will be used", "minLength": 1, "title": "Model", "type": "string" }, "secret": { "description": "Model in platform that is used", "minLength": 1, "title": "Secret", "type": "string" }, "timeout": { "default": 30, "description": "Time to wait during the request", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "sleep": { "default": [ 15, 30 ], "description": "Time to wait before the request", "maxItems": 2, "minItems": 2, "prefixItems": [ { "type": "integer" }, { "type": "integer" } ], "title": "Sleep", "type": "array" } }, "required": [ "origin", "model", "secret" ], "title": "AinswerPluginAinswerParams", "type": "object" }, "AinswerPluginPromptClientParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "dsc": { "default": "In 1875 characters or less, answer the user question. Format for Discord. Markdown is encouraged.", "description": "Supplement the system prompt", "minLength": 1, "title": "Dsc", "type": "string" }, "irc": { "default": "In 325 characters or less, answer the user question. Format for IRCv2. Do not use markdown. Do not use colors.", "description": "Supplement the system prompt", "minLength": 1, "title": "Irc", "type": "string" }, "mtm": { "default": "In 1875 characters or less, answer the user question. Format for Mattermost. Markdown is encouraged.", "description": "Supplement the system prompt", "minLength": 1, "title": "Mtm", "type": "string" } }, "title": "AinswerPluginPromptClientParams", "type": "object" }, "AinswerPluginPromptParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "system": { "default": "You are a helpful chatbot assistant named Robie. You were built by Robert, at the Enasis Network.", "description": "Override the agent system prompt", "minLength": 1, "title": "System", "type": "string" }, "client": { "$ref": "#/$defs/AinswerPluginPromptClientParams", "description": "Additional chat platform prompt" }, "header": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional header before question", "title": "Header" }, "footer": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional footer after question", "title": "Footer" }, "ignore": { "default": [ "If you believe that you are being abused by the user asking the quesiton." ], "description": "Reasons for LLM to decline response", "items": { "type": "string" }, "minItems": 1, "title": "Ignore", "type": "array" } }, "title": "AinswerPluginPromptParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "clients", "ainswer" ] }
- Config:
extra: str = forbid
- Fields:
- field ainswer: Annotated[AinswerPluginAinswerParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the AI platforms')] [Required]
Parameters for the AI platforms
- field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]
List of clients to enable plugin
- Constraints:
min_length = 1
- field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'
Database connection string
- Constraints:
min_length = 1
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field histories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=10, description='Number of messages per anchor', metadata=[Ge(ge=1), Le(le=1000)])] = 10
Number of messages per anchor
- Constraints:
ge = 1
le = 1000
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field logger: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Logger for including recents', metadata=[MinLen(min_length=1)])] = None
Logger for including recents
- Constraints:
min_length = 1
- field memories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=10, description='Number of messages per person', metadata=[Ge(ge=1), Le(le=1000)])] = 10
Number of messages per person
- Constraints:
ge = 1
le = 1000
- field plugins: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='List of plugins to load tools', metadata=[MinLen(min_length=1)])] = None
List of plugins to load tools
- Constraints:
min_length = 1
- field prompt: Annotated[AinswerPluginPromptParams, FieldInfo(annotation=NoneType, required=False, default_factory=AinswerPluginPromptParams, description='Override the agent system prompt')] [Optional]
Override the agent system prompt
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.plugins.enhomie.params.HomiePluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "HomiePluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "command": { "$ref": "#/$defs/HomiePluginCommandParams", "description": "Command name per chat platform" }, "restful": { "description": "Where to find the RESTful API", "examples": [ "http://localhost:8420" ], "minLength": 1, "title": "Restful", "type": "string" }, "username": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Authenticate with the service", "title": "Username" }, "password": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Authenticate with the service", "title": "Password" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" }, "clients": { "description": "List of clients to enable plugin", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "HomiePluginCommandParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "irc": { "default": "!persist", "description": "Command name for chat platform", "minLength": 2, "title": "Irc", "type": "string" }, "dsc": { "default": "!persist", "description": "Command name for chat platform", "minLength": 2, "title": "Dsc", "type": "string" }, "mtm": { "default": "!persist", "description": "Command name for chat platform", "minLength": 2, "title": "Mtm", "type": "string" } }, "title": "HomiePluginCommandParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "restful", "clients" ] }
- Config:
extra: str = forbid
- Fields:
- field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]
List of clients to enable plugin
- Constraints:
min_length = 1
- field command: Annotated[HomiePluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePluginCommandParams, description='Command name per chat platform')] [Optional]
Command name per chat platform
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field password: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None
Authenticate with the service
- Constraints:
min_length = 1
- field restful: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Where to find the RESTful API', examples=['http://localhost:8420'], metadata=[MinLen(min_length=1)])] [Required]
Where to find the RESTful API
- Constraints:
min_length = 1
- field ssl_capem: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Verify the ceritifcate valid', metadata=[MinLen(min_length=1)])] = None
Verify the ceritifcate valid
- Constraints:
min_length = 1
- field ssl_verify: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Verify the ceritifcate valid')] = True
Verify the ceritifcate valid
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- field timeout: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=30, description='Timeout connecting to server', metadata=[Ge(ge=1), Le(le=300)])] = 30
Timeout connecting to server
- Constraints:
ge = 1
le = 300
- pydantic model enrobie.plugins.nagios.params.NagiosPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "NagiosPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "command": { "$ref": "#/$defs/NagiosPluginCommandParams", "description": "Command name per chat platform" }, "restful": { "description": "Where to find the RESTful API", "examples": [ "http://localhost:8420" ], "minLength": 1, "title": "Restful", "type": "string" }, "username": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Authenticate with the service", "title": "Username" }, "password": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Authenticate with the service", "title": "Password" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" }, "clients": { "description": "List of clients to enable plugin", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "NagiosPluginCommandParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "irc": { "default": "!nagios", "description": "Command name for chat platform", "minLength": 2, "title": "Irc", "type": "string" }, "dsc": { "default": "!nagios", "description": "Command name for chat platform", "minLength": 2, "title": "Dsc", "type": "string" }, "mtm": { "default": "!nagios", "description": "Command name for chat platform", "minLength": 2, "title": "Mtm", "type": "string" } }, "title": "NagiosPluginCommandParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "restful", "clients" ] }
- Config:
extra: str = forbid
- Fields:
- field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]
List of clients to enable plugin
- Constraints:
min_length = 1
- field command: Annotated[NagiosPluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=NagiosPluginCommandParams, description='Command name per chat platform')] [Optional]
Command name per chat platform
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field password: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None
Authenticate with the service
- Constraints:
min_length = 1
- field restful: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Where to find the RESTful API', examples=['http://localhost:8420'], metadata=[MinLen(min_length=1)])] [Required]
Where to find the RESTful API
- Constraints:
min_length = 1
- field ssl_capem: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Verify the ceritifcate valid', metadata=[MinLen(min_length=1)])] = None
Verify the ceritifcate valid
- Constraints:
min_length = 1
- field ssl_verify: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Verify the ceritifcate valid')] = True
Verify the ceritifcate valid
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- field timeout: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=30, description='Timeout connecting to server', metadata=[Ge(ge=1), Le(le=300)])] = 30
Timeout connecting to server
- Constraints:
ge = 1
le = 300
- pydantic model enrobie.plugins.autojoin.params.AutoJoinPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "AutoJoinPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "channels": { "description": "Which channels to maintain join", "items": { "$ref": "#/$defs/AutoJoinPluginChannelParams" }, "minItems": 1, "title": "Channels", "type": "array" }, "interval": { "default": 5, "description": "Interval when channels are joined", "maximum": 300, "minimum": 5, "title": "Interval", "type": "integer" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "AutoJoinPluginChannelParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "client": { "description": "Client where channel exists", "minLength": 1, "title": "Client", "type": "string" }, "channel": { "description": "Name of channel to remain joined", "minLength": 1, "title": "Channel", "type": "string" } }, "required": [ "client", "channel" ], "title": "AutoJoinPluginChannelParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "channels" ] }
- Config:
extra: str = forbid
- Fields:
- field channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])] [Required]
Which channels to maintain join
- Constraints:
min_length = 1
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when channels are joined', metadata=[Ge(ge=5), Le(le=300)])] = 5
Interval when channels are joined
- Constraints:
ge = 5
le = 300
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.plugins.autonick.params.AutoNickPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "AutoNickPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "clients": { "description": "List of clients to enable plugin", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "interval": { "default": 5, "description": "Interval when nick is validated", "maximum": 300, "minimum": 5, "title": "Interval", "type": "integer" }, "services": { "anyOf": [ { "items": { "$ref": "#/$defs/AutoNickPluginServiceParams" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "How to identify with services", "title": "Services" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "AutoNickPluginServiceParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "client": { "description": "Client where services exist", "minLength": 1, "title": "Client", "type": "string" }, "password": { "description": "Identify with nick services", "minLength": 1, "title": "Password", "type": "string" }, "service": { "default": "NickServ", "description": "Nickname of network service", "minLength": 1, "title": "Service", "type": "string" } }, "required": [ "client", "password" ], "title": "AutoNickPluginServiceParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "clients" ] }
- Config:
extra: str = forbid
- Fields:
- field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]
List of clients to enable plugin
- Constraints:
min_length = 1
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when nick is validated', metadata=[Ge(ge=5), Le(le=300)])] = 5
Interval when nick is validated
- Constraints:
ge = 5
le = 300
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field services: Annotated[list[AutoNickPluginServiceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='How to identify with services')] = None
How to identify with services
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.plugins.logger.params.LoggerPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "LoggerPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "database": { "default": "sqlite:///:memory:", "description": "Database connection string", "minLength": 1, "title": "Database", "type": "string" }, "histories": { "default": 100, "description": "Number of messages per anchor", "maximum": 10000, "minimum": 1, "title": "Histories", "type": "integer" }, "clients": { "description": "List of clients to enable plugin", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "output": { "anyOf": [ { "minLength": 4, "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional path where logs append", "title": "Output" }, "status": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per chat platform" } }, "$defs": { "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" } }, "additionalProperties": false, "required": [ "clients" ] }
- Config:
extra: str = forbid
- Fields:
- field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]
List of clients to enable plugin
- Constraints:
min_length = 1
- field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'
Database connection string
- Constraints:
min_length = 1
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field histories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=100, description='Number of messages per anchor', metadata=[Ge(ge=1), Le(le=10000)])] = 100
Number of messages per anchor
- Constraints:
ge = 1
le = 10000
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field output: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional path where logs append', metadata=[MinLen(min_length=4)])] = None
Optional path where logs append
- Constraints:
min_length = 4
- field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]
Icon used per chat platform
- pydantic model enrobie.plugins.status.params.StatusPluginParams[source]
Bases:
RobiePluginParams
Process and validate the Robie configuration parameters.
Show JSON schema
{ "title": "StatusPluginParams", "description": "Process and validate the Robie configuration parameters.", "type": "object", "properties": { "enable": { "default": false, "description": "Determine whether child enabled", "title": "Enable", "type": "boolean" }, "locate": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "For which plugin are parameters", "examples": [ "enrobie.plugins.AinswerPlugin", "enrobie.plugins.AutoJoinPlugin", "enrobie.plugins.AutoNickPlugin", "enrobie.plugins.StatusPlugin" ], "title": "Locate" }, "trusted": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users are trusted by the plugin", "title": "Trusted" }, "reports": { "anyOf": [ { "items": { "$ref": "#/$defs/StatusPluginReportParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Where to send status updates", "title": "Reports" }, "command": { "$ref": "#/$defs/StatusPluginCommandParams", "description": "Command name per chat platform" }, "icons": { "$ref": "#/$defs/StatusPluginIconsParams", "description": "Icon used per the chat platform" } }, "$defs": { "StatusPluginCommandParams": { "additionalProperties": false, "description": "Process and validate the Robie configuration parameters.", "properties": { "irc": { "default": "!status", "description": "Command name for chat platform", "minLength": 2, "title": "Irc", "type": "string" }, "dsc": { "default": "!status", "description": "Command name for chat platform", "minLength": 2, "title": "Dsc", "type": "string" }, "mtm": { "default": "!status", "description": "Command name for chat platform", "minLength": 2, "title": "Mtm", "type": "string" } }, "title": "StatusPluginCommandParams", "type": "object" }, "StatusPluginIconParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "irc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Irc" }, "dsc": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Dsc" }, "mtm": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon used for the chat platform", "title": "Mtm" } }, "title": "StatusPluginIconParams", "type": "object" }, "StatusPluginIconsParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "pending": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per the chat platform" }, "normal": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per the chat platform" }, "failure": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per the chat platform" }, "unknown": { "$ref": "#/$defs/StatusPluginIconParams", "description": "Icon used per the chat platform" } }, "title": "StatusPluginIconsParams", "type": "object" }, "StatusPluginReportParams": { "additionalProperties": false, "description": "Contain information for constructing the chat messages.", "properties": { "client": { "description": "Client where channel exists", "minLength": 1, "title": "Client", "type": "string" }, "target": { "description": "Where the message will be sent", "minLength": 1, "title": "Target", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "pending", "normal", "failure", "unknown" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Which status value are related", "title": "States" }, "delay": { "default": 15, "description": "Period between status reports", "maximum": 864000, "minimum": 0, "title": "Delay", "type": "integer" } }, "required": [ "client", "target" ], "title": "StatusPluginReportParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field command: Annotated[StatusPluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginCommandParams, description='Command name per chat platform')] [Optional]
Command name per chat platform
- field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False
Determine whether child enabled
- field icons: Annotated[StatusPluginIconsParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconsParams, description='Icon used per the chat platform')] [Optional]
Icon used per the chat platform
- field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None
For which plugin are parameters
- Constraints:
min_length = 1
- field reports: Annotated[list[StatusPluginReportParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Where to send status updates', metadata=[MinLen(min_length=1)])] = None
Where to send status updates
- Constraints:
min_length = 1