Commit Graph

27 Commits

Author SHA1 Message Date
e82ab6a70e feat: 从 remember 工具中拆分出独立的 todo 工具
- 新增 todo 工具:add/complete/delete/update,共享 memory.json
- remember 去掉 todo 类型和 remind_at 字段
- recall 对 todo 条目显示完成状态(未完成/完成于时间)
- 提醒触发后自动标记完成 + 清理 remind_at
- 提醒消息加上 todo ID 便于关联
- 更新 system prompt 拆分记忆/待办指导
- UI 显示适配:待办 新增/完成/删除/更新 · 内容 · 时间
2026-05-01 03:25:51 +08:00
8dda2dae66 feat: 自定义权限引导窗口
- 新增 PermissionGuideWindow 替代 NSAlert 权限引导
- 辅助功能用 AXIsProcessTrusted() 实时检测
- 输入监控因 macOS 15 API 限制标记为手动确认
- 每项权限有「打开设置」按钮跳转系统设置页
- 轮询刷新,辅助功能就绪后可关闭窗口启动
2026-05-01 02:24:54 +08:00
b8dfd4d85b chore: 移除 reminderLog 方法,仅保留 agentLog 路径修复 2026-05-01 01:26:39 +08:00
8b6f898d3b chore: 移除 Reminder 调试日志调用,保留日志基础设施
- 移除 applicationDidFinishLaunching 中的诊断日志
- 移除 startReminderTimer/checkReminders/triggerReminder 中的 reminderLog 调用
- 保留 logDir/reminderLog 方法定义和 agentLog 路径修复,供后续排查使用
2026-05-01 01:22:00 +08:00
967da1b889 debug: 添加 Reminder 文件日志排查 DMG 定时提醒失效问题
- AppDelegate: 新增 reminderLog() 写入 ~/Library/Logs/VoiceInput/reminder.log
- AppDelegate: 修复 agentLog 路径使用用户 Logs 目录
- AppDelegate: 启动时记录 bundlePath/agentDir/memoryPath 等诊断信息
- AgentBridge: init 不清空历史日志,start() 失败时输出详细错误
- checkReminders/triggerReminder 全链路覆盖文件日志
2026-05-01 01:19:12 +08:00
f07a72de2b fix(agent): 多模态工具过滤 + memory 新类型 + UI 优化
- 根据模型 multimodal 字段过滤 read_mediafile 工具
- prompt 新增模型多模态能力说明
- 记忆新增 machine 类型(本机路径/脚本/配置)
- 记忆内容统一用「用户」指代,禁止用名字
- done 后按 Fn 不再清空之前内容
- 设置窗口 checkbox 文字与其他控件对齐
- 菜单和设置窗口去掉所有 emoji
2026-04-30 21:09:08 +08:00
9f3ea09b06 feat(agent): Better Siri 改造 — 个人助手 + 记忆系统 + 统一弹窗 + 多项优化
=== 记忆系统 ===
- 新增 remember(记录)和 recall(搜索)工具,持久化到 ~/Library/Application Support/VoiceInput/memory/memory.json
- 新增 set_identity 工具,独立管理助手名字/用户称呼/语气
- prompt 重写为个人助手身份,注入 macOS 能力 + 记忆规则
- prompt 中积极调用记忆工具,按需搜索、自然融入回答
- 禁止相对时间,待办必须绝对日期

=== 对话持久化 ===
- 集成 conversation_store,done 前自动写入对话文件
- token 记录:prompt/completion 累加,total 覆盖为最新上下文长度
- 启动时加载最新对话继续(使用 eagent /resume 逻辑)
- 去重:末尾连续 assistant 消息自动合并
- 修复消息加载顺序 bug(旧对话覆盖用户新消息)

=== 新建对话 ===
- 手动/自动两种模式(设置窗口可切换)
- 自动模式:total > 阈值时隐藏按钮,下次输入自动新建
- 自动阈值在设置窗口可配置(默认 40000)

