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 +4 -4
- data/CHANGELOG.md +5 -1
- data/lib/legion/api/helpers.rb +6 -0
- data/lib/legion/api/mesh.rb +26 -0
- data/lib/legion/api.rb +7 -0
- data/lib/legion/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 80b421c449ed9f51c8faa48d52811d8856477afa00c57a1e17f20a525375097e
|
|
4
|
+
data.tar.gz: 26b5edec42f9e00c6721c3a3210e1ff086cb145aab31d925a59e1073a950218c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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
|
data/lib/legion/api/helpers.rb
CHANGED
|
@@ -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
|
data/lib/legion/version.rb
CHANGED
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.
|
|
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
|