Module: Legion::API::Routes::Codegen
- Defined in:
- lib/legion/api/codegen.rb
Class Method Summary collapse
-
.registered(app) ⇒ Object
rubocop:disable Metrics/MethodLength.
Class Method Details
.registered(app) ⇒ Object
rubocop:disable Metrics/MethodLength
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/legion/api/codegen.rb', line 7 def self.registered(app) # rubocop:disable Metrics/MethodLength app.get '/api/codegen/status' do halt 503, json_error('codegen_unavailable', 'codegen not available', status_code: 503) unless defined?(Legion::MCP::SelfGenerate) json_response(Legion::MCP::SelfGenerate.status) end app.get '/api/codegen/generated' do unless defined?(Legion::Extensions::Codegen::Helpers::GeneratedRegistry) halt 503, json_error('codegen_unavailable', 'codegen not available', status_code: 503) end status_filter = params[:status] records = Legion::Extensions::Codegen::Helpers::GeneratedRegistry.list(status: status_filter) json_response(records) end app.get '/api/codegen/generated/:id' do |id| unless defined?(Legion::Extensions::Codegen::Helpers::GeneratedRegistry) halt 503, json_error('codegen_unavailable', 'codegen not available', status_code: 503) end record = Legion::Extensions::Codegen::Helpers::GeneratedRegistry.get(id: id) halt 404, json_error('not_found', 'record not found', status_code: 404) unless record json_response(record) end app.post '/api/codegen/generated/:id/approve' do |id| unless defined?(Legion::Extensions::Codegen::Runners::ReviewHandler) halt 503, json_error('codegen_unavailable', 'review handler not available', status_code: 503) end result = Legion::Extensions::Codegen::Runners::ReviewHandler.handle_verdict( review: { generation_id: id, verdict: :approve, confidence: 1.0 } ) json_response(result) end app.post '/api/codegen/generated/:id/reject' do |id| unless defined?(Legion::Extensions::Codegen::Helpers::GeneratedRegistry) halt 503, json_error('codegen_unavailable', 'codegen not available', status_code: 503) end Legion::Extensions::Codegen::Helpers::GeneratedRegistry.update_status(id: id, status: 'rejected') json_response({ id: id, status: 'rejected' }) end app.post '/api/codegen/generated/:id/retry' do |id| unless defined?(Legion::Extensions::Codegen::Helpers::GeneratedRegistry) halt 503, json_error('codegen_unavailable', 'codegen not available', status_code: 503) end Legion::Extensions::Codegen::Helpers::GeneratedRegistry.update_status(id: id, status: 'pending') json_response({ id: id, status: 'pending' }) end app.get '/api/codegen/gaps' do data = if defined?(Legion::MCP::GapDetector) Legion::MCP::GapDetector.detect_gaps else [] end json_response(data) end app.post '/api/codegen/cycle' do return json_response({ triggered: false, reason: 'self_generate not available' }) unless defined?(Legion::MCP::SelfGenerate) Legion::MCP::SelfGenerate.instance_variable_set(:@last_cycle_at, nil) result = Legion::MCP::SelfGenerate.run_cycle json_response(result) end end |