Class: RosettAi::Policy::PolicyCompiler
- Inherits:
-
Object
- Object
- RosettAi::Policy::PolicyCompiler
- Defined in:
- lib/rosett_ai/policy/policy_compiler.rb
Overview
Compiles policy definitions to engine-specific output.
Translates deny lists, protected files, and rate limits into engine-native configuration formats. When a parent policy is provided, enforces tighten-only inheritance at compile time.
Instance Method Summary collapse
-
#compile(engine:) ⇒ Hash
Compiles policies for a specific engine.
-
#initialize(deny_list:, protected_files:, parent_deny_list: nil) ⇒ PolicyCompiler
constructor
A new instance of PolicyCompiler.
Constructor Details
#initialize(deny_list:, protected_files:, parent_deny_list: nil) ⇒ PolicyCompiler
Returns a new instance of PolicyCompiler.
20 21 22 23 24 |
# File 'lib/rosett_ai/policy/policy_compiler.rb', line 20 def initialize(deny_list:, protected_files:, parent_deny_list: nil) @deny_list = deny_list @protected_files = protected_files @parent_deny_list = parent_deny_list end |
Instance Method Details
#compile(engine:) ⇒ Hash
Compiles policies for a specific engine.
30 31 32 33 34 35 36 37 |
# File 'lib/rosett_ai/policy/policy_compiler.rb', line 30 def compile(engine:) warnings = [] enforce_scope!(warnings) settings = compile_deny_list(engine, warnings) annotations = compile_protected_files(engine) { settings: settings, annotations: annotations, warnings: warnings } end |