legion-tty 0.5.3 → 0.5.4

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: bdea3050f87e6b47ea8d03d9d3575acdecb2a3968c120cf3f9302068d21a88d9
4
- data.tar.gz: d90acad8892d80dfab3ba292cb024a969037a4ddbde376535c26418d17cfb5a3
3
+ metadata.gz: 2c188384bc3e940bfb528a15116ef146f721829b0bfc70bbc1df623795d42d19
4
+ data.tar.gz: '086e3dce92e450f34464e3c55136241f160313f5c52538ff5a6368e1df10ce14'
5
5
  SHA512:
6
- metadata.gz: a9bc985a693932f6cd1ec9682306dc55eb282c3d7bc6e430305afdeb05962c2bd2c64d70ad6efba4177bf895519a3636ef659508c8182ead8b63410d5bd8bf78
7
- data.tar.gz: cecd20a8b7842d4c41671458853a030a45e4276b00be917de6578c8c982024ef8c1b6a333ca43ffbbd7f48850c72416e78f47b4217420570dccf721d0ed8d691
6
+ metadata.gz: 1ba2062dd30d8c912fe163a2d2a0161b70169779f7cd54d94668a3e8ffab9ec463e1e4c3038f47054cda4e1c1d392ca1fe4a378fc630b2efc4ba829a35ff8563
7
+ data.tar.gz: c7240dfdd607a8c04bfd2b449863330e48b563d54d778976d974ddf83afe5ccc67ff8cc68f0bc71fba9f78fc6bd10bb03efa15f99fbfe11542812370b9d751cd
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.4] - 2026-04-28
4
+
5
+ ### Fixed
6
+ - **LLM provider probe routing** — `Background::LlmProbe` now validates enabled providers through `Legion::LLM.ask` with the configured provider/model instead of calling RubyLLM directly.
7
+ - **Extension catalog provider stack** — the extensions screen now categorizes native `lex-llm-*` provider gems as AI extensions and shows `lex-llm-gateway` as legacy compatibility instead of an active Core extension.
8
+ - **Future native LLM providers** — the extensions screen now classifies future `lex-llm-*` provider gems as AI automatically while preserving `lex-llm-gateway` as Legacy.
9
+ - **Development dependency cleanup** — removed the stale direct `ruby_llm` Gemfile dependency so local TTY development follows the Legion-native LLM path.
10
+
3
11
  ## [0.5.3] - 2026-04-20
4
12
 
5
13
  ### Fixed
@@ -542,7 +542,7 @@ module Legion
542
542
 
543
543
  def try_settings_llm
544
544
  # All LLM calls route through the LegionIO daemon API.
545
- # No raw RubyLLM session is created here nil signals "use daemon path".
545
+ # No raw provider session is created here; nil signals "use daemon path".
546
546
  if Legion::TTY::DaemonClient.available?
547
547
  log.debug { 'TTY: daemon available, LLM routed through daemon' }
548
548
  else
@@ -8,6 +8,8 @@ module Legion
8
8
  class LlmProbe
9
9
  include Legion::Logging::Helper
10
10
 
11
+ PROBE_PROMPT = 'Respond with only: pong'
12
+
11
13
  def initialize(logger: nil, wait_queue: nil)
12
14
  @boot_log = logger
13
15
  @wait_queue = wait_queue
@@ -76,7 +78,7 @@ module Legion
76
78
  def ping_provider(name, config)
77
79
  model = config[:default_model]
78
80
  start_time = Time.now
79
- RubyLLM.chat(model: model, provider: name).ask('Respond with only: pong')
81
+ Legion::LLM.ask(message: PROBE_PROMPT, model: model, provider: name)
80
82
  latency = ((Time.now - start_time) * 1000).round
81
83
  { name: name, model: model, status: :ok, latency_ms: latency }
82
84
  rescue StandardError => e
@@ -12,15 +12,20 @@ module Legion
12
12
  include Legion::Logging::Helper
13
13
 
14
14
  CORE = %w[lex-node lex-tasker lex-scheduler lex-conditioner lex-transformer
15
- lex-synapse lex-health lex-log lex-ping lex-metering lex-llm-gateway
15
+ lex-synapse lex-health lex-log lex-ping lex-metering lex-llm-ledger
16
16
  lex-codegen lex-exec lex-lex lex-telemetry lex-audit lex-detect].freeze
17
17
 
18
- AI = %w[lex-claude lex-openai lex-gemini].freeze
18
+ AI = %w[lex-azure-ai lex-bedrock lex-claude lex-foundry lex-gemini lex-llamacpp
19
+ lex-mlx lex-ollama lex-openai lex-uais lex-xai lex-llm lex-llm-anthropic
20
+ lex-llm-azure-foundry lex-llm-bedrock lex-llm-gemini lex-llm-mlx
21
+ lex-llm-ollama lex-llm-openai lex-llm-vertex lex-llm-vllm].freeze
22
+
23
+ LEGACY = %w[lex-llm-gateway].freeze
19
24
 
20
25
  SERVICE = %w[lex-http lex-vault lex-github lex-consul lex-kerberos lex-tfe
21
26
  lex-redis lex-memcached lex-elasticsearch lex-s3].freeze
22
27
 
23
- CATEGORIES = [nil, 'Core', 'AI', 'Service', 'Agentic', 'Other'].freeze
28
+ CATEGORIES = [nil, 'Core', 'AI', 'Service', 'Agentic', 'Legacy', 'Other'].freeze
24
29
 
25
30
  def initialize(app, output: $stdout)
26
31
  super(app)
@@ -116,6 +121,8 @@ module Legion
116
121
 
117
122
  def categorize(name)
118
123
  return 'Core' if CORE.include?(name)
124
+ return 'Legacy' if LEGACY.include?(name)
125
+ return 'AI' if name.start_with?('lex-llm-')
119
126
  return 'AI' if AI.include?(name)
120
127
  return 'Service' if SERVICE.include?(name)
121
128
  return 'Agentic' if name.match?(/^lex-agentic-|^lex-theory-|^lex-mind-|^lex-planning|^lex-attention/)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module TTY
5
- VERSION = '0.5.3'
5
+ VERSION = '0.5.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-tty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity