Class: Kward::PluginRegistry::DSL
- Inherits:
-
Object
- Object
- Kward::PluginRegistry::DSL
- Defined in:
- lib/kward/plugin_registry.rb
Overview
Public DSL object yielded by Kward.plugin blocks.
Plugin files normally interact with this object only through a block:
Instance Method Summary collapse
-
#command(name, description: "", argument_hint: "") {|args, ctx| ... } ⇒ void
Registers a slash command.
-
#footer {|ctx| ... } ⇒ void
Registers or replaces the custom footer renderer.
-
#initialize(registry, path) ⇒ DSL
constructor
Creates an object for trusted plugin loading and dispatch.
-
#interactive_command(name, rows:, fps: 30, description: "", argument_hint: "") {|ui, ctx| ... } ⇒ void
Registers an interactive command that takes over the composer region with a Kward-driven render and input loop.
-
#on_transcript_event {|event, ctx| ... } ⇒ void
Registers a live transcript event observer.
-
#prompt_context {|ctx| ... } ⇒ void
Registers prompt context text injected into future system prompts.
Constructor Details
#initialize(registry, path) ⇒ DSL
Creates an object for trusted plugin loading and dispatch.
122 123 124 125 |
# File 'lib/kward/plugin_registry.rb', line 122 def initialize(registry, path) @registry = registry @path = path end |
Instance Method Details
#command(name, description: "", argument_hint: "") {|args, ctx| ... } ⇒ void
This method returns an undefined value.
Registers a slash command.
The command is available in the interactive CLI and through the RPC
command bridge. Command names do not include the leading /.
139 140 141 |
# File 'lib/kward/plugin_registry.rb', line 139 def command(name, description: "", argument_hint: "", &block) @registry.register_command(name, description: description, argument_hint: argument_hint, path: @path, &block) end |
#footer {|ctx| ... } ⇒ void
This method returns an undefined value.
Registers or replaces the custom footer renderer.
Only one footer renderer is active. If multiple plugins register one, the later renderer replaces the earlier renderer.
151 152 153 |
# File 'lib/kward/plugin_registry.rb', line 151 def (&block) @registry.(path: @path, &block) end |
#interactive_command(name, rows:, fps: 30, description: "", argument_hint: "") {|ui, ctx| ... } ⇒ void
This method returns an undefined value.
Registers an interactive command that takes over the composer region with a Kward-driven render and input loop. The handler receives an interactive controller object with a canvas API for drawing colored cells and reading keys. Useful for games, dashboards, and viewers.
194 195 196 |
# File 'lib/kward/plugin_registry.rb', line 194 def interactive_command(name, rows:, fps: 30, description: "", argument_hint: "", &block) @registry.register_interactive_command(name, rows: rows, fps: fps, description: description, argument_hint: argument_hint, path: @path, &block) end |
#on_transcript_event {|event, ctx| ... } ⇒ void
This method returns an undefined value.
Registers a live transcript event observer.
Observer errors are caught and reported as warnings so a plugin cannot crash the active turn by raising from an event handler.
164 165 166 |
# File 'lib/kward/plugin_registry.rb', line 164 def on_transcript_event(&block) @registry.register_transcript_event(path: @path, &block) end |
#prompt_context {|ctx| ... } ⇒ void
This method returns an undefined value.
Registers prompt context text injected into future system prompts.
Keep this text short and never include secrets. The returned string can be sent to the active model as part of Kward's system instructions.
176 177 178 |
# File 'lib/kward/plugin_registry.rb', line 176 def prompt_context(&block) @registry.register_prompt_context(path: @path, &block) end |