From 62a4b4a2dab4b40b5e70ecfc77a29161df3028bc Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 16 Jan 2026 07:16:54 -0400 Subject: [PATCH] Add path attribute to Tool class for config file tracking The Tool dataclass now has a path field that points to the config.yaml file it was loaded from. This is set by load_tool() and enables the publish dialog to save the registry_hash back to the local config. Co-Authored-By: Claude Opus 4.5 --- src/cmdforge/tool.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cmdforge/tool.py b/src/cmdforge/tool.py index 7c41d0e..5018079 100644 --- a/src/cmdforge/tool.py +++ b/src/cmdforge/tool.py @@ -198,6 +198,7 @@ class Tool: dependencies: List[str] = field(default_factory=list) # Required tools for meta-tools source: Optional[ToolSource] = None # Attribution for imported/external tools version: str = "" # Tool version + path: Optional[Path] = None # Path to config.yaml (set by load_tool) @classmethod def from_dict(cls, data: dict) -> "Tool": @@ -331,7 +332,9 @@ def load_tool(name: str) -> Optional[Tool]: "output": "{response}" if steps else "{input}" } - return Tool.from_dict(data) + tool = Tool.from_dict(data) + tool.path = config_path + return tool except yaml.YAMLError as e: import sys print(f"Error loading tool '{name}': YAML syntax error", file=sys.stderr)