diff --git a/taskweaver/utils/app_utils.py b/taskweaver/utils/app_utils.py index 718e0738f..3ec190892 100644 --- a/taskweaver/utils/app_utils.py +++ b/taskweaver/utils/app_utils.py @@ -1,3 +1,4 @@ +import json from os import listdir, path from typing import Optional, Tuple @@ -13,7 +14,14 @@ def validate_app_config(workspace: str) -> bool: config_path = path.join(workspace, "taskweaver_config.json") if not path.exists(config_path): return False - # TODO: read, parse and validate config + try: + with open(config_path, "r", encoding="utf-8") as f: + data = json.load(f) + # Config must be a dictionary (key-value pairs) + if not isinstance(data, dict): + return False + except (json.JSONDecodeError, OSError): + return False return True def is_dir_valid(dir: str) -> bool: