@hanamesh/dsh-app-host 0.6.21 → 0.6.24
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/README.md +19 -15
- package/dist/client-ui.js +8 -16
- package/dist/dsh-compat.js +1 -1
- package/dist/dsh.d.ts +1 -2
- package/dist/dsh.js +5 -9
- package/dist/git-command-worker.js +12 -0
- package/dist/git-process.js +8 -3
- package/dist/git-worker.js +37 -7
- package/dist/install-target/suite.js +3 -3
- package/dist/installation-status.d.ts +0 -8
- package/dist/library/diagnostics.js +0 -1
- package/dist/library/github-target.js +1 -1
- package/dist/library/handoff.js +3 -11
- package/dist/library/install-target-http.js +39 -0
- package/dist/library/install.js +13 -60
- package/dist/library/installation-cli.js +41 -16
- package/dist/library/installation-command-worker.js +3 -2
- package/dist/library/installation-discovery.js +95 -0
- package/dist/library/installation-status.js +14 -13
- package/dist/library/installation-worker.js +72 -14
- package/dist/library/locate.js +4 -13
- package/dist/library/routes.js +2 -10
- package/dist/library/service.js +5 -5
- package/dist/library/suite.js +9 -10
- package/dist/node-runtime/service.js +4 -4
- package/dist/router/sources.js +5 -2
- package/dist/runtime.js +15 -1
- package/dist/store.js +12 -5
- package/dist/windows-job.js +30 -0
- package/dist/windows-job.ps1 +75 -0
- package/docs/APP_PACKAGE.md +1 -1
- package/docs/CONTRACT.md +7 -7
- package/docs/DSH_COMPATIBILITY.md +1 -1
- package/docs/INSTALLATION_STATUS.md +29 -18
- package/docs/INSTALL_TARGET.md +9 -5
- package/docs/LIBRARY.md +3 -14
- package/docs/LICENSES.json +207 -69
- package/docs/SECURITY.md +16 -1
- package/package.json +41 -27
package/docs/INSTALL_TARGET.md
CHANGED
|
@@ -10,13 +10,17 @@ type PackageInstallTarget =
|
|
|
10
10
|
| {source:'github';repo:string;ref:string;path:string|null;packageName:string;allowBuild:string[]};
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
GitHub ref 必须是收录时固定的完整 40 位 SHA,不在安装时解析分支。结构化目标必须带 itemId;App-host 从自己的启用目录 installMethods 解析并逐字段核对,整个条目 oneClickInstall.allowed=false 时拒绝,不能换用同名 npm
|
|
13
|
+
GitHub ref 必须是收录时固定的完整 40 位 SHA,不在安装时解析分支。结构化目标必须带 itemId;App-host 从自己的启用目录 installMethods 解析并逐字段核对,整个条目 oneClickInstall.allowed=false 时拒绝,不能换用同名 npm 包。条目必须提供 installMethods 和 oneClickInstall.allowed:true,并选中匹配的固定目标;缺 installMethods、未获准或无匹配目标时返回 NOT_INSTALLABLE / details.reason=fixed-install-target-required(或提供方具名原因),不得退回 package 展示名解析可变版本。HanaMesh 视图拒绝退休的 latestVersion/license,确认页不显示版本行,升级按钮不拼目录版本;npm 升级按 installTarget.version 与已装实际版本比较。GET target/导航片段将 installTarget JSON 编码;POST install/网站 handoff 使用对象。响应 item.installTarget 是客户端确认回传的预期目标。目录 SHA、路径或构建许可变化会拒绝 CATALOG_CHANGED,必须重新查看;不能在确认之后自动换目标。
|
|
14
14
|
|
|
15
15
|
确认沿现有市场表面,展示完整仓库、commit、子目录;allowBuild 非空时单列「会在本机执行构建脚本」和名单,并说明 pnpm 会保存许可。取消或预览不执行 CLI。本人确认后,仅调用原受控 `dsh plugin --profile <profile> add --save-exact [--allow-build=<项>…] github:owner/repo#<SHA>[&path:<目录>]`,每段都是独立 argv,不执行来源 command。npm 目标直接使用收录时固定的精确版本,不在安装时再解析版本。
|
|
16
16
|
|
|
17
17
|
GitHub CLI exit 0 后还须核对 profile 精确保存的 Git spec、模块包名/版本、dsh.bundle 和 profile 启用列表,随后报告 restart-required;重开后由原生 DSH 加载。不自行 clone/build,不改上游,不用进程内安装器。失败补偿沿原 CLI;pnpm-workspace.yaml 若发生变化,恢复报告保留 build-permissions 残留及原文件,不擅自撤销或静默宣称恢复。handoff 事件按完整目标匹配,不能只靠同名包把另一个 SHA 报为成功。
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
网站发现(0.6.23候选,编排11-09授权D3):DSH本地与交接监听共用`install-target-http.js`。仅获准来源可读取客户端能力;名单外的有效HTTP/HTTPS来源,对无查询、无Cookie/Authorization、非iframe的精确`GET /hanamesh/library/install-target`,返回精确`Access-Control-Allow-Origin: <请求Origin>`、`Vary: Origin`及固定`403 {"error":{"code":"ORIGIN_DENIED","message":"This website is not allowed to read discovery."}}`。无客户端类型/能力/ready/版本/清单/允许名单/traceId;不调用能力或安装清单读取器。该最小拒绝有意允许网站识别本机存在拒绝它的监听,不代表任何安装或读取授权。无`*`/Allow-Credentials/Set-Cookie。无Origin的本机工具及获准工作区读取保留。
|
|
20
|
+
|
|
21
|
+
预检:精确同一路径的有效GET预检返回204空正文、精确Origin和`Access-Control-Allow-Methods: GET`,使浏览器能继续GET并读到403;不把403放在预检上。仅请求带`Access-Control-Request-Private-Network: true`时返回`Access-Control-Allow-Private-Network: true`;普通预检和实际GET均不带该响应头。Vary包含Origin、Access-Control-Request-Method、Access-Control-Request-Headers、Access-Control-Request-Private-Network;无Max-Age缓存。请求额外headers、非GET预检、非法PNA值被拒绝且不授CORS;名单外预检必须显式声明GET。获准来源/本机工具的旧OPTIONS缺省method保持可用。依据:[Fetch预检成功状态](https://fetch.spec.whatwg.org/#cors-preflight-fetch)、[Chrome PNA预检](https://developer.chrome.com/blog/private-network-access-preflight)。现代Chrome的[LNA本机访问权限](https://developer.chrome.com/docs/modern-web-guidance/guides/security/local-network-access)独立生效,此响应不绕过浏览器授权。
|
|
22
|
+
|
|
23
|
+
错误Host、绝对/双斜线/反斜线target、opaque或畸形Origin、名单外凭据/查询/非探测方法、iframe均不获此拒绝CORS例外;installation-status、交接、库存、设置、安装等接口继续原名单/同意/认证与确认规则。
|
|
20
24
|
|
|
21
25
|
轮询设置:`pollMs` 写入应用库真实 storage domain;保存、卸载再加载后保持。旧记录没有该字段时使用既有配置/默认 1500 ms,不重写其它存储数据。
|
|
22
26
|
|
|
@@ -96,7 +100,7 @@ node node_modules/@hanamesh/dsh-app-host/dist/install-target/run.js consumer --u
|
|
|
96
100
|
一次安装(应用或插件、新装或升级)按以下顺序进行,同一宿主内同一时间只有一个 profile 写者(安装、补偿、卸载、provision 串行;`dsh plugin` 自己按每条命令加 profile 写锁):
|
|
97
101
|
|
|
98
102
|
1. **基线**:profile `package.json` 里本包的规格、`dsh.profile.bundles`、`pnpm-lock.yaml`、`node_modules` 实际解析的版本;provision 前再记 runtime 根的 lib-provision ledger。
|
|
99
|
-
2. 官方 `dsh plugin add --save-exact
|
|
103
|
+
2. 官方 `dsh plugin add --save-exact <包>@<审核目标精确版本>`;GitHub 使用目录中的完整40位SHA和已确认构建许可。
|
|
100
104
|
3. **读回**:profile 规格与实际解析版本都等于固定版本才继续,否则 `INSTALL_READBACK_MISMATCH`。
|
|
101
105
|
4. 应用:读 `app.json` 校验定义 → 随包 lib-provision 供给声明的 runtime。
|
|
102
106
|
|
|
@@ -111,7 +115,7 @@ node node_modules/@hanamesh/dsh-app-host/dist/install-target/run.js consumer --u
|
|
|
111
115
|
|
|
112
116
|
`checks` 逐项列出 dependency、module、bundle、lockfile、bundles 与 `runtime:<item>` 的 expected/actual/ok。别的写者在此期间改动的其他依赖永不撤销,lockfile 因此无法证明已恢复时报 `CONCURRENT_PROFILE_WRITE`。未认领文件与 `<dataRoot>` 下的应用数据从不删除。失败不会自动重试。
|
|
113
117
|
|
|
114
|
-
补偿的 `add` / `install`
|
|
118
|
+
补偿的 `add` / `install` 沿用本次正向安装选中的同一 registry:显式源继续传 `--registry=<source>`,pnpm 自有源(`null`)继续省略该参数。回滚不会重新选源、重新解析版本或退到默认公共源;`remove` 参数保持原样。恢复动作列表保留原包操作摘要,不加入 registry URL。
|
|
115
119
|
|
|
116
120
|
市场显示:`安装失败:<原码>(原因)` 后接 `已恢复到安装前状态(已逐项读回)` / `已恢复到原版本 x(已逐项读回)` / `安装前状态未被改动(已逐项读回)`;`failed` 显示 `恢复失败:<码>,未恢复:<项>,安装前原件:<目录>。未安装成功,也未回到安装前状态,需要人工处理`,不会显示为成功或「已回滚」。
|
|
117
121
|
|
|
@@ -127,7 +131,7 @@ node node_modules/@hanamesh/dsh-app-host/dist/install-target/run.js consumer --u
|
|
|
127
131
|
|
|
128
132
|
## 本机公开探测与目录消费(D-180)
|
|
129
133
|
|
|
130
|
-
`GET /hanamesh/library/install-target` 无参数,精确回环 Host、非 iframe,允许跨源匿名只读探测。返回 `{client:'dsh',ready,installTarget:{contract:'hanamesh.install-target',contractVersion:'1',supported:['1'],fragmentPrefix:'#hanamesh-install?'},traceId,error?}`;缺安装器 `ready:false` 且 `error.code='INSTALL_TARGET_UNAVAILABLE'
|
|
134
|
+
`GET /hanamesh/library/install-target` 无参数,精确回环 Host、非 iframe,允许跨源匿名只读探测。返回 `{client:'dsh',ready,installTarget:{contract:'hanamesh.install-target',contractVersion:'1',supported:['1'],fragmentPrefix:'#hanamesh-install?'},traceId,error?}`;缺安装器 `ready:false` 且 `error.code='INSTALL_TARGET_UNAVAILABLE'`。只这一项依本页“网站发现”规则带精确Origin CORS、no-store,不发 Cookie/Allow-Credentials,不返回 profile、已装行、工作区认证地址、命令或租约。独立 DSH 默认报 dsh;没有真实 Desktop 公开证据时不推断 HanaMesh 品牌。其余控制路径仍按原 DSH 认证与准确同源授权执行。
|
|
131
135
|
|
|
132
136
|
C-WEB-CATALOG 第1版的显式 `catalog-source.json?view=hanamesh` 与 manifest 的 `/v1/plugins?view=hanamesh` 可配置为目录来源。旧无 view 源仍严格按 catalog-major-1,不混 schema 或静默降级。新 DTO 保留 id=itemId、可空 npm 身份及公开 sourceLinks;q 是子串查询,目标按精确身份匹配,空页仍有游标则续翻。只给包名时遍历确认唯一目录身份;多个身份返回409 CATALOG_TARGET_AMBIGUOUS。无 npm 包仅浏览;来源链接/分类/目录版本都不能成为启动或安装权限。CATALOG_CHANGED 中止本轮、不拼代或自动重试,其余提供方公开错误保持原 code;故障不退 fixture。
|
|
133
137
|
|
package/docs/LIBRARY.md
CHANGED
|
@@ -17,8 +17,6 @@
|
|
|
17
17
|
|
|
18
18
|
钉版本 DSH 没有向插件公开 profile 目录或 profile 名。桌面壳通过 overlay 显式给出 `library.profileDir`(绝对路径)、`library.profileName`、`library.dshBin` 与 `nodeBinary`,显式值永远优先。**纯 DSH CLI profile(rc.26)** 下缺省值按 `CONTRACT.md`「应用库配置」推断:`profileDir` 来自本包自身真实安装位置所属的 profile、`profileName` 为其目录名、`dshBin` 只取启动本进程的 `@deepseek-ai/dsh/lib/bin.js`、`nodeBinary` 只在非 Electron 进程取 `process.execPath`。Electron 下仍必须由 dsh-runtime/core 提供绝对 `nodeBinary`;应用库不会在 Electron 里回退到 `process.execPath`。
|
|
19
19
|
|
|
20
|
-
安装先向 registry 的 `latest` 端点复核精确稳定版本,再用显式 Node 执行 DSH 自己的 `bin.js plugin --profile <name> add --save-exact <package>@<version>`。成功后读取包内 `app.json`;如果描述符声明 runtime,则调用随包内联的锁定 `@hanamesh/lib-provision@0.1.0-rc.3`。生产默认拒绝 prerelease;隔离 Verdaccio 验收可显式设 `allowPrerelease: true`。
|
|
21
|
-
|
|
22
20
|
rc.10:add 之后的读回、定义校验或 provision 失败按基线补偿(新装 `dsh plugin remove`、升级 `dsh plugin add` 原规格,runtime 按 ownership 回收或按原定义重供),逐项读回后在 `library.install-failed` 的 `recovery` 里报告 `not-needed`/`restored`/`failed`;详见 `INSTALL_TARGET.md`「安装失败后的恢复」。
|
|
23
21
|
|
|
24
22
|
安装/卸载完成只返回 `restart-required`,绝不静默重启 DSH。卸载只删除包与 lib-provision 账本认领的 runtime 文件,保留 `<dataRoot>` 下应用数据;彻底删除需用户手动处理对应数据目录。
|
|
@@ -56,11 +54,7 @@ Both SOURCE fixture sets and suites ship as `@hanamesh/dsh-app-host/catalog/suit
|
|
|
56
54
|
|
|
57
55
|
市场只显示一张官方、不计分的「HanaMesh 套件」卡。完整性只显示 Core 的 `completeness`,同时展示 `installed` 的要求范围、实际版本、状态和 `blocked` 的具名原因;Core 缺席或读取失败时完整性为 unknown,并保留物理包版本供诊断。Core、使用记录、应用库不再分别作为普通可安装卡。品牌插件只属于 HanaMesh 自有客户端。
|
|
58
56
|
|
|
59
|
-
DSH
|
|
60
|
-
|
|
61
|
-
```sh
|
|
62
|
-
dsh plugin --profile desktop add --save-exact '@hanamesh/core@0.3.21' '@hanamesh/usage@0.3.0-rc.6' '@hanamesh/dsh-app-host@0.6.14'
|
|
63
|
-
```
|
|
57
|
+
DSH 首次安装使用公开 Core 精确发布元数据中的 `hanameshSuiteInstall.command`;已运行客户端的修复命令使用 Core 声明 `installCommand`。两者由 Core 同一格式器提供,只安装总包的精确版本,完全退出后安装并重新打开。缺命令显示具名不可用,不自造组件命令。
|
|
64
58
|
|
|
65
59
|
套件版本范围、是否完整、候选来源及兼容/升级规则唯一属于 Core。App-host 只读物理安装版本,不能用它们推导兼容或安装许可;不自行读取 npm latest、计算组件组合、校验候选宿主 peers 或持有 Core 的版本范围副本。普通安装/卸载接口继续拒绝套件包。
|
|
66
60
|
|
|
@@ -87,12 +81,7 @@ HanaMesh 视图原样保留可选 `official:boolean`(包括 false)与 C-INDE
|
|
|
87
81
|
|
|
88
82
|
## 0.6.16 · 安装查询来源与失败诊断
|
|
89
83
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
整个查询(配置读取、配置源顺序查询、JSON 读回)共享 30000ms 上限。到期 abort 并报 `REGISTRY_LOOKUP_TIMEOUT`,不重试、不在超时后继续 fallback。只有 DSH 规则允许的网络/未找到失败才查询其已配置后继源;HTTP 认证/权限拒绝及无效 JSON 不换源。包版本稳定性策略、受控 CLI、读回、补偿、restart-required 行为保留。
|
|
93
|
-
|
|
94
|
-
原生 lookup 异常包为 `REGISTRY_LOOKUP_FAILED`,原 Error 保留于 cause;已知具名码保留。`library.*-failed.details.diagnostic` 最多4001字符,含脱敏异常类型/消息/cause.code 与实际 registry configuration/fetch/readback、CLI run、profile readback 阶段;CLI 非零另含 exit、signal 与 stderr/输出摘要。同一摘要及 operationId 写宿主 logger.warn(logger失效时安全console),UI已有可展开技术详情显示,并提示检查 DSH 源设置/网络后手动重试。不记录请求头、正文、环境、stack 或任意 details;不猜历史丢失的原错。
|
|
84
|
+
D1: DSH suite installation and upgrades use only @hanamesh/hanamesh. Core owns the bundle metadata and exact three dependency targets. A confirmed strict CLI add changes the bundle once; readback checks its saved version, activation and locked physical children. The suite display version is the bundle version. Ordinary market install/remove denies the bundle.
|
|
95
85
|
|
|
96
|
-
规则模块只由宿主公开exports提供;普通DSH用与manager版本查询相同createRequire(anchor),Desktop限已证明的runtimeDir与匹配版本。没有新增manager依赖/peer、没有生产规则副本;无法定位/加载规则或端口不完整均REGISTRY_CONFIG_UNAVAILABLE。钉SHA的rc.2规则仅位于tests/fixtures,不进入发布包。
|
|
97
86
|
|
|
98
|
-
|
|
87
|
+
A2 0.6.22:普通插件必须有 Indexer 已审核的 installMethods 和 oneClickInstall.allowed:true;仅执行其 npm 精确版本或完整 GitHub SHA。缺目标具名拒绝,不根据包名查可变版本标签。CLI 使用显式 library.registry(若有),否则保留宿主原生 registry 配置。删除普通插件按包名内部直装方法、元数据查询及其专用设置/规则加载。套件仅透传 Core installCommand。安装失败保留脱敏 CLI/读回诊断及补偿结果;精确版本发布后即可原生验收。
|
package/docs/LICENSES.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": {
|
|
3
3
|
"name": "@hanamesh/dsh-app-host",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.24",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"source": "git+https://github.com/yzsnstotz/hanamesh-plugin-app-host.git",
|
|
7
7
|
"purpose": "Application ownership, view leases, Router forwarding, and application library for official DSH"
|
|
@@ -20,107 +20,113 @@
|
|
|
20
20
|
"distribution": "bundleDependencies; original LICENSE at node_modules/@hanamesh/lib-provision/LICENSE"
|
|
21
21
|
},
|
|
22
22
|
"zod": {
|
|
23
|
-
"version": "4.
|
|
23
|
+
"version": "4.4.3",
|
|
24
24
|
"license": "MIT",
|
|
25
|
-
"source": "https://registry.npmjs.org/zod/-/zod-4.
|
|
25
|
+
"source": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
|
|
26
26
|
"purpose": "Runtime snapshot validation",
|
|
27
27
|
"usedAs": [
|
|
28
28
|
"dependencies"
|
|
29
29
|
],
|
|
30
30
|
"specs": {
|
|
31
|
-
"dependencies": "4.
|
|
31
|
+
"dependencies": "4.4.3"
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"@deepseek-ai/cordis": {
|
|
35
|
-
"version": "4.0
|
|
35
|
+
"version": "4.1.0",
|
|
36
36
|
"license": "MIT",
|
|
37
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.
|
|
37
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.1.0.tgz",
|
|
38
38
|
"purpose": "Official DSH plugin lifecycle and service container",
|
|
39
39
|
"usedAs": [
|
|
40
40
|
"peerDependencies",
|
|
41
41
|
"devDependencies"
|
|
42
42
|
],
|
|
43
43
|
"specs": {
|
|
44
|
-
"peerDependencies": ">=4.0.4 <4.
|
|
45
|
-
"devDependencies": "4.0
|
|
44
|
+
"peerDependencies": ">=4.0.4 <4.2.0-0 || >=4.0.5-alpha.1 <4.2.0-0",
|
|
45
|
+
"devDependencies": "4.1.0"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"@deepseek-ai/dsh-storage-domain": {
|
|
49
|
-
"version": "0.2.
|
|
49
|
+
"version": "0.2.2-rc.1",
|
|
50
50
|
"license": "MIT",
|
|
51
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.2.
|
|
51
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.2.2-rc.1.tgz",
|
|
52
52
|
"purpose": "Official DSH persistent storage service",
|
|
53
53
|
"usedAs": [
|
|
54
54
|
"peerDependencies",
|
|
55
55
|
"devDependencies"
|
|
56
56
|
],
|
|
57
57
|
"specs": {
|
|
58
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
59
|
-
"devDependencies": "0.2.
|
|
58
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
59
|
+
"devDependencies": "0.2.2-rc.1"
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"@deepseek-ai/schemastery": {
|
|
63
|
-
"version": "3.
|
|
63
|
+
"version": "3.19.0",
|
|
64
64
|
"license": "MIT",
|
|
65
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.
|
|
65
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.19.0.tgz",
|
|
66
66
|
"purpose": "Official DSH configuration schema service",
|
|
67
67
|
"usedAs": [
|
|
68
68
|
"peerDependencies",
|
|
69
69
|
"devDependencies"
|
|
70
70
|
],
|
|
71
71
|
"specs": {
|
|
72
|
-
"peerDependencies": ">=3.18.4 <3.
|
|
73
|
-
"devDependencies": "3.
|
|
72
|
+
"peerDependencies": ">=3.18.4 <3.20.0-0 || >=3.18.5-alpha.1 <3.20.0-0",
|
|
73
|
+
"devDependencies": "3.19.0"
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"@deepseek-ai/dsh-host-webserver": {
|
|
77
|
-
"version": "0.2.
|
|
77
|
+
"version": "0.2.2-rc.1",
|
|
78
78
|
"license": "MIT",
|
|
79
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.2.
|
|
79
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.2.2-rc.1.tgz",
|
|
80
80
|
"purpose": "Official DSH authenticated HTTP route host",
|
|
81
81
|
"usedAs": [
|
|
82
82
|
"peerDependencies",
|
|
83
83
|
"devDependencies"
|
|
84
84
|
],
|
|
85
85
|
"specs": {
|
|
86
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
87
|
-
"devDependencies": "0.2.
|
|
86
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
87
|
+
"devDependencies": "0.2.2-rc.1"
|
|
88
88
|
}
|
|
89
89
|
},
|
|
90
90
|
"@deepseek-ai/dsh-client-connection": {
|
|
91
|
-
"version": "0.2.
|
|
91
|
+
"version": "0.2.2-rc.1",
|
|
92
92
|
"license": "MIT",
|
|
93
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.2.
|
|
93
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.2.2-rc.1.tgz",
|
|
94
94
|
"purpose": "Official DSH client connection service",
|
|
95
95
|
"usedAs": [
|
|
96
|
-
"peerDependencies"
|
|
96
|
+
"peerDependencies",
|
|
97
|
+
"devDependencies"
|
|
97
98
|
],
|
|
98
99
|
"specs": {
|
|
99
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
100
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
101
|
+
"devDependencies": "0.2.2-rc.1"
|
|
100
102
|
}
|
|
101
103
|
},
|
|
102
104
|
"@deepseek-ai/dsh-client-ui-settings": {
|
|
103
|
-
"version": "0.2.
|
|
105
|
+
"version": "0.2.2-rc.1",
|
|
104
106
|
"license": "MIT",
|
|
105
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.2.
|
|
107
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.2.2-rc.1.tgz",
|
|
106
108
|
"purpose": "Official DSH client settings surface",
|
|
107
109
|
"usedAs": [
|
|
108
|
-
"peerDependencies"
|
|
110
|
+
"peerDependencies",
|
|
111
|
+
"devDependencies"
|
|
109
112
|
],
|
|
110
113
|
"specs": {
|
|
111
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
114
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
115
|
+
"devDependencies": "0.2.2-rc.1"
|
|
112
116
|
}
|
|
113
117
|
},
|
|
114
118
|
"@deepseek-ai/dsh-client-locale": {
|
|
115
|
-
"version": "0.2.
|
|
119
|
+
"version": "0.2.2-rc.1",
|
|
116
120
|
"license": "MIT",
|
|
117
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.2.
|
|
121
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.2.2-rc.1.tgz",
|
|
118
122
|
"purpose": "Official DSH client localization",
|
|
119
123
|
"usedAs": [
|
|
120
|
-
"peerDependencies"
|
|
124
|
+
"peerDependencies",
|
|
125
|
+
"devDependencies"
|
|
121
126
|
],
|
|
122
127
|
"specs": {
|
|
123
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
128
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
129
|
+
"devDependencies": "0.2.2-rc.1"
|
|
124
130
|
}
|
|
125
131
|
},
|
|
126
132
|
"react": {
|
|
@@ -136,87 +142,87 @@
|
|
|
136
142
|
}
|
|
137
143
|
},
|
|
138
144
|
"@deepseek-ai/dsh-scope": {
|
|
139
|
-
"version": "0.2.
|
|
145
|
+
"version": "0.2.2-rc.1",
|
|
140
146
|
"license": "MIT",
|
|
141
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.2.
|
|
147
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.2.2-rc.1.tgz",
|
|
142
148
|
"purpose": "Build and test fixture for official DSH scopes",
|
|
143
149
|
"usedAs": [
|
|
144
150
|
"devDependencies"
|
|
145
151
|
],
|
|
146
152
|
"specs": {
|
|
147
|
-
"devDependencies": "0.2.
|
|
153
|
+
"devDependencies": "0.2.2-rc.1"
|
|
148
154
|
}
|
|
149
155
|
},
|
|
150
156
|
"@deepseek-ai/dsh-session": {
|
|
151
|
-
"version": "0.2.
|
|
157
|
+
"version": "0.2.2-rc.1",
|
|
152
158
|
"license": "MIT",
|
|
153
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.2.
|
|
159
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.2.2-rc.1.tgz",
|
|
154
160
|
"purpose": "Build and test fixture for official DSH sessions",
|
|
155
161
|
"usedAs": [
|
|
156
162
|
"devDependencies"
|
|
157
163
|
],
|
|
158
164
|
"specs": {
|
|
159
|
-
"devDependencies": "0.2.
|
|
165
|
+
"devDependencies": "0.2.2-rc.1"
|
|
160
166
|
}
|
|
161
167
|
},
|
|
162
168
|
"@deepseek-ai/dsh-session-persistence": {
|
|
163
|
-
"version": "0.2.
|
|
169
|
+
"version": "0.2.2-rc.1",
|
|
164
170
|
"license": "MIT",
|
|
165
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.2.
|
|
171
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.2.2-rc.1.tgz",
|
|
166
172
|
"purpose": "Build and test fixture for official DSH session persistence",
|
|
167
173
|
"usedAs": [
|
|
168
174
|
"devDependencies"
|
|
169
175
|
],
|
|
170
176
|
"specs": {
|
|
171
|
-
"devDependencies": "0.2.
|
|
177
|
+
"devDependencies": "0.2.2-rc.1"
|
|
172
178
|
}
|
|
173
179
|
},
|
|
174
180
|
"@deepseek-ai/dsh-session-persistence-jsonl": {
|
|
175
|
-
"version": "0.2.
|
|
181
|
+
"version": "0.2.2-rc.1",
|
|
176
182
|
"license": "MIT",
|
|
177
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.2.
|
|
183
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.2.2-rc.1.tgz",
|
|
178
184
|
"purpose": "Build and test fixture for official DSH JSONL session persistence",
|
|
179
185
|
"usedAs": [
|
|
180
186
|
"devDependencies"
|
|
181
187
|
],
|
|
182
188
|
"specs": {
|
|
183
|
-
"devDependencies": "0.2.
|
|
189
|
+
"devDependencies": "0.2.2-rc.1"
|
|
184
190
|
}
|
|
185
191
|
},
|
|
186
192
|
"@deepseek-ai/dsh-session-projection": {
|
|
187
|
-
"version": "0.2.
|
|
193
|
+
"version": "0.2.2-rc.1",
|
|
188
194
|
"license": "MIT",
|
|
189
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.2.
|
|
195
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.2.2-rc.1.tgz",
|
|
190
196
|
"purpose": "Build and test fixture for official DSH session projections",
|
|
191
197
|
"usedAs": [
|
|
192
198
|
"devDependencies"
|
|
193
199
|
],
|
|
194
200
|
"specs": {
|
|
195
|
-
"devDependencies": "0.2.
|
|
201
|
+
"devDependencies": "0.2.2-rc.1"
|
|
196
202
|
}
|
|
197
203
|
},
|
|
198
204
|
"@deepseek-ai/dsh-storage": {
|
|
199
|
-
"version": "0.2.
|
|
205
|
+
"version": "0.2.2-rc.1",
|
|
200
206
|
"license": "MIT",
|
|
201
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.2.
|
|
207
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.2.2-rc.1.tgz",
|
|
202
208
|
"purpose": "Build and test fixture for official DSH storage",
|
|
203
209
|
"usedAs": [
|
|
204
210
|
"devDependencies"
|
|
205
211
|
],
|
|
206
212
|
"specs": {
|
|
207
|
-
"devDependencies": "0.2.
|
|
213
|
+
"devDependencies": "0.2.2-rc.1"
|
|
208
214
|
}
|
|
209
215
|
},
|
|
210
216
|
"@deepseek-ai/dsh-storage-json": {
|
|
211
|
-
"version": "0.2.
|
|
217
|
+
"version": "0.2.2-rc.1",
|
|
212
218
|
"license": "MIT",
|
|
213
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.2.
|
|
219
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.2.2-rc.1.tgz",
|
|
214
220
|
"purpose": "Build and test fixture for official DSH JSON storage",
|
|
215
221
|
"usedAs": [
|
|
216
222
|
"devDependencies"
|
|
217
223
|
],
|
|
218
224
|
"specs": {
|
|
219
|
-
"devDependencies": "0.2.
|
|
225
|
+
"devDependencies": "0.2.2-rc.1"
|
|
220
226
|
}
|
|
221
227
|
},
|
|
222
228
|
"typescript": {
|
|
@@ -262,49 +268,181 @@
|
|
|
262
268
|
}
|
|
263
269
|
},
|
|
264
270
|
"@deepseek-ai/dsh-client-ui-renderer": {
|
|
265
|
-
"version": "0.2.
|
|
271
|
+
"version": "0.2.2-rc.1",
|
|
266
272
|
"license": "MIT",
|
|
267
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.2.
|
|
273
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.2.2-rc.1.tgz",
|
|
268
274
|
"purpose": "Public DSH renderer slots service; official client placement without client changes",
|
|
269
275
|
"usedAs": [
|
|
270
276
|
"peerDependencies",
|
|
271
277
|
"devDependencies"
|
|
272
278
|
],
|
|
273
279
|
"specs": {
|
|
274
|
-
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
275
|
-
"devDependencies": "0.2.
|
|
280
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0 || >=0.2.2-0 <0.3.0-0",
|
|
281
|
+
"devDependencies": "0.2.2-rc.1"
|
|
276
282
|
}
|
|
277
283
|
},
|
|
278
284
|
"@hanamesh/release-platform-gate": {
|
|
279
|
-
"version": "0.1.
|
|
285
|
+
"version": "0.1.12",
|
|
280
286
|
"license": "UNKNOWN: private development tool does not declare a license",
|
|
281
|
-
"source": "file:vendor/hanamesh-release-platform-gate-0.1.
|
|
282
|
-
"purpose": "Development-only
|
|
287
|
+
"source": "file:vendor/hanamesh-release-platform-gate-0.1.12.tgz",
|
|
288
|
+
"purpose": "Development-only R119b PASS platform closure and explicit installer exit qualification gate; never runtime or bundled",
|
|
283
289
|
"usedAs": [
|
|
284
290
|
"devDependencies"
|
|
285
291
|
],
|
|
286
292
|
"specs": {
|
|
287
|
-
"devDependencies": "file:vendor/hanamesh-release-platform-gate-0.1.
|
|
293
|
+
"devDependencies": "file:vendor/hanamesh-release-platform-gate-0.1.12.tgz"
|
|
288
294
|
},
|
|
289
|
-
"sourceCommit": "
|
|
290
|
-
"archiveSha256": "
|
|
291
|
-
"reviewDocs": "
|
|
295
|
+
"sourceCommit": "95e54102f9380ea2e8e4d8a2e36eacd387c3f7e7",
|
|
296
|
+
"archiveSha256": "caf78747649b1dd37cbe9ba331351c81f94a48dc9e779aee83c75336140068d1",
|
|
297
|
+
"reviewDocs": "a24716374e2d35b8dfaa21131ae654f8b141ba67"
|
|
292
298
|
},
|
|
293
299
|
"@hanamesh/core": {
|
|
294
|
-
"version": "0.3.
|
|
300
|
+
"version": "0.3.33",
|
|
295
301
|
"license": "MIT",
|
|
296
|
-
"source": "
|
|
302
|
+
"source": "file:vendor/hanamesh-core-0.3.33.tgz",
|
|
297
303
|
"purpose": "Development-only public Core suite declaration and provider-owned install command for clean CI; never runtime or bundled",
|
|
298
304
|
"usedAs": [
|
|
299
305
|
"devDependencies"
|
|
300
306
|
],
|
|
301
307
|
"specs": {
|
|
302
|
-
"devDependencies": "
|
|
308
|
+
"devDependencies": "file:vendor/hanamesh-core-0.3.33.tgz"
|
|
303
309
|
},
|
|
304
|
-
"sourceCommit": "
|
|
305
|
-
"archiveSha256": "
|
|
310
|
+
"sourceCommit": "969a89a1f7e383fca7d6aefa7f27507d3a1605d5",
|
|
311
|
+
"archiveSha256": "088cf6a7b7575fa1d22116d6af8a6b0312fbbb825c50d9bf38f0447ef36c7c78",
|
|
306
312
|
"licenseNotice": "MIT License\n\nCopyright (c) 2026 HanaMesh\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
|
|
307
313
|
"licenseSha256": "cd29e05178eecb3207c494901de7d41785a7b31216e94ab37f3e104e93f3f3b1"
|
|
314
|
+
},
|
|
315
|
+
"@deepseek-ai/cordis-plugin-loader": {
|
|
316
|
+
"version": "1.1.0",
|
|
317
|
+
"license": "MIT",
|
|
318
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-loader/-/cordis-plugin-loader-1.1.0.tgz",
|
|
319
|
+
"purpose": "Official host lifecycle development prerequisite",
|
|
320
|
+
"usedAs": [
|
|
321
|
+
"devDependencies"
|
|
322
|
+
],
|
|
323
|
+
"specs": {
|
|
324
|
+
"devDependencies": "1.1.0"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"@deepseek-ai/cordis-plugin-include": {
|
|
328
|
+
"version": "1.1.0",
|
|
329
|
+
"license": "MIT",
|
|
330
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-include/-/cordis-plugin-include-1.1.0.tgz",
|
|
331
|
+
"purpose": "Official host lifecycle development prerequisite",
|
|
332
|
+
"usedAs": [
|
|
333
|
+
"devDependencies"
|
|
334
|
+
],
|
|
335
|
+
"specs": {
|
|
336
|
+
"devDependencies": "1.1.0"
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"@deepseek-ai/cordis-plugin-group": {
|
|
340
|
+
"version": "1.1.0",
|
|
341
|
+
"license": "MIT",
|
|
342
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-group/-/cordis-plugin-group-1.1.0.tgz",
|
|
343
|
+
"purpose": "Official host lifecycle development prerequisite",
|
|
344
|
+
"usedAs": [
|
|
345
|
+
"devDependencies"
|
|
346
|
+
],
|
|
347
|
+
"specs": {
|
|
348
|
+
"devDependencies": "1.1.0"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"@deepseek-ai/dsh-app-boot": {
|
|
352
|
+
"version": "0.2.2-rc.1",
|
|
353
|
+
"license": "MIT",
|
|
354
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-app-boot/-/dsh-app-boot-0.2.2-rc.1.tgz",
|
|
355
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
356
|
+
"usedAs": [
|
|
357
|
+
"devDependencies"
|
|
358
|
+
],
|
|
359
|
+
"specs": {
|
|
360
|
+
"devDependencies": "0.2.2-rc.1"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"@deepseek-ai/dsh-client-ui-primitives": {
|
|
364
|
+
"version": "0.2.2-rc.1",
|
|
365
|
+
"license": "MIT",
|
|
366
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-primitives/-/dsh-client-ui-primitives-0.2.2-rc.1.tgz",
|
|
367
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
368
|
+
"usedAs": [
|
|
369
|
+
"devDependencies"
|
|
370
|
+
],
|
|
371
|
+
"specs": {
|
|
372
|
+
"devDependencies": "0.2.2-rc.1"
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
"@deepseek-ai/dsh-client-ui-sidebar": {
|
|
376
|
+
"version": "0.2.2-rc.1",
|
|
377
|
+
"license": "MIT",
|
|
378
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar/-/dsh-client-ui-sidebar-0.2.2-rc.1.tgz",
|
|
379
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
380
|
+
"usedAs": [
|
|
381
|
+
"devDependencies"
|
|
382
|
+
],
|
|
383
|
+
"specs": {
|
|
384
|
+
"devDependencies": "0.2.2-rc.1"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
"@deepseek-ai/dsh-typert-protocol": {
|
|
388
|
+
"version": "0.2.2-rc.1",
|
|
389
|
+
"license": "MIT",
|
|
390
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-protocol/-/dsh-typert-protocol-0.2.2-rc.1.tgz",
|
|
391
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
392
|
+
"usedAs": [
|
|
393
|
+
"devDependencies"
|
|
394
|
+
],
|
|
395
|
+
"specs": {
|
|
396
|
+
"devDependencies": "0.2.2-rc.1"
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"@deepseek-ai/dsh-util-file-drag": {
|
|
400
|
+
"version": "0.2.2-rc.1",
|
|
401
|
+
"license": "MIT",
|
|
402
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-util-file-drag/-/dsh-util-file-drag-0.2.2-rc.1.tgz",
|
|
403
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
404
|
+
"usedAs": [
|
|
405
|
+
"devDependencies"
|
|
406
|
+
],
|
|
407
|
+
"specs": {
|
|
408
|
+
"devDependencies": "0.2.2-rc.1"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"@shikijs/langs": {
|
|
412
|
+
"version": "4.4.3",
|
|
413
|
+
"license": "MIT",
|
|
414
|
+
"source": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.3.tgz",
|
|
415
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
416
|
+
"usedAs": [
|
|
417
|
+
"devDependencies"
|
|
418
|
+
],
|
|
419
|
+
"specs": {
|
|
420
|
+
"devDependencies": "4.4.3"
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
"@types/node": {
|
|
424
|
+
"version": "24.13.4",
|
|
425
|
+
"license": "MIT",
|
|
426
|
+
"source": "https://registry.npmjs.org/@types/node/-/node-24.13.4.tgz",
|
|
427
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
428
|
+
"usedAs": [
|
|
429
|
+
"devDependencies"
|
|
430
|
+
],
|
|
431
|
+
"specs": {
|
|
432
|
+
"devDependencies": "24.13.4"
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"@types/js-yaml": {
|
|
436
|
+
"version": "4.0.9",
|
|
437
|
+
"license": "MIT",
|
|
438
|
+
"source": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz",
|
|
439
|
+
"purpose": "Declared public host type/build prerequisite",
|
|
440
|
+
"usedAs": [
|
|
441
|
+
"devDependencies"
|
|
442
|
+
],
|
|
443
|
+
"specs": {
|
|
444
|
+
"devDependencies": "4.0.9"
|
|
445
|
+
}
|
|
308
446
|
}
|
|
309
447
|
},
|
|
310
448
|
"downloadedRuntimes": {
|
package/docs/SECURITY.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
D3(编排11-09授权):仅公开install-target的有效匿名GET/GET预检对名单外HTTP(S) Origin给精确CORS,披露固定ORIGIN_DENIED与本机拒绝监听存在,不披露客户端能力、安装或允许名单。预检204只使浏览器继续读取拒绝;PNA true响应仅在对应请求头为true时出现。其他接口/Host/凭据/iframe边界不变。详见INSTALL_TARGET.md。
|
|
2
|
+
|
|
3
|
+
0.6.23:安装状态只在原显式同意之后自动发现当前用户的官方 CLI;不读认证/聊天/配置文件、不修改用户配置。登录 shell 仅输出白名单PATH/管理器/XDG路径的封装JSON,未复制完整环境或模型/API token;正常shell stderr不当失败,插件清单仍要求无stderr。监督器保留管理器PATH及原XDG值/缺省,仅临时工作目录和TMP隔离;CLI 仍限版本与插件/市场只读清单,版本下限和既有 JSON 校验双门。Windows npm shim 解析至具名官方 JS,绝不经 cmd 执行。详见 INSTALLATION_STATUS.md。
|
|
4
|
+
|
|
1
5
|
0.6.7 installation-status is a separately consented read capability: exact existing loopback Host/approved Origin, credentials omitted, strict POST body before any reader. Core is authoritative; CLI executable/profile/target/budgets are static trusted settings, never browser input. Official list output is whitelisted and no raw paths, unrelated inventory or errors leave the host. A live detached IPC anchor owns cancellation and parent-disconnect group cleanup; no cached installed answer. See INSTALLATION_STATUS.md for exact protocol and scope limits.
|
|
2
6
|
|
|
3
7
|
D-230: failed activation releases only resources acquired by that AppHost activation, including partially registered routes and optional-service listeners. Once-only releases also serve normal Cordis unload. All failed-startup releases are attempted in reverse order; APPHOST_CLEANUP_FAILED names the internal resource without raw errors or credentials, and logger failures cannot replace the original activation error. No authentication, origin, lease, application or browser policy is relaxed.
|
|
@@ -8,7 +12,7 @@ D-214: verification is trusted producer/client-view configuration, never a Targe
|
|
|
8
12
|
|
|
9
13
|
# 安全与运行边界
|
|
10
14
|
|
|
11
|
-
0.6.
|
|
15
|
+
0.6.22 固定目标安装(A2):仅消费 Indexer 的完整 SHA/包名/子目录/构建许可,且与 App-host 当前启用目录逐字段核对。条目必须有 installMethods 和 oneClickInstall.allowed:true,并选中其中的固定目标;缺方法、未获准或无匹配目标即 NOT_INSTALLABLE,不从 npm 展示名回退解析 latest。HanaMesh 视图拒绝退休的 latestVersion/license,确认页和升级按钮不显示目录版本;npm 升级只比较固定目标 version 与已装实际版本。网站或客户端的 installTarget 是预期值,不是任意执行源;未知字段、浮动 ref、参数注入/越界目录拒绝,套件保护名单同样适用于 Git 包。既有确认回传完整目标,目录变更不得偷换 SHA 或放行额外脚本。官方 CLI 用 argv,不执行采集来源的 shell command;受控独立 Node、Git helper 与监测边界不变。脚本许可由 pnpm 管理并可能持久化,安装失败保留具体 build-permissions 残留,不手改策略、不冒充恢复。仍不是 OS 沙箱。
|
|
12
16
|
|
|
13
17
|
## 可信边界
|
|
14
18
|
|
|
@@ -89,3 +93,14 @@ B17 候选的套件来源选择仅在 AppHost 自有同源已准入设置端点
|
|
|
89
93
|
0.6.16:只消费 DSH 公开源事实和公开排序/后继许可规则,不读 .npmrc、凭据、私有服务字段;配置源与受控 CLI 使用同一选择;null项沿用pnpm自有配置,不显式传registry。30秒上限只用于本次安装前查询,超时终止且不重试;配置源的顺序由 DSH 决定。诊断只投影脱敏的类型/消息/code/cause链及已知CLI字段,同时进既有UI和宿主日志;URL用户信息、全部查询值、Authorization/Cookie、token/secret均删除,限4001字符,不传任意details/stack/响应正文。
|
|
90
94
|
|
|
91
95
|
公开registry规则只从已证明的宿主manager安装位置加载,复用原版本守卫;不安装第二份manager、不复制生产规则、不从任意浏览器路径加载模块。tests/fixtures的原始MIT规则与SHA/许可证只作测试,不进发布包。
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## Local snapshot publication on Windows
|
|
99
|
+
|
|
100
|
+
The optional local `AtomicFileStore` flushes the newly written snapshot file, closes it, then renames it within the same directory on every platform. On Linux and macOS it additionally opens and synchronizes the containing directory before acknowledging publication. Node does not provide the directory-open/fsync operation on Windows, so that extra directory flush is not attempted there. Windows still publishes a complete file image and retains real process-kill/crash-cut checks; this does not promise that the renamed directory entry survives power loss or an OS/storage crash. A file-sync failure is never ignored, and a failure after rename remains `COMMIT_UNCERTAIN`. The normal DSH storage-domain bridge keeps its provider's publication contract.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
On Windows the optional Coding OAuth Gateway **file** source remains unreachable: Node's POSIX mode bits cannot establish a private Windows ACL, so AppHost rejects that source before reading its contents. `chmod(0600)` is never treated as ACL proof. The authenticated HTTP provider is the supported alternative; no secret is silently imported from an unverified file.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
An explicitly configured existing standalone Node on Windows x64 may be used by the controlled CLI supervisor. It is executed only for the fixed Node probe, with an empty PATH, bounded output and a two-second deadline; the response must match the selected OS/architecture, Node 24 version floor and absence of Electron. That external selection does not enable managed downloads/preparation or owned application launch.
|