legion-gaia 0.9.7 → 0.9.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17de896f657b0dd56fceff5dfe89a25ab9a0383f5cb6b728bd2fab879ce21a5e
4
- data.tar.gz: dfc99f03941aafb288435323206a8db113fee585047991c3f3f0f7749f63704f
3
+ metadata.gz: 12176accbd73b544c9449e3be0f909ad1013d8a776d0b428bf943bce45cab369
4
+ data.tar.gz: 25fb7eb75d898d2f04e206c3d9d2fa93d7f27b0bd9ecdad67cc505f623ab28eb
5
5
  SHA512:
6
- metadata.gz: ccb7ab2f9f218ae39a77d17ca07e0b98ea989f19d3176406a646cf8f081be008d699012d17cbd222bb61dc55a8df500dcf2e8443176beb4b0315cb9a2ff6e6cc
7
- data.tar.gz: 83ce6fcf71085055038e5e3d523f0533baee1072a07bcc152473220d33424a8b92a3ed23d8dd6e870cc38dc90d6fabe65b1fe12c82d1ed720566ad148658a9dd
6
+ metadata.gz: b97b6e67fd29580034160e747d34a970d89b6536b55c2af1ba819ef48af7374227e92cc91daecd0ee210eadfbd03be921ac81849c6ee2abae1144d13eb6f6104
7
+ data.tar.gz: 50a73c902906a0ffb12cade886cd84e455df835093d201bb236b07c8024aef43969b3d12ce74b698f060c9cfaa358c947904b61ee2d8c68434b2d21ee61c7722
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.8] - 2026-03-21
4
+
5
+ ### Fixed
6
+ - `PhaseWiring#resolve_runner_class` now searches `Legion::Extensions::Agentic::` sub-namespace when the extension constant is not found directly under `Legion::Extensions`
7
+ - Added sub-domain runner lookup (one level deep) so agentic extensions that nest runners under `Extension::SubDomain::Runners::Runner` are resolved correctly
8
+ - All `const_defined?` and `const_get` calls now pass `inherit: false` to prevent incorrect constant resolution through `Object`
9
+
3
10
  ## [0.9.7] - 2026-03-20
4
11
 
5
12
  ### Fixed
@@ -88,15 +88,37 @@ module Legion
88
88
  module_function
89
89
 
90
90
  def resolve_runner_class(ext_sym, runner_sym)
91
- return nil unless Legion::Extensions.const_defined?(ext_sym)
91
+ ext_mod = locate_ext_mod(ext_sym)
92
+ return nil unless ext_mod
92
93
 
93
- ext_mod = Legion::Extensions.const_get(ext_sym)
94
- return nil unless ext_mod.const_defined?(:Runners)
94
+ flat_runner(ext_mod, runner_sym) || subdomain_runner(ext_mod, runner_sym)
95
+ end
96
+
97
+ def locate_ext_mod(ext_sym)
98
+ if Legion::Extensions.const_defined?(ext_sym, false)
99
+ Legion::Extensions.const_get(ext_sym, false)
100
+ elsif Legion::Extensions.const_defined?(:Agentic, false) &&
101
+ Legion::Extensions::Agentic.const_defined?(ext_sym, false)
102
+ Legion::Extensions::Agentic.const_get(ext_sym, false)
103
+ end
104
+ end
95
105
 
96
- runners_mod = ext_mod.const_get(:Runners)
97
- return nil unless runners_mod.const_defined?(runner_sym)
106
+ def flat_runner(ext_mod, runner_sym)
107
+ return nil unless ext_mod.const_defined?(:Runners, false)
98
108
 
99
- runners_mod.const_get(runner_sym)
109
+ runners_mod = ext_mod.const_get(:Runners, false)
110
+ runners_mod.const_get(runner_sym, false) if runners_mod.const_defined?(runner_sym, false)
111
+ end
112
+
113
+ def subdomain_runner(ext_mod, runner_sym)
114
+ ext_mod.constants(false).each do |sub_const|
115
+ sub_mod = ext_mod.const_get(sub_const, false)
116
+ next unless sub_mod.is_a?(Module) && sub_mod.const_defined?(:Runners, false)
117
+
118
+ runners_mod = sub_mod.const_get(:Runners, false)
119
+ return runners_mod.const_get(runner_sym, false) if runners_mod.const_defined?(runner_sym, false)
120
+ end
121
+ nil
100
122
  end
101
123
 
102
124
  def mappings_for(value)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Gaia
5
- VERSION = '0.9.7'
5
+ VERSION = '0.9.8'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-gaia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 0.9.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity