fix: make product copy direct and factual
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Deploy website to GitHub Pages / Deploy static website (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Deploy website to GitHub Pages / Deploy static website (push) Canceled after 0s
The website, README, and Smart Heartbeat interface used promotional superlatives, generic benefit labels, and personified growth language that obscured the actual product behavior. The English README is now the repository entry point with a separate Chinese version, and both website and in-app copy describe concrete capabilities, reports, suggestions, and execution boundaries. Release note: 优化官网、README 与智能心跳界面的中英文文案,去除空泛宣传和拟人化表达,改为直接说明产品能力、运行记录与建议内容。
This commit is contained in:
@@ -1,85 +0,0 @@
|
||||
# GoodBuddy
|
||||
|
||||
English | [简体中文](./README.md)
|
||||
|
||||
A secure, cross-platform, local-first desktop AI assistant and Agent workspace.
|
||||
|
||||

|
||||
|
||||
## Highlights
|
||||
|
||||
- **Controlled execution**: `Ask` stays read-only; `Execute` runs only enabled tools within defined boundaries and records their activity.
|
||||
- **Local-first data**: Conversations, tasks, artifacts, memory, knowledge bases, and graphs are stored in local SQLite. API keys are encrypted by the operating system.
|
||||
- **Multiple runtimes**: Connect directly to models or use OpenCode, Continue, and the preview DeepSeek Harness, with cancellation, timeouts, output limits, and process cleanup.
|
||||
- **Open integrations**: Supports OpenAI Responses, OpenAI-compatible Chat Completions, Anthropic Messages, OpenAI Images, Embeddings, cross-runtime Skills and custom MCP, plus a default-off DeepSeek Harness npm plugin marketplace that users enable explicitly.
|
||||
- **Knowledge workspace**: Import files, folders, and web pages, then search them with full-text, phrase, vector, and graph retrieval.
|
||||
- **Work management**: Organize projects, conversations, tasks, activity, artifacts, memory, Magic Notes, and Smart Heartbeat.
|
||||
- **Remote channels**: Connect WeChat ClawBot, WeCom, and DingTalk with separate remote sessions for each sender.
|
||||
- **Managed SSH projects (technical preview)**: Remote support is off by default and does not affect ordinary desktop use. After enabling it, manually download the independently signed package for the Linux Host architecture under Settings > Platform Features > Remote Projects, or import/export an offline `.gbagent`. Each package contains the Agent, pinned Node, and the GoodBuddy-adapted remote OpenCode Runtime; online downloads follow the GitHub or mirror source selected under About & Updates.
|
||||
- **Desktop context**: Add selected files, screenshots, application windows, clipboard content, and voice.
|
||||
- **Offline speech**: Use local SenseVoice, Paraformer, and Whisper models.
|
||||
- **Rich responses**: Render Markdown, LaTeX, and controlled Mermaid diagrams.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
See [FEATURES.md](./FEATURES.md) for the detailed feature matrix and roadmap, and
|
||||
the [documentation index](./docs/README.md) for product, architecture, design,
|
||||
and quality documents.
|
||||
|
||||
## Install
|
||||
|
||||
Download a build from [GitHub Releases](https://github.com/mesalogo/goodbuddy/releases):
|
||||
|
||||
| Platform | Architectures | Formats |
|
||||
| --- | --- | --- |
|
||||
| Windows | `x64`, `arm64` | NSIS, portable ZIP |
|
||||
| macOS | `x64`, `arm64` | DMG, ZIP |
|
||||
| Linux | `x64`, `arm64` | AppImage, DEB, RPM |
|
||||
|
||||
Desktop installers do not contain remote Agent payloads. No Agent package is
|
||||
needed for local projects; managed SSH users install one explicitly in
|
||||
Settings.
|
||||
|
||||
Code signing and macOS notarization are not configured yet, so your operating system may display a security warning.
|
||||
|
||||
## Run from source
|
||||
|
||||
Requires Node.js 24 and npm:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/mesalogo/goodbuddy.git
|
||||
cd goodbuddy
|
||||
npm ci
|
||||
npm run dev
|
||||
```
|
||||
|
||||
See [BUILD.md](./BUILD.md) for build and packaging instructions.
|
||||
|
||||
## Privacy and security
|
||||
|
||||
- Model requests are sent only to services selected by the user.
|
||||
- Local data stays in the operating system's application data directory by default.
|
||||
- The Renderer has no access to raw Electron APIs or model credentials.
|
||||
- The DeepSeek Harness plugin marketplace is off by default. After it is enabled and a third-party plugin is installed, its install scripts, initialization, and Execute tools run with the current user's permissions. Turning off the marketplace only hides its catalog and management interface; it does not disable or uninstall existing plugins. Installation requires explicit confirmation, and Ask limits only model tool calls.
|
||||
- Remote delegation is disabled until the user configures an endpoint and token.
|
||||
- Private-network compatibility permits in-app HTTP and non-standard HTTPS certificates. WeChat credential and media endpoints remain strictly validated.
|
||||
|
||||
## Contributing
|
||||
|
||||
Issues and pull requests are welcome. Read [AGENTS.md](./AGENTS.md) first, then run:
|
||||
|
||||
```bash
|
||||
npm test
|
||||
npm run typecheck
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Original GoodBuddy code is released under the [0BSD License](./LICENSE). You may use, modify, distribute, and commercialize it freely. Third-party components and resources retain their respective licenses.
|
||||
@@ -1,64 +1,88 @@
|
||||
<div align="center">
|
||||
<img src="./sites/assets/goodbuddy-light.png" width="96" alt="GoodBuddy" />
|
||||
|
||||
# GoodBuddy
|
||||
|
||||
[English](README.en.md) | 简体中文
|
||||
**Desktop access to model chat, coding agents, knowledge, and scheduled work**
|
||||
|
||||
GoodBuddy是一个开箱即用的 AI 生产平台,安全、跨平台、本地优先的桌面 AI 助手与 Agent 工作空间。
|
||||
**English** | [简体中文](./README.zh-CN.md)
|
||||
|
||||
产品官网:https://mesalogo.github.io/goodbuddy/
|
||||
[Website](https://mesalogo.github.io/goodbuddy/en.html) ·
|
||||
[Download](https://github.com/mesalogo/goodbuddy/releases) ·
|
||||
[Feature Matrix](./FEATURES.md) ·
|
||||
[Build Guide](./BUILD.md)
|
||||
|
||||
五大特点:
|
||||
1. 支持国产信创系统和硬件
|
||||
2. 免注册,不收集个人信息
|
||||
3. 完全开源和免费,友好的OBSD协议
|
||||
4. 不需要联网,纯私有网络也可以用
|
||||
5. 开放生态,内置主流好用的Agent Runtime,目前支持OpenCode、Continue和DeepSeek Harness,让小白用户也可以快速用起来最前沿的Agent工具
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](./LICENSE)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
</div>
|
||||
|
||||

|
||||

|
||||
|
||||
## 核心能力
|
||||
GoodBuddy is a desktop application for model chat, coding agents, knowledge
|
||||
retrieval, notes, and scheduled tasks. No GoodBuddy account is required.
|
||||
Workspace data is stored locally by default. Model endpoints can run on the
|
||||
same device, on a private network, or at a provider selected by the user.
|
||||
|
||||
- **安全执行**:`Ask` 保持只读;`Execute` 仅运行已启用且受边界约束的工具,并保留活动记录。
|
||||
- **本地优先**:会话、任务、成果、记忆、知识库和图谱保存在本地 SQLite;API Key 由系统安全存储加密。
|
||||
- **多 Runtime**:支持直连模型、OpenCode、Continue 和预览版 DeepSeek Harness,统一处理取消、超时、输出限制和进程退出;原生能力清单将 Tools 与 Commands、LSP、Formatters 分开,并显示来源及 Ask/Execute 可用性。内置 OpenCode 提供 Agent、Tool、Command 与原生 Compact,Continue 提供 Rules、Prompt 预设、结构化提问与 GoodBuddy 手动摘要压缩,并明确标记当前版本无法静态发现原生 Tools。
|
||||
- **开放连接**:支持 OpenAI Responses、OpenAI 兼容 Chat Completions、Anthropic Messages、OpenAI Images、Embeddings、跨 Runtime Skills 与自定义 MCP,以及默认关闭、由用户显式开启的 DeepSeek Harness npm 插件市场。Anthropic 连接可独立配置协议必填的单次最大输出,不再复用上下文窗口;OpenAI 直连请求不额外设置输出 Token 上限。MCP 测试可读取有界 Prompt/Resource 元数据,但不会读取 Resource 内容。
|
||||
- **知识工作区**:支持文件、目录和网页导入,以及全文、词组、向量和图谱混合检索。
|
||||
- **工作管理**:集中管理 Projects、对话、任务、活动、成果、记忆、魔法笔记和智能心跳;可从稳定的本地会话复制当前聊天内容并创建互不影响的会话分支。
|
||||
- **远程通道**:支持微信 ClawBot、企业微信和钉钉,每个发送者使用独立远程会话。
|
||||
- **托管 SSH 项目(技术预览)**:远程能力默认关闭且不影响普通桌面使用。添加 Host 只保存并探测,不自动安装;Host 卡片以一个按版本事实命名的主按钮准备环境,次级控件可选默认且不持久化的“自动”、Host 下载或 GoodBuddy 传输。自动模式只在操作开始时择一,失败不跨路径重试;两种方式交付同一签名 compound `.gbagent` 后共用 prepare、commit、Agent/Runtime adoption 与 cleanup。项目创建与切换只使用已经准备好的 Host。GitHub/北京镜像、Linux x64/arm64、取消和离线 GoodBuddy 传输的真实 Host 验收仍待完成,当前不表示该路径已发布。
|
||||
- **桌面上下文**:可选择文件、截图、应用窗口、剪贴板和语音作为上下文。
|
||||
- **离线语音**:支持 SenseVoice、Paraformer 和 Whisper 本地模型。
|
||||
- **富文本回答**:支持 Markdown、LaTeX 公式和受控 Mermaid 图表。
|
||||
## Capabilities
|
||||
|
||||

|
||||
| Area | Available in GoodBuddy |
|
||||
| --- | --- |
|
||||
| Agent Runtimes | Direct model connections, OpenCode, Continue, and the preview DeepSeek Harness |
|
||||
| Data and execution | Local SQLite storage, read-only `Ask`, full-account `Execute`, and recorded tool activity |
|
||||
| Knowledge | File, folder, and web imports with full-text, Chinese phrase, vector, and knowledge graph retrieval |
|
||||
| Desktop releases | Windows, macOS, and Linux builds for `x64` and `arm64` |
|
||||
| Integrations | Local or hosted model endpoints, custom MCP servers, WeChat ClawBot, WeCom, and DingTalk |
|
||||
|
||||

|
||||
## Product tour
|
||||
|
||||

|
||||
### Knowledge bases and graphs
|
||||
|
||||

|
||||

|
||||
|
||||
完整功能和路线图见 [FEATURES.md](FEATURES.md),产品功能文档位于
|
||||
[`docs/features`](./docs/features/),维护规范见
|
||||
[`docs/features/AGENTS.md`](./docs/features/AGENTS.md)。
|
||||

|
||||
|
||||
## 安装
|
||||
### Magic Notes and Smart Heartbeat
|
||||
|
||||
从 [GitHub Releases](https://github.com/mesalogo/goodbuddy/releases) 下载:
|
||||

|
||||
|
||||
| 系统 | 架构 | 格式 |
|
||||

|
||||
|
||||
## Agent Runtimes
|
||||
|
||||
| Runtime | Functions | Configuration |
|
||||
| --- | --- | --- |
|
||||
| Windows | `x64`、`arm64` | NSIS、便携 ZIP |
|
||||
| macOS | `x64`、`arm64` | DMG、ZIP |
|
||||
| Linux | `x64`、`arm64` | AppImage、DEB、RPM |
|
||||
| Direct models | Chat, retrieval, image generation, and built-in tools | GoodBuddy model connections |
|
||||
| OpenCode | Coding agents, native commands, tools, and skills | GoodBuddy-managed or native OpenCode configuration |
|
||||
| Continue | Rules, prompt presets, and coding tasks | GoodBuddy-managed or native Continue configuration |
|
||||
| DeepSeek Harness (preview) | A fixed host with optional plugin capabilities | GoodBuddy-managed OpenAI-compatible connection |
|
||||
|
||||
桌面安装包不包含远端 Agent payload。仅使用本地项目时无需下载任何
|
||||
Agent 包;托管 SSH 用户可在设置中按需管理。
|
||||
Each run reports cancellation, timeouts, token usage, tool calls, and history.
|
||||
Runtime-specific capabilities and configuration remain separate.
|
||||
|
||||
当前尚未配置代码签名和 macOS notarization,系统可能显示安全提示。
|
||||
## Download
|
||||
|
||||
## 从源码运行
|
||||
Download a build from
|
||||
[GitHub Releases](https://github.com/mesalogo/goodbuddy/releases):
|
||||
|
||||
需要 Node.js 24 和 npm:
|
||||
| Platform | Architectures | Formats |
|
||||
| --- | --- | --- |
|
||||
| Windows | `x64`, `arm64` | NSIS, portable ZIP |
|
||||
| macOS | `x64`, `arm64` | DMG, ZIP |
|
||||
| Linux | `x64`, `arm64` | AppImage, DEB, RPM |
|
||||
|
||||
Desktop installers do not contain remote Agent payloads. Local projects do not
|
||||
need an Agent package; managed SSH users download or import one explicitly in
|
||||
Settings.
|
||||
|
||||
Code signing and macOS notarization are not configured yet, so the operating
|
||||
system may display a security warning.
|
||||
|
||||
## Run from source
|
||||
|
||||
Requires Node.js 24 and npm:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/mesalogo/goodbuddy.git
|
||||
@@ -67,20 +91,35 @@ npm ci
|
||||
npm run dev
|
||||
```
|
||||
|
||||
构建与打包说明见 [BUILD.md](BUILD.md)。
|
||||
See [BUILD.md](./BUILD.md) for build and packaging instructions.
|
||||
|
||||
## 隐私与安全
|
||||
## Documentation
|
||||
|
||||
- 模型请求只发送到用户选择的服务。
|
||||
- 本地数据默认保存在系统应用数据目录。
|
||||
- Renderer 不接触原始 Electron API 或模型凭据。
|
||||
- DeepSeek Harness 插件市场默认关闭;开启并安装第三方插件后,其安装脚本、初始化和 Execute 工具以当前用户权限运行。关闭市场只隐藏目录和管理界面,不会停用或卸载已有插件;安装前会明确确认。Ask 只允许 Host 原生 `read`/`skill` 与 Main 管理的 Web Search/Fetch,不允许调用第三方插件工具,也不能限制插件初始化代码。
|
||||
- 远程委派仅在用户配置端点和令牌后启用。
|
||||
- 内网兼容模式允许应用内 HTTP 和非标准 HTTPS 证书;微信凭据和媒体端点仍执行严格校验。
|
||||
- [Feature matrix and roadmap](./FEATURES.md)
|
||||
- [Product feature documentation](./docs/features/)
|
||||
- [UI design system](./UI-DESIGN.md)
|
||||
- [Build and packaging](./BUILD.md)
|
||||
- [Release runbook](./docs/development/release-runbook.md)
|
||||
|
||||
## 参与贡献
|
||||
## Privacy and execution boundaries
|
||||
|
||||
欢迎提交 Issue 和 Pull Request。请先阅读 [AGENTS.md](AGENTS.md),提交前运行:
|
||||
- Model requests are sent only to services selected by the user.
|
||||
- Local data stays in the operating system's application data directory by
|
||||
default. API keys are encrypted by secure system storage.
|
||||
- The Renderer has no access to raw Electron APIs or model credentials.
|
||||
- The DeepSeek Harness plugin marketplace is off by default. Third-party
|
||||
install scripts, initialization code, and Execute tools run with the current
|
||||
user's permissions.
|
||||
- Remote delegation is enabled only after the user configures an endpoint and
|
||||
token.
|
||||
- Private-network compatibility permits in-app HTTP and non-standard HTTPS
|
||||
certificates. WeChat credential and media endpoints remain strictly
|
||||
validated.
|
||||
|
||||
## Contributing
|
||||
|
||||
Issues and pull requests are welcome. Read [AGENTS.md](./AGENTS.md) first, then
|
||||
run:
|
||||
|
||||
```bash
|
||||
npm test
|
||||
@@ -88,19 +127,8 @@ npm run typecheck
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## 为什么选择GoodBuddy
|
||||
## License
|
||||
|
||||
<img width="1024" height="1536" alt="6dd45371542dea9fb2d99474387708f5" src="https://github.com/user-attachments/assets/ca608646-ea48-4039-9177-d862be8396ac" />
|
||||
|
||||
|
||||
## 社区交流
|
||||
|
||||
目前采用微信群的方式供大家高效交流,大家可以微信扫码进入社区群:
|
||||
|
||||
<img width="1250" height="1743" alt="6ae8664c83b2f182aa81ae94afe691fe" src="https://github.com/user-attachments/assets/10bb7ac2-0bc1-41a9-978d-c2862923fcd6" />
|
||||
|
||||
|
||||
|
||||
## 开源许可
|
||||
|
||||
GoodBuddy 的原创代码采用 [0BSD License](LICENSE),可自由使用、修改、分发和商用。第三方组件和资源遵循各自许可证。
|
||||
Original GoodBuddy code is released under the [0BSD License](./LICENSE). You may
|
||||
use, modify, distribute, and commercialize it freely. Third-party components
|
||||
and resources retain their respective licenses.
|
||||
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
<div align="center">
|
||||
<img src="./sites/assets/goodbuddy-light.png" width="96" alt="GoodBuddy" />
|
||||
|
||||
# GoodBuddy
|
||||
|
||||
**模型对话、编程 Agent、本地知识库和定时任务的桌面入口**
|
||||
|
||||
[English](./README.md) | **简体中文**
|
||||
|
||||
[产品官网](https://mesalogo.github.io/goodbuddy/) ·
|
||||
[下载](https://github.com/mesalogo/goodbuddy/releases) ·
|
||||
[功能矩阵](./FEATURES.md) ·
|
||||
[构建说明](./BUILD.md)
|
||||
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](./LICENSE)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
[](https://github.com/mesalogo/goodbuddy/releases)
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
GoodBuddy 是用于模型对话、编程 Agent、知识检索、笔记和定时任务的桌面应用。使用 GoodBuddy 无需注册账号,工作数据默认保存在本机。模型服务可以运行在本机、组织内网或用户选择的云端服务。
|
||||
|
||||
## 主要能力
|
||||
|
||||
| 范围 | GoodBuddy 提供的能力 |
|
||||
| --- | --- |
|
||||
| Agent Runtime | 直连模型、OpenCode、Continue 和预览版 DeepSeek Harness |
|
||||
| 数据与执行 | 本地 SQLite、只读 `Ask`、使用当前账号完整权限的 `Execute`、工具调用记录 |
|
||||
| 知识库 | 导入文件、目录和网页,通过全文、中文词组、向量和知识图谱检索 |
|
||||
| 桌面版本 | Windows、macOS、Linux 的 `x64` 与 `arm64` 正式版本,以及龙芯 LoongArch 实验预览版 |
|
||||
| 外部连接 | 本机或内网模型服务、自定义 MCP、微信 ClawBot、企业微信和钉钉 |
|
||||
|
||||
## 产品界面
|
||||
|
||||
### 知识库与知识图谱
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 魔法笔记与智能心跳
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Agent Runtime
|
||||
|
||||
| Runtime | 适用场景 | 配置来源 |
|
||||
| --- | --- | --- |
|
||||
| 直连模型 | 对话、知识检索、图片生成和内置工具 | GoodBuddy 模型连接 |
|
||||
| OpenCode | 编程 Agent、原生 Commands、Tools 和 Skills | GoodBuddy 管理或 OpenCode 自有配置 |
|
||||
| Continue | Rules、Prompt 预设和编程任务 | GoodBuddy 管理或 Continue 自有配置 |
|
||||
| DeepSeek Harness(预览) | 固定 Host 与可选插件能力 | GoodBuddy 管理的 OpenAI 兼容连接 |
|
||||
|
||||
每次运行都会记录取消、超时、Token 用量、工具调用和执行历史。各 Runtime 的原生能力与配置仍分别管理。
|
||||
|
||||
## 下载
|
||||
|
||||
从 [GitHub Releases](https://github.com/mesalogo/goodbuddy/releases) 下载:
|
||||
|
||||
| 系统 | 架构 | 格式 |
|
||||
| --- | --- | --- |
|
||||
| Windows | `x64`、`arm64` | NSIS、便携 ZIP |
|
||||
| macOS | `x64`、`arm64` | DMG、ZIP |
|
||||
| Linux | `x64`、`arm64` | AppImage、DEB、RPM |
|
||||
|
||||
龙芯 LoongArch 使用独立的 `loong64` 实验预览通道,可在[产品官网](https://mesalogo.github.io/goodbuddy/#download)选择下载。
|
||||
|
||||
桌面安装包不包含远端 Agent payload。本地项目无需 Agent 包;托管 SSH 用户可在设置中单独下载或导入。
|
||||
|
||||
当前未配置代码签名和 macOS notarization,操作系统可能显示安全提示。
|
||||
|
||||
## 从源码运行
|
||||
|
||||
需要 Node.js 24 和 npm:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/mesalogo/goodbuddy.git
|
||||
cd goodbuddy
|
||||
npm ci
|
||||
npm run dev
|
||||
```
|
||||
|
||||
构建与打包说明见 [BUILD.md](./BUILD.md)。
|
||||
|
||||
## 文档
|
||||
|
||||
- [功能矩阵与路线图](./FEATURES.md)
|
||||
- [产品功能文档](./docs/features/)
|
||||
- [UI 设计系统](./UI-DESIGN.md)
|
||||
- [构建与打包](./BUILD.md)
|
||||
- [发布流程](./docs/development/release-runbook.md)
|
||||
|
||||
## 隐私与执行边界
|
||||
|
||||
- 模型请求只发送到用户选择的服务。
|
||||
- 本地数据默认保存在系统应用数据目录,API Key 由系统安全存储加密。
|
||||
- Renderer 不接触原始 Electron API 或模型凭据。
|
||||
- DeepSeek Harness 插件市场默认关闭。第三方插件安装脚本、初始化代码和 Execute 工具以当前用户权限运行。
|
||||
- 远程委派只在用户配置端点和令牌后启用。
|
||||
- 内网兼容模式允许应用内 HTTP 和非标准 HTTPS 证书;微信凭据和媒体端点仍执行严格校验。
|
||||
|
||||
## 参与贡献
|
||||
|
||||
欢迎提交 Issue 和 Pull Request。请先阅读 [AGENTS.md](./AGENTS.md),提交前运行:
|
||||
|
||||
```bash
|
||||
npm test
|
||||
npm run typecheck
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## 社区交流
|
||||
|
||||
扫描二维码加入 GoodBuddy 微信群:
|
||||
|
||||
<img width="360" alt="GoodBuddy 微信社区群二维码" src="https://github.com/user-attachments/assets/10bb7ac2-0bc1-41a9-978d-c2862923fcd6" />
|
||||
|
||||
## 开源许可
|
||||
|
||||
GoodBuddy 原创代码采用 [0BSD License](./LICENSE),可自由使用、修改、分发和商用。第三方组件和资源遵循各自许可证。
|
||||
+2
-2
@@ -193,7 +193,7 @@
|
||||
|
||||
### 6.1 PageTabs
|
||||
|
||||
用于同一一级页面内的同级内容面板,例如智能心跳的“成长概览”和“心跳计划”。
|
||||
用于同一一级页面内的同级内容面板,例如智能心跳的“运行概览”和“心跳计划”。
|
||||
|
||||
- 使用 `tablist`、`tab` 和 `tabpanel` 语义,当前项使用 `aria-selected="true"`。
|
||||
- 一级页面之间的导航由应用主导航承担,不复用 `PageTabs`。
|
||||
@@ -621,7 +621,7 @@ GoodBuddy 是可调整窗口大小的桌面应用。响应式设计优先保证
|
||||
- 范围明确区分 Global 与指定的一个或多个 Project;Global 与指定项目互斥,多项目选择使用
|
||||
Checkbox,不能依靠进入页面时的当前项目推断。
|
||||
- 状态卡片使用统一状态令牌,不只依赖颜色。
|
||||
- 保留“成长概览 / 待处理建议 / 心跳轨迹 / 心跳计划”四个同级页面。
|
||||
- 保留“运行概览 / 待处理建议 / 报告与记录 / 心跳计划”四个同级页面。
|
||||
- 智能心跳菜单入口是完整配置的权威位置;任务中心和设置中心不得复制同一 CRUD 表单。
|
||||
- “未来分区记忆”仅为长期方向,数据、状态和页面尚未设计,不得显示占位入口。
|
||||
|
||||
|
||||
@@ -435,9 +435,9 @@ Renderer 只通过显式 IPC 列出、加入、删除、提升、释放和接收
|
||||
└─ 独立成果
|
||||
|
||||
智能心跳
|
||||
├─ 成长概览
|
||||
├─ 运行概览
|
||||
├─ 待处理建议
|
||||
├─ 心跳轨迹
|
||||
├─ 报告与记录
|
||||
└─ 心跳计划
|
||||
└─ Global / 指定 Project
|
||||
```
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
| 选择 Global / Project 范围 | 智能心跳 > 心跳计划 | 不依赖当前项目推断 |
|
||||
| 暂停、恢复、立即心跳或删除 | 智能心跳 > 心跳计划 | 不复制操作 |
|
||||
| 查看报告与待处理建议 | 智能心跳 | 主导航徽标和通知可触达 |
|
||||
| 查看运行历史和失败 | 智能心跳 > 心跳轨迹 | 活动记录仅作审计补充 |
|
||||
| 查看运行历史和失败 | 智能心跳 > 报告与记录 | 活动记录仅作审计补充 |
|
||||
| 管理平台级默认值 | 设置中心 | 不显示单条计划 CRUD |
|
||||
|
||||
移除重复入口的顺序:
|
||||
@@ -135,9 +135,9 @@
|
||||
|
||||
保留现有四个页面:
|
||||
|
||||
- **成长概览**:状态、成功率、记忆、洞察和行动统计。
|
||||
- **运行概览**:状态、成功率、记忆、洞察和行动统计。
|
||||
- **待处理建议**:记忆建议和行动建议。
|
||||
- **心跳轨迹**:报告与 Run 审计。
|
||||
- **报告与记录**:心跳报告与 Run 审计。
|
||||
- **心跳计划**:唯一完整配置入口。
|
||||
|
||||
### 5.1 心跳计划
|
||||
|
||||
+2
-3
@@ -4,9 +4,8 @@
|
||||
|
||||
正式站点地址:<https://mesalogo.github.io/goodbuddy/>
|
||||
|
||||
首页将 GoodBuddy 定位为“首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品”和
|
||||
“免注册、支持信创软硬件的一站式 AI 助手”,优先展示三大桌面系统、正式
|
||||
x64 / arm64 下载入口、独立编译的龙芯 loong64 预览版、统一 Agent Runtime,
|
||||
首页将 GoodBuddy 定位为免注册、支持信创软硬件的跨平台开源桌面 AI 助手,优先展示
|
||||
三大桌面系统、正式 x64 / arm64 下载入口、独立编译的龙芯 loong64 预览版、Agent Runtime,
|
||||
以及知识库、魔法笔记、智能心跳、桌面上下文和远程消息通道等桌面助手能力。
|
||||
下载区位于主要功能说明之前,并明确列出统信 UOS、银河麒麟、海光、兆芯、
|
||||
鲲鹏、飞腾和龙芯。页面不重复设置底部下载推广区。
|
||||
|
||||
+14
-15
@@ -5,14 +5,14 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta
|
||||
name="description"
|
||||
content="GoodBuddy is an all-in-one desktop AI assistant that requires no GoodBuddy account, with a unified Agent Runtime for direct models, OpenCode, Continue, and DeepSeek Harness."
|
||||
content="GoodBuddy is an open-source desktop AI assistant for model chat, coding agents, knowledge, notes, and scheduled work. No GoodBuddy account is required."
|
||||
/>
|
||||
<link rel="canonical" href="https://mesalogo.github.io/goodbuddy/en.html" />
|
||||
<link rel="alternate" hreflang="zh-CN" href="https://mesalogo.github.io/goodbuddy/" />
|
||||
<link rel="alternate" hreflang="en" href="https://mesalogo.github.io/goodbuddy/en.html" />
|
||||
<link rel="alternate" hreflang="x-default" href="https://mesalogo.github.io/goodbuddy/en.html" />
|
||||
<meta name="theme-color" content="#f6f8fb" />
|
||||
<title>GoodBuddy | All-in-one AI assistant, no account required</title>
|
||||
<title>GoodBuddy | Open-source desktop AI assistant</title>
|
||||
<link
|
||||
rel="icon"
|
||||
href="./assets/goodbuddy-light.png"
|
||||
@@ -120,13 +120,12 @@
|
||||
</div>
|
||||
<h1 id="hero-title">
|
||||
No account required.<br />
|
||||
Your all-in-one<br />
|
||||
<span>AI assistant.</span>
|
||||
Model chat and coding agents<br />
|
||||
<span>on your desktop.</span>
|
||||
</h1>
|
||||
<p class="hero-lead">
|
||||
GoodBuddy brings conversations, knowledge, notes, and tasks together in a desktop
|
||||
assistant and AI coding workspace. Its unified Agent Runtime connects direct models,
|
||||
OpenCode, Continue, and DeepSeek Harness without repeated command-line setup.
|
||||
GoodBuddy manages conversations, knowledge, notes, and tasks on the desktop.
|
||||
Its Agent Runtime connects direct models, OpenCode, Continue, and DeepSeek Harness.
|
||||
</p>
|
||||
<div class="hero-actions">
|
||||
<a class="button button--primary" href="#download">Download now</a>
|
||||
@@ -290,11 +289,11 @@
|
||||
<div class="section-inner">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="kicker">Unified Agent Runtime</p>
|
||||
<h2 id="features-title">Different tools, one workflow</h2>
|
||||
<p class="kicker">Agent Runtime</p>
|
||||
<h2 id="features-title">Agent Runtimes in one desktop interface</h2>
|
||||
</div>
|
||||
<p>
|
||||
Bring Runtime selection, model connections, Skills, MCP, and permissions into one desktop interface.
|
||||
Configure Runtime selection, model connections, Skills, MCP, and work modes on the desktop.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -334,8 +333,8 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">03</span>
|
||||
<h3>Lower setup overhead</h3>
|
||||
<p>Select the Runtime, model, work mode, and project in a graphical interface instead of memorizing commands.</p>
|
||||
<h3>Runtime setup in the desktop app</h3>
|
||||
<p>Select the Runtime, model, work mode, and project in the desktop interface.</p>
|
||||
</article>
|
||||
|
||||
<article class="feature-card">
|
||||
@@ -346,7 +345,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">04</span>
|
||||
<h3>Shared capabilities, preserved boundaries</h3>
|
||||
<h3>Runtime-specific capabilities and work modes</h3>
|
||||
<p>Skills, MCP, and tools follow each Runtime. Ask stays read-only, while Execute remains approval-controlled and auditable.</p>
|
||||
<div class="mode-row" aria-label="Two work modes">
|
||||
<span>Ask <small>Read-only</small></span>
|
||||
@@ -374,7 +373,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">06</span>
|
||||
<h3>Trace every run from action to result</h3>
|
||||
<h3>Run history and token usage</h3>
|
||||
<p>Review tool calls, cancellation, timeouts, token usage, and run history in one place.</p>
|
||||
</article>
|
||||
</div>
|
||||
@@ -433,7 +432,7 @@
|
||||
</span>
|
||||
<span>GoodBuddy</span>
|
||||
</a>
|
||||
<p>No account required. One AI assistant for everything.</p>
|
||||
<p>Open-source desktop AI assistant. No account required.</p>
|
||||
<div class="footer-links">
|
||||
<a href="#download">Download</a>
|
||||
<a href="#features">Agent Runtime</a>
|
||||
|
||||
+15
-16
@@ -5,14 +5,14 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta
|
||||
name="description"
|
||||
content="GoodBuddy 是首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品,也是免注册、支持信创软硬件的一站式 AI 助手。"
|
||||
content="GoodBuddy 是免注册的开源桌面 AI 助手,支持 Windows、macOS、Linux、国产 x64/ARM64 和龙芯 LoongArch 实验预览版。"
|
||||
/>
|
||||
<link rel="canonical" href="https://mesalogo.github.io/goodbuddy/" />
|
||||
<link rel="alternate" hreflang="zh-CN" href="https://mesalogo.github.io/goodbuddy/" />
|
||||
<link rel="alternate" hreflang="en" href="https://mesalogo.github.io/goodbuddy/en.html" />
|
||||
<link rel="alternate" hreflang="x-default" href="https://mesalogo.github.io/goodbuddy/en.html" />
|
||||
<meta name="theme-color" content="#f6f8fb" />
|
||||
<title>GoodBuddy|首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品</title>
|
||||
<title>GoodBuddy|免注册的跨平台开源桌面 AI 助手</title>
|
||||
<link
|
||||
rel="icon"
|
||||
href="./assets/goodbuddy-light.png"
|
||||
@@ -121,13 +121,12 @@
|
||||
<h1 id="hero-title">
|
||||
免注册,<br />
|
||||
支持信创软硬件的<br />
|
||||
<span>一站式 AI 助手。</span>
|
||||
<span>桌面 AI 助手。</span>
|
||||
</h1>
|
||||
<p class="hero-lead">
|
||||
GoodBuddy 是首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品。作为桌面助手与
|
||||
AI 编程工具台,GoodBuddy 管理对话、知识、笔记与任务,
|
||||
也通过独创的统一 Agent Runtime 接入直连模型、OpenCode、Continue 和 DeepSeek Harness。
|
||||
无需反复配置命令行,选择工具和项目即可开始。
|
||||
GoodBuddy 提供模型对话、AI 编程、知识库、笔记和任务管理。
|
||||
Agent Runtime 可连接直连模型、OpenCode、Continue 和 DeepSeek Harness;
|
||||
选择项目和 Runtime 后即可开始。
|
||||
</p>
|
||||
<div class="hero-actions">
|
||||
<a class="button button--primary" href="#download">立即下载</a>
|
||||
@@ -350,7 +349,7 @@
|
||||
<aside class="domestic-support" aria-labelledby="domestic-support-title">
|
||||
<div>
|
||||
<p class="kicker">信创软硬件支持</p>
|
||||
<h3 id="domestic-support-title">首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品</h3>
|
||||
<h3 id="domestic-support-title">桌面版本覆盖国产 x64、ARM64 和龙芯 LoongArch</h3>
|
||||
<p>
|
||||
正式下载覆盖国产 x64 与 ARM64;龙芯 LoongArch 使用独立编译的
|
||||
loong64 预览版。
|
||||
@@ -376,11 +375,11 @@
|
||||
<div class="section-inner">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="kicker">独创 Agent Runtime</p>
|
||||
<h2 id="features-title">不同工具,同一种使用方式</h2>
|
||||
<p class="kicker">Agent Runtime</p>
|
||||
<h2 id="features-title">在一个界面中选择和配置 Runtime</h2>
|
||||
</div>
|
||||
<p>
|
||||
把 Runtime 选择、模型连接、Skills、MCP 和权限控制集中到桌面界面。
|
||||
Runtime、模型连接、Skills、MCP 和工作模式均可在桌面界面中配置。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -420,7 +419,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">03</span>
|
||||
<h3>更低的入门门槛</h3>
|
||||
<h3>图形化 Runtime 配置</h3>
|
||||
<p>在图形界面中选择 Runtime、模型、工作模式和项目,不用先记住复杂命令。</p>
|
||||
</article>
|
||||
|
||||
@@ -432,7 +431,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">04</span>
|
||||
<h3>能力统一,边界不打折</h3>
|
||||
<h3>按 Runtime 分配能力与工作模式</h3>
|
||||
<p>Skills、MCP 和工具按 Runtime 分配;Ask 保持只读,Execute 继续经过审批和审计。</p>
|
||||
<div class="mode-row" aria-label="两种工作模式">
|
||||
<span>Ask <small>只读</small></span>
|
||||
@@ -460,8 +459,8 @@
|
||||
</svg>
|
||||
</div>
|
||||
<span class="feature-number">06</span>
|
||||
<h3>从运行到结果,全程可追踪</h3>
|
||||
<p>统一查看工具调用、取消、超时、Token 用量和运行记录,知道 Runtime 做了什么。</p>
|
||||
<h3>运行记录与 Token 用量</h3>
|
||||
<p>查看工具调用、取消、超时、Token 用量和历史记录。</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
@@ -522,7 +521,7 @@
|
||||
</span>
|
||||
<span>GoodBuddy</span>
|
||||
</a>
|
||||
<p>首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品</p>
|
||||
<p>免注册的跨平台开源桌面 AI 助手</p>
|
||||
<div class="footer-links">
|
||||
<a href="#download">下载</a>
|
||||
<a href="#features">Agent Runtime</a>
|
||||
|
||||
@@ -249,18 +249,18 @@ for (const breakpoint of ["1199px", "959px", "719px"]) {
|
||||
|
||||
const requiredCopy = [
|
||||
"免注册",
|
||||
"支持信创软硬件的一站式 AI 助手",
|
||||
"首个全面覆盖国产化 CPU 架构的开源桌面 AI 助理产品",
|
||||
"支持信创软硬件的",
|
||||
"桌面版本覆盖国产 x64、ARM64 和龙芯 LoongArch",
|
||||
"龙芯 LoongArch 独立编译预览版",
|
||||
"龙芯 LoongArch(实验预览)",
|
||||
"桌面助手",
|
||||
"AI 编程工具台",
|
||||
"AI 编程",
|
||||
"Windows、macOS、Linux",
|
||||
"统信 UOS",
|
||||
"银河麒麟",
|
||||
"海光 · 兆芯(x64)",
|
||||
"鲲鹏 · 飞腾(ARM64)",
|
||||
"独创的统一 Agent Runtime",
|
||||
"Agent Runtime 可连接",
|
||||
"直连模型、OpenCode、Continue",
|
||||
"DeepSeek Harness",
|
||||
"魔法笔记",
|
||||
@@ -275,10 +275,10 @@ for (const copy of requiredCopy) {
|
||||
|
||||
const requiredEnglishCopy = [
|
||||
"No account required.",
|
||||
"Your all-in-one",
|
||||
"AI assistant.",
|
||||
"Model chat and coding agents",
|
||||
"on your desktop.",
|
||||
"Windows, macOS, and Linux",
|
||||
"Unified Agent Runtime",
|
||||
"Agent Runtimes in one desktop interface",
|
||||
"Direct models",
|
||||
"OpenCode",
|
||||
"Continue",
|
||||
|
||||
@@ -10048,7 +10048,7 @@ describe('App', () => {
|
||||
await screen.findByRole('heading', { name: '智能心跳' })
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
await screen.findByRole('tab', { name: '成长概览' })
|
||||
await screen.findByRole('tab', { name: '运行概览' })
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
screen.getByRole('button', { name: '配置智能心跳' })
|
||||
|
||||
@@ -28,7 +28,7 @@ const config: AssistantHeartbeatConfig = {
|
||||
kind: 'projects',
|
||||
projectIds: ['00000000-0000-4000-8000-000000000101']
|
||||
},
|
||||
name: '智能成长回顾',
|
||||
name: '定期回顾',
|
||||
timezone: 'Asia/Shanghai',
|
||||
recurrence: {
|
||||
type: 'daily',
|
||||
@@ -202,7 +202,7 @@ describe('HeartbeatCenter', () => {
|
||||
expect(screen.getByLabelText('Default project')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('shows heartbeat health, growth dimensions, and the latest report', () => {
|
||||
it('shows heartbeat health, run metrics, and the latest report', () => {
|
||||
render(<HeartbeatCenter {...createProps()} />)
|
||||
|
||||
expect(
|
||||
@@ -218,9 +218,9 @@ describe('HeartbeatCenter', () => {
|
||||
screen.getByText('本次心跳发现用户偏好简洁回复,并建议整理交付计划。')
|
||||
).toBeInTheDocument()
|
||||
|
||||
const dimensions = screen.getByLabelText('智能心跳成长维度')
|
||||
const dimensions = screen.getByLabelText('智能心跳运行统计')
|
||||
expect(
|
||||
within(dimensions).getByText('记忆沉淀')
|
||||
within(dimensions).getByText('记忆确认')
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
within(dimensions).getByText('行动转化')
|
||||
@@ -292,7 +292,7 @@ describe('HeartbeatCenter', () => {
|
||||
screen.getByRole('heading', { level: 2, name: '当前状态' })
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
screen.getByRole('heading', { level: 2, name: '成长趋势' })
|
||||
screen.getByRole('heading', { level: 2, name: '报告趋势' })
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
screen.getByRole('heading', { level: 2, name: '本次心跳' })
|
||||
@@ -311,9 +311,9 @@ describe('HeartbeatCenter', () => {
|
||||
expect(screen.queryByText('MEMORY GROWTH')).not.toBeInTheDocument()
|
||||
expect(screen.queryByText('NEXT ACTIONS')).not.toBeInTheDocument()
|
||||
|
||||
fireEvent.click(screen.getByRole('tab', { name: '心跳轨迹' }))
|
||||
fireEvent.click(screen.getByRole('tab', { name: '报告与记录' }))
|
||||
expect(
|
||||
screen.getByRole('heading', { level: 2, name: '成长轨迹' })
|
||||
screen.getByRole('heading', { level: 2, name: '心跳报告' })
|
||||
).toBeInTheDocument()
|
||||
expect(
|
||||
screen.getByRole('heading', { level: 2, name: '运行记录' })
|
||||
@@ -399,7 +399,7 @@ describe('HeartbeatCenter', () => {
|
||||
)
|
||||
await waitFor(() => expect(onRefresh).toHaveBeenCalledOnce())
|
||||
|
||||
fireEvent.click(screen.getByRole('tab', { name: '心跳轨迹' }))
|
||||
fireEvent.click(screen.getByRole('tab', { name: '报告与记录' }))
|
||||
expect(screen.getByText('模型暂时不可用')).toBeInTheDocument()
|
||||
fireEvent.click(
|
||||
screen.getByRole('button', { name: '展开完整报告' })
|
||||
|
||||
@@ -241,9 +241,10 @@ export const app = {
|
||||
prompt: 'Analyze this error and suggest likely causes and troubleshooting steps:\n'
|
||||
},
|
||||
write: {
|
||||
title: 'Draft work content',
|
||||
description: 'Draft an email, update, or proposal',
|
||||
prompt: 'Help me draft clear, professional work content:\n'
|
||||
title: 'Draft an email or update',
|
||||
description: 'Use the notes below for an email, update, or proposal',
|
||||
prompt:
|
||||
'Draft an email, update, or proposal from the following notes. Preserve the facts and relevant details:\n'
|
||||
}
|
||||
},
|
||||
remote: {
|
||||
|
||||
@@ -24,25 +24,25 @@ export const heartbeat = {
|
||||
retry: 'Retry'
|
||||
},
|
||||
loading: {
|
||||
description: 'Loading heartbeat plans, runs, and growth reports.',
|
||||
description: 'Loading heartbeat plans, runs, and reports.',
|
||||
title: 'Loading Smart Heartbeat',
|
||||
failedTitle: 'Could not load Smart Heartbeat',
|
||||
refreshFailedTitle: 'Could not refresh Smart Heartbeat'
|
||||
},
|
||||
tabs: {
|
||||
ariaLabel: 'Smart Heartbeat views',
|
||||
overview: 'Growth overview',
|
||||
overview: 'Run overview',
|
||||
suggestions: 'Pending suggestions',
|
||||
history: 'Heartbeat history',
|
||||
history: 'Reports and runs',
|
||||
plans: 'Heartbeat plans'
|
||||
},
|
||||
currentStatus: {
|
||||
title: 'Current status',
|
||||
activePlans: 'Active plans: {{formattedCount}}',
|
||||
disabled: 'Not enabled',
|
||||
emptyTitle: 'No growth cadence yet',
|
||||
emptyTitle: 'No heartbeat plan',
|
||||
emptyDescription:
|
||||
'Create a daily or weekly heartbeat so GoodBuddy can keep reviewing and learning.',
|
||||
'Create a daily or weekly plan to review conversations and tasks in the selected scope and generate suggestions.',
|
||||
createPlan: 'Create heartbeat plan'
|
||||
},
|
||||
recurrence: {
|
||||
@@ -67,14 +67,14 @@ export const heartbeat = {
|
||||
resume: 'Resume'
|
||||
},
|
||||
metrics: {
|
||||
ariaLabel: 'Smart Heartbeat growth metrics',
|
||||
ariaLabel: 'Smart Heartbeat run metrics',
|
||||
health: 'Heartbeat health',
|
||||
successfulRuns: '{{completed}}/{{total}} completed successfully',
|
||||
healthRateAriaLabel: 'Heartbeat success rate {{percent}}',
|
||||
memory: 'Memory retention',
|
||||
memory: 'Memory confirmation',
|
||||
memoryDescription: 'Confirmed memories / heartbeat suggestions',
|
||||
memoryRateAriaLabel: 'Memory confirmation rate {{percent}}',
|
||||
insights: 'Insights found',
|
||||
insights: 'Report insights',
|
||||
insightReports: 'Heartbeat reports: {{formattedCount}}',
|
||||
latestInsights: 'Latest report findings: {{formattedCount}}',
|
||||
awaitingFirstRun: 'Waiting for the first heartbeat',
|
||||
@@ -83,9 +83,9 @@ export const heartbeat = {
|
||||
actionRateAriaLabel: 'Suggested task completion rate {{percent}}'
|
||||
},
|
||||
trend: {
|
||||
title: 'Growth trend',
|
||||
title: 'Report trend',
|
||||
empty:
|
||||
'After a heartbeat completes, changes in insights, memories, and suggested actions will appear here.',
|
||||
'After a heartbeat runs, this chart shows changes in insight, memory, and action suggestion counts.',
|
||||
insight: 'Insights',
|
||||
memory: 'Memories',
|
||||
action: 'Actions',
|
||||
@@ -94,10 +94,10 @@ export const heartbeat = {
|
||||
},
|
||||
latest: {
|
||||
title: 'Latest heartbeat',
|
||||
viewHistory: 'View heartbeat history',
|
||||
viewHistory: 'View reports and runs',
|
||||
handleSuggestions: 'Review suggestions ({{formattedCount}})',
|
||||
empty:
|
||||
'There are no heartbeat reports yet. Run a heartbeat to see what GoodBuddy learned.'
|
||||
'There are no heartbeat reports yet. Run one to view insight, memory, and action suggestions.'
|
||||
},
|
||||
suggestions: {
|
||||
memoryTitle: 'Memories to confirm',
|
||||
@@ -117,10 +117,10 @@ export const heartbeat = {
|
||||
ignoreSuggestion: 'Ignore suggestion'
|
||||
},
|
||||
history: {
|
||||
timelineTitle: 'Growth history',
|
||||
timelineTitle: 'Heartbeat reports',
|
||||
reportCount: 'Reports: {{formattedCount}}',
|
||||
emptyTimeline:
|
||||
'Each completed heartbeat and what it learned will appear here.',
|
||||
'Reports from completed heartbeat runs appear here.',
|
||||
reportSummary:
|
||||
'{{insights}} insights · {{memories}} memories · {{actions}} actions',
|
||||
collapseReport: 'Collapse report',
|
||||
@@ -204,7 +204,7 @@ export const heartbeat = {
|
||||
enableAriaLabel: 'Enable Smart Heartbeat',
|
||||
enabling: 'Enabling…',
|
||||
enable: 'Enable Smart Heartbeat',
|
||||
defaultName: 'Smart growth review',
|
||||
defaultName: 'Scheduled review',
|
||||
empty: 'Smart Heartbeat is not configured for this scope.',
|
||||
running: 'Running',
|
||||
paused: 'Paused',
|
||||
|
||||
@@ -228,9 +228,9 @@ export const app = {
|
||||
prompt: '请分析下面的错误信息,给出可能原因和排查步骤:\n'
|
||||
},
|
||||
write: {
|
||||
title: '编写工作内容',
|
||||
description: '起草邮件、周报或方案',
|
||||
prompt: '请帮我起草一份清晰、专业的工作内容:\n'
|
||||
title: '起草邮件或周报',
|
||||
description: '根据输入信息整理邮件、周报或方案',
|
||||
prompt: '请根据下面的信息起草邮件、周报或方案;保留事实和必要细节:\n'
|
||||
}
|
||||
},
|
||||
remote: {
|
||||
|
||||
@@ -20,25 +20,25 @@ export const heartbeat = {
|
||||
retry: '重试'
|
||||
},
|
||||
loading: {
|
||||
description: '正在读取心跳计划、运行记录和成长报告。',
|
||||
description: '正在读取心跳计划、运行记录和心跳报告。',
|
||||
title: '正在加载智能心跳',
|
||||
failedTitle: '智能心跳加载失败',
|
||||
refreshFailedTitle: '智能心跳刷新失败'
|
||||
},
|
||||
tabs: {
|
||||
ariaLabel: '智能心跳视图',
|
||||
overview: '成长概览',
|
||||
overview: '运行概览',
|
||||
suggestions: '待处理建议',
|
||||
history: '心跳轨迹',
|
||||
history: '报告与记录',
|
||||
plans: '心跳计划'
|
||||
},
|
||||
currentStatus: {
|
||||
title: '当前状态',
|
||||
activePlans: '{{formattedCount}} 个计划运行中',
|
||||
disabled: '尚未启用',
|
||||
emptyTitle: '尚未建立成长节奏',
|
||||
emptyTitle: '尚未配置心跳计划',
|
||||
emptyDescription:
|
||||
'配置每日或每周心跳,让 GoodBuddy 持续回顾和学习。',
|
||||
'创建每日或每周计划,GoodBuddy 将按范围回顾对话和任务并生成建议。',
|
||||
createPlan: '创建心跳计划'
|
||||
},
|
||||
recurrence: {
|
||||
@@ -63,14 +63,14 @@ export const heartbeat = {
|
||||
resume: '恢复'
|
||||
},
|
||||
metrics: {
|
||||
ariaLabel: '智能心跳成长维度',
|
||||
ariaLabel: '智能心跳运行统计',
|
||||
health: '心跳健康',
|
||||
successfulRuns: '{{completed}}/{{total}} 次成功完成',
|
||||
healthRateAriaLabel: '心跳成功率 {{percent}}',
|
||||
memory: '记忆沉淀',
|
||||
memory: '记忆确认',
|
||||
memoryDescription: '已确认记忆 / 心跳建议',
|
||||
memoryRateAriaLabel: '记忆确认率 {{percent}}',
|
||||
insights: '洞察发现',
|
||||
insights: '报告洞察',
|
||||
insightReports: '来自 {{formattedCount}} 份心跳报告',
|
||||
latestInsights: '最近一次发现 {{formattedCount}} 条',
|
||||
awaitingFirstRun: '等待首次心跳',
|
||||
@@ -79,9 +79,9 @@ export const heartbeat = {
|
||||
actionRateAriaLabel: '建议任务完成率 {{percent}}'
|
||||
},
|
||||
trend: {
|
||||
title: '成长趋势',
|
||||
title: '报告趋势',
|
||||
empty:
|
||||
'完成心跳后,这里会显示洞察、记忆与行动建议的变化。',
|
||||
'运行心跳后,这里会显示洞察、记忆和行动建议的数量变化。',
|
||||
insight: '洞察',
|
||||
memory: '记忆',
|
||||
action: '行动',
|
||||
@@ -90,10 +90,10 @@ export const heartbeat = {
|
||||
},
|
||||
latest: {
|
||||
title: '本次心跳',
|
||||
viewHistory: '查看心跳轨迹',
|
||||
viewHistory: '查看报告与记录',
|
||||
handleSuggestions: '处理 {{formattedCount}} 条建议',
|
||||
empty:
|
||||
'尚无心跳报告。运行一次心跳后,你会在这里看到本次学到了什么。'
|
||||
'尚无心跳报告。运行一次后,可在这里查看洞察、记忆和行动建议。'
|
||||
},
|
||||
suggestions: {
|
||||
memoryTitle: '待确认记忆',
|
||||
@@ -113,9 +113,9 @@ export const heartbeat = {
|
||||
ignoreSuggestion: '忽略建议'
|
||||
},
|
||||
history: {
|
||||
timelineTitle: '成长轨迹',
|
||||
timelineTitle: '心跳报告',
|
||||
reportCount: '{{formattedCount}} 份报告',
|
||||
emptyTimeline: '完成心跳后,每次学习和变化都会沉淀在这里。',
|
||||
emptyTimeline: '每次运行生成的心跳报告会显示在这里。',
|
||||
reportSummary:
|
||||
'{{insights}} 条洞察 · {{memories}} 条记忆 · {{actions}} 个行动',
|
||||
collapseReport: '收起报告',
|
||||
@@ -197,7 +197,7 @@ export const heartbeat = {
|
||||
enableAriaLabel: '启用智能心跳',
|
||||
enabling: '启用中…',
|
||||
enable: '启用智能心跳',
|
||||
defaultName: '智能成长回顾',
|
||||
defaultName: '定期回顾',
|
||||
empty: '当前范围尚未配置智能心跳。',
|
||||
running: '运行中',
|
||||
paused: '已暂停',
|
||||
|
||||
Reference in New Issue
Block a user