diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml
index e3c30c2dd0..5e757573e6 100644
--- a/.github/workflows/pr-ci.yml
+++ b/.github/workflows/pr-ci.yml
@@ -45,6 +45,9 @@ jobs:
- name: Install Dependencies
run: yarn install
+ - name: Format Check
+ run: yarn format:check
+
- name: Lint Check
run: yarn test:lint
diff --git a/.prettierignore b/.prettierignore
index e6e3d34935..0e96c6c2fe 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -8,4 +8,5 @@ CHANGELOG*.md
agents.json
src/renderer/src/integration/nutstore/sso/lib
AGENT.md
-src/main/integration/cherryin/index.js
+src/main/integration/
+.yarn/releases/
diff --git a/docs/technical/db.translate_languages.md b/docs/technical/db.translate_languages.md
index bb295519d6..37231c89cd 100644
--- a/docs/technical/db.translate_languages.md
+++ b/docs/technical/db.translate_languages.md
@@ -8,9 +8,9 @@
| 字段名 | 类型 | 是否主键 | 索引 | 说明 |
| ---------- | ------ | -------- | ---- | ------------------------------------------------------------------------ |
-| `id` | string | ✅ 是 | ✅ | 唯一标识符,主键 |
-| `langCode` | string | ❌ 否 | ✅ | 语言代码(如:`zh-cn`, `en-us`, `ja-jp` 等,均为小写),支持普通索引查询 |
-| `value` | string | ❌ 否 | ❌ | 语言的名称,用户输入 |
-| `emoji` | string | ❌ 否 | ❌ | 语言的emoji,用户输入 |
+| `id` | string | ✅ 是 | ✅ | 唯一标识符,主键 |
+| `langCode` | string | ❌ 否 | ✅ | 语言代码(如:`zh-cn`, `en-us`, `ja-jp` 等,均为小写),支持普通索引查询 |
+| `value` | string | ❌ 否 | ❌ | 语言的名称,用户输入 |
+| `emoji` | string | ❌ 否 | ❌ | 语言的emoji,用户输入 |
> `langCode` 虽非主键,但在业务层应当避免重复插入相同语言代码。
diff --git a/package.json b/package.json
index d0d9c62de0..1d202a1922 100644
--- a/package.json
+++ b/package.json
@@ -66,6 +66,7 @@
"test:lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
"test:scripts": "vitest scripts",
"format": "prettier --write .",
+ "format:check": "prettier --check .",
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix && yarn typecheck && yarn check:i18n",
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && husky"
},
diff --git a/resources/cherry-studio/license.html b/resources/cherry-studio/license.html
index a5415c807c..ce3079a322 100644
--- a/resources/cherry-studio/license.html
+++ b/resources/cherry-studio/license.html
@@ -1,199 +1,274 @@
-
+
+
+
+
+ 许可协议 | License Agreement
+
+
-
-
-
- 许可协议 | License Agreement
-
-
+
+
+
+
+
许可协议
-
-
-
-
-
许可协议
-
-
本项目采用区分用户的双重许可 (User-Segmented Dual Licensing) 模式。
-
-
- 核心原则
-
- - 个人用户 和 10人及以下企业/组织: 默认适用 GNU Affero 通用公共许可证 v3.0 (AGPLv3)。
- - 超过10人的企业/组织: 必须 获取 商业许可证 (Commercial License)。
-
-
-
-
- 定义:"10人及以下"
-
- 指在您的组织(包括公司、非营利组织、政府机构、教育机构等任何实体)中,能够访问、使用或以任何方式直接或间接受益于本软件(Cherry
- Studio)功能的个人总数不超过10人。这包括但不限于开发者、测试人员、运营人员、最终用户、通过集成系统间接使用者等。
+
+ 本项目采用区分用户的双重许可 (User-Segmented Dual Licensing) 模式。
-
-
- 1. 开源许可证 (Open Source License): AGPLv3 - 适用于个人及10人及以下组织
-
-
- - 如果您是个人用户,或者您的组织满足上述"10人及以下"的定义,您可以在 AGPLv3 的条款下自由使用、修改和分发 Cherry Studio。AGPLv3 的完整文本可以访问
- https://www.gnu.org/licenses/agpl-3.0.html 获取。
-
- - 核心义务: AGPLv3 的一个关键要求是,如果您修改了 Cherry Studio 并通过网络提供服务,或者分发了修改后的版本,您必须以 AGPLv3
- 许可证向接收者提供相应的完整源代码。即使您符合"10人及以下"的标准,如果您希望避免此源代码公开义务,您也需要考虑获取商业许可证(见下文)。
- - 使用前请务必仔细阅读并理解 AGPLv3 的所有条款。
-
-
+
+ 核心原则
+
+ -
+ 个人用户 和 10人及以下企业/组织: 默认适用
+ GNU Affero 通用公共许可证 v3.0 (AGPLv3)。
+
+ -
+ 超过10人的企业/组织: 必须 获取
+ 商业许可证 (Commercial License)。
+
+
+
-
- 2. 商业许可证 (Commercial License) - 适用于超过10人的组织,或希望规避 AGPLv3
- 义务的用户
-
- - 强制要求:
- 如果您的组织不满足上述"10人及以下"的定义(即有11人或更多人可以访问、使用或受益于本软件),您必须联系我们获取并签署一份商业许可证才能使用
- Cherry Studio。
- - 自愿选择: 即使您的组织满足"10人及以下"的条件,但如果您的使用场景无法满足 AGPLv3
- 的条款要求(特别是关于源代码公开的义务),或者您需要 AGPLv3 未提供的特定商业条款(如保证、赔偿、无 Copyleft
- 限制等),您也必须联系我们获取并签署一份商业许可证。
- - 需要商业许可证的常见情况包括(但不限于):
-
- - 您的组织规模超过10人。
- - (无论组织规模)您希望分发修改过的 Cherry Studio 版本,但不希望根据 AGPLv3 公开您修改部分的源代码。
- - (无论组织规模)您希望基于修改过的 Cherry Studio 提供网络服务(SaaS),但不希望根据 AGPLv3 向服务使用者提供修改后的源代码。
- - (无论组织规模)您的公司政策、客户合同或项目要求不允许使用 AGPLv3 许可的软件,或要求闭源分发及保密。
-
-
- - 获取商业许可: 请通过邮箱 bd@cherry-ai.com 联系 Cherry Studio 开发团队洽谈商业授权事宜。
-
-
+
+ 定义:"10人及以下"
+
+ 指在您的组织(包括公司、非营利组织、政府机构、教育机构等任何实体)中,能够访问、使用或以任何方式直接或间接受益于本软件(Cherry
+ Studio)功能的个人总数不超过10人。这包括但不限于开发者、测试人员、运营人员、最终用户、通过集成系统间接使用者等。
+
+
-
- 3. 贡献 (Contributions)
-
- - 我们欢迎社区对 Cherry Studio 的贡献。所有向本项目提交的贡献都将被视为在 AGPLv3 许可证下提供。
- - 通过向本项目提交贡献(例如通过 Pull Request),即表示您同意您的代码以 AGPLv3 许可证授权给本项目及所有后续使用者(无论这些使用者最终遵循 AGPLv3 还是商业许可)。
- - 您也理解并同意,您的贡献可能会被包含在根据商业许可证分发的 Cherry Studio 版本中。
-
-
+
+
+ 1. 开源许可证 (Open Source License): AGPLv3 - 适用于个人及10人及以下组织
+
+
+ -
+ 如果您是个人用户,或者您的组织满足上述"10人及以下"的定义,您可以在
+ AGPLv3 的条款下自由使用、修改和分发 Cherry Studio。AGPLv3 的完整文本可以访问
+ https://www.gnu.org/licenses/agpl-3.0.html
+ 获取。
+
+ -
+ 核心义务: AGPLv3 的一个关键要求是,如果您修改了 Cherry Studio
+ 并通过网络提供服务,或者分发了修改后的版本,您必须以 AGPLv3
+ 许可证向接收者提供相应的完整源代码。即使您符合"10人及以下"的标准,如果您希望避免此源代码公开义务,您也需要考虑获取商业许可证(见下文)。
+
+ - 使用前请务必仔细阅读并理解 AGPLv3 的所有条款。
+
+
-
- 4. 其他条款 (Other Terms)
-
- - 关于商业许可证的具体条款和条件,以双方签署的正式商业许可协议为准。
- - 项目维护者保留根据需要更新本许可政策(包括用户规模定义和阈值)的权利。相关更新将通过项目官方渠道(如代码仓库、官方网站)进行通知。
-
-
+
+
+ 2. 商业许可证 (Commercial License) - 适用于超过10人的组织,或希望规避 AGPLv3 义务的用户
+
+
+ -
+ 强制要求:
+ 如果您的组织不满足上述"10人及以下"的定义(即有11人或更多人可以访问、使用或受益于本软件),您必须联系我们获取并签署一份商业许可证才能使用
+ Cherry Studio。
+
+ -
+ 自愿选择: 即使您的组织满足"10人及以下"的条件,但如果您的使用场景无法满足 AGPLv3 的条款要求(特别是关于源代码公开的义务),或者您需要 AGPLv3
+ 未提供的特定商业条款(如保证、赔偿、无 Copyleft
+ 限制等),您也必须联系我们获取并签署一份商业许可证。
+
+ -
+ 需要商业许可证的常见情况包括(但不限于):
+
+ - 您的组织规模超过10人。
+ -
+ (无论组织规模)您希望分发修改过的 Cherry Studio 版本,但不希望根据 AGPLv3
+ 公开您修改部分的源代码。
+
+ -
+ (无论组织规模)您希望基于修改过的 Cherry Studio 提供网络服务(SaaS),但不希望根据
+ AGPLv3 向服务使用者提供修改后的源代码。
+
+ -
+ (无论组织规模)您的公司政策、客户合同或项目要求不允许使用 AGPLv3 许可的软件,或要求闭源分发及保密。
+
+
+
+ -
+ 获取商业许可: 请通过邮箱
+ bd@cherry-ai.com 联系 Cherry
+ Studio 开发团队洽谈商业授权事宜。
+
+
+
+
+
+ 3. 贡献 (Contributions)
+
+ -
+ 我们欢迎社区对 Cherry Studio 的贡献。所有向本项目提交的贡献都将被视为在
+ AGPLv3 许可证下提供。
+
+ -
+ 通过向本项目提交贡献(例如通过 Pull Request),即表示您同意您的代码以 AGPLv3
+ 许可证授权给本项目及所有后续使用者(无论这些使用者最终遵循 AGPLv3 还是商业许可)。
+
+ - 您也理解并同意,您的贡献可能会被包含在根据商业许可证分发的 Cherry Studio 版本中。
+
+
+
+
+ 4. 其他条款 (Other Terms)
+
+ - 关于商业许可证的具体条款和条件,以双方签署的正式商业许可协议为准。
+ -
+ 项目维护者保留根据需要更新本许可政策(包括用户规模定义和阈值)的权利。相关更新将通过项目官方渠道(如代码仓库、官方网站)进行通知。
+
+
+
+
+
+
+
+
+
+
Licensing
+
+
This project employs a User-Segmented Dual Licensing model.
+
+
+ Core Principle
+
+ -
+ Individual Users and Organizations with 10 or Fewer Individuals: Governed by default
+ under the GNU Affero General Public License v3.0 (AGPLv3).
+
+ -
+ Organizations with More Than 10 Individuals: Must obtain a
+ Commercial License.
+
+
+
+
+
+ Definition: "10 or Fewer Individuals"
+
+ Refers to any organization (including companies, non-profits, government agencies, educational institutions,
+ etc.) where the total number of individuals who can access, use, or in any way directly or indirectly
+ benefit from the functionality of this software (Cherry Studio) does not exceed 10. This includes, but is
+ not limited to, developers, testers, operations staff, end-users, and indirect users via integrated systems.
+
+
+
+
+
+ 1. Open Source License: AGPLv3 - For Individuals and Organizations of 10 or Fewer
+
+
+ -
+ If you are an individual user, or if your organization meets the "10 or Fewer Individuals" definition
+ above, you are free to use, modify, and distribute Cherry Studio under the terms of the
+ AGPLv3. The full text of the AGPLv3 can be found at
+ https://www.gnu.org/licenses/agpl-3.0.html.
+
+ -
+ Core Obligation: A key requirement of the AGPLv3 is that if you modify Cherry Studio and
+ make it available over a network, or distribute the modified version, you must provide the
+ complete corresponding source code under the AGPLv3 license to the recipients. Even if
+ you qualify under the "10 or Fewer Individuals" rule, if you wish to avoid this source code disclosure
+ obligation, you will need to obtain a Commercial License (see below).
+
+ - Please read and understand the full terms of the AGPLv3 carefully before use.
+
+
+
+
+
+ 2. Commercial License - For Organizations with More Than 10 Individuals, or Users Needing to Avoid AGPLv3
+ Obligations
+
+
+ -
+ Mandatory Requirement: If your organization does not meet the "10 or
+ Fewer Individuals" definition above (i.e., 11 or more individuals can access, use, or benefit from the
+ software), you must contact us to obtain and execute a Commercial License to use Cherry
+ Studio.
+
+ -
+ Voluntary Option: Even if your organization meets the "10 or Fewer Individuals"
+ condition, if your intended use case
+ cannot comply with the terms of the AGPLv3 (particularly the obligations regarding
+ source code disclosure), or if you require specific commercial terms
+ not offered by the AGPLv3 (such as warranties, indemnities, or freedom from copyleft
+ restrictions), you also must contact us to obtain and execute a Commercial License.
+
+ -
+ Common scenarios requiring a Commercial License include (but are not limited to):
+
+ -
+ Your organization has more than 10 individuals who can access, use, or benefit from the software.
+
+ -
+ (Regardless of organization size) You wish to distribute a modified version of Cherry Studio but
+ do not want to disclose the source code of your modifications under AGPLv3.
+
+ -
+ (Regardless of organization size) You wish to provide a network service (SaaS) based on a modified
+ version of Cherry Studio but do not want to provide the modified source code to users
+ of the service under AGPLv3.
+
+ -
+ (Regardless of organization size) Your corporate policies, client contracts, or project requirements
+ prohibit the use of AGPLv3-licensed software or mandate closed-source distribution and
+ confidentiality.
+
+
+
+ -
+ Obtaining a Commercial License: Please contact the Cherry Studio development team via
+ email at bd@cherry-ai.com to
+ discuss commercial licensing options.
+
+
+
+
+
+ 3. Contributions
+
+ -
+ We welcome community contributions to Cherry Studio. All contributions submitted to this project are
+ considered to be offered under the AGPLv3 license.
+
+ -
+ By submitting a contribution to this project (e.g., via a Pull Request), you agree to license your code
+ under the AGPLv3 to the project and all its downstream users (regardless of whether those users ultimately
+ operate under AGPLv3 or a Commercial License).
+
+ -
+ You also understand and agree that your contribution may be included in distributions of Cherry Studio
+ offered under our commercial license.
+
+
+
+
+
+ 4. Other Terms
+
+ -
+ The specific terms and conditions of the Commercial License are governed by the formal commercial license
+ agreement signed by both parties.
+
+ -
+ The project maintainers reserve the right to update this licensing policy (including the definition and
+ threshold for user count) as needed. Updates will be communicated through official project channels (e.g.,
+ code repository, official website).
+
+
+
+
-
-
-
-
-
-
Licensing
-
-
This project employs a User-Segmented Dual Licensing model.
-
-
- Core Principle
-
- - Individual Users and Organizations with 10 or Fewer Individuals: Governed by default
- under the GNU Affero General Public License v3.0 (AGPLv3).
- - Organizations with More Than 10 Individuals: Must obtain a
- Commercial License.
-
-
-
-
-
- Definition: "10 or Fewer Individuals"
-
- Refers to any organization (including companies, non-profits, government agencies, educational institutions,
- etc.) where the total number of individuals who can access, use, or in any way directly or indirectly benefit
- from the functionality of this software (Cherry Studio) does not exceed 10. This includes, but is not limited
- to, developers, testers, operations staff, end-users, and indirect users via integrated systems.
-
-
-
-
- 1. Open Source License: AGPLv3 - For Individuals and
- Organizations of 10 or Fewer
-
- - If you are an individual user, or if your organization meets the "10 or Fewer Individuals" definition
- above, you are free to use, modify, and distribute Cherry Studio under the terms of the
- AGPLv3. The full text of the AGPLv3 can be found at https://www.gnu.org/licenses/agpl-3.0.html.
-
- - Core Obligation: A key requirement of the AGPLv3 is that if you modify Cherry Studio and
- make it available over a network, or distribute the modified version, you must provide the complete
- corresponding source code under the AGPLv3 license to the recipients. Even if you qualify under
- the "10 or Fewer Individuals" rule, if you wish to avoid this source code disclosure obligation, you will
- need to obtain a Commercial License (see below).
- - Please read and understand the full terms of the AGPLv3 carefully before use.
-
-
-
-
- 2. Commercial License - For Organizations with More Than 10
- Individuals, or Users Needing to Avoid AGPLv3 Obligations
-
- - Mandatory Requirement: If your organization does not meet the "10 or
- Fewer Individuals" definition above (i.e., 11 or more individuals can access, use, or benefit from the
- software), you must contact us to obtain and execute a Commercial License to use Cherry
- Studio.
- - Voluntary Option: Even if your organization meets the "10 or Fewer Individuals"
- condition, if your intended use case cannot comply with the terms of the AGPLv3
- (particularly the obligations regarding source code disclosure), or if you require specific
- commercial terms not offered by the AGPLv3 (such as warranties, indemnities, or freedom
- from copyleft restrictions), you also must contact us to obtain and execute a Commercial
- License.
- - Common scenarios requiring a Commercial License include (but are not limited to):
-
- - Your organization has more than 10 individuals who can access, use, or benefit from the software.
- - (Regardless of organization size) You wish to distribute a modified version of Cherry Studio but
- do not want to disclose the source code of your modifications under AGPLv3.
-
- - (Regardless of organization size) You wish to provide a network service (SaaS) based on a modified
- version of Cherry Studio but do not want to provide the modified source code to users
- of the service under AGPLv3.
- - (Regardless of organization size) Your corporate policies, client contracts, or project requirements
- prohibit the use of AGPLv3-licensed software or mandate closed-source distribution and confidentiality.
-
-
-
- - Obtaining a Commercial License: Please contact the Cherry Studio development team via
- email at bd@cherry-ai.com to
- discuss commercial licensing options.
-
-
-
-
- 3. Contributions
-
- - We welcome community contributions to Cherry Studio. All contributions submitted to this project are
- considered to be offered under the AGPLv3 license.
- - By submitting a contribution to this project (e.g., via a Pull Request), you agree to license your code
- under the AGPLv3 to the project and all its downstream users (regardless of whether those users ultimately
- operate under AGPLv3 or a Commercial License).
- - You also understand and agree that your contribution may be included in distributions of Cherry Studio
- offered under our commercial license.
-
-
-
-
- 4. Other Terms
-
- - The specific terms and conditions of the Commercial License are governed by the formal commercial license
- agreement signed by both parties.
- - The project maintainers reserve the right to update this licensing policy (including the definition and
- threshold for user count) as needed. Updates will be communicated through official project channels (e.g.,
- code repository, official website).
-
-
-
-
-
-
-
\ No newline at end of file
+
+