LogoUnimeType 文档

本地规则参考

影响捕获、请求、校验、状态或替换的全部 macOS 活跃规则。

本页记录 macOS 输入法中可执行的本地行为。模型提示词单独标注。本地 Swift 代码 没有把拉丁字母片段分类为英文或拼音的规则。

捕获规则

  • 明确的非空选区覆盖自动捕获。
  • Convert 使用当前段落,不包含边界换行。
  • Polish 和 Explain 使用光标所在句子;分隔符是 。!?.!? 和换行。
  • Terminal、Ghostty、VS Code 和 VS Code Insiders 优先使用本地输入缓冲;其他宿主 先尝试文档捕获,再回退到缓冲。
  • 自动捕获保留外层空白。
  • Markdown 标题、引用、列表、编号列表和任务框前缀不进入自动 Convert 请求,并 原样留在宿主。
  • 空捕获报告 nothingToConvert

输入缓冲规则

  • 普通可打印按键追加到当前文本客户端绑定的缓冲;普通 Backspace 删除最后一个 缓冲字符。
  • 客户端变化、操作菜单外点击、换行、导航或焦点按键、Command/Control 编辑命令、 Option-Backspace、无法跟踪的按键、停用、完成以及内容未变化的完成会清空缓冲。
  • 缓冲版本不一致会阻止替换并报告 textChanged

已接受段落规则

  • 通过验证的段落替换会为该宿主客户端记录起始位置和已接受文本。
  • 段落仍以已接受文本开头时,只请求新追加内容,并附带前面最多 100 个字符作为 只读上下文。
  • 前缀不再匹配时,重新请求完整段落正文。

受保护内容规则

  • 代码片段或围栏、URL、邮箱、路径、Markdown 链接目标、可识别密钥模式、私钥块 和带标签秘密值在请求前替换为本地占位符。
  • 带标签秘密占有该行全部剩余内容。
  • 重叠候选按位置、最长范围、再按优先级处理。
  • 恢复要求目标中的每个占位符恰好出现一次。
  • 秘密候选显示隐私锁;其他受保护对象不显示。

模型输出边界

  • 只有完整、位于开头且删除后仍有非空正文的 <think><analysis><reasoning> 块会被移除。
  • 不完整、嵌入或仍残留的推理标记会拒绝响应。
  • 清理后为空的输出会被拒绝。

Convert 校验器

失败标识失败变量
empty输出没有非空白文本
contextEnvelopeLeak输出包含内部上下文或目标标记
metaExplanation仍存在推理标记
lineBreakMismatch换行数量变化
markdownPrefixMismatch每行 Markdown 结构前缀变化
protectedTokenMismatch受保护占位符、行、顺序或边界变化

Convert 没有本地拼音概率、拉丁前缀、英文单词或代码段落拒绝规则。

Polish 校验器

Polish 使用 emptymetaExplanationlineBreakMismatchmarkdownPrefixMismatchprotectedTokenMismatch。数字类锚点的有序序列变化时, 还会产生 informationAnchorMismatch。本地后处理会把汉字前的 , 改为

Explain 会恢复受保护内容,但不会写回宿主。

请求与重试规则

  • 空 Convert 和 Polish 输入在本地返回,不发送请求。
  • Convert 首次请求温度为 0,输出上限为 1,024 token。
  • 第一次 Convert 结果结构无效时,执行一次修复请求。
  • 第一次 Convert 结果完全相同时,执行一次激进重试。条件允许时,可识别的 Mini/Lite 路由使用对应的 Pro;Pro 不可用时回退到所选模型。
  • 最终结果结构有效但仍相同时正常返回,并在替换阶段成为 unchanged
  • Polish 校验失败后执行一次修复请求。
  • Explain 发送一次请求,输出上限为 300 token。
  • 请求超时为 45 秒。凭据缺失或过期、非成功 HTTP 状态、解码失败、不安全推理标记、 空响应或最终结构校验失败会成为 actionFailed

应用例外

  • 选区或光标替换客户端:com.tencent.xinWeChatcom.microsoft.VSCodecom.microsoft.VSCodeInsiders
  • 输入缓冲优先客户端:com.apple.Terminalcom.mitchellh.ghosttycom.microsoft.VSCodecom.microsoft.VSCodeInsiders
  • Xcode 没有 bundle 专用例外。

替换规则

  • 源范围或缓冲版本必须仍与捕获快照一致。
  • 替换文本相同则显示 unchanged,不执行插入。
  • 普通宿主使用已提交文本范围替换。
  • 选区或光标客户端使用精确选区插入;如果光标仍位于目标末尾,则使用合成 Backspace 批次。
  • 合成替换绑定客户端和缓冲版本,两秒后超时。
  • 可读取的结果会回读验证。不一致显示 replacementFailed;结果不可读时记录 replacementSent,但不声称完成回读验证。
  • 所有替换路径都不会创建标记组合文本。

触发与状态规则

  • 只有选中 UnimeType 且设置开启时,Caps Lock 才映射为 F20。
  • 普通 Caps Lock 执行 Convert;启用后 Option + Caps Lock 打开操作菜单, Option + Return 执行 Convert。重复事件会被忽略。
  • 同一时间只允许一个操作。
  • 静默状态:processingcompletedreplacementSent
  • 可见异常状态:unchangednothingToConvertrequestInFlighttextChangedselectionRequiredreplacementFailedactionFailedsetupRequiredcancelled

模型提示词规则,不是本地决策

已配置提示词要求模型转换可能属于启用语言的输入、保留明确英文和受保护结构、使用 上下文消歧拼音,并只返回目标。它们会影响模型回答,但本地 Swift 代码不会据此分类 或阻止输入。

目录

English