Class: RubynCode::Tools::MemorySearch
- Defined in:
- lib/rubyn_code/tools/memory_search.rb
Constant Summary collapse
- TOOL_NAME =
'memory_search'- DESCRIPTION =
'Searches project memories using full-text search. ' \ 'Returns relevant memories including code patterns, user preferences, ' \ 'project conventions, error resolutions, and past decisions.'
- PARAMETERS =
{ query: { type: :string, required: true, description: 'Search query for finding relevant memories' }, tier: { type: :string, required: false, description: 'Filter by memory tier: short, medium, or long' }, category: { type: :string, required: false, description: 'Filter by category: code_pattern, user_preference, ' \ 'project_convention, error_resolution, or decision' }, limit: { type: :integer, required: false, description: 'Maximum number of results to return (default 10)' } }.freeze
- RISK_LEVEL =
:read- REQUIRES_CONFIRMATION =
false
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#execute(query:, tier: nil, category: nil, limit: 10) ⇒ String
Formatted search results.
-
#initialize(project_root:, memory_search: nil) ⇒ MemorySearch
constructor
A new instance of MemorySearch.
Methods inherited from Base
description, parameters, requires_confirmation?, risk_level, #safe_path, summarize, to_schema, tool_name, #truncate
Constructor Details
#initialize(project_root:, memory_search: nil) ⇒ MemorySearch
Returns a new instance of MemorySearch.
26 27 28 29 |
# File 'lib/rubyn_code/tools/memory_search.rb', line 26 def initialize(project_root:, memory_search: nil) super(project_root: project_root) @memory_search = memory_search end |
Instance Method Details
#execute(query:, tier: nil, category: nil, limit: 10) ⇒ String
Returns formatted search results.
36 37 38 39 40 41 42 43 |
# File 'lib/rubyn_code/tools/memory_search.rb', line 36 def execute(query:, tier: nil, category: nil, limit: 10) search = @memory_search || resolve_memory_search results = search.search(query, tier: tier, category: category, limit: limit.to_i) return "No memories found for query: #{query}" if results.empty? format_results(results) end |