From ea89a37b1d03eaef744c17acea103296ed541fa7 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Fri, 25 Apr 2025 17:47:21 +0800 Subject: [PATCH] feat: update licensing terms and UI components - Revised the licensing agreement to introduce a User-Segmented Dual Licensing model, detailing conditions for individual and organizational use. - Enhanced UI components to display a specific empty state image in various popups and pages. - Adjusted styles in MiniAppIconsManager and MiniAppSettings for improved layout and appearance. - Updated default web search provider to 'local-bing' and modified font size in ProviderOAuth description for better readability. - Changed window style setting from 'transparent' to 'opaque' for a more consistent user experience. --- resources/cherry-studio/license.html | 214 +++++++++++++----- .../src/components/Popups/MinAppsPopover.tsx | 2 +- src/renderer/src/pages/files/FilesPage.tsx | 2 +- .../history/components/TopicMessages.tsx | 2 +- .../src/pages/home/Markdown/Mermaid.tsx | 1 + .../settings/MCPSettings/McpDescription.tsx | 18 +- .../MiniappSettings/MiniAppIconsManager.tsx | 2 +- .../MiniappSettings/MiniAppSettings.tsx | 2 +- .../ProviderSettings/ProviderOAuth.tsx | 2 +- src/renderer/src/store/settings.ts | 2 +- src/renderer/src/store/websearch.ts | 2 +- 11 files changed, 170 insertions(+), 79 deletions(-) diff --git a/resources/cherry-studio/license.html b/resources/cherry-studio/license.html index 74003d87f..a5415c807 100644 --- a/resources/cherry-studio/license.html +++ b/resources/cherry-studio/license.html @@ -14,35 +14,76 @@

许可协议

-

采用 Apache License 2.0 修改版许可,并附加以下条件:

+

本项目采用区分用户的双重许可 (User-Segmented Dual Licensing) 模式。

-

一. 商用许可

-

在以下任何一种情况下,您需要联系我们并获得明确的书面商业授权后,方可继续使用 Cherry Studio 材料:

-
    -
  1. 修改与衍生: 您对 Cherry Studio 材料进行修改或基于其进行衍生开发(包括但不限于修改应用名称、Logo、代码、功能、界面,数据等)。
  2. -
  3. 企业服务: 在您的企业内部,或为企业客户提供基于 Cherry Studio 的服务,且该服务支持 10 人及以上累计用户使用。
  4. -
  5. 硬件捆绑销售: 您将 Cherry Studio 预装或集成到硬件设备或产品中进行捆绑销售。
  6. -
  7. 政府或教育机构大规模采购: 您的使用场景属于政府或教育机构的大规模采购项目,特别是涉及安全、数据隐私等敏感需求时。
  8. -
  9. 面向公众的公有云服务:基于 Cherry Studio,提供面向公众的公有云服务。
  10. -
+

核心原则

+
    +
  • 个人用户 和 10人及以下企业/组织: 默认适用 GNU Affero 通用公共许可证 v3.0 (AGPLv3)
  • +
  • 超过10人的企业/组织: 必须 获取 商业许可证 (Commercial License)
  • +
-

二. 贡献者协议

-

作为 Cherry Studio 的贡献者,您应当同意以下条款:

-
    -
  1. 许可调整:生产者有权根据需要对开源协议进行调整,使其更加严格或宽松。
  2. -
  3. 商业用途:您贡献的代码可能会被用于商业用途,包括但不限于云业务运营。
  4. -
+

定义:"10人及以下"

+

+ 指在您的组织(包括公司、非营利组织、政府机构、教育机构等任何实体)中,能够访问、使用或以任何方式直接或间接受益于本软件(Cherry + Studio)功能的个人总数不超过10人。这包括但不限于开发者、测试人员、运营人员、最终用户、通过集成系统间接使用者等。 +

-

三. 其他条款

-
    -
  1. 本协议条款的解释权归 Cherry Studio 开发者所有。
  2. -
  3. 本协议可能根据实际情况进行更新,更新时将通过本软件通知用户。
  4. -
