Class: Brute::Middleware::Skills
- Defined in:
- lib/brute/middleware/025_skills.rb
Overview
Loads skill objects into the agent context.
Skills are handed in as objects — discovery is the caller's job:
skills = Brute::Skill.all(cwd: Dir.pwd)
agent
.use(Brute::Middleware::Skills, skills: skills)
.use(Brute::Middleware::SystemPrompt)
Per turn:
1. env[:skills] = the objects, for downstream middleware, tools, and
the terminal app (prime-agent's resourceLoader.getSkills() analogue)
2. env[:metadata][:skills] = the same objects, so
Middleware::SystemPrompt merges them into the prompt ctx and
Brute::Prompts::Skills renders the <available_skills> section
Place it before Middleware::SystemPrompt in the stack. It never touches env itself.
Constant Summary
Constants included from Hooks
Hooks::AFTER_LLM_EVENT, Hooks::AFTER_TOOL_EVENT, Hooks::APPROVE_TOOL_EVENT, Hooks::BEFORE_LLM_EVENT, Hooks::BEFORE_TOOL_EVENT, Hooks::COMPACTED_EVENT, Hooks::COMPACT_DURATION_EVENT, Hooks::DURATION_EVENT, Hooks::ENTER_EVENT, Hooks::EXIT_EVENT, Hooks::FARADAY_ERROR_EVENT, Hooks::LLM_DURATION_EVENT, Hooks::LLM_FAILURE_EVENT, Hooks::MIDDLEWARE_ADDED_EVENT, Hooks::OPEN_ROUTER_SERVER_ERROR_EVENT, Hooks::STANDARD_ERROR_EVENT, Hooks::TOOL_DURATION_EVENT, Hooks::TURN_DURATION_EVENT, Hooks::TURN_END_EVENT, Hooks::TURN_START_EVENT
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, skills: []) ⇒ Skills
constructor
A new instance of Skills.
Methods included from Hooks
Constructor Details
#initialize(app, skills: []) ⇒ Skills
Returns a new instance of Skills.
27 28 29 30 |
# File 'lib/brute/middleware/025_skills.rb', line 27 def initialize(app, skills: []) @app = app @skills = skills end |
Instance Method Details
#call(env) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/brute/middleware/025_skills.rb', line 32 def call(env) env[:skills] = @skills env[:metadata] ||= {} env[:metadata][:skills] ||= @skills @app.call(env) end |