Skip to content

Architecture

LeonXu edited this page Feb 28, 2026 · 1 revision

Architecture

三层架构

路径 说明
Engine lib/engine/ CoreEngine 编排器、ASR 提供者、模型管理
Service lib/services/ 配置、LLM、闪念笔记、音频设备、生命周期
UI lib/ui/ macOS 原生风格 UI、设置页、引导页
Native native_lib/native_input.m Objective-C: CGEventTap 键盘 + AudioQueue Ring Buffer
Gateway gateway/ Cloudflare Workers 后端 (Hono)

核心数据流

快捷键触发 → native_input.m (CGEventTap)
  → C Ring Buffer 采集 16kHz PCM 音频
  → CoreEngine FFI 轮询 → VAD/AGC 处理
  → ASR (Sherpa 离线 / Aliyun 云端)
  → LLM 纠错 (可选)
  → 模式分发: 文本注入 | 闪念笔记 | MCP Agent (计划中)

设计模式

  • Singleton — 全局服务 (ConfigService, CoreEngine, ChatService)
  • Provider/Strategy — ASR 提供者可切换 (ASRProvider 抽象类)
  • 生命周期 — init() → start() → stop() → dispose()
  • 流式处理 — StreamController 实时传递 ASR 结果到 UI

关键技术细节

  • FFI 音频采集 — 使用 C Ring Buffer 而非 Dart 回调(避免跨 isolate SIGABRT)
  • macOS 26 兼容 — Globe/Fn 键 (keyCode 179) 映射到标准 Fn (63)
  • 文本注入 — 通过 Accessibility API,终端应用回退到剪贴板粘贴

Clone this wiki locally