@eduwork/dsh-oidc 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.en.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.4 — Unreleased
4
+
5
+ - Support DSH 0.2.2-rc.2 and the qualified 0.2.2 prerelease API family while retaining previously supported hosts.
6
+
7
+ ## 0.3.3 — Unreleased
8
+
9
+ - Accept qualified DSH 0.2.2-rc.1 and Cordis 4.1 peers, retaining existing behavior, configuration and supported older hosts.
10
+
3
11
  [简体中文](CHANGELOG.md) | **English**
4
12
 
5
13
  All notable changes are documented here. The format follows Keep a Changelog principles and the project uses Semantic Versioning with pre-1.0 qualifications described in `docs/compatibility.en.md`.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # 变更日志
2
2
 
3
+ ## 0.3.4 — Unreleased
4
+
5
+ - 兼容 DSH 0.2.2-rc.2;将已验证的 0.2.2 预发布 API 系列纳入有界兼容范围,保留原有受支持的宿主。
6
+ - Support DSH 0.2.2-rc.2 and the qualified 0.2.2 prerelease API family while retaining previously supported hosts.
7
+
8
+ ## 0.3.3 — Unreleased
9
+
10
+ - 兼容声明接纳已验证的 DSH 0.2.2-rc.1 与 Cordis 4.1;保留原有功能、配置及受支持的旧宿主范围。
11
+ - Accept qualified DSH 0.2.2-rc.1 and Cordis 4.1 peers, retaining existing behavior, configuration and supported older hosts.
12
+
3
13
  **简体中文** | [English](CHANGELOG.en.md)
4
14
 
5
15
  所有重要变更均记录于此。格式遵循 Keep a Changelog 原则;项目使用语义化版本,并遵循[兼容性与发布策略](docs/compatibility.md)中对 1.0 之前版本的说明。
@@ -53,4 +53,4 @@ Changes to OIDC, Key Binding, credentials, Profile validation, the native accoun
53
53
  - `lib/` is generated by `npm run build`; review the source and tarball, not only minified output.
54
54
  - Prefer protected tags and the approved Trusted Publishing workflow. Until that path is configured, the initial maintainer may publish the frozen, verified tarball with the npm CLI and browser 2FA, but must not claim provenance. Record provenance only after npm actually creates an attestation.
55
55
 
56
- By participating, contributors agree to follow [`CODE_OF_CONDUCT.en.md`](CODE_OF_CONDUCT.en.md) and certify that they have the right to submit their contribution under the MIT license.
56
+ By participating, contributors agree to follow [`CODE_OF_CONDUCT.en.md`](CODE_OF_CONDUCT.en.md) and certify that they are entitled to submit new original contributions under Mulan PSL v2; historical and third-party code retains its original grants. See [LICENSING.md](LICENSING.md).
package/CONTRIBUTING.md CHANGED
@@ -53,4 +53,4 @@ npm run check
53
53
  - `lib/` 由 `npm run build` 生成;审查源码和 tarball,而不只是压缩产物。
54
54
  - 优先通过受保护 tag 和批准的 Trusted Publishing 工作流发布。该流程尚未配置时,初始维护者可以用 npm CLI 和浏览器 2FA 发布已冻结并核验的 tarball,但不得声称 provenance;只有 npm 实际生成 attestation 后才能记录 provenance。
55
55
 
56
- 参与贡献即表示同意遵守[行为准则](CODE_OF_CONDUCT.md),并确认你有权按 MIT 许可证提交相关贡献。
56
+ 参与贡献即表示同意遵守[行为准则](CODE_OF_CONDUCT.md),并确认你有权按木兰宽松许可证第 2 版提交新增原创贡献;历史及第三方代码保留原授权,见 [LICENSING.md](LICENSING.md)。
package/GOVERNANCE.en.md CHANGED
@@ -38,4 +38,4 @@ The current roster is in [`MAINTAINERS.en.md`](MAINTAINERS.en.md). One maintaine
38
38
 
39
39
  ## Branding and neutrality
40
40
 
41
- The project may document ECNU as a reference implementation while keeping the protocol institution-neutral. Merging another organization's example does not imply endorsement. Trademarks and logos require their owners' permission and are not granted by the MIT code license.
41
+ The project may document ECNU as a reference implementation while keeping the protocol institution-neutral. Merging another organization's example does not imply endorsement. Trademarks and logos require their owners' permission and are not granted by the code license.
package/GOVERNANCE.md CHANGED
@@ -38,4 +38,4 @@
38
38
 
