Module: Legion::Extensions::Agentic::Integration::Map::Runners::CognitiveMap
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb
Instance Method Summary collapse
- #add_location(id:, domain: :general, properties: {}) ⇒ Object
- #cognitive_map_stats ⇒ Object
- #connect_locations(from:, to:, distance: Helpers::Constants::DEFAULT_DISTANCE, bidirectional: true) ⇒ Object
- #explore_neighborhood(id:, max_distance: 3.0) ⇒ Object
- #familiar_locations(limit: 10) ⇒ Object
- #find_path(from:, to:) ⇒ Object
- #map_clusters ⇒ Object
- #switch_context(context_id:) ⇒ Object
- #update_cognitive_map ⇒ Object
- #visit_location(id:) ⇒ Object
Instance Method Details
#add_location(id:, domain: :general, properties: {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 13 def add_location(id:, domain: :general, properties: {}, **) result = map_store.add_location(id: id, domain: domain, properties: properties) if result log.debug("[cognitive_map] add_location id=#{id} domain=#{domain}") { success: true, id: id, domain: domain } else log.warn("[cognitive_map] add_location failed: capacity or duplicate id=#{id}") { success: false, id: id, reason: :capacity_or_duplicate } end end |
#cognitive_map_stats ⇒ Object
78 79 80 81 82 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 78 def cognitive_map_stats(**) stats = map_store.to_h log.debug("[cognitive_map] stats context=#{stats[:context]} locations=#{stats[:location_count]}") { success: true }.merge(stats) end |
#connect_locations(from:, to:, distance: Helpers::Constants::DEFAULT_DISTANCE, bidirectional: true) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 24 def connect_locations(from:, to:, distance: Helpers::Constants::DEFAULT_DISTANCE, bidirectional: true, **) result = map_store.connect(from: from, to: to, distance: distance, bidirectional: bidirectional) if result log.debug("[cognitive_map] connect from=#{from} to=#{to} distance=#{distance}") { success: true, from: from, to: to, distance: distance, bidirectional: bidirectional } else log.warn("[cognitive_map] connect failed: missing location from=#{from} to=#{to}") { success: false, from: from, to: to, reason: :missing_location } end end |
#explore_neighborhood(id:, max_distance: 3.0) ⇒ Object
48 49 50 51 52 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 48 def explore_neighborhood(id:, max_distance: 3.0, **) reachable = map_store.reachable_from(id: id, max_distance: max_distance) log.debug("[cognitive_map] explore id=#{id} max_distance=#{max_distance} found=#{reachable.size}") { success: true, id: id, reachable: reachable, count: reachable.size } end |
#familiar_locations(limit: 10) ⇒ Object
60 61 62 63 64 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 60 def familiar_locations(limit: 10, **) locations = map_store.most_familiar(limit: limit) log.debug("[cognitive_map] familiar_locations count=#{locations.size}") { success: true, locations: locations, count: locations.size } end |
#find_path(from:, to:) ⇒ Object
42 43 44 45 46 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 42 def find_path(from:, to:, **) result = map_store.shortest_path(from: from, to: to) log.debug("[cognitive_map] find_path from=#{from} to=#{to} found=#{result[:found]}") result.merge(success: result[:found]) end |
#map_clusters ⇒ Object
54 55 56 57 58 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 54 def map_clusters(**) components = map_store.clusters log.debug("[cognitive_map] clusters count=#{components.size}") { success: true, clusters: components, count: components.size } end |
#switch_context(context_id:) ⇒ Object
66 67 68 69 70 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 66 def switch_context(context_id:, **) result = map_store.context_switch(context_id: context_id) log.info("[cognitive_map] context_switch context_id=#{context_id} switched=#{result[:switched]}") result.merge(success: result[:switched]) end |
#update_cognitive_map ⇒ Object
72 73 74 75 76 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 72 def update_cognitive_map(**) result = map_store.decay_all log.debug("[cognitive_map] decay_cycle decayed=#{result[:decayed]} pruned=#{result[:pruned]}") { success: true, decayed: result[:decayed], pruned: result[:pruned] } end |
#visit_location(id:) ⇒ Object
36 37 38 39 40 |
# File 'lib/legion/extensions/agentic/integration/map/runners/cognitive_map.rb', line 36 def visit_location(id:, **) result = map_store.visit(id: id) log.debug("[cognitive_map] visit id=#{id} found=#{result[:found]}") result.merge(success: result[:found]) end |