lex-agentic-language 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lex-agentic-language.gemspec +1 -0
- data/lib/legion/extensions/agentic/language/conceptual_blending/runners/conceptual_blending.rb +2 -2
- data/lib/legion/extensions/agentic/language/conceptual_metaphor/runners/conceptual_metaphor.rb +2 -2
- data/lib/legion/extensions/agentic/language/frame_semantics/helpers/client.rb +1 -0
- data/lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb +11 -11
- data/lib/legion/extensions/agentic/language/grammar/runners/cognitive_grammar.rb +2 -2
- data/lib/legion/extensions/agentic/language/language/runners/language.rb +2 -2
- data/lib/legion/extensions/agentic/language/narrative_reasoning/runners/narrative_reasoning.rb +2 -2
- data/lib/legion/extensions/agentic/language/narrator/helpers/llm_enhancer.rb +6 -5
- data/lib/legion/extensions/agentic/language/narrator/runners/narrator.rb +2 -2
- data/lib/legion/extensions/agentic/language/pragmatic_inference/runners/pragmatic_inference.rb +2 -2
- data/lib/legion/extensions/agentic/language/version.rb +1 -1
- data/lib/legion/extensions/agentic/language.rb +1 -1
- data/spec/legion/extensions/agentic/language/language/helpers/summarizer_spec.rb +1 -1
- data/spec/legion/extensions/agentic/language/language/runners/language_spec.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 136abbbdf48e851fa947d8bba9738b6c225047d38f1b3db18a5d422912843dbd
|
|
4
|
+
data.tar.gz: 3b0cf42602ffa8d2f5e3b80ef3c7264f24c92ca1c1fd70926ebeabdb22492b82
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0bc27d01f9e6e910bfb8a5e07c40f726d9e697d2c1090ff7d3ecaf0d743481fb745c01173139db3f245c1f0fe74577a2008da686f7c27f63b4fa8f2fa667829
|
|
7
|
+
data.tar.gz: 8bb4d44b99575650f8a8547f9b88e55f979e7148f7eced283402c815e3f94cbc25e9008455e0e419875bbfe9edd0e4a2d697bc80e782af56d1345da1268b960b
|
data/CHANGELOG.md
CHANGED
|
@@ -34,5 +34,6 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
|
|
35
35
|
spec.add_development_dependency 'rspec', '~> 3.13'
|
|
36
36
|
spec.add_development_dependency 'rubocop', '~> 1.60'
|
|
37
|
+
spec.add_development_dependency 'rubocop-legion', '~> 0.1'
|
|
37
38
|
spec.add_development_dependency 'rubocop-rspec', '~> 2.26'
|
|
38
39
|
end
|
data/lib/legion/extensions/agentic/language/conceptual_blending/runners/conceptual_blending.rb
CHANGED
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module ConceptualBlending
|
|
8
8
|
module Runners
|
|
9
9
|
module ConceptualBlending
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def create_mental_space(name:, domain:, **)
|
|
14
14
|
log.debug "[conceptual_blending] create_space: name=#{name} domain=#{domain}"
|
data/lib/legion/extensions/agentic/language/conceptual_metaphor/runners/conceptual_metaphor.rb
CHANGED
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module ConceptualMetaphor
|
|
8
8
|
module Runners
|
|
9
9
|
module ConceptualMetaphor
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def create_metaphor(source_domain:, target_domain:, metaphor_type:,
|
|
14
14
|
mappings:, strength: nil, conventionality: nil, **)
|
|
@@ -6,17 +6,17 @@ module Legion
|
|
|
6
6
|
module Language
|
|
7
7
|
module FrameSemantics
|
|
8
8
|
module Runners
|
|
9
|
-
module FrameSemantics
|
|
9
|
+
module FrameSemantics # rubocop:disable Legion/Extension/RunnerIncludeHelpers
|
|
10
10
|
def create_semantic_frame(name:, domain:, **)
|
|
11
11
|
frame = engine.create_frame(name: name, domain: domain)
|
|
12
|
-
|
|
12
|
+
log.debug("[frame_semantics] created frame name=#{name} domain=#{domain} id=#{frame.id[0..7]}")
|
|
13
13
|
{ frame_id: frame.id, name: frame.name, domain: frame.domain, created: true }
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def define_frame_slot(frame_id:, name:, slot_type: :core, required: true, **)
|
|
17
17
|
frame = engine.define_slot(frame_id: frame_id, name: name, slot_type: slot_type, required: required)
|
|
18
18
|
if frame
|
|
19
|
-
|
|
19
|
+
log.debug("[frame_semantics] defined slot #{name} on frame #{frame_id[0..7]}")
|
|
20
20
|
{ defined: true, frame_id: frame_id, slot_name: name, slot_type: slot_type }
|
|
21
21
|
else
|
|
22
22
|
{ defined: false, reason: :frame_not_found }
|
|
@@ -26,7 +26,7 @@ module Legion
|
|
|
26
26
|
def fill_frame_slot(frame_id:, slot_name:, filler:, **)
|
|
27
27
|
result = engine.fill_slot(frame_id: frame_id, slot_name: slot_name, filler: filler)
|
|
28
28
|
if result
|
|
29
|
-
|
|
29
|
+
log.debug("[frame_semantics] filled slot #{slot_name} on frame #{frame_id[0..7]}")
|
|
30
30
|
{ filled: true, frame_id: frame_id, slot_name: slot_name, filler: filler }
|
|
31
31
|
else
|
|
32
32
|
{ filled: false, reason: :slot_or_frame_not_found }
|
|
@@ -36,7 +36,7 @@ module Legion
|
|
|
36
36
|
def instantiate_semantic_frame(frame_id:, context:, confidence: 0.7, **)
|
|
37
37
|
instance = engine.instantiate_frame(frame_id: frame_id, context: context, confidence: confidence)
|
|
38
38
|
if instance
|
|
39
|
-
|
|
39
|
+
log.debug("[frame_semantics] instantiated frame #{frame_id[0..7]} instance=#{instance.id[0..7]}")
|
|
40
40
|
{ instantiated: true, instance_id: instance.id, frame_id: frame_id,
|
|
41
41
|
filled_count: instance.filled_count }
|
|
42
42
|
else
|
|
@@ -48,7 +48,7 @@ module Legion
|
|
|
48
48
|
result = engine.add_frame_relation(frame_id: frame_id, relation: relation,
|
|
49
49
|
target_frame_id: target_frame_id)
|
|
50
50
|
if result
|
|
51
|
-
|
|
51
|
+
log.debug("[frame_semantics] added relation #{relation} #{frame_id[0..7]}->#{target_frame_id[0..7]}")
|
|
52
52
|
{ added: true, frame_id: frame_id, relation: relation, target_frame_id: target_frame_id }
|
|
53
53
|
else
|
|
54
54
|
{ added: false, reason: :invalid_frame_or_relation }
|
|
@@ -58,7 +58,7 @@ module Legion
|
|
|
58
58
|
def activate_semantic_frame(frame_id:, **)
|
|
59
59
|
result = engine.activate_frame(frame_id: frame_id)
|
|
60
60
|
if result
|
|
61
|
-
|
|
61
|
+
log.debug("[frame_semantics] activated frame #{frame_id[0..7]}")
|
|
62
62
|
{ activated: true, frame_id: frame_id }
|
|
63
63
|
else
|
|
64
64
|
{ activated: false, reason: :frame_not_found }
|
|
@@ -67,26 +67,26 @@ module Legion
|
|
|
67
67
|
|
|
68
68
|
def active_frames_report(**)
|
|
69
69
|
frames = engine.active_frames
|
|
70
|
-
|
|
70
|
+
log.debug("[frame_semantics] active_frames count=#{frames.size}")
|
|
71
71
|
{ frames: frames.map(&:to_h), count: frames.size }
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def related_frames_report(frame_id:, **)
|
|
75
75
|
frames = engine.related_frames(frame_id: frame_id)
|
|
76
|
-
|
|
76
|
+
log.debug("[frame_semantics] related_frames frame=#{frame_id[0..7]} count=#{frames.size}")
|
|
77
77
|
{ frames: frames.map(&:to_h), count: frames.size }
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def complete_frames_report(**)
|
|
81
81
|
frames = engine.complete_frames
|
|
82
|
-
|
|
82
|
+
log.debug("[frame_semantics] complete_frames count=#{frames.size}")
|
|
83
83
|
{ frames: frames.map(&:to_h), count: frames.size }
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def update_frame_semantics(**)
|
|
87
87
|
engine.decay_all
|
|
88
88
|
engine.prune_inactive
|
|
89
|
-
|
|
89
|
+
log.debug('[frame_semantics] decay_all + prune_inactive complete')
|
|
90
90
|
{ updated: true, stats: engine.to_h }
|
|
91
91
|
end
|
|
92
92
|
|
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module Grammar
|
|
8
8
|
module Runners
|
|
9
9
|
module CognitiveGrammar
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def create_grammar_construction(form:, meaning:, expression_type:, domain:, **)
|
|
14
14
|
construction = engine.create_construction(
|
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module Language
|
|
8
8
|
module Runners
|
|
9
9
|
module Language
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def summarize(domain:, depth: :standard, traces: [], **)
|
|
14
14
|
traces = filter_traces(traces, domain)
|
data/lib/legion/extensions/agentic/language/narrative_reasoning/runners/narrative_reasoning.rb
CHANGED
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module NarrativeReasoning
|
|
8
8
|
module Runners
|
|
9
9
|
module NarrativeReasoning
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def create_narrative(title:, domain: nil, **)
|
|
14
14
|
narrative = narrative_engine.create_narrative(title: title, domain: domain)
|
|
@@ -18,7 +18,7 @@ module Legion
|
|
|
18
18
|
|
|
19
19
|
def available?
|
|
20
20
|
!!(defined?(Legion::LLM) && Legion::LLM.respond_to?(:started?) && Legion::LLM.started?)
|
|
21
|
-
rescue StandardError
|
|
21
|
+
rescue StandardError => _e
|
|
22
22
|
false
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -27,7 +27,7 @@ module Legion
|
|
|
27
27
|
response = llm_ask(prompt)
|
|
28
28
|
parse_narrate_response(response)
|
|
29
29
|
rescue StandardError => e
|
|
30
|
-
Legion::Logging.warn
|
|
30
|
+
Legion::Logging.warn("[narrator:llm] narrate failed: #{e.message}") # rubocop:disable Legion/HelperMigration/DirectLogging
|
|
31
31
|
nil
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -43,7 +43,7 @@ module Legion
|
|
|
43
43
|
content = response&.message&.dig(:content)
|
|
44
44
|
::Struct.new(:content).new(content) if content
|
|
45
45
|
else
|
|
46
|
-
chat = Legion::LLM.chat
|
|
46
|
+
chat = Legion::LLM.chat # rubocop:disable Legion/HelperMigration/DirectLlm
|
|
47
47
|
chat.with_instructions(SYSTEM_PROMPT)
|
|
48
48
|
chat.ask(prompt)
|
|
49
49
|
end
|
|
@@ -54,7 +54,7 @@ module Legion
|
|
|
54
54
|
!!(defined?(Legion::LLM::Pipeline::GaiaCaller) &&
|
|
55
55
|
Legion::LLM.respond_to?(:pipeline_enabled?) &&
|
|
56
56
|
Legion::LLM.pipeline_enabled?)
|
|
57
|
-
rescue StandardError
|
|
57
|
+
rescue StandardError => _e
|
|
58
58
|
false
|
|
59
59
|
end
|
|
60
60
|
private_class_method :pipeline_available?
|
|
@@ -80,7 +80,8 @@ module Legion
|
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def curiosity_section(cur)
|
|
83
|
-
"CURIOSITY:\n- Intensity: #{cur[:intensity] || 0.0}\n
|
|
83
|
+
"CURIOSITY:\n- Intensity: #{cur[:intensity] || 0.0}\n" \
|
|
84
|
+
"- Active questions: #{cur[:wonder_count] || 0}\n- Top question: #{cur[:top_wonder] || 'none'}"
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
def prediction_section(pred)
|
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module Narrator
|
|
8
8
|
module Runners
|
|
9
9
|
module Narrator
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def narrate(tick_results: {}, cognitive_state: {}, **)
|
|
14
14
|
entry = Helpers::Synthesizer.narrate(tick_results: tick_results, cognitive_state: cognitive_state)
|
data/lib/legion/extensions/agentic/language/pragmatic_inference/runners/pragmatic_inference.rb
CHANGED
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module PragmaticInference
|
|
8
8
|
module Runners
|
|
9
9
|
module PragmaticInference
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
def analyze_utterance(content:, speaker:, speech_act:, literal_meaning: nil,
|
|
14
14
|
domain: nil, maxim_scores: {}, **)
|
|
@@ -15,7 +15,7 @@ module Legion
|
|
|
15
15
|
module Extensions
|
|
16
16
|
module Agentic
|
|
17
17
|
module Language
|
|
18
|
-
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
|
|
18
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core, false
|
|
19
19
|
|
|
20
20
|
def self.remote_invocable?
|
|
21
21
|
false
|
|
@@ -19,7 +19,7 @@ RSpec.describe Legion::Extensions::Agentic::Language::Language::Helpers::Summari
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def make_traces(count, overrides = {})
|
|
22
|
-
count
|
|
22
|
+
Array.new(count) do |i|
|
|
23
23
|
base_trace.merge(trace_id: "trace-#{i}").merge(overrides)
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -21,7 +21,7 @@ RSpec.describe Legion::Extensions::Agentic::Language::Language::Runners::Languag
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def make_traces(count, domain: :networking)
|
|
24
|
-
count
|
|
24
|
+
Array.new(count) do |i|
|
|
25
25
|
base_trace.merge(
|
|
26
26
|
trace_id: "trace-#{i}",
|
|
27
27
|
domain_tags: [domain],
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-agentic-language
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -135,6 +135,20 @@ dependencies:
|
|
|
135
135
|
- - "~>"
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
137
|
version: '1.60'
|
|
138
|
+
- !ruby/object:Gem::Dependency
|
|
139
|
+
name: rubocop-legion
|
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0.1'
|
|
145
|
+
type: :development
|
|
146
|
+
prerelease: false
|
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0.1'
|
|
138
152
|
- !ruby/object:Gem::Dependency
|
|
139
153
|
name: rubocop-rspec
|
|
140
154
|
requirement: !ruby/object:Gem::Requirement
|