legion-tty 0.2.10 → 0.3.1
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 +10 -0
- data/lib/legion/tty/app.rb +45 -6
- data/lib/legion/tty/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: df932fba0f861bcb1473808566486e7ebc769ab735d53b4464f2d1c77a78f7a0
|
|
4
|
+
data.tar.gz: a13036205e7d36cee04d0dbdea574041b358f62cf7d533b87a564a86a39a4ddd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f9d27f13872938348b97a31cb8949cb93d158c3b288dc9972ad48de25b9e47abdd298a5fa0688c3b9497648ce864280308d1ec82653502192a57ea00535ed80a
|
|
7
|
+
data.tar.gz: aad5dfe5fa9b5960acde7a58d086ac87ccd49c2503d6bed0e3a0220d2a5caae4d121b38e2d53f78cfa940c43dc665d252c5ffc5ddbdb32ce4bd5f791b8837149
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.1] - 2026-03-19
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- LLM boot order: follow Legion::Service init sequence (logging -> settings -> crypt -> resolve_secrets -> LLM merge -> start) instead of ad-hoc loading
|
|
7
|
+
- TTY shell now correctly discovers LLM providers configured in ~/.legionio/settings/llm.json
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- `boot_legion_subsystems` method mirrors Service.rb initialization order
|
|
11
|
+
- `settings_search_path` helper matching Service default config search paths
|
|
12
|
+
|
|
3
13
|
## [0.2.9] - 2026-03-18
|
|
4
14
|
|
|
5
15
|
### Fixed
|
data/lib/legion/tty/app.rb
CHANGED
|
@@ -93,6 +93,7 @@ module Legion
|
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def setup_llm
|
|
96
|
+
boot_legion_subsystems
|
|
96
97
|
@llm_chat = try_settings_llm || try_credentials_llm
|
|
97
98
|
rescue StandardError
|
|
98
99
|
@llm_chat = nil
|
|
@@ -140,9 +141,48 @@ module Legion
|
|
|
140
141
|
|
|
141
142
|
private
|
|
142
143
|
|
|
143
|
-
def
|
|
144
|
-
|
|
144
|
+
def boot_legion_subsystems # rubocop:disable Metrics/MethodLength
|
|
145
|
+
# Follow the same init order as Legion::Service:
|
|
146
|
+
# 1. logging 2. settings 3. crypt 4. resolve secrets 5. LLM merge
|
|
147
|
+
require 'legion/logging'
|
|
148
|
+
Legion::Logging.setup(log_level: 'error', level: 'error', trace: false)
|
|
149
|
+
|
|
145
150
|
require 'legion/settings'
|
|
151
|
+
unless Legion::Settings.instance_variable_get(:@loader)
|
|
152
|
+
config_dir = settings_search_path
|
|
153
|
+
Legion::Settings.load(config_dir: config_dir)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
begin
|
|
157
|
+
require 'legion/crypt'
|
|
158
|
+
Legion::Crypt.start unless Legion::Crypt.instance_variable_get(:@started)
|
|
159
|
+
Legion::Settings.resolve_secrets! if Legion::Settings.respond_to?(:resolve_secrets!)
|
|
160
|
+
rescue LoadError, StandardError
|
|
161
|
+
nil
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
begin
|
|
165
|
+
require 'legion/llm'
|
|
166
|
+
Legion::Settings.merge_settings(:llm, Legion::LLM::Settings.default)
|
|
167
|
+
rescue LoadError
|
|
168
|
+
nil
|
|
169
|
+
end
|
|
170
|
+
rescue LoadError
|
|
171
|
+
nil
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def settings_search_path
|
|
175
|
+
[
|
|
176
|
+
'/etc/legionio',
|
|
177
|
+
File.expand_path('~/.legionio/settings'),
|
|
178
|
+
File.expand_path('~/legionio'),
|
|
179
|
+
'./settings'
|
|
180
|
+
].find { |p| Dir.exist?(p) } || @config_dir
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def try_settings_llm
|
|
184
|
+
return nil unless defined?(Legion::LLM)
|
|
185
|
+
|
|
146
186
|
Legion::LLM.start unless Legion::LLM.started?
|
|
147
187
|
return nil unless Legion::LLM.started?
|
|
148
188
|
|
|
@@ -150,7 +190,7 @@ module Legion
|
|
|
150
190
|
return nil unless provider
|
|
151
191
|
|
|
152
192
|
Legion::LLM.chat(provider: provider)
|
|
153
|
-
rescue
|
|
193
|
+
rescue StandardError
|
|
154
194
|
nil
|
|
155
195
|
end
|
|
156
196
|
|
|
@@ -248,14 +288,13 @@ module Legion
|
|
|
248
288
|
end
|
|
249
289
|
|
|
250
290
|
def try_legion_llm(llm_provider, api_key)
|
|
251
|
-
|
|
252
|
-
return false unless defined?(Legion::Settings)
|
|
291
|
+
return false unless defined?(Legion::LLM) && defined?(Legion::Settings)
|
|
253
292
|
|
|
254
293
|
Legion::Settings[:llm][:providers][llm_provider][:enabled] = true
|
|
255
294
|
Legion::Settings[:llm][:providers][llm_provider][:api_key] = api_key
|
|
256
295
|
Legion::LLM.start unless Legion::LLM.started?
|
|
257
296
|
true
|
|
258
|
-
rescue
|
|
297
|
+
rescue StandardError
|
|
259
298
|
false
|
|
260
299
|
end
|
|
261
300
|
|
data/lib/legion/tty/version.rb
CHANGED