## 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 支持弹窗内容变化弹性动画
47 lines
1.4 KiB
Bash
Executable File
47 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# create_app_bundle.sh - 将 SPM 构建产物打包为 .app bundle
|
|
# Usage: ./scripts/create_app_bundle.sh [debug|release]
|
|
|
|
set -e
|
|
|
|
BUILD_MODE="${1:-debug}"
|
|
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
BUILD_DIR="$PROJECT_DIR/.build"
|
|
BUNDLE_DIR="$BUILD_DIR/$BUILD_MODE/VoiceInput.app"
|
|
EXEC_SRC="$BUILD_DIR/$BUILD_MODE/VoiceInput"
|
|
CONTENTS_DIR="$BUNDLE_DIR/Contents"
|
|
MACOS_DIR="$CONTENTS_DIR/MacOS"
|
|
RESOURCES_DIR="$CONTENTS_DIR/Resources"
|
|
|
|
echo "📦 Creating app bundle at $BUNDLE_DIR..."
|
|
|
|
# 清空并创建目录结构
|
|
rm -rf "$BUNDLE_DIR"
|
|
mkdir -p "$MACOS_DIR"
|
|
mkdir -p "$RESOURCES_DIR"
|
|
|
|
# 复制可执行文件
|
|
cp "$EXEC_SRC" "$MACOS_DIR/VoiceInput"
|
|
chmod +x "$MACOS_DIR/VoiceInput"
|
|
|
|
# 复制 Info.plist 和图标
|
|
cp "$PROJECT_DIR/Sources/Resources/Info.plist" "$CONTENTS_DIR/Info.plist"
|
|
if [ -f "$PROJECT_DIR/Sources/Resources/AppIcon.icns" ]; then
|
|
cp "$PROJECT_DIR/Sources/Resources/AppIcon.icns" "$RESOURCES_DIR/AppIcon.icns"
|
|
fi
|
|
|
|
# 复制 Agent 目录(智能体配置和运行时)
|
|
if [ -d "$PROJECT_DIR/Agent" ]; then
|
|
mkdir -p "$RESOURCES_DIR/Agent"
|
|
cp -R "$PROJECT_DIR/Agent/"* "$RESOURCES_DIR/Agent/"
|
|
echo " ✅ Agent directory copied"
|
|
fi
|
|
|
|
# 更新 Info.plist 引用图标
|
|
/usr/libexec/PlistBuddy -c "Add :CFBundleIconFile string AppIcon" "$CONTENTS_DIR/Info.plist" 2>/dev/null || true
|
|
|
|
# 创建 PkgInfo
|
|
echo -n 'APPL????' > "$CONTENTS_DIR/PkgInfo"
|
|
|
|
echo "✅ App bundle created: $BUNDLE_DIR"
|