@hanamesh/dsh-app-host 0.2.0-rc.2 → 0.6.12
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/LICENSE +4 -7
- package/README.md +136 -13
- package/consistency.json +41 -6
- package/dist/catalog/fixtures/consumer.json +35 -0
- package/dist/catalog/fixtures/provider.json +107 -0
- package/dist/catalog/suite.d.ts +4 -0
- package/dist/catalog/suite.js +50 -0
- package/dist/client-ui.d.ts +21 -3
- package/dist/client-ui.js +961 -94
- package/dist/client.js +2 -2
- package/dist/control-origin.js +9 -0
- package/dist/descriptor.js +6 -0
- package/dist/dsh-compat.js +6 -0
- package/dist/dsh.d.ts +21 -4
- package/dist/dsh.js +149 -58
- package/dist/gateway.js +140 -11
- package/dist/git-process.js +64 -0
- package/dist/git-worker.js +50 -0
- package/dist/index.d.ts +9 -7
- package/dist/install-target/fixtures/catalog.json +58 -0
- package/dist/install-target/fixtures/consumer-cases.json +148 -0
- package/dist/install-target/fixtures/install-failure-cases.json +58 -0
- package/dist/install-target/fixtures/provider-cases.json +618 -0
- package/dist/install-target/fixtures/reference-consumer.js +37 -0
- package/dist/install-target/fixtures/source-profile.js +123 -0
- package/dist/install-target/harness.js +43 -0
- package/dist/install-target/run.js +28 -0
- package/dist/install-target/suite.d.ts +19 -0
- package/dist/install-target/suite.js +328 -0
- package/dist/installation-status.d.ts +21 -0
- package/dist/installation-status.js +2 -0
- package/dist/library/catalog.js +134 -19
- package/dist/library/client-identity.js +31 -0
- package/dist/library/desktop-cli.js +7 -0
- package/dist/library/domain.js +3 -1
- package/dist/library/handoff.js +246 -0
- package/dist/library/install.js +138 -32
- package/dist/library/installation-cli.js +48 -0
- package/dist/library/installation-command-worker.js +27 -0
- package/dist/library/installation-status-http.js +26 -0
- package/dist/library/installation-status.js +91 -0
- package/dist/library/installation-worker.js +44 -0
- package/dist/library/locate.js +70 -9
- package/dist/library/node-binding.js +11 -0
- package/dist/library/recovery.js +66 -0
- package/dist/library/routes.js +90 -14
- package/dist/library/service.js +123 -27
- package/dist/library/suite.js +130 -0
- package/dist/manager.js +24 -8
- package/dist/node-runtime/domain.js +6 -0
- package/dist/node-runtime/releases.json +59 -0
- package/dist/node-runtime/service.js +101 -0
- package/dist/owned-probe-diagnostic.js +53 -0
- package/dist/router/receipts.js +8 -11
- package/dist/router/routes.js +7 -7
- package/dist/routes.js +9 -8
- package/dist/runtime.js +11 -1
- package/dist/usage-evidence.js +18 -86
- package/dist/workspace-origin.js +17 -0
- package/docs/APP_PACKAGE.md +4 -0
- package/docs/CONTRACT.md +68 -10
- package/docs/DSH_COMPATIBILITY.md +94 -0
- package/docs/DSH_INTEGRATION.md +41 -0
- package/docs/INSTALLATION_STATUS.md +96 -0
- package/docs/INSTALL_TARGET.md +130 -0
- package/docs/LIBRARY.md +44 -3
- package/docs/LICENSES.json +189 -61
- package/docs/PROVENANCE.json +53 -12
- package/docs/SECURITY.md +31 -0
- package/node_modules/@hanamesh/lib-provision/LICENSE +15 -0
- package/node_modules/@hanamesh/lib-provision/README.md +134 -0
- package/node_modules/@hanamesh/lib-provision/THIRD_PARTY_NOTICES.md +17 -0
- package/node_modules/@hanamesh/lib-provision/bin/hanamesh-provision.js +13 -0
- package/node_modules/@hanamesh/lib-provision/consistency.json +20 -0
- package/node_modules/@hanamesh/lib-provision/contract/CHANGELOG.md +5 -0
- package/node_modules/@hanamesh/lib-provision/contract/conformance.mjs +80 -0
- package/node_modules/@hanamesh/lib-provision/contract/fixtures/consumer.json +9 -0
- package/node_modules/@hanamesh/lib-provision/contract/fixtures/provider.json +11 -0
- package/node_modules/@hanamesh/lib-provision/contract/lib-provision.schema.json +47 -0
- package/node_modules/@hanamesh/lib-provision/package.json +50 -0
- package/package.json +81 -33
- package/schemas/catalog-provider-page.schema.json +4 -2
- package/schemas/catalog-source.schema.json +9 -7
- package/schemas/install-target.schema.json +298 -0
- package/dist/provision/LICENSE +0 -6
- package/dist/provision/THIRD_PARTY_NOTICES.md +0 -13
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/archive.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/archive.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/check.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/check.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/checkpoints.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/checkpoints.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/cli.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/cli.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/download.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/download.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/errors.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/errors.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/extract.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/extract.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/fsutil.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/fsutil.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/index.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/index.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/ledger.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/ledger.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/manifest.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/manifest.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/paths.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/paths.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/platform.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/platform.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/provision.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/provision.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/tar.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/tar.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/types.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/types.js +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/zip.d.ts +0 -0
- /package/{dist/provision → node_modules/@hanamesh/lib-provision/lib}/zip.js +0 -0
package/docs/LIBRARY.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
## 目录源
|
|
10
10
|
|
|
11
11
|
- `library.fixture` 只用于受控验收;内容必须符合 `schemas/catalog-provider-page.schema.json`。
|
|
12
|
-
- `library.sources` **未配置**时默认为 HanaMesh 目录源 `https://market.hanamesh.com/catalog-source.json`(rc.26;显式 `[]` =
|
|
12
|
+
- `library.sources` **未配置**时默认为 HanaMesh 目录源 `https://market.hanamesh.com/catalog-source.json?view=hanamesh`(rc.26;显式 `[]` = 不要来源);可有多项,但浏览时必须恰好启用一项。目录 manifest 接受标准端口 HTTPS;本机回环 127.0.0.1、::1、localhost 另接受任意端口 HTTP(Node URL 解析后精确匹配主机名,安全上下文回环例外)。无凭据/fragment,仅允许可选查询 view=hanamesh;endpoint 和重定向必须保持完整同源(协议、主机、端口),不把主机别名互换。新默认仅在初始 revision=0 且来源为空时播种,已保存旧来源、自定义来源和手动清空列表均不自动改写。
|
|
13
13
|
- 请求固定 `Accept: application/json` 与 `Accept-Encoding: identity`;最多三次同源跳转,拒绝压缩响应与超过 2 MiB 的响应。
|
|
14
14
|
- `categories` 含 `hanamesh-app` 且 `package.registry` 为 `npm` 的条目是应用(安装后读 `app.json`、供给 runtime);其它 `package.registry` 为 `npm` 的条目是插件(rc.28 起同样可装卸,只跑 `dsh plugin add/remove`);无 npm 包的条目(repository-only)只展示。
|
|
15
15
|
|
|
@@ -17,7 +17,9 @@
|
|
|
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.
|
|
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
|
+
rc.10:add 之后的读回、定义校验或 provision 失败按基线补偿(新装 `dsh plugin remove`、升级 `dsh plugin add` 原规格,runtime 按 ownership 回收或按原定义重供),逐项读回后在 `library.install-failed` 的 `recovery` 里报告 `not-needed`/`restored`/`failed`;详见 `INSTALL_TARGET.md`「安装失败后的恢复」。
|
|
21
23
|
|
|
22
24
|
安装/卸载完成只返回 `restart-required`,绝不静默重启 DSH。卸载只删除包与 lib-provision 账本认领的 runtime 文件,保留 `<dataRoot>` 下应用数据;彻底删除需用户手动处理对应数据目录。
|
|
23
25
|
|
|
@@ -42,4 +44,43 @@
|
|
|
42
44
|
|
|
43
45
|
- 市场页默认 `category=`(全部);筛选:全部 / 应用(`hanamesh-app`)/ 插件(客户端视图:本页非应用的 npm 条目)/ 目录页里出现过的类别(累积自 `categories`)。路由 `/hanamesh/library` 的缺省 `category=hanamesh-app` 不变(向后兼容)。
|
|
44
46
|
- 卡片:`kind · 发布者 · latestVersion · 类别`;已装行显示状态与版本;「升级到 x.y.z」出现在 `upgradeAvailable` 时;插件「卸载」走 `plugins/uninstall`。页面底部「已安装」列出应用与插件(含 bundle 未启用为 profile 层的提示)。
|
|
45
|
-
-
|
|
47
|
+
- 「需重新打开客户端」横幅:任一装卸操作完成后,或列表 `restartRequired` 为真时显示;所有渠道均提示完全退出 HanaMesh 客户端或 DSH 后重新打开,关闭窗口不等于退出。不提供旧壳深链或 postMessage 重启桥;只有正式宿主重启 API 供给后才另行接入。
|
|
48
|
+
|
|
49
|
+
### 0.3.0 · catalog major compatibility
|
|
50
|
+
|
|
51
|
+
Catalog `manifestVersion` / `schemaVersion` accept valid SemVer with major 1, including additive minor/patch inputs; different majors and malformed versions remain refused. Schema field checks and HTTPS/same-origin controls remain enforced. Known optional additions (attribution notice / item updatedAt) are preserved; arbitrary unknown fields remain invalid. Install-target `contractVersion: "1"`, storage schema numbers and installed-package exact readback are distinct fields and retain their original grammar. This does not claim that a 0.x package caret includes every minor.
|
|
52
|
+
|
|
53
|
+
Both SOURCE fixture sets and suites ship as `@hanamesh/dsh-app-host/catalog/suite` (`runCatalogProviderSuite`, `runCatalogConsumerSuite`) with schema exports under `catalog/schema/`. The default consumer suite drives this package's actual catalog loader against labelled transport fixtures; it is not a live market or product acceptance gate. Version grammar follows [SemVer 2.0.0](https://semver.org/).
|
|
54
|
+
|
|
55
|
+
## HanaMesh 套件
|
|
56
|
+
|
|
57
|
+
市场只显示一张官方、不计分的「HanaMesh 套件」卡。完整性只显示 Core 的 `completeness`,同时展示 `installed` 的要求范围、实际版本、状态和 `blocked` 的具名原因;Core 缺席或读取失败时完整性为 unknown,并保留物理包版本供诊断。Core、使用记录、应用库不再分别作为普通可安装卡。品牌插件只属于 HanaMesh 自有客户端。
|
|
58
|
+
|
|
59
|
+
DSH 首次安装或缺组件时,完全退出客户端后执行同一行,再重新打开:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
dsh plugin --profile desktop add --save-exact 'github:yzsnstotz/hanamesh-core#main' 'github:yzsnstotz/hanamesh-usage#main' 'github:yzsnstotz/hanamesh-plugin-app-host#main'
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
套件版本范围、是否完整、候选来源及兼容/升级规则唯一属于 Core。App-host 只读物理安装版本,不能用它们推导兼容或安装许可;不自行读取 npm latest、计算组件组合、校验候选宿主 peers 或持有 Core 的版本范围副本。普通安装/卸载接口继续拒绝套件包。
|
|
66
|
+
|
|
67
|
+
DSH 入口通过既有 optional injection 监听 `hanameshCore` 出现/卸载,仅消费字符串 protocol `'1'` 的可选 `getSuiteDeclaration`(C-CORE D)。市场事实读取不传 request,不触发候选 registry 网络;查询升级时传入实际执行 `registry`。缺方法、旧 Core 或卸载后明确显示 **Core 未提供套件声明**,「检查兼容升级」不可点;直接查询升级目标返回503 `CORE_SUITE_DECLARATION_MISSING`,不回退 getHealth、内部 profile、旧范围或 registry latest。DTO 形状无效返回 `CORE_SUITE_DECLARATION_INVALID`;具名 Core 错误保持传播,事实读取失败为 unknown。
|
|
68
|
+
|
|
69
|
+
公开 adapter 仅检查 DTO/精确命令的形状与固定三包边界,不重算范围、Node、peer、来源或升级排序。默认展示 `upgrades` 的第一条组合,保留完整 `declarationId`、规范 registry、目标身份/来源/摘要/版本及物理基线;其他候选的 blocked 行不会否决这条 Core 已提供的有效组合。`completeness` 非 complete、来源不符或没有组合分别明确拒绝。`createLibraryInstaller({coreSuitePlan})` 仍是内部归一化执行测试接缝,不是公开 Core DTO、配置项或浏览器权限;替身测试不能证明真实 Core 包接通。
|
|
70
|
+
|
|
71
|
+
本人确认当前计划才执行一次官方 CLI;执行前重读并比较 declarationId、registry、选中组合和 Core 物理基线(checkedAt 不参与比较),再检查磁盘版本及启用清单;改变/撤回即拒绝,不静默重试。安装后按精确 profile/module 版本和启用状态读回,不以 Core 回执冒充实际安装结果。网站只能经允许名单交接此意图。
|
|
72
|
+
|
|
73
|
+
成功须读回三个精确保存的版本、实际解析版本与启用状态,随后完全退出并重新打开客户端。安装命令失败或读回不符时,界面显示实际组件状态、错误与同一行补齐命令;部分变更不冒充成功或未安装,不自动静默重试。
|
|
74
|
+
|
|
75
|
+
套件卡不把 Core 版本当作 agent 套件分发版本:`suite.version` 保持为 Core 实际版本,界面明确标为 Core,组件逐项显示。`unknown` 表示 Core 无法确认事实,不等于组件缺失。预览阶段被 Core 拒绝时说明尚未执行安装,保留具名 blocked 原因;已执行失败仍显示物理读回及修复步骤。网站四渠道面板和 Claude/Codex 安装状态不从 App-host 监听是否存在推断。
|
|
76
|
+
|
|
77
|
+
### 0.6.8 · HanaMesh 目录展示字段
|
|
78
|
+
|
|
79
|
+
HanaMesh 视图原样保留可选 `official:boolean`(包括 false)与 C-INDEXER-CATALOG 的 `SuitePresentationDTO`;suite 的角色、组件、版本事实及 GitHub 精确 ref 按公开形状逐层校验,未知字段和畸形字段仍拒绝。历史可选版本事实缺省时不补猜。旧 major-1 视图不增加这些字段。该展示信息不构成安装权限;兼容与升级仍只读取公开 Core 声明。
|
|
80
|
+
|
|
81
|
+
### 宿主主题(2026-10-21候选)
|
|
82
|
+
|
|
83
|
+
市场覆盖页、内嵌应用框、表单控件与状态提示消费正式 DSH ui-theme 的公开 `--dsw-alias-bg-layer-2`、`label-primary/secondary`、`border-l2`、`state-error/success/warn/business-*` token,不写白底黑字或新增全局色。主题值与切换仍归宿主;不修改客户端或覆盖其它插件。缺主题提供方时不能把本候选截图当正式宿主支持。
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
0.6.12:目录条目的展示/跳转链接(`sourceLinks.sourceUrl`、`homepage`、`repository.url`、`publisher.url`)接受 fragment 并原样保留;目录自身 attribution 展示链接亦保留 fragment。manifest 来源和 `transport.endpoint` 等请求 URL 校验不变。单条非法仍拒绝整个 provider page,不返回部分结果。
|
package/docs/LICENSES.json
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": {
|
|
3
3
|
"name": "@hanamesh/dsh-app-host",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.12",
|
|
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"
|
|
8
8
|
},
|
|
9
|
-
"scope": "
|
|
9
|
+
"scope": "AppHost own code and declared dependencies/peers; lib-provision 随包分发、源仓不变; original LICENSE retained; no relicensing.",
|
|
10
10
|
"components": {
|
|
11
11
|
"@hanamesh/lib-provision": {
|
|
12
|
-
"version": "0.
|
|
13
|
-
"license": "
|
|
14
|
-
"source": "vendor/hanamesh-lib-provision-0.
|
|
15
|
-
"purpose": "
|
|
16
|
-
"sha256": "
|
|
12
|
+
"version": "0.2.1",
|
|
13
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
14
|
+
"source": "file:vendor/hanamesh-lib-provision-0.2.1.tgz",
|
|
15
|
+
"purpose": "Runtime provision/remove/ledger API; 随包分发、源仓不变; no inlined copy",
|
|
16
|
+
"sha256": "4217b9fe1be98f6e82437539d1c4c43166ed1f5c292efff100733e0cb09530e9",
|
|
17
|
+
"specs": {
|
|
18
|
+
"dependencies": "file:vendor/hanamesh-lib-provision-0.2.1.tgz"
|
|
19
|
+
},
|
|
20
|
+
"sourceCommit": "575d63fb70e08c47e980dbf25f07921a7ba5aa2a",
|
|
21
|
+
"distribution": "bundleDependencies; original LICENSE at node_modules/@hanamesh/lib-provision/LICENSE",
|
|
22
|
+
"originalSource": "git+https://github.com/yzsnstotz/hanamesh-lib-provision.git#575d63fb70e08c47e980dbf25f07921a7ba5aa2a",
|
|
23
|
+
"archiveSha256": "4217b9fe1be98f6e82437539d1c4c43166ed1f5c292efff100733e0cb09530e9"
|
|
17
24
|
},
|
|
18
25
|
"zod": {
|
|
19
26
|
"version": "4.5.4",
|
|
@@ -22,83 +29,102 @@
|
|
|
22
29
|
"purpose": "Runtime snapshot validation",
|
|
23
30
|
"usedAs": [
|
|
24
31
|
"dependencies"
|
|
25
|
-
]
|
|
32
|
+
],
|
|
33
|
+
"specs": {
|
|
34
|
+
"dependencies": "4.5.4"
|
|
35
|
+
}
|
|
26
36
|
},
|
|
27
37
|
"@deepseek-ai/cordis": {
|
|
28
|
-
"version": "4.0.
|
|
38
|
+
"version": "4.0.5-alpha.1",
|
|
29
39
|
"license": "MIT",
|
|
30
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.
|
|
40
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.5-alpha.1.tgz",
|
|
31
41
|
"purpose": "Official DSH plugin lifecycle and service container",
|
|
32
42
|
"usedAs": [
|
|
33
43
|
"peerDependencies",
|
|
34
44
|
"devDependencies"
|
|
35
|
-
]
|
|
45
|
+
],
|
|
46
|
+
"specs": {
|
|
47
|
+
"peerDependencies": ">=4.0.4 <4.1.0-0 || >=4.0.5-alpha.1 <4.1.0-0",
|
|
48
|
+
"devDependencies": "4.0.5-alpha.1"
|
|
49
|
+
}
|
|
36
50
|
},
|
|
37
51
|
"@deepseek-ai/dsh-storage-domain": {
|
|
38
|
-
"version": "0.2.
|
|
52
|
+
"version": "0.2.1-alpha.2",
|
|
39
53
|
"license": "MIT",
|
|
40
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.2.
|
|
54
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.2.1-alpha.2.tgz",
|
|
41
55
|
"purpose": "Official DSH persistent storage service",
|
|
42
56
|
"usedAs": [
|
|
43
57
|
"peerDependencies",
|
|
44
58
|
"devDependencies"
|
|
45
|
-
]
|
|
59
|
+
],
|
|
60
|
+
"specs": {
|
|
61
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
62
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
63
|
+
}
|
|
46
64
|
},
|
|
47
65
|
"@deepseek-ai/schemastery": {
|
|
48
|
-
"version": "3.18.
|
|
66
|
+
"version": "3.18.5-alpha.1",
|
|
49
67
|
"license": "MIT",
|
|
50
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.
|
|
68
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.5-alpha.1.tgz",
|
|
51
69
|
"purpose": "Official DSH configuration schema service",
|
|
52
70
|
"usedAs": [
|
|
53
71
|
"peerDependencies",
|
|
54
72
|
"devDependencies"
|
|
55
|
-
]
|
|
73
|
+
],
|
|
74
|
+
"specs": {
|
|
75
|
+
"peerDependencies": ">=3.18.4 <3.19.0-0 || >=3.18.5-alpha.1 <3.19.0-0",
|
|
76
|
+
"devDependencies": "3.18.5-alpha.1"
|
|
77
|
+
}
|
|
56
78
|
},
|
|
57
79
|
"@deepseek-ai/dsh-host-webserver": {
|
|
58
|
-
"version": "0.2.
|
|
80
|
+
"version": "0.2.1-alpha.2",
|
|
59
81
|
"license": "MIT",
|
|
60
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.2.
|
|
82
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.2.1-alpha.2.tgz",
|
|
61
83
|
"purpose": "Official DSH authenticated HTTP route host",
|
|
62
84
|
"usedAs": [
|
|
63
85
|
"peerDependencies",
|
|
64
86
|
"devDependencies"
|
|
65
|
-
]
|
|
87
|
+
],
|
|
88
|
+
"specs": {
|
|
89
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
90
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
91
|
+
}
|
|
66
92
|
},
|
|
67
93
|
"@deepseek-ai/dsh-client-connection": {
|
|
68
|
-
"version": "0.2.
|
|
94
|
+
"version": "0.2.1-alpha.2",
|
|
69
95
|
"license": "MIT",
|
|
70
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.2.
|
|
96
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.2.1-alpha.2.tgz",
|
|
71
97
|
"purpose": "Official DSH client connection service",
|
|
72
98
|
"usedAs": [
|
|
73
99
|
"peerDependencies"
|
|
74
|
-
]
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"license": "MIT",
|
|
79
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-slots/-/dsh-client-ui-slots-0.2.0-rc.2.tgz",
|
|
80
|
-
"purpose": "Official DSH client UI placement",
|
|
81
|
-
"usedAs": [
|
|
82
|
-
"peerDependencies"
|
|
83
|
-
]
|
|
100
|
+
],
|
|
101
|
+
"specs": {
|
|
102
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
103
|
+
}
|
|
84
104
|
},
|
|
85
105
|
"@deepseek-ai/dsh-client-ui-settings": {
|
|
86
|
-
"version": "0.2.
|
|
106
|
+
"version": "0.2.1-alpha.2",
|
|
87
107
|
"license": "MIT",
|
|
88
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.2.
|
|
108
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.2.1-alpha.2.tgz",
|
|
89
109
|
"purpose": "Official DSH client settings surface",
|
|
90
110
|
"usedAs": [
|
|
91
111
|
"peerDependencies"
|
|
92
|
-
]
|
|
112
|
+
],
|
|
113
|
+
"specs": {
|
|
114
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
115
|
+
}
|
|
93
116
|
},
|
|
94
117
|
"@deepseek-ai/dsh-client-locale": {
|
|
95
|
-
"version": "0.2.
|
|
118
|
+
"version": "0.2.1-alpha.2",
|
|
96
119
|
"license": "MIT",
|
|
97
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.2.
|
|
120
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.2.1-alpha.2.tgz",
|
|
98
121
|
"purpose": "Official DSH client localization",
|
|
99
122
|
"usedAs": [
|
|
100
123
|
"peerDependencies"
|
|
101
|
-
]
|
|
124
|
+
],
|
|
125
|
+
"specs": {
|
|
126
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0"
|
|
127
|
+
}
|
|
102
128
|
},
|
|
103
129
|
"react": {
|
|
104
130
|
"version": "18.3.1",
|
|
@@ -107,70 +133,94 @@
|
|
|
107
133
|
"purpose": "Official DSH client UI peer",
|
|
108
134
|
"usedAs": [
|
|
109
135
|
"peerDependencies"
|
|
110
|
-
]
|
|
136
|
+
],
|
|
137
|
+
"specs": {
|
|
138
|
+
"peerDependencies": "^18.3.1"
|
|
139
|
+
}
|
|
111
140
|
},
|
|
112
141
|
"@deepseek-ai/dsh-scope": {
|
|
113
|
-
"version": "0.2.
|
|
142
|
+
"version": "0.2.1-alpha.2",
|
|
114
143
|
"license": "MIT",
|
|
115
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.2.
|
|
144
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.2.1-alpha.2.tgz",
|
|
116
145
|
"purpose": "Build and test fixture for official DSH scopes",
|
|
117
146
|
"usedAs": [
|
|
118
147
|
"devDependencies"
|
|
119
|
-
]
|
|
148
|
+
],
|
|
149
|
+
"specs": {
|
|
150
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
151
|
+
}
|
|
120
152
|
},
|
|
121
153
|
"@deepseek-ai/dsh-session": {
|
|
122
|
-
"version": "0.2.
|
|
154
|
+
"version": "0.2.1-alpha.2",
|
|
123
155
|
"license": "MIT",
|
|
124
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.2.
|
|
156
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.2.1-alpha.2.tgz",
|
|
125
157
|
"purpose": "Build and test fixture for official DSH sessions",
|
|
126
158
|
"usedAs": [
|
|
127
159
|
"devDependencies"
|
|
128
|
-
]
|
|
160
|
+
],
|
|
161
|
+
"specs": {
|
|
162
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
163
|
+
}
|
|
129
164
|
},
|
|
130
165
|
"@deepseek-ai/dsh-session-persistence": {
|
|
131
|
-
"version": "0.2.
|
|
166
|
+
"version": "0.2.1-alpha.2",
|
|
132
167
|
"license": "MIT",
|
|
133
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.2.
|
|
168
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.2.1-alpha.2.tgz",
|
|
134
169
|
"purpose": "Build and test fixture for official DSH session persistence",
|
|
135
170
|
"usedAs": [
|
|
136
171
|
"devDependencies"
|
|
137
|
-
]
|
|
172
|
+
],
|
|
173
|
+
"specs": {
|
|
174
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
175
|
+
}
|
|
138
176
|
},
|
|
139
177
|
"@deepseek-ai/dsh-session-persistence-jsonl": {
|
|
140
|
-
"version": "0.2.
|
|
178
|
+
"version": "0.2.1-alpha.2",
|
|
141
179
|
"license": "MIT",
|
|
142
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.2.
|
|
180
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.2.1-alpha.2.tgz",
|
|
143
181
|
"purpose": "Build and test fixture for official DSH JSONL session persistence",
|
|
144
182
|
"usedAs": [
|
|
145
183
|
"devDependencies"
|
|
146
|
-
]
|
|
184
|
+
],
|
|
185
|
+
"specs": {
|
|
186
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
187
|
+
}
|
|
147
188
|
},
|
|
148
189
|
"@deepseek-ai/dsh-session-projection": {
|
|
149
|
-
"version": "0.2.
|
|
190
|
+
"version": "0.2.1-alpha.2",
|
|
150
191
|
"license": "MIT",
|
|
151
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.2.
|
|
192
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.2.1-alpha.2.tgz",
|
|
152
193
|
"purpose": "Build and test fixture for official DSH session projections",
|
|
153
194
|
"usedAs": [
|
|
154
195
|
"devDependencies"
|
|
155
|
-
]
|
|
196
|
+
],
|
|
197
|
+
"specs": {
|
|
198
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
199
|
+
}
|
|
156
200
|
},
|
|
157
201
|
"@deepseek-ai/dsh-storage": {
|
|
158
|
-
"version": "0.2.
|
|
202
|
+
"version": "0.2.1-alpha.2",
|
|
159
203
|
"license": "MIT",
|
|
160
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.2.
|
|
204
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.2.1-alpha.2.tgz",
|
|
161
205
|
"purpose": "Build and test fixture for official DSH storage",
|
|
162
206
|
"usedAs": [
|
|
163
207
|
"devDependencies"
|
|
164
|
-
]
|
|
208
|
+
],
|
|
209
|
+
"specs": {
|
|
210
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
211
|
+
}
|
|
165
212
|
},
|
|
166
213
|
"@deepseek-ai/dsh-storage-json": {
|
|
167
|
-
"version": "0.2.
|
|
214
|
+
"version": "0.2.1-alpha.2",
|
|
168
215
|
"license": "MIT",
|
|
169
|
-
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.2.
|
|
216
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.2.1-alpha.2.tgz",
|
|
170
217
|
"purpose": "Build and test fixture for official DSH JSON storage",
|
|
171
218
|
"usedAs": [
|
|
172
219
|
"devDependencies"
|
|
173
|
-
]
|
|
220
|
+
],
|
|
221
|
+
"specs": {
|
|
222
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
223
|
+
}
|
|
174
224
|
},
|
|
175
225
|
"typescript": {
|
|
176
226
|
"version": "5.8.3",
|
|
@@ -179,7 +229,85 @@
|
|
|
179
229
|
"purpose": "Build-time type checking and declarations",
|
|
180
230
|
"usedAs": [
|
|
181
231
|
"devDependencies"
|
|
182
|
-
]
|
|
232
|
+
],
|
|
233
|
+
"specs": {
|
|
234
|
+
"devDependencies": "5.8.3"
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
"@hanamesh/devkit": {
|
|
238
|
+
"version": "0.2.3",
|
|
239
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
240
|
+
"source": "file:vendor/hanamesh-devkit-0.2.3.tgz",
|
|
241
|
+
"purpose": "Development-only centralized tool execution; never imported by runtime; no public peer",
|
|
242
|
+
"usedAs": [
|
|
243
|
+
"devDependencies"
|
|
244
|
+
],
|
|
245
|
+
"specs": {
|
|
246
|
+
"devDependencies": "file:vendor/hanamesh-devkit-0.2.3.tgz"
|
|
247
|
+
},
|
|
248
|
+
"sourceCommit": "e6ccf710369a77c5fbf9ce4810b182727e4f2aa8",
|
|
249
|
+
"licenseNotice": "# HanaMesh distribution notice\n\nThis package contains HanaMesh-owned code. The project owner confirmed that its\nown code may be distributed (D-2026-10-05-02) and directed correction of outdated\nprivate / UNLICENSED package metadata (D-2026-10-05-16, 2026-10-05).\n\nThis notice records that distribution authorization. It does not assign an SPDX\nlicense identifier, adopt MIT or another standard license, or grant additional\nrelicensing rights. Rights not covered by the owner's recorded distribution\nauthorization remain reserved. See LICENSE_RECORD.md for the package name,\nversion, source, purpose and third-party boundaries.\n\nThird-party components retain their existing licenses. No third-party component\nis relicensed by this notice. This metadata change is not an npm publication or\na change to repository visibility.\n",
|
|
250
|
+
"distributionRecord": "# Devkit license and distribution record\n\n| Name | Version | License / authorization | Source | Purpose |\n| --- | --- | --- | --- | --- |\n| @hanamesh/devkit | 0.2.3 | SEE LICENSE IN LICENSE; HanaMesh-owned distribution authorized in D-2026-10-05-02 and D-2026-10-05-16; no new standard license or relicensing grant | yzsnstotz/hanamesh-server-shared, packages/devkit; baseline b2b5c9bb7faa990e3eb9f99007abd6427d62e88b / rc.1 | Development preflight, mutation execution, package verification and toolchain checks |\n\nThe original rc.1 manifest contained private=true and license=UNLICENSED, with no\nstandalone LICENSE text. Those obsolete metadata fields are superseded for rc.2\nby private=false and this explicit distribution notice. The old tarball and\nrecords remain unchanged. 0.2.0 adds Git tag-range installation and the\n`contract/` supply schema, fixtures and suite under the same authorization;\nit still adds no dependency. This package has no dependency or peerDependency and\nships no third-party runtime or compiler. It uses Node standard-library APIs;\nNode itself is supplied by the consumer and is not bundled here.\n\nAuthority: the project owner's 2026-10-05 instruction to correct lib-provision\nand devkit vendor metadata under D-2026-10-05-02, recorded in D-2026-10-05-16.\nThe notice does not extend that instruction into a new general license.\n",
|
|
251
|
+
"licenseSha256": "242b0b71d3a4a91899ccf38fb70f06d151f3f005c3d7ac7d1e4a6c0461dc0e2d",
|
|
252
|
+
"historicalArtifact": {
|
|
253
|
+
"version": "0.2.0",
|
|
254
|
+
"sha256": "de15f0913dd6de5ba9ce96b8d92ea862ec44489eb698628de963cbbead68bc25",
|
|
255
|
+
"sourceCommit": "8f9bcc69cbacf01d97ffe63bbbade4f865e6dd89"
|
|
256
|
+
},
|
|
257
|
+
"originalSource": "git+https://github.com/yzsnstotz/hanamesh-server-shared.git#semver:^0.2.0&path:/packages/devkit",
|
|
258
|
+
"archiveSha256": "40d7ad33b2802677d12111943f3472aa6e4564ba000d48074a32de33ff51c7bb"
|
|
259
|
+
},
|
|
260
|
+
"semver": {
|
|
261
|
+
"version": "7.8.5",
|
|
262
|
+
"license": "ISC",
|
|
263
|
+
"source": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
|
|
264
|
+
"purpose": "Public host compatibility ranges and PluginManager exact-save capability version check",
|
|
265
|
+
"specs": {
|
|
266
|
+
"dependencies": "7.8.5"
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"@deepseek-ai/dsh-client-ui-renderer": {
|
|
270
|
+
"version": "0.2.1-alpha.2",
|
|
271
|
+
"license": "MIT",
|
|
272
|
+
"source": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.2.1-alpha.2.tgz",
|
|
273
|
+
"purpose": "Public DSH renderer slots service; official client placement without client changes",
|
|
274
|
+
"usedAs": [
|
|
275
|
+
"peerDependencies",
|
|
276
|
+
"devDependencies"
|
|
277
|
+
],
|
|
278
|
+
"specs": {
|
|
279
|
+
"peerDependencies": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
280
|
+
"devDependencies": "0.2.1-alpha.2"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"@hanamesh/release-platform-gate": {
|
|
284
|
+
"version": "0.1.9",
|
|
285
|
+
"license": "UNKNOWN: private development tool does not declare a license",
|
|
286
|
+
"source": "file:vendor/hanamesh-release-platform-gate-0.1.9.tgz",
|
|
287
|
+
"purpose": "Development-only shared immutable platform dependency release gate; R2 PASS tool019, integration subject to R1; never runtime or bundled",
|
|
288
|
+
"usedAs": [
|
|
289
|
+
"devDependencies"
|
|
290
|
+
],
|
|
291
|
+
"specs": {
|
|
292
|
+
"devDependencies": "file:vendor/hanamesh-release-platform-gate-0.1.9.tgz"
|
|
293
|
+
},
|
|
294
|
+
"sourceCommit": "13ec0db3bc6aa6b6235f2105d3f0a6b998855ff5",
|
|
295
|
+
"archiveSha256": "c72010c96a5f22e36d65f6c1fd850e583dead7e843644eba1657b4416d9cbd0d"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"downloadedRuntimes": {
|
|
299
|
+
"Node.js": {
|
|
300
|
+
"versions": [
|
|
301
|
+
"24.13.1",
|
|
302
|
+
"24.22.0"
|
|
303
|
+
],
|
|
304
|
+
"license": "MIT for Node.js; original archive LICENSE retains bundled third-party notices and licenses",
|
|
305
|
+
"source": "https://nodejs.org/dist/",
|
|
306
|
+
"purpose": "Plugin-managed standalone guardian/CLI supervisor runtime, acquired only after explicit plugin-page confirmation",
|
|
307
|
+
"distribution": "Not bundled in npm package; complete official tar.gz retained under lib-provision ownership, including LICENSE",
|
|
308
|
+
"pinnedAssets": "dist/node-runtime/releases.json",
|
|
309
|
+
"releaseKeyringCommit": "481637f813e912c4aa3622d7964ab426c97b8e8d",
|
|
310
|
+
"sourceProof": "Official clear-signed SHASUMS256.txt.asc verified by gpgv; each full mac archive SHA matched; byte/payload/license hashes recorded in release catalog"
|
|
183
311
|
}
|
|
184
312
|
}
|
|
185
313
|
}
|
package/docs/PROVENANCE.json
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"currentCandidate": {
|
|
3
|
-
"version": "0.
|
|
4
|
-
"dshTarget": "0.2.0-rc.2",
|
|
5
|
-
"vendorSha256VerifiedAtBuild":
|
|
6
|
-
"libProvisionDistribution": "
|
|
7
|
-
"publicNpmGate": "NOT_RUN"
|
|
3
|
+
"version": "0.6.12",
|
|
4
|
+
"dshTarget": ">=0.2.0-rc.2 <0.3.0-0 || >=0.2.1-0 <0.3.0-0",
|
|
5
|
+
"vendorSha256VerifiedAtBuild": false,
|
|
6
|
+
"libProvisionDistribution": "随包分发、源仓不变; bundleDependencies; original LICENSE retained, no relicensing",
|
|
7
|
+
"publicNpmGate": "NOT_RUN",
|
|
8
|
+
"verification": "PARTIAL / D230 failed activation cleanup; real original facts, native isolation and final-package U2 independently pending",
|
|
9
|
+
"node": "24.13.1",
|
|
10
|
+
"pnpm": "10.33.0",
|
|
11
|
+
"fixedUpstream": "d743267388641bc76f17c45ce8b4c231aed1d32c",
|
|
12
|
+
"devkit": "0.2.3",
|
|
13
|
+
"libProvision": "0.2.1",
|
|
14
|
+
"compatibility": "SOURCE: official installed rc.2 public API audit; separate runtime, browser, package and owner gates pending",
|
|
15
|
+
"reviewedInputs": {
|
|
16
|
+
"managedNode": "4c2d5bf63aa11b84dbfb4851a9da35e538ac47b1",
|
|
17
|
+
"manualRestart": "dd76828",
|
|
18
|
+
"hostThemeTokens": "0d6b533",
|
|
19
|
+
"b17": "b13e60a5e27fa011fd7a5904d5dd0e03e9229a4e"
|
|
20
|
+
},
|
|
21
|
+
"excludedPendingCandidate": "PKG/PRE/first-profile seeds and complete application installation remain separate gates",
|
|
22
|
+
"knownBaselineLimitation": "0.6.9 historical missing relative ledger import is fixed by the C-reviewed B17 public lib-provision ledger reader; managed Node readiness still does not establish full application operation acceptance."
|
|
8
23
|
},
|
|
9
24
|
"module": "app-host",
|
|
10
25
|
"version": "0.1.0-rc.12",
|
|
@@ -50,14 +65,40 @@
|
|
|
50
65
|
"auxiliaryAgents": 0,
|
|
51
66
|
"tokenUsage": "not independently metered",
|
|
52
67
|
"upstreamFilesModified": 0,
|
|
53
|
-
"
|
|
68
|
+
"sessionLogWrites": 0,
|
|
69
|
+
"historicalCandidateLicense": "UNLICENSED; no upstream-license inheritance or open-source grant asserted",
|
|
70
|
+
"developmentArtifacts": {
|
|
71
|
+
"@hanamesh/devkit": {
|
|
72
|
+
"version": "0.2.3",
|
|
73
|
+
"source": "file:vendor/hanamesh-devkit-0.2.3.tgz",
|
|
74
|
+
"sourceCommit": "e6ccf710369a77c5fbf9ce4810b182727e4f2aa8",
|
|
75
|
+
"mode": "Fixed provider package archive; unchanged published files at sourceCommit; development-only, excluded from runtime tarball",
|
|
76
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
77
|
+
"distributionNotice": "Canonical LICENSE and LICENSE_RECORD.md copied verbatim to docs/LICENSES.json; no new MIT or relicensing grant",
|
|
78
|
+
"lockfile": {
|
|
79
|
+
"path": "pnpm-lock.yaml",
|
|
80
|
+
"resolution": "fixed file archive with integrity, no Git credentials"
|
|
81
|
+
},
|
|
82
|
+
"licenseSha256": "242b0b71d3a4a91899ccf38fb70f06d151f3f005c3d7ac7d1e4a6c0461dc0e2d",
|
|
83
|
+
"historicalArtifact": {
|
|
84
|
+
"version": "0.2.0",
|
|
85
|
+
"sha256": "de15f0913dd6de5ba9ce96b8d92ea862ec44489eb698628de963cbbead68bc25",
|
|
86
|
+
"sourceCommit": "8f9bcc69cbacf01d97ffe63bbbade4f865e6dd89"
|
|
87
|
+
},
|
|
88
|
+
"originalSource": "git+https://github.com/yzsnstotz/hanamesh-server-shared.git#semver:^0.2.0&path:/packages/devkit",
|
|
89
|
+
"sha256": "40d7ad33b2802677d12111943f3472aa6e4564ba000d48074a32de33ff51c7bb"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"externalArtifacts": {
|
|
54
93
|
"@hanamesh/lib-provision": {
|
|
55
|
-
"version": "0.
|
|
56
|
-
"source": "vendor/hanamesh-lib-provision-0.
|
|
57
|
-
"sha256": "
|
|
58
|
-
"mode": "
|
|
94
|
+
"version": "0.2.1",
|
|
95
|
+
"source": "file:vendor/hanamesh-lib-provision-0.2.1.tgz",
|
|
96
|
+
"sha256": "4217b9fe1be98f6e82437539d1c4c43166ed1f5c292efff100733e0cb09530e9",
|
|
97
|
+
"mode": "Fixed provider package archive; unchanged published files at sourceCommit; bundled runtime dependency",
|
|
98
|
+
"sourceCommit": "575d63fb70e08c47e980dbf25f07921a7ba5aa2a",
|
|
99
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
100
|
+
"originalSource": "git+https://github.com/yzsnstotz/hanamesh-lib-provision.git#575d63fb70e08c47e980dbf25f07921a7ba5aa2a"
|
|
59
101
|
}
|
|
60
102
|
},
|
|
61
|
-
"
|
|
62
|
-
"historicalCandidateLicense": "UNLICENSED; no upstream-license inheritance or open-source grant asserted"
|
|
103
|
+
"historicalInputNotice": "Top-level legacy input/runtime/prototype fields below describe the original rc.12 intake only. Current candidate identity and verification are in currentCandidate; they do not inherit legacy host/UI evidence."
|
|
63
104
|
}
|
package/docs/SECURITY.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
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
|
+
|
|
3
|
+
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.
|
|
4
|
+
|
|
5
|
+
D-221: service availability, package binding, readiness and authorized traffic are not proof of application presentation/business success. No verified original fact source is connected, so the adapter emits no automatic Usage record or timestamp and logs only a fixed USAGE_FACT_UNAVAILABLE capability diagnostic. Independent Router counts, including legacy reported bits, do not prove business success or Usage confirmation. No application event/SDK/credential or trust bridge is introduced.
|
|
6
|
+
|
|
7
|
+
D-214: verification is trusted producer/client-view configuration, never a Target/URL/global-page capability. Normal builds remain off. Verification uses the existing authenticated/authorized endpoints and explicit installation confirmation; showing full public error JSON does not expose internal exceptions or grant application privileges. Native test automation stays card-local and validates actual owned PID/start/PPID/PGID/argv before claiming launcher evidence.
|
|
8
|
+
|
|
1
9
|
# 安全与运行边界
|
|
2
10
|
|
|
3
11
|
## 可信边界
|
|
@@ -50,3 +58,26 @@ DSH/宿主 cookie、控制头与 Authorization 默认不传上游;应用 cooki
|
|
|
50
58
|
实际 Chromium 启动于独立临时 profile,但回环导航返回 `net::ERR_BLOCKED_BY_ADMINISTRATOR`。未改管理员 policy、未关 CSP、未使用绕过标志。两个 REAL_BROWSER 测试显式 skip 并在产品矩阵标 PARTIAL,不算 PASS。
|
|
51
59
|
|
|
52
60
|
测试 Chromium 的 `--no-sandbox` 仅为隔离容器内以 root 运行测试驱动所需,绝非生产应用/DSH 的启动配置;不应该移植到生产 profile。
|
|
61
|
+
|
|
62
|
+
## D-202 Desktop control and data origin separation
|
|
63
|
+
|
|
64
|
+
For the fixed Desktop workspace only, each full live view binding owns one independent loopback listener with two exact, freshly random 192-bit localhost names: `control-<nonce>.localhost:<port>` and `data-<nonce>.localhost:<port>`. Only 127.0.0.1 is listened on. Names are non-secret isolation identifiers, never credentials; known retired names cannot be reassigned. A reused OS port does not restore an old origin. Scope is principal/view/generation plus the owning instance and active lease checked by AppHost. A different live view never authorizes an old request.
|
|
65
|
+
|
|
66
|
+
The workspace checks the precise control origin and the iframe Window; the controlled bootstrap checks exactly `dsh-app://app` and its parent Window. The existing public connection authentication, lease ownership and single-use challenge exchange precede navigation. Authorization appears only in the authenticated response and exact-window message/exchange body, never URLs or logs. One natural control-to-data navigation consumes its own initial grant, then HTTP/resources require the exact data-origin context and live complete binding; WS requires the exact data Origin. Closing, generation rotation and restart invalidate prior authority.
|
|
67
|
+
|
|
68
|
+
Control serves only bootstrap/exchange, never application documents or resources. Data serves application bytes, never bootstrap authorization pages, so the application ServiceWorker cannot control the bootstrap origin. Only exact registered Host/Origin/Referer/WS origins are admitted; no wildcard localhost, null, aliases or unrelated live grants. Data CSP admits its exact data origin for nested application frames plus the approved workspace ancestor; control CSP does not admit data. Application bodies, SDK, auth/CSRF/CORS and other security headers are unchanged. Ordinary loopback workspace security and the separately specified public install-target endpoint retain their original boundaries.
|
|
69
|
+
|
|
70
|
+
These are source invariants, not native browser evidence. Component synthetic-header requests, genuine natural native requests, third-party cookie policy, retained frame/worker/SW attacks, same-response bytes, restart and final-tarball U2 are recorded separately. A constructor rejection, skipped browser, draft package or older UI observation cannot close those gates.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## 套件兼容声明边界
|
|
74
|
+
|
|
75
|
+
兼容、完整性与可升级目标由 Core 公开声明唯一决定;App-host 不复制范围/候选规则、不读其内部文件。内部 `coreSuitePlan` 只由可信装配适配器提供,不进入浏览器参数或用户配置。生产装配仅绑定可选 protocol `1` 的 `hanameshCore.getSuiteDeclaration()`,缺源必须明确 `CORE_SUITE_DECLARATION_MISSING` 并禁止升级,不以 registry latest 代替。执行端只校验固定包/精确版本的计划结构、重读确认和物理安装结果;来源及宿主兼容性由 Core 提供方承担,真实包联调、原生运行与 owner 验收仍须各自证据;物理三包齐全不能替代 Core 完整性。升级后的公开状态继续读 Core,物理读回只用于执行确认与失败诊断;Core 服务消失时不再公开缓存的完整已装状态。
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## Managed Node trust boundary
|
|
79
|
+
|
|
80
|
+
The authenticated browser supplies settings or opaque plan/operation identifiers, never an executable manifest, arbitrary verification arguments or launch command. Only pinned official signed release digests enter the static manifest. Changing an HTTPS mirror changes transport, not the accepted digest. No user-info/query/hash URL or symlinked storage path is accepted. No download before current-plan confirmation. A per-runtime FileLock serializes lib-provision writes; SHA, ownership/ledger and clean-environment standalone platform/version checks precede publication. Host guardian remains unchanged and rejects Electron independently. Source or verification failure never silently falls back to system Node, another mirror or a retry.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
B17 候选的套件来源选择仅在 AppHost 自有同源已准入设置端点写入。Core 来源状态是公开只读事实,不授予安装权限;预览/确认/执行及异步声明返回时复读来源,沿用原 planId/精确 tuple/物理 baseline,来源丢失或替换即拒绝原确认。设置保存只串行持久化选择,不触发下载/安装或改写 Core 配置;持久失败保持旧选择。无 service/watch/generation 时保持不可观察边界,不缓存 ready 或回退 registry。详见 CONTRACT.md B17 段。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
HanaMesh-owned code: distribution authorization record
|
|
2
|
+
|
|
3
|
+
Package: @hanamesh/lib-provision 0.2.1
|
|
4
|
+
Source: https://github.com/yzsnstotz/hanamesh-lib-provision
|
|
5
|
+
Use: Node.js library and CLI for verified archive provisioning.
|
|
6
|
+
|
|
7
|
+
The project owner confirmed distribution of this HanaMesh-owned code under
|
|
8
|
+
D-2026-10-05-02 (D02). The recorded original statement is:
|
|
9
|
+
“那么这个我早就确认过了,而且是我们自己的代码,完全可以分发,你问这个有毛病吧”。
|
|
10
|
+
|
|
11
|
+
This record documents the existing authorization to distribute this package.
|
|
12
|
+
No SPDX license was designated in that authorization. This record does not
|
|
13
|
+
assign MIT or another new license, or grant additional relicensing rights.
|
|
14
|
+
The package metadata points here to avoid the obsolete UNLICENSED marker.
|
|
15
|
+
Third-party components retain their own licenses; see THIRD_PARTY_NOTICES.md.
|