Class: Brute::Middleware::Skills
- Inherits:
-
Object
- Object
- 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.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, skills: []) ⇒ Skills
constructor
A new instance of Skills.
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 |