39
39
  ## 品牌与中立性
40
40
 
41
- 项目可以记录 ECNU 参考实现,但协议必须保持机构中立。合并其他机构示例不代表背书。商标和 Logo 的使用需要权利人许可,MIT 代码许可证不授予商标权。
41
+ 项目可以记录 ECNU 参考实现,但协议必须保持机构中立。合并其他机构示例不代表背书。商标和 Logo 的使用需要权利人许可,代码许可证不授予商标权。
package/LICENSE CHANGED
@@ -1,21 +1,130 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 dsh-oidc contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+
2
+ 木兰宽松许可证, 第2版
3
+
4
+ 木兰宽松许可证, 第2版
5
+
6
+ 2020年1月 http://license.coscl.org.cn/MulanPSL2
7
+
8
+ 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
9
+
10
+ 0. 定义
11
+
12
+ “软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
13
+
14
+ “贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
15
+
16
+ “贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
17
+
18
+ “法人实体” 是指提交贡献的机构及其“关联实体”。
19
+
20
+ “关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
21
+
22
+ 1. 授予版权许可
23
+
24
+ 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
25
+
26
+ 2. 授予专利许可
27
+
28
+ 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。
29
+
30
+ 3. 无商标许可
31
+
32
+ “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。
33
+
34
+ 4. 分发限制
35
+
36
+ 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
37
+
38
+ 5. 免责声明与责任限制
39
+
40
+ “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
41
+
42
+ 6. 语言
43
+
44
+ “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。
45
+
46
+ 条款结束
47
+
48
+ 如何将木兰宽松许可证,第2版,应用到您的软件
49
+
50
+ 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
51
+
52
+ 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
53
+
54
+ 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
55
+
56
+ 3, 请将如下声明文本放入每个源文件的头部注释中。
57
+
58
+ Copyright (c) [Year] [name of copyright holder]
59
+ [Software Name] is licensed under Mulan PSL v2.
60
+ You can use this software according to the terms and conditions of the Mulan PSL v2.
61
+ You may obtain a copy of Mulan PSL v2 at:
62
+ http://license.coscl.org.cn/MulanPSL2
63
+ THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
64
+ EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
65
+ MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
66
+ See the Mulan PSL v2 for more details.
67
+
68
+ Mulan Permissive Software License,Version 2
69
+
70
+ Mulan Permissive Software License,Version 2 (Mulan PSL v2)
71
+
72
+ January 2020 http://license.coscl.org.cn/MulanPSL2
73
+
74
+ Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions:
75
+
76
+ 0. Definition
77
+
78
+ Software means the program and related documents which are licensed under this License and comprise all Contribution(s).
79
+
80
+ Contribution means the copyrightable work licensed by a particular Contributor under this License.
81
+
82
+ Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
83
+
84
+ Legal Entity means the entity making a Contribution and all its Affiliates.
85
+
86
+ Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.
87
+
88
+ 1. Grant of Copyright License
89
+
90
+ Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.
91
+
92
+ 2. Grant of Patent License
93
+
94
+ Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.
95
+
96
+ 3. No Trademark License
97
+
98
+ No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in section 4.
99
+
100
+ 4. Distribution Restriction
101
+
102
+ You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.
103
+
104
+ 5. Disclaimer of Warranty and Limitation of Liability
105
+
106
+ THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
107
+
108
+ 6. Language
109
+
110
+ THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL.
111
+
112
+ END OF THE TERMS AND CONDITIONS
113
+
114
+ How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software
115
+
116
+ To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps:
117
+
118
+ i. Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner;
119
+ ii. Create a file named "LICENSE" which contains the whole context of this License in the first directory of your software package;
120
+ iii. Attach the statement to the appropriate annotated syntax at the beginning of each source file.
121
+
122
+ Copyright (c) [Year] [name of copyright holder]
123
+ [Software Name] is licensed under Mulan PSL v2.
124
+ You can use this software according to the terms and conditions of the Mulan PSL v2.
125
+ You may obtain a copy of Mulan PSL v2 at:
126
+ http://license.coscl.org.cn/MulanPSL2
127
+ THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
128
+ EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
129
+ MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
130
+ See the Mulan PSL v2 for more details.
package/LICENSE-MIT ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 dsh-oidc contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,11 @@
1
+ # Licensing scope
2
+
3
+ [简体中文](LICENSING.md) | **English**
4
+
5
+ The primary license for this directory is Mulan Permissive Software License v2 (`MulanPSL-2.0`); see [LICENSE](LICENSE). This policy applies to new original project contributions after the commit introducing this notice. More specific file, directory, and third-party notices retain their own terms.
6
+
7
+ The [pre-transition MIT source baseline](https://github.com/ECNU/EduWork/tree/a43a4d424c9d25668589dfe94a3871318ce299ff/packages/dsh-oidc) retains its original MIT grants and rightsholders; the complete notice is preserved in [LICENSE-MIT](LICENSE-MIT). Attribution in Git history and existing notices remains effective. An institutional copyright notice does not assign other contributors' copyrights. Previously distributed versions and npm archives keep their existing licenses.
8
+
9
+ Distributions combining new Mulan-licensed contributions and historical MIT code must retain both licenses and their notices. The source-module SPDX expression `MulanPSL-2.0 AND MIT` describes these separately licensed portions, not a choice of license for all code. This change does not make historical MIT contributors grant additional patent rights under Mulan.
10
+
11
+ New original contributions are submitted under MulanPSL-2.0 by contributors entitled to grant the relevant copyright and patent rights. Third-party code retains its existing license and provenance. No trademark or artwork permission is inferred from this code-license policy.
package/LICENSING.md ADDED
@@ -0,0 +1,11 @@
1
+ # 许可范围
2
+
3
+ **简体中文** | [English](LICENSING.en.md)
4
+
5
+ 本目录的主许可证为木兰宽松许可证第 2 版(`MulanPSL-2.0`),全文见 [LICENSE](LICENSE)。许可切换以引入本说明的提交为界,面向此后的项目原创贡献;文件、子目录或第三方声明另有规定的,按其独立许可执行。
6
+
7
+ 切换前的 MIT 源码基线见 [@eduwork/dsh-oidc 历史源码](https://github.com/ECNU/EduWork/tree/a43a4d424c9d25668589dfe94a3871318ce299ff/packages/dsh-oidc)。该基线中的贡献仍保留原 MIT 授权及权利人,原许可全文保留在 [LICENSE-MIT](LICENSE-MIT)。历史 Git 记录和已有文件声明中的作者归属继续有效;根目录的机构版权声明不表示其他贡献者转让了版权。既有版本及 npm 发布包不因本次切换改变许可。
8
+
9
+ 后续分发如果同时包含木兰许可贡献与历史 MIT 代码,须保留两份许可证及相关声明。因此对应源码模块的 SPDX 表达式为 `MulanPSL-2.0 AND MIT`,表示不同来源代码各自适用的义务,并非所有代码可任选一种许可。历史 MIT 贡献者不会仅因本次切换被视为作出了新的木兰专利授权。
10
+
11
+ 新增原创贡献按木兰许可提交;投稿者应确认自己有权授予其贡献中涉及的版权和专利许可。引入的第三方代码继续保留原许可证、版权及来源,不适用此默认规则。
@@ -2,11 +2,11 @@
2
2
 
3
3
  [简体中文](THIRD_PARTY_NOTICES.md) | **English**
4
4
 
5
- `dsh-oidc` is MIT-licensed and interoperates with the following directly declared packages. Exact versions are recorded in `package-lock.json`; transitive dependency license files remain in their distributed packages.
5
+ `dsh-oidc` uses Mulan PSL v2 for original contributions and preserves historical MIT grants ([scope](LICENSING.md)) and interoperates with the following directly declared packages. Exact versions are recorded in `package-lock.json`; transitive dependency license files remain in their distributed packages.
6
6
 
7
7
  ## Runtime peers (not copied into this repository)
8
8
 
9
- - DeepSeek Harness packages `0.2.1-rc.2` and `@deepseek-ai/cordis` `4.0.5` — MIT, Copyright (c) 2026 DeepSeek, <https://github.com/deepseek-ai/deepseek-harness>
9
+ - DeepSeek Harness packages and `@deepseek-ai/cordis` — MIT; development baseline `0.2.2-rc.2` / `4.1.0`, with supported host ranges in `package.json`. Copyright (c) 2026 DeepSeek, <https://github.com/deepseek-ai/deepseek-harness>
10
10
  - `@earendil-works/pi-ai` `1.1.0` — MIT, <https://github.com/earendil-works/pi>
11
11
  - React `18.x` — MIT, Copyright (c) Facebook, Inc. and its affiliates, <https://github.com/facebook/react>
12
12
 
@@ -44,11 +44,10 @@ Source: <https://github.com/colinhacks/zod>
44
44
 
45
45
  ## Development-only tools
46
46
 
47
- The lock pins the DSH 0.2.1-rc.2 test closure plus tsdown (MIT), TypeScript and Playwright Core (Apache-2.0), Ajv (MIT), YAML (ISC), and React types (MIT). Development tools are not copied into the published runtime files. Playwright Core does not download browser binaries during installation.
47
+ The lock pins the DSH 0.2.2-rc.2 test closure plus tsdown (MIT), TypeScript and Playwright Core (Apache-2.0), Ajv (MIT), YAML (ISC), and React types (MIT). Development tools are not copied into the published runtime files. Playwright Core does not download browser binaries during installation.
48
48
 
49
- The current lock flags two lifecycle scripts: `@google/genai@1.52.0` has an echo-only preinstall; `protobufjs@7.6.6` reads local package manifests and may emit version-scheme warnings. Its reviewed postinstall contains no download or process execution. The local npm allow-scripts policy left these scripts unapproved; review them again when the lock changes. A successful install is not a security-audit result.
50
49
 
51
50
  `fast-sha256@1.3.0`, reached through pi-ai → Anthropic SDK → standardwebhooks, declares Unlicense. Its distributed LICENSE grants copying, modification and distribution and disclaims warranty. The license check records a package/version-specific exception, not a blanket waiver for unknown licenses; no source is copied into this repository.
52
51
 
53
52
 
54
- The development-only official DSH Host includes LibreOffice Kit (MPL-2.0) and sharp/libvips native packages (Apache-2.0 / LGPL-3.0-or-later). These packages are installed separately for Host tests and are not bundled in this plugin archive; their own license files remain with their packages.
53
+ The development-only official DSH Host includes LibreOffice Kit 0.2.3 (MPL-2.0), sharp/libvips native packages (Apache-2.0 / LGPL-3.0-or-later), and lru-cache 11.5.3 ([Blue Oak Model License 1.0.0](https://blueoakcouncil.org/license/1.0.0)). These packages are installed separately for Host tests and are not bundled in this plugin archive; their own license files remain with their packages. Checks accept only the reviewed development-dependency versions.
@@ -2,11 +2,11 @@
2
2
 
3
3
  **简体中文** | [English](THIRD_PARTY_NOTICES.en.md)
4
4
 
5
- `dsh-oidc` 使用 MIT 许可证,并与以下直接声明的软件包互操作。精确版本记录在 `package-lock.json` 中;间接依赖的许可证文件保留在各自发布包内。
5
+ `dsh-oidc` 的原创贡献使用木兰 PSL v2,历史 MIT 授权保留,详见 [许可范围](LICENSING.md),并与以下直接声明的软件包互操作。精确版本记录在 `package-lock.json` 中;间接依赖的许可证文件保留在各自发布包内。
6
6
 
7
7
  ## 运行时 Peer(源码未复制进本仓库)
8
8
 
9
- - DeepSeek Harness `0.2.1-rc.2` 软件包和 `@deepseek-ai/cordis` `4.0.5`——MIT,Copyright (c) 2026 DeepSeek,<https://github.com/deepseek-ai/deepseek-harness>
9
+ - DeepSeek Harness 软件包和 `@deepseek-ai/cordis`——MIT;开发基线为 `0.2.2-rc.2` / `4.1.0`,支持的宿主范围见 `package.json`。Copyright (c) 2026 DeepSeek,<https://github.com/deepseek-ai/deepseek-harness>
10
10
  - `@earendil-works/pi-ai` `1.1.0`——MIT,<https://github.com/earendil-works/pi>
11
11
  - React `18.x`——MIT,Copyright (c) Facebook, Inc. and its affiliates,<https://github.com/facebook/react>
12
12
 
@@ -46,10 +46,10 @@ SOFTWARE.
46
46
 
47
47
  ## 仅开发使用的工具
48
48
 
49
- 锁文件固定 DSH 0.2.1-rc.2 测试闭包及 tsdown(MIT)、TypeScript/Playwright Core(Apache-2.0)、Ajv(MIT)、YAML(ISC)、React 类型(MIT)。开发工具不复制到发布的运行文件。Playwright Core 安装时不下载浏览器二进制。
49
+ 锁文件固定 DSH 0.2.2-rc.2 测试闭包及 tsdown(MIT)、TypeScript/Playwright Core(Apache-2.0)、Ajv(MIT)、YAML(ISC)、React 类型(MIT)。开发工具不复制到发布的运行文件。Playwright Core 安装时不下载浏览器二进制。
50
50
 
51
51
 
52
52
  `fast-sha256@1.3.0` 经 pi-ai → Anthropic SDK → standardwebhooks 引入,声明 Unlicense。已核对其分发 LICENSE 中复制、修改、分发授权与免责条款;许可证检查只为该包的该版本记录例外,不放开其他未知许可证。其源码不复制进本仓库。
53
53
 
54
54
 
55
- 仅开发使用的官方 DSH Host 包括 LibreOffice Kit(MPL-2.0)与 sharp/libvips 原生包(Apache-2.0 / LGPL-3.0-or-later)。这些包单独安装用于宿主测试,不打入本插件压缩包,许可证随各自的包保留。
55
+ 仅开发使用的官方 DSH Host 包括 LibreOffice Kit 0.2.3(MPL-2.0)与 sharp/libvips 原生包(Apache-2.0 / LGPL-3.0-or-later),以及 lru-cache 11.5.3([Blue Oak Model License 1.0.0](https://blueoakcouncil.org/license/1.0.0))。这些包单独安装用于宿主测试,不打入本插件压缩包,许可证随各自的包保留。检查仅接纳已核对的开发依赖版本。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eduwork/dsh-oidc",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Standards-based OIDC identity, token-authorized model access, declarative branding, and OpenAI-compatible model integration for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -50,7 +50,10 @@
50
50
  "THIRD_PARTY_NOTICES.md",
51
51
  "THIRD_PARTY_NOTICES.en.md",
52
52
  "CHANGELOG.md",
53
- "CHANGELOG.en.md"
53
+ "CHANGELOG.en.md",
54
+ "LICENSE-MIT",
55
+ "LICENSING.md",
56
+ "LICENSING.en.md"
54
57
  ],
55
58
  "dsh": {
56
59
  "bundle": {
@@ -106,100 +109,100 @@
106
109
  "url": "https://github.com/ECNU/EduWork/issues"
107
110
  },
108
111
  "homepage": "https://github.com/ECNU/EduWork/tree/main/packages/dsh-oidc#readme",
109
- "license": "MIT",
112
+ "license": "MulanPSL-2.0 AND MIT",
110
113
  "dependencies": {
111
114
  "zod": "4.4.3"
112
115
  },
113
116
  "peerDependencies": {
114
- "@deepseek-ai/cordis": ">=4.0.5 <4.1.0",
115
- "@deepseek-ai/dsh-api-remotes": ">=0.2.1-rc.2 <0.3.0-0",
116
- "@deepseek-ai/dsh-attachment": ">=0.2.1-rc.2 <0.3.0-0",
117
- "@deepseek-ai/dsh-authorization": ">=0.2.1-rc.2 <0.3.0-0",
118
- "@deepseek-ai/dsh-brand": ">=0.2.1-rc.2 <0.3.0-0",
119
- "@deepseek-ai/dsh-client-ui-conversation": ">=0.2.1-rc.2 <0.3.0-0",
120
- "@deepseek-ai/dsh-client-ui-renderer": ">=0.2.1-rc.2 <0.3.0-0",
121
- "@deepseek-ai/dsh-client-ui-settings": ">=0.2.1-rc.2 <0.3.0-0",
122
- "@deepseek-ai/dsh-client-ui-settings-general": ">=0.2.1-rc.2 <0.3.0-0",
123
- "@deepseek-ai/dsh-client-ui-settings-models": ">=0.2.1-rc.2 <0.3.0-0",
124
- "@deepseek-ai/dsh-client-ui-sidebar": ">=0.2.1-rc.2 <0.3.0-0",
125
- "@deepseek-ai/dsh-client-ui-theme": ">=0.2.1-rc.2 <0.3.0-0",
126
- "@deepseek-ai/dsh-credentials": ">=0.2.1-rc.2 <0.3.0-0",
127
- "@deepseek-ai/dsh-fs": ">=0.2.1-rc.2 <0.3.0-0",
128
- "@deepseek-ai/dsh-host-webserver": ">=0.2.1-rc.2 <0.3.0-0",
129
- "@deepseek-ai/dsh-launch-environment": ">=0.2.1-rc.2 <0.3.0-0",
130
- "@deepseek-ai/dsh-llm": ">=0.2.1-rc.2 <0.3.0-0",
131
- "@deepseek-ai/dsh-llm-pi-ai": ">=0.2.1-rc.2 <0.3.0-0",
132
- "@deepseek-ai/dsh-sandbox": ">=0.2.1-rc.2 <0.3.0-0",
133
- "@deepseek-ai/dsh-scope": ">=0.2.1-rc.2 <0.3.0-0",
134
- "@deepseek-ai/dsh-session": ">=0.2.1-rc.2 <0.3.0-0",
135
- "@deepseek-ai/dsh-settings": ">=0.2.1-rc.2 <0.3.0-0",
136
- "@deepseek-ai/dsh-timeout": ">=0.2.1-rc.2 <0.3.0-0",
137
- "@deepseek-ai/dsh-typert-protocol": ">=0.2.1-rc.2 <0.3.0-0",
117
+ "@deepseek-ai/cordis": ">=4.0.5 <4.1.0 || 4.1.0",
118
+ "@deepseek-ai/dsh-api-remotes": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
119
+ "@deepseek-ai/dsh-attachment": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
120
+ "@deepseek-ai/dsh-authorization": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
121
+ "@deepseek-ai/dsh-brand": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
122
+ "@deepseek-ai/dsh-client-ui-conversation": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
123
+ "@deepseek-ai/dsh-client-ui-renderer": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
124
+ "@deepseek-ai/dsh-client-ui-settings": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
125
+ "@deepseek-ai/dsh-client-ui-settings-general": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
126
+ "@deepseek-ai/dsh-client-ui-settings-models": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
127
+ "@deepseek-ai/dsh-client-ui-sidebar": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
128
+ "@deepseek-ai/dsh-client-ui-theme": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
129
+ "@deepseek-ai/dsh-credentials": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
130
+ "@deepseek-ai/dsh-fs": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
131
+ "@deepseek-ai/dsh-host-webserver": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
132
+ "@deepseek-ai/dsh-launch-environment": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
133
+ "@deepseek-ai/dsh-llm": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
134
+ "@deepseek-ai/dsh-llm-pi-ai": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
135
+ "@deepseek-ai/dsh-sandbox": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
136
+ "@deepseek-ai/dsh-scope": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
137
+ "@deepseek-ai/dsh-session": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
138
+ "@deepseek-ai/dsh-settings": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
139
+ "@deepseek-ai/dsh-timeout": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
140
+ "@deepseek-ai/dsh-typert-protocol": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0",
138
141
  "@earendil-works/pi-ai": "^1.1.0",
139
142
  "react": "^18.2.0",
140
143
  "react-dom": "^18.2.0",
141
- "@deepseek-ai/dsh-client-locale": ">=0.2.1-rc.2 <0.3.0-0"
144
+ "@deepseek-ai/dsh-client-locale": ">=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.2.3-0"
142
145
  },
143
146
  "devDependencies": {
144
- "@deepseek-ai/cordis": "4.0.5",
145
- "@deepseek-ai/dsh-agent": "0.2.1-rc.2",
146
- "@deepseek-ai/dsh-agent-default-model": "0.2.1-rc.2",
147
- "@deepseek-ai/dsh-api-gateway": "0.2.1-rc.2",
148
- "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.2",
149
- "@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.2",
150
- "@deepseek-ai/dsh-atomic-write": "0.2.1-rc.2",
151
- "@deepseek-ai/dsh-attachment": "0.2.1-rc.2",
152
- "@deepseek-ai/dsh-authorization": "0.2.1-rc.2",
153
- "@deepseek-ai/dsh-brand": "0.2.1-rc.2",
154
- "@deepseek-ai/dsh-chunked-list": "0.2.1-rc.2",
155
- "@deepseek-ai/dsh-client-connection": "0.2.1-rc.2",
156
- "@deepseek-ai/dsh-client-file-upload": "0.2.1-rc.2",
157
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.2",
158
- "@deepseek-ai/dsh-client-ui-model-selection": "0.2.1-rc.2",
159
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
160
- "@deepseek-ai/dsh-client-ui-settings": "0.2.1-rc.2",
161
- "@deepseek-ai/dsh-client-ui-settings-general": "0.2.1-rc.2",
162
- "@deepseek-ai/dsh-client-ui-settings-models": "0.2.1-rc.2",
163
- "@deepseek-ai/dsh-client-ui-sidebar": "0.2.1-rc.2",
164
- "@deepseek-ai/dsh-client-ui-theme": "0.2.1-rc.2",
165
- "@deepseek-ai/dsh-commands": "0.2.1-rc.2",
166
- "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
167
- "@deepseek-ai/dsh-deque": "0.2.1-rc.2",
168
- "@deepseek-ai/dsh-file-reference": "0.2.1-rc.2",
169
- "@deepseek-ai/dsh-fs": "0.2.1-rc.2",
170
- "@deepseek-ai/dsh-home-paths": "0.2.1-rc.2",
171
- "@deepseek-ai/dsh-host-webserver": "0.2.1-rc.2",
172
- "@deepseek-ai/dsh-jobs": "0.2.1-rc.2",
173
- "@deepseek-ai/dsh-launch-environment": "0.2.1-rc.2",
174
- "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
175
- "@deepseek-ai/dsh-llm-pi-ai": "0.2.1-rc.2",
176
- "@deepseek-ai/dsh-native-command": "0.2.1-rc.2",
177
- "@deepseek-ai/dsh-sandbox": "0.2.1-rc.2",
178
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
179
- "@deepseek-ai/dsh-scope": "0.2.1-rc.2",
180
- "@deepseek-ai/dsh-session": "0.2.1-rc.2",
181
- "@deepseek-ai/dsh-session-persistence": "0.2.1-rc.2",
182
- "@deepseek-ai/dsh-session-projection": "0.2.1-rc.2",
183
- "@deepseek-ai/dsh-session-projection-cache": "0.2.1-rc.2",
184
- "@deepseek-ai/dsh-session-query": "0.2.1-rc.2",
185
- "@deepseek-ai/dsh-session-title": "0.2.1-rc.2",
186
- "@deepseek-ai/dsh-settings": "0.2.1-rc.2",
187
- "@deepseek-ai/dsh-skill": "0.2.1-rc.2",
188
- "@deepseek-ai/dsh-storage": "0.2.1-rc.2",
189
- "@deepseek-ai/dsh-storage-domain": "0.2.1-rc.2",
190
- "@deepseek-ai/dsh-subagent": "0.2.1-rc.2",
191
- "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
192
- "@deepseek-ai/dsh-timeout": "0.2.1-rc.2",
193
- "@deepseek-ai/dsh-tool-todo": "0.2.1-rc.2",
194
- "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
195
- "@deepseek-ai/dsh-typert-protocol": "0.2.1-rc.2",
196
- "@deepseek-ai/dsh-typert-registry": "0.2.1-rc.2",
197
- "@deepseek-ai/dsh-user-approval": "0.2.1-rc.2",
198
- "@deepseek-ai/dsh-util-crypto": "0.2.1-rc.2",
199
- "@deepseek-ai/dsh-util-time": "0.2.1-rc.2",
200
- "@deepseek-ai/dsh-util-values": "0.2.1-rc.2",
201
- "@deepseek-ai/dsh-util-workspace-path": "0.2.1-rc.2",
202
- "@deepseek-ai/dsh-workspace": "0.2.1-rc.2",
147
+ "@deepseek-ai/cordis": "4.1.0",
148
+ "@deepseek-ai/dsh-agent": "0.2.2-rc.2",
149
+ "@deepseek-ai/dsh-agent-default-model": "0.2.2-rc.2",
150
+ "@deepseek-ai/dsh-api-gateway": "0.2.2-rc.2",
151
+ "@deepseek-ai/dsh-api-remotes": "0.2.2-rc.2",
152
+ "@deepseek-ai/dsh-api-session-controller": "0.2.2-rc.2",
153
+ "@deepseek-ai/dsh-atomic-write": "0.2.2-rc.2",
154
+ "@deepseek-ai/dsh-attachment": "0.2.2-rc.2",
155
+ "@deepseek-ai/dsh-authorization": "0.2.2-rc.2",
156
+ "@deepseek-ai/dsh-brand": "0.2.2-rc.2",
157
+ "@deepseek-ai/dsh-chunked-list": "0.2.2-rc.2",
158
+ "@deepseek-ai/dsh-client-connection": "0.2.2-rc.2",
159
+ "@deepseek-ai/dsh-client-file-upload": "0.2.2-rc.2",
160
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.2-rc.2",
161
+ "@deepseek-ai/dsh-client-ui-model-selection": "0.2.2-rc.2",
162
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.2",
163
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.2-rc.2",
164
+ "@deepseek-ai/dsh-client-ui-settings-general": "0.2.2-rc.2",
165
+ "@deepseek-ai/dsh-client-ui-settings-models": "0.2.2-rc.2",
166
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-rc.2",
167
+ "@deepseek-ai/dsh-client-ui-theme": "0.2.2-rc.2",
168
+ "@deepseek-ai/dsh-commands": "0.2.2-rc.2",
169
+ "@deepseek-ai/dsh-credentials": "0.2.2-rc.2",
170
+ "@deepseek-ai/dsh-deque": "0.2.2-rc.2",
171
+ "@deepseek-ai/dsh-file-reference": "0.2.2-rc.2",
172
+ "@deepseek-ai/dsh-fs": "0.2.2-rc.2",
173
+ "@deepseek-ai/dsh-home-paths": "0.2.2-rc.2",
174
+ "@deepseek-ai/dsh-host-webserver": "0.2.2-rc.2",
175
+ "@deepseek-ai/dsh-jobs": "0.2.2-rc.2",
176
+ "@deepseek-ai/dsh-launch-environment": "0.2.2-rc.2",
177
+ "@deepseek-ai/dsh-llm": "0.2.2-rc.2",
178
+ "@deepseek-ai/dsh-llm-pi-ai": "0.2.2-rc.2",
179
+ "@deepseek-ai/dsh-native-command": "0.2.2-rc.2",
180
+ "@deepseek-ai/dsh-sandbox": "0.2.2-rc.2",
181
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.2-rc.2",
182
+ "@deepseek-ai/dsh-scope": "0.2.2-rc.2",
183
+ "@deepseek-ai/dsh-session": "0.2.2-rc.2",
184
+ "@deepseek-ai/dsh-session-persistence": "0.2.2-rc.2",
185
+ "@deepseek-ai/dsh-session-projection": "0.2.2-rc.2",
186
+ "@deepseek-ai/dsh-session-projection-cache": "0.2.2-rc.2",
187
+ "@deepseek-ai/dsh-session-query": "0.2.2-rc.2",
188
+ "@deepseek-ai/dsh-session-title": "0.2.2-rc.2",
189
+ "@deepseek-ai/dsh-settings": "0.2.2-rc.2",
190
+ "@deepseek-ai/dsh-skill": "0.2.2-rc.2",
191
+ "@deepseek-ai/dsh-storage": "0.2.2-rc.2",
192
+ "@deepseek-ai/dsh-storage-domain": "0.2.2-rc.2",
193
+ "@deepseek-ai/dsh-subagent": "0.2.2-rc.2",
194
+ "@deepseek-ai/dsh-system-prompt": "0.2.2-rc.2",
195
+ "@deepseek-ai/dsh-timeout": "0.2.2-rc.2",
196
+ "@deepseek-ai/dsh-tool-todo": "0.2.2-rc.2",
197
+ "@deepseek-ai/dsh-tools": "0.2.2-rc.2",
198
+ "@deepseek-ai/dsh-typert-protocol": "0.2.2-rc.2",
199
+ "@deepseek-ai/dsh-typert-registry": "0.2.2-rc.2",
200
+ "@deepseek-ai/dsh-user-approval": "0.2.2-rc.2",
201
+ "@deepseek-ai/dsh-util-crypto": "0.2.2-rc.2",
202
+ "@deepseek-ai/dsh-util-time": "0.2.2-rc.2",
203
+ "@deepseek-ai/dsh-util-values": "0.2.2-rc.2",
204
+ "@deepseek-ai/dsh-util-workspace-path": "0.2.2-rc.2",
205
+ "@deepseek-ai/dsh-workspace": "0.2.2-rc.2",
203
206
  "@earendil-works/pi-ai": "1.1.0",
204
207
  "@types/react": "^18.3.28",
205
208
  "@types/react-dom": "^18.3.7",
@@ -210,9 +213,9 @@
210
213
  "tsdown": "0.22.14",
211
214
  "typescript": "^5.9.3",
212
215
  "yaml": "^2.8.1",
213
- "@deepseek-ai/dsh-client-locale": "0.2.1-rc.2",
214
- "@deepseek-ai/dsh": "0.2.1-rc.2",
215
- "@deepseek-ai/schemastery": "3.18.5",
216
+ "@deepseek-ai/dsh-client-locale": "0.2.2-rc.2",
217
+ "@deepseek-ai/dsh": "0.2.2-rc.2",
218
+ "@deepseek-ai/schemastery": "3.19.0",
216
219
  "semver": "7.7.4"
217
220
  },
218
221
  "peerDependenciesMeta": {