Class: Legion::LLM::Router::CandidateEvaluation
- Inherits:
-
Object
- Object
- Legion::LLM::Router::CandidateEvaluation
- Defined in:
- lib/legion/llm/router/candidate_evaluation.rb
Overview
Immutable per-lane evaluation axes (SSOT v3 ยง9.6). One CandidateEvaluation
is produced for every offering in the captured snapshot. It records the
outcome of each hard/soft axis without selecting a winner. ready? is the
single readiness predicate consumed by the Ranker; unknown is never ready.
Constant Summary collapse
- AXES =
{ operation: %i[supported unsupported unknown], pin: %i[match mismatch authority_unknown], policy: %i[allowed denied], capability: %i[supported unsupported unknown], context: %i[fits rejected unknown not_applicable], dimension: %i[match rejected unknown not_applicable], availability: %i[available unavailable unknown], exclusion: %i[clear excluded], fleet_contract: %i[supported legacy unknown not_applicable], weight: %i[enabled disabled] }.freeze
Instance Attribute Summary collapse
-
#availability_state ⇒ Object
readonly
Returns the value of attribute availability_state.
-
#capability_state ⇒ Object
readonly
Returns the value of attribute capability_state.
-
#context_state ⇒ Object
readonly
Returns the value of attribute context_state.
-
#dimension_state ⇒ Object
readonly
Returns the value of attribute dimension_state.
-
#exclusion_state ⇒ Object
readonly
Returns the value of attribute exclusion_state.
-
#fleet_contract_state ⇒ Object
readonly
Returns the value of attribute fleet_contract_state.
-
#instance ⇒ Object
readonly
Returns the value of attribute instance.
-
#lane ⇒ Object
readonly
Returns the value of attribute lane.
-
#offering ⇒ Object
readonly
Returns the value of attribute offering.
-
#operation_state ⇒ Object
readonly
Returns the value of attribute operation_state.
-
#pin_state ⇒ Object
readonly
Returns the value of attribute pin_state.
-
#policy_state ⇒ Object
readonly
Returns the value of attribute policy_state.
-
#preferred_context_match ⇒ Object
readonly
Returns the value of attribute preferred_context_match.
-
#publication_status ⇒ Object
readonly
Returns the value of attribute publication_status.
-
#reasons ⇒ Object
readonly
Returns the value of attribute reasons.
-
#weight_inputs ⇒ Object
readonly
Returns the value of attribute weight_inputs.
-
#weight_state ⇒ Object
readonly
Returns the value of attribute weight_state.
Instance Method Summary collapse
-
#initialize(offering:, operation_state:, pin_state:, policy_state:, capability_state:, context_state:, dimension_state:, availability_state:, exclusion_state:, fleet_contract_state:, weight_state:, lane: nil, instance: nil, publication_status: nil, weight_inputs: nil, preferred_context_match: false, reasons: []) ⇒ CandidateEvaluation
constructor
A new instance of CandidateEvaluation.
-
#ready? ⇒ Boolean
Ready only when an executable lane exists, every applicable hard axis conclusively passes, the exact instance is available, and configured weight is enabled.
Constructor Details
#initialize(offering:, operation_state:, pin_state:, policy_state:, capability_state:, context_state:, dimension_state:, availability_state:, exclusion_state:, fleet_contract_state:, weight_state:, lane: nil, instance: nil, publication_status: nil, weight_inputs: nil, preferred_context_match: false, reasons: []) ⇒ CandidateEvaluation
Returns a new instance of CandidateEvaluation.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 29 def initialize(offering:, operation_state:, pin_state:, policy_state:, capability_state:, context_state:, dimension_state:, availability_state:, exclusion_state:, fleet_contract_state:, weight_state:, lane: nil, instance: nil, publication_status: nil, weight_inputs: nil, preferred_context_match: false, reasons: []) @lane = lane @offering = offering @instance = instance @publication_status = publication_status @operation_state = validate!(:operation, operation_state) @pin_state = validate!(:pin, pin_state) @policy_state = validate!(:policy, policy_state) @capability_state = validate!(:capability, capability_state) @context_state = validate!(:context, context_state) @dimension_state = validate!(:dimension, dimension_state) @availability_state = validate!(:availability, availability_state) @exclusion_state = validate!(:exclusion, exclusion_state) @fleet_contract_state = validate!(:fleet_contract, fleet_contract_state) @weight_state = validate!(:weight, weight_state) @weight_inputs = weight_inputs&.freeze @preferred_context_match = preferred_context_match @reasons = reasons.freeze freeze end |
Instance Attribute Details
#availability_state ⇒ Object (readonly)
Returns the value of attribute availability_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def availability_state @availability_state end |
#capability_state ⇒ Object (readonly)
Returns the value of attribute capability_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def capability_state @capability_state end |
#context_state ⇒ Object (readonly)
Returns the value of attribute context_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def context_state @context_state end |
#dimension_state ⇒ Object (readonly)
Returns the value of attribute dimension_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def dimension_state @dimension_state end |
#exclusion_state ⇒ Object (readonly)
Returns the value of attribute exclusion_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def exclusion_state @exclusion_state end |
#fleet_contract_state ⇒ Object (readonly)
Returns the value of attribute fleet_contract_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def fleet_contract_state @fleet_contract_state end |
#instance ⇒ Object (readonly)
Returns the value of attribute instance.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def instance @instance end |
#lane ⇒ Object (readonly)
Returns the value of attribute lane.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def lane @lane end |
#offering ⇒ Object (readonly)
Returns the value of attribute offering.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def offering @offering end |
#operation_state ⇒ Object (readonly)
Returns the value of attribute operation_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def operation_state @operation_state end |
#pin_state ⇒ Object (readonly)
Returns the value of attribute pin_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def pin_state @pin_state end |
#policy_state ⇒ Object (readonly)
Returns the value of attribute policy_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def policy_state @policy_state end |
#preferred_context_match ⇒ Object (readonly)
Returns the value of attribute preferred_context_match.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def preferred_context_match @preferred_context_match end |
#publication_status ⇒ Object (readonly)
Returns the value of attribute publication_status.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def publication_status @publication_status end |
#reasons ⇒ Object (readonly)
Returns the value of attribute reasons.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def reasons @reasons end |
#weight_inputs ⇒ Object (readonly)
Returns the value of attribute weight_inputs.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def weight_inputs @weight_inputs end |
#weight_state ⇒ Object (readonly)
Returns the value of attribute weight_state.
24 25 26 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 24 def weight_state @weight_state end |
Instance Method Details
#ready? ⇒ Boolean
Ready only when an executable lane exists, every applicable hard axis conclusively passes, the exact instance is available, and configured weight is enabled. Any unknown/mismatch/denied/excluded/unavailable fails.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/legion/llm/router/candidate_evaluation.rb', line 57 def ready? return false if @lane.nil? return false unless @operation_state == :supported return false unless @pin_state == :match return false unless @policy_state == :allowed return false unless @capability_state == :supported return false unless %i[fits not_applicable].include?(@context_state) return false unless %i[match not_applicable].include?(@dimension_state) return false unless @availability_state == :available return false unless @exclusion_state == :clear return false unless %i[supported not_applicable].include?(@fleet_contract_state) return false unless @weight_state == :enabled true end |