Module: Brainiac::Plugins::Discord
- Defined in:
- lib/brainiac/plugins/discord.rb,
lib/brainiac/plugins/discord/api.rb,
lib/brainiac/plugins/discord/cli.rb,
lib/brainiac/plugins/discord/config.rb,
lib/brainiac/plugins/discord/gateway.rb,
lib/brainiac/plugins/discord/message.rb,
lib/brainiac/plugins/discord/prompts.rb,
lib/brainiac/plugins/discord/version.rb,
lib/brainiac/plugins/discord/delivery.rb,
lib/brainiac/plugins/discord/metadata.rb,
lib/brainiac/plugins/discord/reactions.rb
Defined Under Namespace
Modules: Api, Cli, Config, Delivery, Gateway, Message, Prompts, Reactions
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
-
.cli(args) ⇒ Object
Plugin CLI entry point — called by brainiac core's plugin delegation.
-
.completions ⇒ Object
Subcommand names for bash completion.
-
.configured? ⇒ Boolean
Returns true if Discord has at least one bot token configured.
-
.help_text ⇒ Object
Help text shown in
brainiac helpwhen the plugin is installed. -
.register(app) ⇒ Object
Called by Brainiac plugin system during server startup.
Class Method Details
.cli(args) ⇒ Object
Plugin CLI entry point — called by brainiac core's plugin delegation.
264 265 266 |
# File 'lib/brainiac/plugins/discord/cli.rb', line 264 def self.cli(args) Cli.run(args) end |
.completions ⇒ Object
Subcommand names for bash completion.
269 270 271 |
# File 'lib/brainiac/plugins/discord/cli.rb', line 269 def self.completions %w[setup config default map owner token status] end |
.configured? ⇒ Boolean
Returns true if Discord has at least one bot token configured.
12 13 14 15 16 17 18 19 20 |
# File 'lib/brainiac/plugins/discord/metadata.rb', line 12 def self.configured? registry_file = File.join(ENV.fetch("BRAINIAC_DIR", File.join(Dir.home, ".brainiac")), "agents.json") return false unless File.exist?(registry_file) registry = JSON.parse(File.read(registry_file)) registry.any? { |_k, v| v.is_a?(Hash) && v.dig("env", "DISCORD_BOT_TOKEN") } rescue StandardError false end |
.help_text ⇒ Object
Help text shown in brainiac help when the plugin is installed.
23 24 25 |
# File 'lib/brainiac/plugins/discord/metadata.rb', line 23 def self.help_text " brainiac discord <command> Manage Discord bots (config, token, status, map)" end |
.register(app) ⇒ Object
Called by Brainiac plugin system during server startup.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/brainiac/plugins/discord.rb', line 21 def register(app) # Load Discord config Brainiac::Plugins::Discord::Config.load! # Register channel prompt Brainiac.register_channel_prompt(:discord, Brainiac::Plugins::Discord::Prompts::CHANNEL) # Register as notification provider register_notification_handler! # Register crash handler register_crash_handler! # Start all per-agent Discord bot gateway connections Brainiac::Plugins::Discord::Gateway.start_all! # Start draft delivery poller Brainiac::Plugins::Discord::Delivery.start_poller! # Set up API routes setup_routes(app) LOG.info "[Discord] Plugin registered (#{Brainiac::Plugins::Discord::Gateway.bot_count} bots)" end |