10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/smart_brain/contracts/retrieval_plan.rb', line 10
def self.validate!(plan)
missing = REQUIRED_KEYS.reject { |key| plan.key?(key) }
raise ArgumentError, "invalid retrieval plan: missing #{missing.join(', ')}" unless missing.empty?
raise ArgumentError, 'invalid retrieval plan: queries must not be empty' if Array(plan[:queries]).empty?
if plan[:scope_context]
ScopeContext.normalize(
domain_id: plan.dig(:debug, :caller, :domain_id),
session_id: plan.dig(:debug, :caller, :session_id) || plan[:session_id],
scope_context: plan[:scope_context]
)
end
true
end
|