=== 弹窗 UI 统一 ===
- 语音输入按 Fn 即显示刘海弹窗(和打字输入统一)
- 语音识别内容自动填入并发送(可关闭自动发送)
- 工作期间(thinking/running)隐藏输入框,idle/done 时显示
- 工具显示三种模式:全部显示/最后隐藏/一直不显示

=== 设置窗口增强 ===
- 助手名字 / 用户称呼 / 语气可配置
- 工具显示模式 / 新建对话模式 / 自动阈值
- 语音输入后自动发送开关(默认开)
- 记忆管理窗口可视化编辑(Dock 可访问)
- 窗口高度 840→860

=== 菜单增强 ===
- Agent LLM 二级菜单切换语音/打字输入
- 助手设置和记忆管理入口(Dock 可访问)

=== 修复 ===
- Fn 按下时停止正在进行的朗读
- 弹窗已存在时不再覆盖 isTextInputMode
- voiceInputText 加 @Published 以触发 UI 更新
2026-04-30 18:16:58 +08:00
701dc1f18f fix: AgentNotchView 动态高度 + 启动时权限已就绪不弹窗 2026-04-29 21:13:32 +08:00
26bf147adf fix: Agent 配置路径统一到用户目录,修复工具异常和权限错误
- config.js: ensureConfig 接受 opts.path,避免始终读 bundle 内空配置
- bridge.js: executeTool 异常时也写入 tool 消息,防止 tool_calls 历史不一致
- search_workspace.js: 加 followSymbolicLinks:false + suppressErrors + try-catch
- AgentBridge: 日志写用户目录,传 --config 给 bridge.js
- Config: Agent models.json 存储到 ~/Library/Application Support/VoiceInput
- AppDelegate: 合并权限请求为一次弹窗,适配 macOS 15
- .gitignore: 移除 agent_debug.log(已迁至用户目录)
2026-04-29 20:16:20 +08:00
76741877a8 feat: 朗读功能、弹窗优化、Node.js 打包、Prompt 更新
- Assist/Agent 模式新增朗读开关 + NSSpeechSynthesizer 语音合成
- 朗读完成后弹窗延迟5秒带动画关闭(不再写死15/20秒)
- 打字模式下不自动关闭弹窗
- 二次输入时取消旧朗读/旧延迟关闭,避免竞争问题
- Agent 进度计时器第二次输入时正确归零
- DMG 打包自动清空 models.json API Key
- Node.js 运行时打包进 Agent/bin/,用户无需安装
- Agent system prompt 更新为 VoiceInput 身份 + 语音容错说明
- AGENTS.md 全面更新,补全 Agent 模式文档
2026-04-29 18:22:14 +08:00
94b05c28b3 feat: Agent 模式重大更新 — 稳定多轮对话、流式刘海、模型管理、交互优化
## Agent 核心功能
- **流式输出刘海弹窗**:实时展示模型思考内容,支持自动滚动
- **工具调用进度**:最多可见3条 + 可滚动查看全部历史 + 防抖并行滚动
- **打字/语音双输入**:Agent 模式可选手动打字或语音输入
- **快速/思考模式切换**:支持 thinking mode 开关
- **多轮对话连续性**:同一会话内持续对话,新建对话按钮 ⊕ 开启新会话
- **工作时间显示**:工作完成状态栏显示耗时,如「工作完成 · 00:42」

## Bug 修复
- **SIGTERM 优雅退出**:bridge.js 处理 SIGTERM,避免 code 15 误报异常
- **弹窗复用不重建**:输入内容继续对话时弹窗内部刷新,不再闪出闪进
- **关闭按钮立刻生效**:ignoreMouse=true 绕过 DynamicNotchKit 延迟
- **设置窗口 Agent UI 构建时机**:从延迟构建改为 init 中直接构建
- **模型编辑器**:修复 grid column nil 崩溃 + 改为独立 KeyEquivalentPanel 窗口支持 Cmd+A/C/V/X
- **双击 Control 三向轮换**:语音输入 ↔ AI助手 ↔ 智能体
- **Fn 长按冲突处理**:非 Agent 模式下自动关闭 Agent 刘海弹窗
- **Save 后刷新下拉**:保存配置后默认模型下拉框即时同步

