Spaces:
Build error
Build error
Download headroom/memory/bridge_config.py from minhtudragon/headroom_3: direct link, hf CLI and curl.
- Browser
- Download file 3.11 kB
-
https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/memory/bridge_config.py
- Command line
-
hf download hf://spaces/minhtudragon/headroom_3@823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/memory/bridge_config.py
-
curl -L -o bridge_config.py https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/memory/bridge_config.py
3.11 kB
| """Configuration for the Memory Bridge. | |
| The Memory Bridge provides bidirectional sync between markdown memory files | |
| (used by Claude Code, ChatGPT, etc.) and Headroom's semantic memory system. | |
| """ | |
| from __future__ import annotations | |
| from dataclasses import dataclass, field | |
| from enum import Enum | |
| from pathlib import Path | |
| class MarkdownFormat(Enum): | |
| """Supported markdown memory formats.""" | |
| CLAUDE_CODE = "claude_code" # ~/.claude/projects/<project>/memory/MEMORY.md | |
| CHATGPT = "chatgpt" # Flat fact list, one per line | |
| GENERIC = "generic" # Structured markdown with headers | |
| AUTO = "auto" # Auto-detect from content | |
| class BridgeConfig: | |
| """Configuration for the Memory Bridge. | |
| Attributes: | |
| md_paths: List of markdown file paths to bridge. | |
| md_format: Format of the markdown files (auto-detected if AUTO). | |
| user_id: Default user_id for imported memories. | |
| default_importance: Base importance for imported memories. | |
| heading_importance_map: Map heading depth to importance score. | |
| sync_state_path: Path to store sync state (hashes, timestamps). | |
| auto_import_on_startup: Whether to import on proxy startup. | |
| export_path: Where to write exported markdown. | |
| export_format: Format for exported markdown. | |
| extract_entities: Whether to extract entities during import. | |
| chunk_by_section: Split markdown by section headers for granular memories. | |
| dedup_similarity_threshold: Similarity above which a memory is a duplicate. | |
| source_tag: Metadata tag added to all bridged memories for tracking. | |
| """ | |
| md_paths: list[Path] = field(default_factory=list) | |
| md_format: MarkdownFormat = MarkdownFormat.AUTO | |
| user_id: str = "default" | |
| default_importance: float = 0.6 | |
| heading_importance_map: dict[int, float] = field( | |
| default_factory=lambda: {1: 0.9, 2: 0.8, 3: 0.7, 4: 0.6, 5: 0.5, 6: 0.4} | |
| ) | |
| sync_state_path: Path = field( | |
| default_factory=lambda: Path.home() / ".headroom" / "bridge_state.json" | |
| ) | |
| auto_import_on_startup: bool = False | |
| export_path: Path | None = None | |
| export_format: MarkdownFormat = MarkdownFormat.GENERIC | |
| extract_entities: bool = True | |
| chunk_by_section: bool = True | |
| dedup_similarity_threshold: float = 0.92 | |
| source_tag: str = "memory_bridge" | |
| def __post_init__(self) -> None: | |
| """Validate configuration.""" | |
| if not 0.0 <= self.default_importance <= 1.0: | |
| raise ValueError(f"default_importance must be 0.0-1.0, got {self.default_importance}") | |
| if not 0.0 <= self.dedup_similarity_threshold <= 1.0: | |
| raise ValueError( | |
| f"dedup_similarity_threshold must be 0.0-1.0, got {self.dedup_similarity_threshold}" | |
| ) | |
| self.md_paths = [Path(p) if isinstance(p, str) else p for p in self.md_paths] | |
| if isinstance(self.sync_state_path, str): | |
| self.sync_state_path = Path(self.sync_state_path) | |
| if self.export_path and isinstance(self.export_path, str): | |
| self.export_path = Path(self.export_path) | |