legionio 1.7.1 → 1.7.3

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: 5750ce71b69cddee8c385bd5ba27a81cd48155801450ef190c23726ad072d4d0
4
- data.tar.gz: 5972eddca14fb70cf6c4f0ceb00bffe4a9f3ad1381b42706c5ac75b60c53d941
3
+ metadata.gz: 80b421c449ed9f51c8faa48d52811d8856477afa00c57a1e17f20a525375097e
4
+ data.tar.gz: 26b5edec42f9e00c6721c3a3210e1ff086cb145aab31d925a59e1073a950218c
5
5
  SHA512:
6
- metadata.gz: 7cb15c2fa564a44fbbd3d31090fa8e92227c0e8cac5c0f05245da78e83fae472c6d19c0dab04e5998d43d91b8f22f1529bd49a17d33526d6e098bd31eef7c43a
7
- data.tar.gz: fb067c34665befbad90fbf2fe6873cf7551ca34063c5949916360b025a960a6a1d815df507926a2ededc6815de18d6e3961567faced69b3351d9d2f77bbb4042
6
+ metadata.gz: db45fed982ac00f609fe5bb9c1650d9e44b179c0eff737b7e1acd379be6927ec50cd5b5ebf4a88604353bbbb88f26ea19ce084479a23923b9a42919726a54ba6
7
+ data.tar.gz: 583ab99dad3de14b0d90203dd02212ce1ceb643e68c62547e337d080b5eec1a173956a432ff001aaa772788275111d4095af4c543cef8f0af5d8ce69a3368d56
data/CHANGELOG.md CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [1.7.1] - 2026-03-31
5
+ ## [1.7.3] - 2026-03-31
6
+
7
+ ### Added
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
6
10
 
7
11
  ### Fixed
8
12
  - Knowledge ingest API route calls `ingest_content` instead of `ingest_file` when `content` body param is present
@@ -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'
@@ -105,6 +106,11 @@ module Legion
105
106
  json_response({ ready: ready, components: Legion::Readiness.to_h }, status_code: ready ? 200 : 503)
106
107
  end
107
108
 
109
+ post '/api/reload' do
110
+ Thread.new { Legion.reload }
111
+ json_response({ status: 'reloading' })
112
+ end
113
+
108
114
  # Global error handlers
109
115
  not_found do
110
116
  content_type :json
@@ -179,6 +185,7 @@ module Legion
179
185
  register Routes::Absorbers
180
186
  register Routes::Codegen
181
187
  register Routes::Knowledge
188
+ register Routes::Mesh
182
189
  register Routes::Logs
183
190
  register Routes::TbiPatterns
184
191
  register Routes::InboundWebhooks
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.7.1'
4
+ VERSION = '1.7.3'
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.1
4
+ version: 1.7.3
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