lex-eval 0.3.0 → 0.3.8

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: 3dcc4078af9f65ada7d663cd68a50b29688a2fcfc080ed7f44159f639b3a0354
4
- data.tar.gz: 07faea06e2054993e54c1edbaa571459565c45a9623618d1c445aef53b7315e1
3
+ metadata.gz: c6e527b6bd5b88d862de94408ddd8fa8a3ef6fb5a3916b1bb888ab1278c68bf5
4
+ data.tar.gz: b10274099420ae181d751f6874cc029e76657e08bafa2c2152a3f08fd9896c28
5
5
  SHA512:
6
- metadata.gz: b3555eb00bbe4724d1fc2a03a7136d76ad4d5992499e699dbba7d03eb1ee1351de01ffa3ba0d183cae696cebba7af2f95790ee9f5930ec58f7bfcd147d14e2cc
7
- data.tar.gz: 88807b0b2291201be1a5316d702e09319e926f22751b345b6d63b94aa204d0b1333e4ea5dde475d5b9c33939ff56b04ae794fc11e42c2e6efbdeb6c3c8d47d9e
6
+ metadata.gz: 0b8014e5428708f9f04d90fea9cf48b16af90216998aa694c4723ef723dde6365840ceb50a2ef64c65801f613bcf9c3df40c402dd96013f8ce2180e6307cae88
7
+ data.tar.gz: 973ce2e3f5f9aa4bea347600861ef1e9e4ec741445ca7f4b0ae9142466823920c2eabd1f9608780ad2fa7634fc711b98cfe99825a38ae8de0efdde6616038193
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ return unless defined?(Legion::Extensions::Actors::Subscription)
4
+
3
5
  module Legion
4
6
  module Extensions
5
7
  module Eval
6
8
  module Actor
7
- module CodeReviewSubscriber
8
- include Legion::Extensions::Actors::Subscription if
9
- defined?(Legion::Extensions::Actors::Subscription) &&
10
- Legion::Extensions::Actors::Subscription.is_a?(Module) &&
11
- !Legion::Extensions::Actors::Subscription.is_a?(Class)
12
-
9
+ class CodeReviewSubscriber < Legion::Extensions::Actors::Subscription
13
10
  QUEUE = defined?(Transport::Queues::CodeReview) ? Transport::Queues::CodeReview : nil
14
11
 
12
+ def runner_class = self.class
13
+ def runner_function = 'action'
14
+
15
15
  def action(payload)
16
16
  code = payload[:runner_code] || payload[:code]
17
17
  spec_code = payload[:spec_code] || ''
@@ -29,9 +29,19 @@ module Legion
29
29
 
30
30
  result
31
31
  rescue StandardError => e
32
- Legion::Logging.warn("CodeReviewSubscriber failed: #{e.message}") if defined?(Legion::Logging)
32
+ log.warn("CodeReviewSubscriber failed: #{e.message}")
33
33
  { passed: false, verdict: :reject, error: e.message }
34
34
  end
35
+
36
+ private
37
+
38
+ def log
39
+ return Legion::Logging if defined?(Legion::Logging)
40
+
41
+ @log ||= Object.new.tap do |nl|
42
+ %i[debug info warn error fatal].each { |m| nl.define_singleton_method(m) { |*| nil } }
43
+ end
44
+ end
35
45
  end
36
46
  end
37
47
  end
@@ -14,7 +14,8 @@ module Legion
14
14
 
15
15
  ::Dir.glob(::File.join(dir, '*.yaml')).filter_map do |path|
16
16
  YAML.safe_load_file(path, symbolize_names: true)
17
- rescue StandardError
17
+ rescue StandardError => e
18
+ log.warn("Failed to load guardrail: #{e.message}")
18
19
  nil
19
20
  end
20
21
  end
@@ -58,7 +59,7 @@ module Legion
58
59
  response: { success: false, blocked: true, reason: rule[:name],
59
60
  content: rule[:fallback_response] || 'Request blocked by guardrail.' } }
60
61
  when :warn
61
- Legion::Logging.warn("Guardrail #{rule[:name]} triggered") if defined?(Legion::Logging)
62
+ log.warn("Guardrail #{rule[:name]} triggered")
62
63
  nil
63
64
  when :fallback
64
65
  { action: :block, rule: rule[:name],
@@ -76,6 +77,14 @@ module Legion
76
77
  ''
77
78
  end
78
79
  end
80
+
81
+ def log
82
+ return Legion::Logging if defined?(Legion::Logging)
83
+
84
+ @log ||= Object.new.tap do |nl|
85
+ %i[debug info warn error fatal].each { |m| nl.define_singleton_method(m) { |*| nil } }
86
+ end
87
+ end
79
88
  end
80
89
  end
81
90
  end
@@ -5,11 +5,14 @@ module Legion
5
5
  module Eval
6
6
  module Transport
7
7
  module Exchanges
8
- module Codegen
9
- include Legion::Transport::Exchange
8
+ class Codegen < Legion::Transport::Exchange
9
+ def exchange_name
10
+ 'codegen'
11
+ end
10
12
 
11
- EXCHANGE_NAME = 'codegen'
12
- EXCHANGE_OPTIONS = { type: 'topic', durable: true }.freeze
13
+ def exchange_options
14
+ { type: 'topic', durable: true }
15
+ end
13
16
  end
14
17
  end
15
18
  end
@@ -5,10 +5,9 @@ module Legion
5
5
  module Eval
6
6
  module Transport
7
7
  module Messages
8
- class CodeReviewCompleted
9
- include Legion::Transport::Message
10
-
8
+ class CodeReviewCompleted < Legion::Transport::Message
11
9
  def initialize(result:, generation_id:)
10
+ super()
12
11
  @result = result
13
12
  @generation_id = generation_id
14
13
  end
@@ -5,9 +5,7 @@ module Legion
5
5
  module Eval
6
6
  module Transport
7
7
  module Messages
8
- class CodeReviewRequested
9
- include Legion::Transport::Message
10
-
8
+ class CodeReviewRequested < Legion::Transport::Message
11
9
  QUEUE = Queues::CodeReview
12
10
  end
13
11
  end
@@ -5,13 +5,22 @@ module Legion
5
5
  module Eval
6
6
  module Transport
7
7
  module Queues
8
- module CodeReview
9
- include Legion::Transport::Queue
8
+ class CodeReview < Legion::Transport::Queue
9
+ def queue_name
10
+ 'eval.code_review'
11
+ end
10
12
 
11
- QUEUE_NAME = 'eval.code_review'
12
- QUEUE_OPTIONS = { durable: true }.freeze
13
- BINDING_OPTIONS = { routing_key: 'eval.code_review.requested' }.freeze
14
- EXCHANGE = Exchanges::Codegen
13
+ def queue_options
14
+ { durable: true }
15
+ end
16
+
17
+ def routing_key
18
+ 'eval.code_review.requested'
19
+ end
20
+
21
+ def exchange
22
+ Exchanges::Codegen
23
+ end
15
24
  end
16
25
  end
17
26
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Eval
6
- VERSION = '0.3.0'
6
+ VERSION = '0.3.8'
7
7
  end
8
8
  end
9
9
  end
@@ -28,6 +28,10 @@ module Legion
28
28
  module Extensions
29
29
  module Eval
30
30
  extend Legion::Extensions::Core if defined?(Legion::Extensions::Core)
31
+
32
+ def self.remote_invocable?
33
+ false
34
+ end
31
35
  end
32
36
  end
33
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-eval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Iverson