## UI 交互优化
- **工具列表无灰色背景**:工具执行期间不再有底色变化
- **工作时隐藏新建对话按钮**:thinking/running 期间 ⊕ 自动隐藏
- **工具调用去 timeout 显示**:运行指令行不再显示 (timeout=30s)

## 文件拆分(单文件≤500行)
- AgentNotchView → AgentProgressTracker + AppKitTextField + AgentNotchView
- SettingsWindow → AgentModelEditor + KeyEquivalentSecureTextField + KeyEquivalentPanel + SettingsWindow

## 底层改动
- DynamicNotchKit: 新增 contentVersion + notifyContentChanged 机制
- NotchView: 动画绑定 contentVersion 支持弹窗内容变化弹性动画
2026-04-29 16:42:46 +08:00
c708ff32ac feat: Ask AI 刘海弹窗输出模式
- 新增 AssistOutputMode 配置(inject/notch)
- Assist 设置界面添加输出方式弹出菜单
- 新建 NotchDisplayManager:DynamicNotchKit 弹窗,支持滚动、复制、15s 自动消失
- DynamicNotchKit 固化为本地依赖,修复假刘海高度问题(0→内容贴近顶部)
2026-04-28 23:18:13 +08:00
deae1fbc06 feat: RecordingPanel 宽度自适应 + 打包 DMG
- updateText 移除文本宽度硬编码下限 160,真正根据内容自适应
- showRefining/showThinking 简化为调用 updateText,复用自适应逻辑
- 面板最小宽度由 minPanelWidth(180pt) 兜底
- 打包 VoiceInput-20260425.dmg
2026-04-25 16:34:33 +08:00
6a8b5532bd fix: Release 模式下 delegate 被 ARC 释放导致菜单灰色/双击失效 2026-04-25 11:44:14 +08:00
e1cfb27e16 fix: 完善权限引导 — 辅助功能+输入监控+麦克风+语音识别,统一文案 2026-04-25 11:37:40 +08:00
ad72907e89 feat: 快速双击 Fn 键切换语音输入/AI 助手模式 2026-04-24 23:34:23 +08:00
847ae72e49 feat: LLM 设置窗口添加「从另一个配置复制」按钮 2026-04-24 22:52:53 +08:00
7dc0d8ce26 fix: SettingsWindow 输入框支持 Cmd+A/C/V/X 快捷键 2026-04-24 22:27:00 +08:00
2a2582ea5e fix: 菜单项灰色 — 关闭所有菜单 autoenablesItems + 实现 validateMenuItem 2026-04-24 22:21:06 +08:00
9460cac79a fix: Language 和 Mode 菜单项灰色 — 补上 target = self 2026-04-24 18:59:19 +08:00
a12258e051 feat: 菜单栏切换模式,统一使用 Fn 键触发 2026-04-24 18:49:13 +08:00
67b3024bda feat: 双模式 LLM - Fn 语音输入 + Control AI 助手,独立配置 2026-04-24 18:14:38 +08:00
0c1482c983 feat: 启动时自动检测权限并跳转系统设置 2026-04-24 17:23:28 +08:00
1aee169c68 security: 移除硬编码 API Key,用户需自行配置 2026-04-24 17:16:32 +08:00
7d297ba1a4 fix: 图标改为 macOS Big Sur 圆角规范 2026-04-24 17:06:32 +08:00
c42f65821c feat: 添加 App 图标 2026-04-24 16:58:00 +08:00
1d9c9d5fa0 feat: macOS 菜单栏语音输入应用初始版本
- CGEvent cghidEventTap 全局监听 Fn 键
- Apple Speech 流式语音识别(zh-CN 默认)
- 实时音频 RMS 电平驱动波形动画
- NSPanel 胶囊浮动窗口
- 剪贴板 + Cmd+V 文本注入,CJK 输入法自动切换
- OpenAI 兼容 LLM 纠错(DeepSeek 预设)
- LSUIElement 菜单栏运行
- SPM + Makefile 构建
2026-04-24 16:17:57 +08:00