diff --git a/cheddahbot/config.py b/cheddahbot/config.py index 8695539..742483a 100644 --- a/cheddahbot/config.py +++ b/cheddahbot/config.py @@ -66,6 +66,14 @@ class EmailConfig: enabled: bool = False +@dataclass +class LinkBuildingConfig: + blm_dir: str = "E:/dev/Big-Link-Man" + watch_folder: str = "" # empty = disabled + watch_interval_minutes: int = 60 + default_branded_plus_ratio: float = 0.7 + + @dataclass class AgentConfig: """Per-agent configuration for multi-agent support.""" @@ -94,6 +102,7 @@ class Config: clickup: ClickUpConfig = field(default_factory=ClickUpConfig) press_advantage: PressAdvantageConfig = field(default_factory=PressAdvantageConfig) email: EmailConfig = field(default_factory=EmailConfig) + link_building: LinkBuildingConfig = field(default_factory=LinkBuildingConfig) agents: list[AgentConfig] = field(default_factory=lambda: [AgentConfig()]) # Derived paths @@ -141,6 +150,10 @@ def load_config() -> Config: for k, v in data["email"].items(): if hasattr(cfg.email, k): setattr(cfg.email, k, v) + if "link_building" in data and isinstance(data["link_building"], dict): + for k, v in data["link_building"].items(): + if hasattr(cfg.link_building, k): + setattr(cfg.link_building, k, v) # Multi-agent configs if "agents" in data and isinstance(data["agents"], list): @@ -190,6 +203,10 @@ def load_config() -> Config: cfg.email.default_to = default_to cfg.email.enabled = bool(cfg.email.username and cfg.email.password) + # Link Building env var overrides + if blm_dir := os.getenv("BLM_DIR"): + cfg.link_building.blm_dir = blm_dir + # Ensure data directories exist cfg.data_dir.mkdir(parents=True, exist_ok=True) (cfg.data_dir / "uploads").mkdir(exist_ok=True) diff --git a/config.yaml b/config.yaml index 3bb2eef..1eb03b4 100644 --- a/config.yaml +++ b/config.yaml @@ -56,6 +56,26 @@ clickup: company_name: "Client" target_url: "IMSURL" branded_url: "SocialURL" + "Link Building": + tool: "run_link_building" + auto_execute: false + complete_status: "complete" + error_status: "internal review" + field_mapping: + lb_method: "LB Method" + project_name: "task_name" + money_site_url: "IMSURL" + custom_anchors: "CustomAnchors" + branded_plus_ratio: "BrandedPlusRatio" + cli_flags: "CLIFlags" + xlsx_path: "CoraFile" + +# Link Building settings +link_building: + blm_dir: "E:/dev/Big-Link-Man" + watch_folder: "Z:/cora-inbox" + watch_interval_minutes: 60 + default_branded_plus_ratio: 0.7 # Multi-agent configuration # Each agent gets its own personality, tool whitelist, and memory scope. @@ -85,3 +105,8 @@ agents: personality_file: "" # future: identity/OPS.md tools: [run_command, delegate_task, list_files, read_file, remember, search_memory] memory_scope: "" + + - name: link_builder + display_name: Link Builder + tools: [run_link_building, run_cora_backlinks, blm_ingest_cora, blm_generate_batch, scan_cora_folder, delegate_task, remember, search_memory] + memory_scope: ""