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.
-
#hook(event, id: nil, description: "", order: 100, match: nil, failure_policy: nil) {|event, ctx| ... } ⇒ void
Registers a lifecycle hook handler.
-
#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.
173 174 175 176 |
# File 'lib/kward/plugin_registry.rb', line 173 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 /.
190 191 192 |
# File 'lib/kward/plugin_registry.rb', line 190 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.
202 203 204 |
# File 'lib/kward/plugin_registry.rb', line 202 def (&block) @registry.(path: @path, &block) end |
#hook(event, id: nil, description: "", order: 100, match: nil, failure_policy: nil) {|event, ctx| ... } ⇒ void
This method returns an undefined value.
Registers a lifecycle hook handler.
Hooks are deterministic runtime callbacks around Kward lifecycle events. They can return a Hooks::Decision, a decision hash, a decision string, or nil to allow the operation.
234 235 236 |
# File 'lib/kward/plugin_registry.rb', line 234 def hook(event, id: nil, description: "", order: 100, match: nil, failure_policy: nil, &block) @registry.register_hook(event, id: id, description: description, order: order, match: match, failure_policy: failure_policy, 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.
264 265 266 |
# File 'lib/kward/plugin_registry.rb', line 264 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.
215 216 217 |
# File 'lib/kward/plugin_registry.rb', line 215 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.
246 247 248 |
# File 'lib/kward/plugin_registry.rb', line 246 def prompt_context(&block) @registry.register_prompt_context(path: @path, &block) end |