# OpenHam 项目架构概览

经过深度的物理拆解与重构，当前系统已经演进为拥有**微内核架构（Micro-kernel Architecture）**的高内聚、低耦合系统。
整个项目的核心功能被拆解为以下几个核心领域，且一切高级业务逻辑均以插件化动态加载：

```text
OpenHam/
├── main.py                  # ✅ 程序的唯一主入口：合并组装基础 UI 模块、挂载插件、调度事件循环
├── build.py                 # 📦 Pyinstaller 跨平台打包编译一键脚本
├── OpenHam.spec             # ⚙️ Pyinstaller 打包配置及静态资源清单
├── requirements.txt         # 📄 Python 外部环境依赖
├── config.json              # 🔧 热键及搜索根目录等框架级环境设置
├── .env                     # 🔐 存放 API 秘钥（如 DeepSeek/GitLab Token）的环境变量文件
├── logo.png                 # 🖼️ 系统托盘和主程序应用图标
│
├── core/                    # 🧠 核心业务逻辑及微内核中枢
│   ├── plugin_manager.py    # ➔ 微内核插件引擎：负责动态挂载 /plugins、解析配置变更的热重载
│   ├── ai_client.py         # ➔ 大语言模型驱动引擎：通信及流式输出解析
│   ├── script_engine.py     # ➔ 脚本调度引擎：解析执行命令及映射通用预设体系
│   └── signals.py           # ➔ 统筹及定义 PyQt 必须用到的底层跨线程信号 (HotKey, AI 等)
│
├── plugins/                 # 🔌 动态插件沙盒（所有业务逻辑现在必须遵循插件规范注册在此）
│   ├── gitlab_engine.py     # ➔ GitLab 实时追踪检索插件引擎（含正则匹配器及守护轮询）
│   ├── gitlab/              #   ├── (GitLab 引擎所专属的底层算法和 UI 界面库)
│   ├── pomodoro.py          # ➔ 原生番茄钟及桌面穿透提醒插件
│   ├── qrcode.py            # ➔ 二维码动态生成及渲染展示插件
│   ├── ocr.py               # ➔ 截图划区文字识别增强插件
│   ├── shortcuts.py         # ➔ CMD、计算器等本地捷径唤醒插件
│   └── help_docs.py         # ➔ 指令说明及系统全景帮助文档插件
│
├── ui/                      # 🎨 所有界面视图和公共浮层基类库 (负责纯粹的展示与呈现)
│   ├── __init__.py          # ➔ 模块出口：统一导出供主干调用
│   ├── window_base.py       # ➔ 统一的 OpenHamWindowBase 基类（提供暗黑毛玻璃、拖拽及无边框阴影）
│   ├── input_window.py      # ➔ 核心：程序呼出时的主搜索/指令输入界面主窗体
│   ├── script_manager.py    # ➔ 原生桌面端自定义脚本代码的管理与编辑环境
│   ├── plugin_manager_window.py # ➔ 第三方及原生插件生态的可视化管控台（启停与重载配置）
│   ├── tray.py              # ➔ 电脑右下角的系统全量托盘 (Tray Icon) 与浮窗气泡 (Toast)
│   └── screen_capture.py    # ➔ OCR 及截图等工具用到的暗色透明截屏涂层界面
│
├── config/                  # ⚙️ 动态可变配置持久层
│   └── plugins.json         # ➔ 保存每一个插件的启停状态及用户自己魔改的“触发命令”口令对照表
│
└── utils/                   # 🛠️ 纯原生的底层工具大礼包 (被任意一个微服务或插件调用的公共基础裤)
    ├── paths.py             # ➔ 用于处理获取 base_dir 资源根路径及虚拟运行路径
    ├── search.py            # ➔ 并发本地硬盘深层文件及 Everything 高效寻址检索工具
    └── system_tools.py      # ➔ 获取本机电脑软硬件状态、IP及底层硬件探针
```

## 现代架构三大优势：微内核与插件化
1. **完全热插拔 (Hot-Pluggable)**: 所有的附加功能（包罗万象的 GitLab 查询、番茄钟、文字识别）全部下沉至 `plugins/` 目录中。当任何一个功能报错时，主应用永远不会崩溃，并在主控台只需点击“开关”即可瞬间屏蔽某个插件并执行热重载。
2. **彻底解耦 (Decoupling)**: 核心组件（`main.py`）现在极度苗条瘦身，只负责启动环境和抛出系统底下的快捷键触发器。具体的 PyQt 界面、网络请求统统不互相关联。
3. **即写即用 (Write Once Run Everywhere)**: 开发者只需在 `plugins` 下写一个带 `@openham_plugin` 装饰器的方法即可秒加功能，且立刻享有输入框底层对接、正则表达式截获、自动路由等超能力。
