From c506ff68720680752c331e71f0bd8aabc15f4221 Mon Sep 17 00:00:00 2001 From: yyhhyyyyyy Date: Sat, 6 Sep 2025 09:28:50 +0800 Subject: [PATCH] ci: add format check to PR workflow and documentation (#9810) --- .github/workflows/pr-ci.yml | 3 + .prettierignore | 3 +- docs/technical/db.translate_languages.md | 8 +- package.json | 1 + resources/cherry-studio/license.html | 455 +++++++++++++---------- 5 files changed, 275 insertions(+), 195 deletions(-) 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 + +