+

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 的所有条款。
  • +
+
+ +
+

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)

+
    +
  • 关于商业许可证的具体条款和条件,以双方签署的正式商业许可协议为准。
  • +
  • 项目维护者保留根据需要更新本许可政策(包括用户规模定义和阈值)的权利。相关更新将通过项目官方渠道(如代码仓库、官方网站)进行通知。
  • +
@@ -50,58 +91,107 @@
-

License Agreement

+

Licensing

-

This software is licensed under a modified version of the Apache License 2.0, with - the following additional conditions.

+

This project employs a User-Segmented Dual Licensing model.

-

I. Commercial Licensing

-

You must contact us and obtain explicit written commercial authorization to - continue using Cherry Studio materials under any of the following circumstances:

-
    -
  1. Modifications and Derivatives: You modify Cherry Studio materials or perform derivative - development based on them (including but not limited to changing the application's name, logo, code, - functionality, user interface, data, etc.).
  2. -
  3. Enterprise Services: You use Cherry Studio internally within your enterprise, or you - provide Cherry Studio-based services for enterprise customers, and such services support cumulative usage by - 10 or more users.
  4. -
  5. Hardware Bundling and Sales: You pre-install or integrate Cherry Studio into hardware - devices or products for bundled sale.
  6. -
  7. Large-scale Procurement by Government or Educational Institutions: Your usage scenario - involves large-scale procurement projects by government or educational institutions, especially in cases - involving sensitive requirements such as security and data privacy.
  8. -
  9. Public Cloud Services: You provide public cloud-based product services utilizing Cherry +

    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.
  • +
-

II. Contributor Agreement

-

As a contributor to Cherry Studio, you must agree to the following terms:

-
    -
  1. License Adjustments: The producer reserves the right to adjust the open-source license as - necessary, making it more strict or permissive.
  2. -
  3. Commercial Usage: Your contributed code may be used commercially, including but not - limited to cloud business operations.
  4. -
+

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.
  • +
-

III. Other Terms

-
    -
  1. Cherry Studio developers reserve the right of final interpretation of these agreement terms.
  2. -
  3. This agreement may be updated according to practical circumstances, and users will be notified of updates - through this software.
  4. -
+

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).
  • +
- -

- Other than these specific conditions, all remaining rights and restrictions follow the Apache License 2.0. For - more detailed information regarding Apache License 2.0, please visit - http://www.apache.org/licenses/LICENSE-2.0. -

diff --git a/src/renderer/src/components/Popups/MinAppsPopover.tsx b/src/renderer/src/components/Popups/MinAppsPopover.tsx index 78e70093c..28a9621bc 100644 --- a/src/renderer/src/components/Popups/MinAppsPopover.tsx +++ b/src/renderer/src/components/Popups/MinAppsPopover.tsx @@ -48,7 +48,7 @@ const MinAppsPopover: FC = ({ children }) => { ))} {isEmpty(minapps) && (
- +
)} diff --git a/src/renderer/src/pages/files/FilesPage.tsx b/src/renderer/src/pages/files/FilesPage.tsx index 49cfb4425..e78f693ba 100644 --- a/src/renderer/src/pages/files/FilesPage.tsx +++ b/src/renderer/src/pages/files/FilesPage.tsx @@ -183,7 +183,7 @@ const FilesPage: FC = () => { {dataSource && dataSource?.length > 0 ? ( ) : ( - + )} diff --git a/src/renderer/src/pages/history/components/TopicMessages.tsx b/src/renderer/src/pages/history/components/TopicMessages.tsx index d106e2454..6e8095037 100644 --- a/src/renderer/src/pages/history/components/TopicMessages.tsx +++ b/src/renderer/src/pages/history/components/TopicMessages.tsx @@ -54,7 +54,7 @@ const TopicMessages: FC = ({ topic, ...props }) => { ))} - {isEmpty && } + {isEmpty && } {!isEmpty && (