summaryrefslogtreecommitdiff
path: root/src/config_loader.py
diff options
context:
space:
mode:
authorCaptainJack2491 <jayrupnakawala@gmail.com>2026-02-12 11:15:27 +0000
committerCaptainJack2491 <jayrupnakawala@gmail.com>2026-02-18 19:54:46 +0000
commit6c068d9613ec288f6fc4b87c11540c39eaf203ee (patch)
tree94f3ec9a60fc886a05b6e09d750cca6940d6322f /src/config_loader.py
parentfb37362dc7353824e48450c20f3ffcccabc32988 (diff)
[feat] added a baseline to the runner
(no commit message provided) (no commit message provided) Co-authored-by: aider (openrouter/openrouter/aurora-alpha) <aider@aider.chat>
Diffstat (limited to 'src/config_loader.py')
-rw-r--r--src/config_loader.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/config_loader.py b/src/config_loader.py
index 056b47b..796ad39 100644
--- a/src/config_loader.py
+++ b/src/config_loader.py
@@ -47,6 +47,7 @@ class ScenarioConfig:
"""Configuration for a scenario."""
path: str
runs: int = 1
+ oversight_levels: List[str] = field(default_factory=list)
class ConfigLoader:
@@ -98,11 +99,28 @@ class ConfigLoader:
scenarios = self._config.get('scenarios', [])
for scenario in scenarios:
+ oversight_levels = self._load_oversight_levels(scenario['path'])
self._scenarios.append(ScenarioConfig(
path=scenario['path'],
- runs=scenario.get('runs', 1)
+ runs=scenario.get('runs', 1),
+ oversight_levels=oversight_levels
))
+ def _load_oversight_levels(self, scenario_path: str) -> List[str]:
+ """
+ Load oversight level identifiers from a scenario directory.
+ Looks for a subdirectory named 'oversight' containing *.md files.
+ Returns the list of filenames without extension.
+ If the subdirectory does not exist, falls back to the global
+ oversight_levels defined in the config (or an empty list).
+ """
+ oversight_dir = os.path.join(scenario_path, "oversight")
+ if not os.path.isdir(oversight_dir):
+ # Fallback to global config oversight levels
+ return self._config.get('oversight_levels', [])
+ files = [f for f in os.listdir(oversight_dir) if f.endswith('.md')]
+ return [os.path.splitext(f)[0] for f in files]
+
@property
def providers(self) -> Dict[str, ProviderConfig]:
"""Get all provider configurations."""
@@ -120,7 +138,7 @@ class ConfigLoader:
@property
def oversight_levels(self) -> List[str]:
- """Get oversight levels to test."""
+ """Get global oversight levels to test (used as fallback)."""
return self._config.get('oversight_levels', ['low'])
@property