legionio 1.7.2 → 1.7.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: 9a8172fc0fa4d14ec8727c914c81df54a0e00ee53bc387dc5e4637cd432be424
4
- data.tar.gz: f0d1b4df050bff4fb092f33ef4ff5763a9155e8553a007e75f0a521942abe5ff
3
+ metadata.gz: 0e258eb5ccc6e84f396bfd5ea054003c9f12f39eae03bf799a48fd56126e9754
4
+ data.tar.gz: 4a6e13b1061f3b2dd5e382a67d350f0880e6dad06510f1dfce95bc44483dbe45
5
5
  SHA512:
6
- metadata.gz: b27979ca177b389e8ad19f6302ac53d1e849e3d8328f55bd295c170c601989c644d74162f129f613263923fdbd1937b755d5711d9d7805963203ea2f86931693
7
- data.tar.gz: a0a86793bbf3f31de4f54d11aecc611a41b07781bb742713dbac6c4b596e48d2a71b795c3d3d425d047daca912131e9a5a698cd6886ef072bd88a0548a0a8c7f
6
+ metadata.gz: 819e3c3bc599a5d47e189e36151eef39cac69d48eb64ef8e482a37c013bfcd8ed07e54b24685cef736b61066d7e86a4004cae91e7b3a7423ff11f0ca2b89eb8b
7
+ data.tar.gz: a936e7fd4f0f8b72b732419029c3e3b2634947077281c1e1ece84c20038068d4ade021a575a163e07246584597f1a4d643bf22553dabf339f570d4e410bc18f2
data/CHANGELOG.md CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [1.7.2] - 2026-03-31
5
+ ## [1.7.3] - 2026-03-31
6
6
 
7
7
  ### Added
8
8
  - `POST /api/reload` endpoint to trigger daemon reload from CLI mode command
9
+ - `GET /api/mesh/status` and `GET /api/mesh/peers` endpoints for mesh topology visibility
9
10
 
10
11
  ### Fixed
11
12
  - Knowledge ingest API route calls `ingest_content` instead of `ingest_file` when `content` body param is present
13
+ - Catalog API queries `extensions.name` instead of non-existent `gem_name` column
12
14
 
13
15
  ## [1.7.0] - 2026-03-31
14
16
 
@@ -53,7 +53,7 @@ module Legion
53
53
  def build_catalog_runners(name)
54
54
  return {} unless defined?(Legion::Data) && Legion::Data.respond_to?(:connected?) && Legion::Data.connected?
55
55
 
56
- ext = Legion::Data::Model::Extension.where(gem_name: name).first
56
+ ext = Legion::Data::Model::Extension.where(name: name).first
57
57
  return {} unless ext
58
58
 
59
59
  ext.runners.to_h do |runner|
@@ -76,6 +76,12 @@ module Legion
76
76
  halt 503, json_error('knowledge_unavailable', 'lex-knowledge is not loaded', status_code: 503)
77
77
  end
78
78
 
79
+ def require_mesh!
80
+ return if defined?(Legion::Extensions::Mesh)
81
+
82
+ halt 503, json_error('mesh_unavailable', 'lex-mesh is not loaded', status_code: 503)
83
+ end
84
+
79
85
  def require_trace_search!
80
86
  return if defined?(Legion::TraceSearch) && defined?(Legion::LLM)
81
87
 
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ class API < Sinatra::Base
5
+ module Routes
6
+ module Mesh
7
+ def self.registered(app)
8
+ app.get '/api/mesh/status' do
9
+ require_mesh!
10
+ result = Legion::Extensions::Mesh::Runners::Mesh.mesh_status
11
+ json_response(result)
12
+ end
13
+
14
+ app.get '/api/mesh/peers' do
15
+ require_mesh!
16
+ registry = Legion::Extensions::Mesh.mesh_registry
17
+ agents = registry.all_agents.map do |agent|
18
+ agent.slice(:agent_id, :capabilities, :endpoint, :status, :last_seen, :registered_at)
19
+ end
20
+ json_response(agents)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
data/lib/legion/api.rb CHANGED
@@ -48,6 +48,7 @@ require_relative 'api/stats'
48
48
  require_relative 'api/absorbers'
49
49
  require_relative 'api/codegen'
50
50
  require_relative 'api/knowledge'
51
+ require_relative 'api/mesh'
51
52
  require_relative 'api/logs'
52
53
  require_relative 'api/router'
53
54
  require_relative 'api/library_routes'
@@ -184,6 +185,7 @@ module Legion
184
185
  register Routes::Absorbers
185
186
  register Routes::Codegen
186
187
  register Routes::Knowledge
188
+ register Routes::Mesh
187
189
  register Routes::Logs
188
190
  register Routes::TbiPatterns
189
191
  register Routes::InboundWebhooks
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.7.2'
4
+ VERSION = '1.7.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -496,6 +496,7 @@ files:
496
496
  - lib/legion/api/llm.rb
497
497
  - lib/legion/api/logs.rb
498
498
  - lib/legion/api/marketplace.rb
499
+ - lib/legion/api/mesh.rb
499
500
  - lib/legion/api/metrics.rb
500
501
  - lib/legion/api/middleware/api_version.rb
501
502
  - lib/legion/api/middleware/auth.rb