Module: Rubino::Skills::Toggle

Defined in:
lib/rubino/skills/toggle.rb

Overview

ONE enable/disable write path for every surface (#188): the HTTP API toggle (PUT /v1/skills/:name), the in-chat ‘/skills enable|disable` and the `rubino skills enable|disable` CLI verbs all validate against the registry and persist through the same StateRepository write —previously the API operation was the ONLY caller of StateRepository#set, so a CLI-only user literally could not disable a skill.

Class Method Summary collapse

Class Method Details

.set(name, enabled:, registry: nil, state_repository: nil) ⇒ Object

Persists the enabled flag for name. Returns the registered Skill (state written), or nil when the name is unknown (nothing written) —the caller decides how to surface the miss (404 for the API, a lowercase ✗ line for CLI/chat).



16
17
18
19
20
21
22
23
# File 'lib/rubino/skills/toggle.rb', line 16

def self.set(name, enabled:, registry: nil, state_repository: nil)
  registry ||= Registry.new
  skill = registry.find(name)
  return nil unless skill

  (state_repository || StateRepository.new).set(name, enabled: enabled)
  skill
end