@dsh-enhanced/dsh-rsi-cli 0.1.49 → 0.1.54

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.
Files changed (44) hide show
  1. package/README.md +14 -8
  2. package/lib/diagnose.js +7 -7
  3. package/lib/diagnose.js.map +1 -1
  4. package/lib/home-lifecycle-lock.d.ts +4 -0
  5. package/lib/home-lifecycle-lock.d.ts.map +1 -0
  6. package/lib/home-lifecycle-lock.js +69 -0
  7. package/lib/home-lifecycle-lock.js.map +1 -0
  8. package/lib/index.d.ts +5 -1
  9. package/lib/index.d.ts.map +1 -1
  10. package/lib/index.js +155 -8
  11. package/lib/index.js.map +1 -1
  12. package/lib/install.d.ts.map +1 -1
  13. package/lib/install.js +3 -0
  14. package/lib/install.js.map +1 -1
  15. package/lib/launchd-lock.d.ts +3 -0
  16. package/lib/launchd-lock.d.ts.map +1 -0
  17. package/lib/launchd-lock.js +46 -0
  18. package/lib/launchd-lock.js.map +1 -0
  19. package/lib/launchd-service.d.ts +24 -0
  20. package/lib/launchd-service.d.ts.map +1 -0
  21. package/lib/launchd-service.js +146 -0
  22. package/lib/launchd-service.js.map +1 -0
  23. package/lib/process-guard.d.ts +4 -5
  24. package/lib/process-guard.d.ts.map +1 -1
  25. package/lib/process-guard.js +17 -8
  26. package/lib/process-guard.js.map +1 -1
  27. package/lib/purge.d.ts.map +1 -1
  28. package/lib/purge.js +30 -5
  29. package/lib/purge.js.map +1 -1
  30. package/lib/run.d.ts +2 -1
  31. package/lib/run.d.ts.map +1 -1
  32. package/lib/run.js +8 -10
  33. package/lib/run.js.map +1 -1
  34. package/lib/services.d.ts +10 -3
  35. package/lib/services.d.ts.map +1 -1
  36. package/lib/services.js +126 -42
  37. package/lib/services.js.map +1 -1
  38. package/lib/version.d.ts +1 -1
  39. package/lib/version.js +1 -1
  40. package/lib/weburl.d.ts +1 -1
  41. package/lib/weburl.d.ts.map +1 -1
  42. package/lib/weburl.js +17 -2
  43. package/lib/weburl.js.map +1 -1
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -8,6 +8,8 @@ npm install --global @dsh-enhanced/dsh-rsi-cli
8
8
 
9
9
  零运行时依赖(仅用 Node.js 内置模块),要求 Node.js `^22.19.0 || >=24.0.0`,支持 macOS 与 Linux。
10
10
 
11
+ macOS 服务管理使用系统的 `/usr/bin/perl`、`plutil` 和 `launchctl`。内核锁文件位于 `/tmp`,用于协调安装、服务操作和卸载;进程退出即释放锁。
12
+
11
13
  ## 命令
12
14
 
13
15
  ```
@@ -17,7 +19,7 @@ dsh-rsi [全局选项] <命令>
17
19
  | 命令 | 说明 |
18
20
  | --- | --- |
19
21
  | `status`(默认) | 列出 DSH home、各 profile 与安装形态(npm 实体副本 / local 符号链接)、全局 host 版本、launchd / systemd 受管服务状态、外部凭据条目数、生命周期事务/锁残留。**只读**。 |
20
- | `doctor` | 在 `status` 基础上扫描各 profile 的 `*-host.error.log`,识别已知崩溃模式(如旧版 event-support oracle 拒绝注册)并给出升级/重建建议。**只读**。 |
22
+ | `doctor` | 在 `status` 基础上扫描各 profile 的 `*-host.error.log`,识别已知崩溃模式(如旧版 event-support oracle 拒绝注册)并给出升级/重建建议。**只读**;退出码 0 不代表构建、行为验证或学习授权已就绪。 |
21
23
  | `start` / `stop` / `restart` | 切换已注册受管常驻服务的运行状态。**只改运行状态**,不新建/改写/删除 launchd plist 或 systemd unit;未注册时报错并给出注册指引。 |
22
24
  | `logs` | 查看各 profile 的受管 `*-host.log` / `*-host.error.log` 尾部(默认末 200 行)。**只读**。 |
23
25
  | `web-url` | 从运行中受管服务的 journal(Linux)或 `*-host.log`(macOS)解析最近一次 `dsh web:` 行,输出带 token 的完整 Web 授权 URL。**只读**,不关闭或绕过 Web 认证;服务未运行时提示先 `dsh-rsi start`。 |
@@ -32,6 +34,7 @@ dsh-rsi [全局选项] <命令>
32
34
  - `--dsh-home <path>`:指定 DSH home(默认取 `$DSH_HOME`,否则 `~/.dsh`;install 经 `DSH_HOME` 环境变量传给安装器)
33
35
  - `--profile <name>`:仅操作单个 profile(`purge` 默认全量;install/reinstall 同时透传给安装器)
34
36
  - `--dry-run`:只打印将执行的动作,不做任何修改(install/reinstall 透传给安装器)
37
+ - `--capabilities`:供救机脚本精确探测 CLI 安全能力;单独使用时只输出一行 JSON,不读取 Home 或操作服务。当前标记为 `macos-launchd-ownership-v1`,不供日常交互使用。
35
38
  - `--yes`:`purge` / `reinstall` 时跳过交互确认(install/reinstall 透传给安装器)
36
39
  - `-h, --help`:无命令位置时显示 dsh-rsi 帮助;`dsh-rsi install --help` 透传展示**安装器**完整参数清单
37
40
 
@@ -39,14 +42,14 @@ dsh-rsi [全局选项] <命令>
39
42
 
40
43
  `dsh-rsi install` 为全新 Home 选择 Host,再调用统一安装器:
41
44
 
42
- `install` 和 `reinstall` 在未指定 `--scenario`、也未指定 `--mode` 时,向安装器显式传入 `--scenario supervised`;`--dry-run` 会展示这一默认场景。完整 supervised 需要 Linux/systemd user services;macOS 可显式选择 `--scenario core` 等轻量场景。显式 `--lark skip` 或 `--no-service` 不追加完整场景,交由统一安装器保留有限场景;它们不能覆盖用户显式选择的 `supervised`。显式 `--scenario` 或旧式 `--mode` 保持安装器原有语义,例如 `--scenario core` 选择 core,`--mode standard` 保留安装器的自动选择。`update --all` 等升级、卸载、恢复及 `install --help` 不采用此默认值。其余参数仍按原顺序透传。
45
+ `install` 和 `reinstall` 在未指定 `--scenario`、也未指定 `--mode` 时,向安装器显式传入 `--scenario supervised`;`--dry-run` 会展示这一默认场景。Linux 使用 systemd user services;原生 macOS 使用 launchd 管理 Node Host,候选构建与验证使用系统沙箱和私有固定 Node,无需 Docker。现有插件源码替换、发布与双 Host 交接仍限 Linux。显式 `--lark skip` 或 `--no-service` 不追加完整场景,交由统一安装器保留有限场景;它们不能覆盖用户显式选择的 `supervised`。显式 `--scenario` 或旧式 `--mode` 保持安装器原有语义,例如 `--scenario core` 选择 core,`--mode standard` 保留安装器的自动选择。`update --all` 等升级、卸载、恢复及 `install --help` 不采用此默认值。其余参数仍按原顺序透传。
43
46
 
44
47
  首次飞书身份授权须由平台的授权流程完成。全新 Home 尚无飞书 Bot 时,`supervised --yes` 或管道等非交互执行会在安装前停止;先在交互式终端运行 `dsh-rsi install` 完成 onboarding。安装器保留已有模型选择,并生成路径、签名身份及有期限的授权与有限预算;仍须有可用模型及隔离构建环境。已有 active/paused Automation 需要另行确认 `--ack-existing-automations`,`--yes` 不代替它。授权尚未就绪时,不能把 supervised 安装称为成功。
45
48
 
46
49
  - **npm 形态(默认)**:下载 `https://raw.githubusercontent.com/22-ai-00/dsh-enhanced/v<本包版本>/scripts/install/install-npm.sh` 到临时目录执行。引导脚本内部会按内嵌 SHA-256 自校验 `common.sh` 等资产,dsh-rsi 不重复 hash 逻辑。**锁定的只是引导脚本与同 tag 的安装器资产,不是插件 cohort 版本**:安装器默认把 `@dsh-enhanced/personal-assistant@latest` 解析为精确版本,再以该版本安装整套 `@dsh-enhanced/*` bundle;要锁定插件版本需透传 `--plugin-version <x.y.z|dist-tag>` 或预设 `DSH_ENHANCED_VERSION`。安装器尾部还会执行 `npm install --global @dsh-enhanced/dsh-rsi-cli@<cohort 版本>`,可能因此把全局 dsh-rsi 升降级到该 cohort 版本。
47
50
  - **local 形态**:`--local <checkout 目录>`,直接执行该目录下 `scripts/install/install-local.sh`,并从该 checkout 的 packages/dsh-rsi-cli 全局安装(本地开发 / 无网救机)。
48
51
  - 全新、空的 `DSH_HOME` 默认从官方 npm 解析一次 DSH `latest`,当前新安装接受已适配的 `0.2.0-rc.2`(官方 latest,尚非正式稳定版),安装到 `~/.local/share/dsh-enhanced/hosts/<精确版本>`。安装不执行依赖安装脚本;校验 registry integrity、lockfile、实际入口及全部安装文件后,写入 Home 内的私有 `.dsh-rsi-host.json`。不替换全局 DSH。安装器及其生成的常驻服务使用该私有入口,补装 pnpm 后仍保留这个入口的优先级。
49
- - 重试安装按 Home 绑定读取原精确版本,并核对文件与收据;重试不重新解析 `latest`。受管 Home 的升级入口默认解析官方 `latest`,先核对兼容范围,再通过独立事务迁移 Host;同版本不创建 Host 事务。已有未绑定 Home 保留原 Host。`--dsh-version` 可在首次安装或受管 Home 升级时选择范围内精确版本,不能直接覆盖已有绑定。此路径已在 Linux 验证;macOS/Windows 私有 Host 安装尚未实机验证。直接运行 shell 安装脚本仍使用原有 Host 选择方式。
52
+ - 重试安装按 Home 绑定读取原精确版本,并核对文件与收据;重试不重新解析 `latest`。受管 Home 的升级入口默认解析官方 `latest`,先核对兼容范围,再通过独立事务迁移 Host;同版本不创建 Host 事务。已有未绑定 Home 保留原 Host。`--dsh-version` 可在首次安装或受管 Home 升级时选择范围内精确版本,不能直接覆盖已有绑定。Linux 支持受管 Host 更新;macOS 私有 Host 新安装已在临时 Home 验证,但跨版本 Host 更新会在插件变更前拒绝。Windows 私有 Host 安装尚未实机验证。直接运行 shell 安装脚本仍使用原有 Host 选择方式。
50
53
  - 同一 Home 不支持与旧版或外部安装器并发安装;绑定文件原子发布不等于整个安装流程具有跨程序排他锁。
51
54
  - 私有缓存是多个 Home 可共享的安装资源;全量 purge/reinstall 删除 Home 绑定但保留缓存,`--remove-host` 仍只操作全局 npm Host。缓存只含运行程序及收据,不含飞书凭据。
52
55
  - 安装器 stdio 与终端直连,退出码原样透传。`--help` / `--dry-run` 不准备私有 Host。
@@ -88,11 +91,14 @@ dsh-rsi update --version next
88
91
 
89
92
  # 自身 + 整套插件集合原地升级;受管 Linux 服务由事务停服/恢复,额外 Host 会被拒绝
90
93
  dsh-rsi update --all --yes
94
+
95
+ # macOS:先停止同一 DSH_HOME 的全部 Host,再显式确认;冻结的原生 owner/source Home 暂无普通升级路径
96
+ dsh-rsi update --all --confirm-dsh-home-stopped
91
97
  ```
92
98
 
93
99
  `update` 选项:
94
100
 
95
- - `--all`:自身升级成功后,把插件集合交给同一目标版本的安装器原地升级;Linux 受管服务由事务停服并恢复,额外或手工启动的 Host 必须先停止。`0.1.49` 起,在已绑定的 Linux Home 继续执行受管 Host 更新;版本相同则跳过。用户无需传 `--confirm-dsh-home-stopped` 或重复声明 `--scenario`;安装器从 effective/composed profile 自动识别场景。
101
+ - `--all`:自身升级成功后,把插件集合交给同一目标版本的安装器原地升级;Linux 受管服务由事务停服并恢复,额外或手工启动的 Host 必须先停止。macOS 须先停止整个 Home 并显式传入 `--confirm-dsh-home-stopped`;CLI 在自更新前检查冻结资源与各 profile 的运行进程,安装器检查 launchd 和 Host,并在修改 profile 前复检,无法确认时拒绝插件变更。已有原生 owner/source/cohort 的冻结 Home 不能普通升级;保留数据的专用迁移目前尚未实现。未冻结且已停止的 Mac Home 仅升级插件集合,保留原 Host 与 LaunchAgent 定义;完成后用 `dsh-rsi start` 恢复运行。Mac 的检查没有覆盖整个升级过程的 Home 独占锁,操作者必须在升级全程保持 Host 停止。`0.1.49` 起,在已绑定的 Linux Home 继续执行受管 Host 更新;版本相同则跳过。Linux 用户无需传 `--confirm-dsh-home-stopped` 或重复声明 `--scenario`;安装器从 effective/composed profile 自动识别场景。
96
102
  - `--version <v|tag>`:dsh-rsi 自身的目标版本或 dist-tag(默认 `latest`)。只接受精确版本 `x.y.z`(可带预发布后缀)或纯字母 dist-tag;范围表达式如 `>=0.1.0` 会被拒绝。
97
103
  - `--dry-run`:解析出目标版本并打印将执行的命令,不做任何安装。
98
104
  - 其余参数在 `--all` 下原样透传给安装器;`--local <dir>` 走 local 形态。显式 `--scenario` 仍可作为一致性断言,但不再是必填项。
@@ -158,7 +164,7 @@ dsh-rsi logs --errors-only
158
164
  ### 安全门控
159
165
 
160
166
  - **不隐式注册服务**:服务定义文件不存在时**不会**顺手装一个(那会绕过安装器的归属、路径与凭据校验)。`core` / `web` 场景默认没有常驻服务,这是正常状态;命令会提供可直接复制的 `dsh-rsi install --profile <p> --scenario lark` / `--scenario supervised`,并以退出码 1 结束。`dsh-rsi-setup` 是插件包内的专用工具,不保证作为全局命令存在,因此不再把它作为用户修复入口。
161
- - **归属 fail-closed**:同名文件存在但内容不属受管(人工改写或被第三方占用)时拒绝操作、原样保留文件,并说明需人工确认归属。判定依据与 purge 一致 —— Linux 要求 unit 同时含 `DeepSeek Harness profile`、对应 `--profile <p>`、`--no-open`;macOS 要求 plist 的 `Label` 为 `ai.deepseek.dsh.profile.<p>` 且 `ProgramArguments` 含 `--profile <p>` 与 `--no-open`。
167
+ - **归属 fail-closed**:同名文件存在但内容不属受管(人工改写或被第三方占用)时拒绝操作、原样保留文件,并说明需人工确认归属。判定依据与 purge 一致 —— Linux 要求 unit 同时含 `DeepSeek Harness profile`、对应 `--profile <p>`、`--no-open`;macOS 解析 plist 结构,核对 Label、完整启动参数、工作目录、`DSH_HOME`、日志路径和执行设置,还核对已加载 launchd job 的路径、参数与 Home。无法查询时拒绝变更。
162
168
  - **dry-run 措辞与实际执行严格区分**:`--dry-run` 下不执行任何命令,结论行为「将启动/将停止/将重启」;只有真正执行过才输出「已…」。
163
169
  - **多 profile 部分失败即非零**:任一 profile 出错,命令整体以退出码 1 结束,便于脚本判定;其余 profile 的处理结果照常打印。
164
170
  - 仅支持 macOS(launchd)与 Linux(systemd --user),其它平台明确报错而非静默成功。
@@ -203,7 +209,7 @@ purge 选项:
203
209
 
204
210
  **删除:**
205
211
 
206
- - 全量:整个 DSH home(profiles、logs、uninstalled-profiles、home 内锁文件),以及 home 外的生命周期事务目录、失败诊断目录、home 锁与 `/tmp` rendezvous 锁
212
+ - 全量:整个 DSH home(profiles、logs、uninstalled-profiles、home 内锁文件),以及 home 外的生命周期事务目录、失败诊断目录和 home 锁。Linux 清理旧 `/tmp` rendezvous 锁;macOS 保留共享锁文件的稳定 inode,避免持锁期间被另一个进程重建同名锁文件。
207
213
  - 单 profile:`profiles/<name>`、对应的两份 host 日志、归属该 profile 的失败诊断目录
208
214
  - 受管常驻服务:macOS `launchctl bootout` + 删除 `~/Library/LaunchAgents/ai.deepseek.dsh.profile.<p>.plist`;Linux `systemctl --user disable --now` + `reset-failed` + 删除受管 unit 文件
209
215
  - 外部凭据:按各 profile 的 setup journal / cleanup 记录**权威反查** service 前缀为 `dsh/` 的条目,逐条从 Keychain(`security delete-generic-password`)或 Secret Service(`secret-tool clear`)删除;home 内的 protected-file 凭据随 home 一起删除
@@ -216,8 +222,8 @@ purge 选项:
216
222
 
217
223
  ### 安全门控
218
224
 
219
- - **进程静止检查**:Linux 已注册受管服务的精确 systemd MainPID 会交给 installer 的 service-aware 事务停服、屏蔽、升级和恢复;其它同 profile 的手工/测试 Host 仍会拒绝执行并列出 PID,不会被自动 kill。macOS 及无受管服务场景仍要求调用前保持整个目标 Home 静止。
220
- - **systemd unit 归属 fail-closed**:仅当 unit 文件内容同时包含受管标记(`DeepSeek Harness profile`、对应 `--profile <p>`、`--no-open`)才删除;归属不明的同名文件只报告、保留。
225
+ - **进程静止检查**:Linux 已注册受管服务的精确 systemd MainPID 会交给 installer 的 service-aware 事务停服、屏蔽、升级和恢复;其它同 profile 的手工/测试 Host 仍会拒绝执行并列出 PID,不会被自动 kill。macOS 及无受管服务场景仍要求调用前保持整个目标 Home 静止;macOS 无法从命令行确认手动 Host 所属 Home,发现同 profile 进程时会阻止 purge,须人工确认并先行停止。
226
+ - **服务归属 fail-closed**:Linux 仅当 unit 文件内容同时包含受管标记(`DeepSeek Harness profile`、对应 `--profile <p>`、`--no-open`)才删除。macOS 还要求本 Home 的 plist 与已加载 job 归属一致;`bootout` 失败、job 未注销或旧 PID 仍在时保留 plist 并中止数据删除。同一 GUI 用户下各 Home 共享 label;Mac purge 从枚举 profile 到停服、备份、删除和凭据清理始终按 Home 锁 → 所有目标 UID/profile 锁的顺序持有内核锁。
221
227
  - **locator 先扫描、文件先删除、凭据后清理**:删文件前先扫描各 profile 的 setup journal / cleanup 记录(journal 位于 DSH home 内,必须在删除前扫出凭据 locator);随后**先删除文件**,再按预扫描的 locator 逐条删除外部凭据。单条凭据删除失败不会回滚已删文件,而是以「文件已删除,但以下凭据条目清理失败,请手工删除:…」报错并以退出码 1 结束。默认的 tar.gz 备份内含完整 journal,可解包后据此复查、手工补删;`--no-backup` 下文件与 journal 均不可恢复,只剩错误消息中列出的 service/account 可供定位。
222
228
  - 单 profile 与 `--remove-host` 互斥;仅支持 macOS / Linux。
223
229
 
package/lib/diagnose.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { open, readdir, stat } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { launchAgentTargets, listLifecycleResiduals, listProfiles, listProfilePlugins, logsDirectory, systemdUnitName, systemdUserDirectory, } from "./paths.js";
4
+ import { inspectLaunchdDefinition, inspectLoadedLaunchd } from "./launchd-service.js";
5
+ import { listLifecycleResiduals, listProfiles, listProfilePlugins, logsDirectory, systemdUnitName, systemdUserDirectory, } from "./paths.js";
5
6
  import { scanCredentialLocators } from "./secrets.js";
6
7
  import { defaultRunner } from "./run.js";
7
- async function serviceState(platform, home, profile, runner) {
8
+ async function serviceState(platform, home, dshHome, profile, runner) {
8
9
  if (platform === 'darwin') {
9
- const { label, plistPath } = launchAgentTargets(home, profile);
10
- const installed = existsSync(plistPath);
11
- const shown = runner('launchctl', ['print', `gui/${process.getuid?.() ?? process.env.UID}/${label}`]);
12
- return { installed, active: installed && shown.status === 0 };
10
+ const checked = await inspectLaunchdDefinition(home, dshHome, profile, runner);
11
+ const loaded = checked.definition ? inspectLoadedLaunchd(checked.definition, dshHome, runner) : undefined;
12
+ return { installed: !!checked.definition, active: !!loaded && !loaded.error && loaded.registered && loaded.running };
13
13
  }
14
14
  const unit = systemdUnitName(profile);
15
15
  const installed = existsSync(join(systemdUserDirectory(home), unit));
@@ -24,7 +24,7 @@ export async function collectStatus(dshHome, home, platform, runner = defaultRun
24
24
  const profileStatus = [];
25
25
  for (const name of profiles) {
26
26
  const plugins = await listProfilePlugins(dshHome, name);
27
- const service = await serviceState(platform, home, name, runner);
27
+ const service = await serviceState(platform, home, dshHome, name, runner);
28
28
  profileStatus.push({
29
29
  name,
30
30
  npmPlugins: plugins.filter(plugin => plugin.kind === 'npm').map(plugin => plugin.name),
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function dshHomeLifecycleRendezvousPath(dshHome: string, uid?: number | undefined): string;
2
+ /** Shared with lark-channel: kernel lock remains held while purge removes the Home. */
3
+ export declare function withDshHomeLifecycleLock<T>(dshHome: string, operation: () => Promise<T>): Promise<T>;
4
+ //# sourceMappingURL=home-lifecycle-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-lifecycle-lock.d.ts","sourceRoot":"","sources":["../src/home-lifecycle-lock.ts"],"names":[],"mappings":"AAeA,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,qBAAqB,GAAG,MAAM,CAKhG;AAED,uFAAuF;AACvF,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAkC1G"}
@@ -0,0 +1,69 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { constants, realpathSync } from 'node:fs';
4
+ import { lstat, open } from 'node:fs/promises';
5
+ import { basename, dirname, isAbsolute, join } from 'node:path';
6
+ /** Match lark-channel setup's canonicalMissingAllowed-style lock key, including a deleted Home. */
7
+ function canonicalMissingAllowed(path) {
8
+ try {
9
+ return realpathSync(path);
10
+ }
11
+ catch {
12
+ const parent = dirname(path);
13
+ if (parent === path)
14
+ return join(path);
15
+ return join(canonicalMissingAllowed(parent), basename(path));
16
+ }
17
+ }
18
+ export function dshHomeLifecycleRendezvousPath(dshHome, uid = process.getuid?.()) {
19
+ if (!isAbsolute(dshHome))
20
+ throw new Error('DSH_HOME 必须是绝对路径');
21
+ if (!Number.isSafeInteger(uid) || uid === undefined || uid < 0)
22
+ throw new Error('无法确定 Home 锁 UID');
23
+ const digest = createHash('sha256').update(canonicalMissingAllowed(dshHome)).digest('hex');
24
+ return `/tmp/.dsh-enhanced-lifecycle-${uid}-${digest}.lock`;
25
+ }
26
+ /** Shared with lark-channel: kernel lock remains held while purge removes the Home. */
27
+ export async function withDshHomeLifecycleLock(dshHome, operation) {
28
+ if (process.platform !== 'linux' && process.platform !== 'darwin')
29
+ return operation();
30
+ const uid = process.getuid?.();
31
+ if (!Number.isSafeInteger(uid) || uid === undefined || uid < 0)
32
+ throw new Error('无法确定 Home 锁 UID');
33
+ const physicalTmp = process.platform === 'darwin' ? realpathSync('/tmp') : '/tmp';
34
+ const temporary = await lstat(physicalTmp);
35
+ if (!temporary.isDirectory() || temporary.isSymbolicLink() || temporary.uid !== 0
36
+ || (temporary.mode & 0o7777) !== 0o1777)
37
+ throw new Error('Home 锁目录 /tmp 不安全');
38
+ const path = dshHomeLifecycleRendezvousPath(dshHome, uid);
39
+ const descriptor = await open(path, constants.O_RDWR | constants.O_CREAT | constants.O_NOFOLLOW, 0o600);
40
+ try {
41
+ const verify = async () => {
42
+ const [opened, linked] = await Promise.all([descriptor.stat(), lstat(path)]);
43
+ if (!opened.isFile() || !linked.isFile() || linked.isSymbolicLink()
44
+ || opened.uid !== uid || linked.uid !== uid || opened.nlink !== 1 || linked.nlink !== 1
45
+ || (opened.mode & 0o777) !== 0o600 || (linked.mode & 0o777) !== 0o600
46
+ || opened.dev !== linked.dev || opened.ino !== linked.ino)
47
+ throw new Error(`Home 锁文件不安全:${path}`);
48
+ };
49
+ await verify();
50
+ const mac = process.platform === 'darwin';
51
+ const acquired = spawnSync(mac ? '/usr/bin/perl' : '/usr/bin/flock', mac
52
+ ? ['-MFcntl=:flock', '-MErrno=EAGAIN,EWOULDBLOCK', '-e',
53
+ 'open(F, "<&", 3) or exit 74; flock(F, LOCK_EX|LOCK_NB) or exit(($! == EAGAIN || $! == EWOULDBLOCK) ? 75 : 74);']
54
+ : ['-n', '-E', '75', '3'], {
55
+ encoding: 'utf8', stdio: ['ignore', 'ignore', 'pipe', descriptor.fd],
56
+ env: { PATH: '/usr/bin:/bin', LANG: 'C' }, timeout: 10_000,
57
+ });
58
+ if (acquired.status === 75)
59
+ throw new Error(`DSH_HOME 正忙:${path}`);
60
+ if (acquired.status !== 0)
61
+ throw new Error(`无法获取 Home 锁:${acquired.stderr?.trim() || acquired.status}`);
62
+ await verify();
63
+ return await operation();
64
+ }
65
+ finally {
66
+ await descriptor.close();
67
+ }
68
+ }
69
+ //# sourceMappingURL=home-lifecycle-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-lifecycle-lock.js","sourceRoot":"","sources":["../src/home-lifecycle-lock.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -42,5 +42,9 @@ export interface MainDeps {
42
42
  findRunning?: typeof findRunningProfiles;
43
43
  managedServicePids?: typeof managedServiceProcessIds;
44
44
  }
45
- export declare function main(argv?: readonly string[], env?: NodeJS.ProcessEnv, deps?: MainDeps): Promise<number>;
45
+ declare function assertMacHostProcessesStopped(dshHome: string, profiles: readonly string[]): Promise<void>;
46
+ export declare function main(argv?: readonly string[], env?: NodeJS.ProcessEnv, deps?: MainDeps & {
47
+ platform?: NodeJS.Platform;
48
+ macHostProcessesStopped?: typeof assertMacHostProcessesStopped;
49
+ }): Promise<number>;
46
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAgC,MAAM,YAAY,CAAA;AAGnE,OAAO,EAA0B,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAA0B,aAAa,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,EAKL,wBAAwB,EAIzB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAkFtC,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,UAAU,EAAE,OAAO,CAAA;IACnB,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAA;IACZ,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AA+BD,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,CAwFnG;AAsJD,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,OAAO,QAAQ,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,UAAU,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,aAAa,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,mBAAmB,CAAA;IACxC,kBAAkB,CAAC,EAAE,OAAO,wBAAwB,CAAA;CACrD;AAED,wBAAsB,IAAI,CACxB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,MAAM,CAAC,CA+LjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAgC,MAAM,YAAY,CAAA;AAGnE,OAAO,EAA0B,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAA0B,aAAa,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,EAKL,wBAAwB,EAIzB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAmFtC,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,UAAU,EAAE,OAAO,CAAA;IACnB,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAA;IACZ,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AA+BD,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,CAwFnG;AAsJD,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,OAAO,QAAQ,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,UAAU,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,aAAa,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,mBAAmB,CAAA;IACxC,kBAAkB,CAAC,EAAE,OAAO,wBAAwB,CAAA;CACrD;AA0CD,iBAAe,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDxG;AAED,wBAAsB,IAAI,CACxB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,QAAQ,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAAC,uBAAuB,CAAC,EAAE,OAAO,6BAA6B,CAAA;CAAO,GACnH,OAAO,CAAC,MAAM,CAAC,CA4NjB"}
package/lib/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import { homedir } from 'node:os';
2
+ import { lstat, readdir, realpath } from 'node:fs/promises';
3
+ import { spawnSync } from 'node:child_process';
4
+ import { join } from 'node:path';
2
5
  import { createInterface } from 'node:readline/promises';
3
6
  import { runPurge, PurgeError } from "./purge.js";
4
7
  import { collectStatus, formatStatus, formatFindings, runDoctor } from "./diagnose.js";
@@ -59,8 +62,9 @@ update:
59
62
  Host 事务覆盖同一 DSH_HOME 下全部已登记受管 unit,即使 --profile 只升级一个 cohort
60
63
  --version <v|tag> 指定 dsh-rsi 目标版本或 dist-tag(默认 latest)
61
64
  --local <dir> --all 时走 local 形态,用该 checkout 的安装器升级
62
- 其它参数 --all 时原样透传给安装器;通常无需再写 --scenario 或内部确认参数
65
+ 其它参数 --all 时原样透传给安装器;Linux 通常无需再写 --scenario 或内部确认参数
63
66
  安全 已注册的 Linux 受管服务由升级事务自行停服/恢复;额外手工或测试 Host 会阻止升级。
67
+ macOS 须先停止整个 Home 并显式传 --confirm-dsh-home-stopped;冻结的原生 owner/source Home 暂无迁移路径。
64
68
 
65
69
  start / stop / restart:
66
70
  不带 --profile 时作用于 DSH home 下的全部 profile;配合 --dry-run 可先看将执行的命令。
@@ -408,7 +412,129 @@ function buildInstallOptions(args) {
408
412
  dshHome: args.dshHome,
409
413
  };
410
414
  }
415
+ async function assertMacUpgradeHome(dshHome) {
416
+ for (const kind of ['rsi-local-cohorts', 'rsi-native-runtimes', 'rsi-sources', 'rsi-authorities',
417
+ 'rsi-authority-runtimes', 'rsi-builds', 'rsi-release-builds', 'rsi-coordinators']) {
418
+ try {
419
+ await lstat(join(dshHome, kind));
420
+ throw new PurgeError(`macOS Home 存在 ${kind} 冻结资源;需使用保留原数据的专用迁移,未升级 CLI 或插件。`);
421
+ }
422
+ catch (error) {
423
+ if (error.code !== 'ENOENT')
424
+ throw error;
425
+ }
426
+ }
427
+ }
428
+ async function macHomeProfiles(dshHome) {
429
+ let entries;
430
+ try {
431
+ entries = await readdir(join(dshHome, 'profiles'), { withFileTypes: true });
432
+ }
433
+ catch {
434
+ throw new PurgeError('无法枚举 macOS Home 的全部 profile;未升级 CLI 或插件。');
435
+ }
436
+ const profiles = [];
437
+ for (const entry of entries) {
438
+ if (entry.name === 'node_modules') {
439
+ if (!entry.isDirectory() || entry.isSymbolicLink()) {
440
+ throw new PurgeError('macOS Home 的 profiles/node_modules 归属不明;未升级 CLI 或插件。');
441
+ }
442
+ continue;
443
+ }
444
+ if (entry.name === '.DS_Store') {
445
+ if (!entry.isFile() || entry.isSymbolicLink()) {
446
+ throw new PurgeError('macOS Home 的 profiles/.DS_Store 归属不明;未升级 CLI 或插件。');
447
+ }
448
+ continue;
449
+ }
450
+ if (!entry.isDirectory() || entry.isSymbolicLink()
451
+ || !/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u.test(entry.name)) {
452
+ throw new PurgeError(`macOS Home 的 profile 条目 ${entry.name} 归属不明;未升级 CLI 或插件。`);
453
+ }
454
+ profiles.push(entry.name);
455
+ }
456
+ if (profiles.length === 0)
457
+ throw new PurgeError('macOS Home 没有可升级的 profile。');
458
+ return profiles;
459
+ }
460
+ async function assertMacHostProcessesStopped(dshHome, profiles) {
461
+ const canonicalHome = await realpath(dshHome);
462
+ const foreignLaunchdPids = new Set();
463
+ if (process.platform === 'darwin') {
464
+ for (const profile of profiles) {
465
+ const target = `gui/${process.getuid?.()}/ai.deepseek.dsh.profile.${profile}`;
466
+ const result = spawnSync('/bin/launchctl', ['print', target], {
467
+ encoding: 'utf8', timeout: 10_000, maxBuffer: 262_144,
468
+ env: { PATH: '/usr/bin:/bin:/usr/sbin:/sbin' },
469
+ });
470
+ if (result.error || result.signal)
471
+ throw new PurgeError(`无法查询 macOS launchd ${profile};未升级 CLI 或插件。`);
472
+ if (result.status === 113 && /Could not find service/iu.test(result.stderr ?? ''))
473
+ continue;
474
+ if (result.status !== 0)
475
+ throw new PurgeError(`无法查询 macOS launchd ${profile};未升级 CLI 或插件。`);
476
+ const loadedHome = /^\s*DSH_HOME => (.+)$/mu.exec(result.stdout ?? '')?.[1];
477
+ if (!loadedHome)
478
+ throw new PurgeError(`macOS launchd ${profile} Home 归属未知;未升级 CLI 或插件。`);
479
+ let loadedCanonicalHome;
480
+ try {
481
+ loadedCanonicalHome = await realpath(loadedHome);
482
+ }
483
+ catch {
484
+ throw new PurgeError(`macOS launchd ${profile} Home 无法解析;未升级 CLI 或插件。`);
485
+ }
486
+ const pid = /^\s*pid = (\d+)$/mu.exec(result.stdout ?? '')?.[1];
487
+ if (loadedCanonicalHome !== canonicalHome) {
488
+ if (pid !== undefined)
489
+ foreignLaunchdPids.add(Number(pid));
490
+ continue;
491
+ }
492
+ const state = /^\s*state = ([^\n]+)$/mu.exec(result.stdout ?? '')?.[1];
493
+ if (!state || pid !== undefined && (!Number.isSafeInteger(Number(pid)) || Number(pid) < 2)) {
494
+ throw new PurgeError(`macOS launchd ${profile} 状态未知;未升级 CLI 或插件。`);
495
+ }
496
+ if (state === 'running' || pid !== undefined) {
497
+ throw new PurgeError(`macOS launchd ${profile} 仍在运行;未升级 CLI 或插件。`);
498
+ }
499
+ }
500
+ }
501
+ const processList = spawnSync('/bin/ps', ['-axo', 'pid=,command='], {
502
+ encoding: 'utf8', timeout: 10_000, maxBuffer: 16_777_216,
503
+ env: { PATH: '/usr/bin:/bin:/usr/sbin:/sbin' },
504
+ });
505
+ if (processList.status !== 0 || processList.error || processList.signal) {
506
+ throw new PurgeError('无法列出 macOS Host 进程;未升级 CLI 或插件。');
507
+ }
508
+ for (const line of (processList.stdout ?? '').split('\n')) {
509
+ if (line.trim() === '')
510
+ continue;
511
+ const match = /^\s*(\d+)\s+(.+)$/u.exec(line);
512
+ if (!match)
513
+ throw new PurgeError('macOS Host 进程列表包含无法解析的行;未升级 CLI 或插件。');
514
+ if (Number(match[1]) === process.pid || foreignLaunchdPids.has(Number(match[1])))
515
+ continue;
516
+ const command = match[2];
517
+ const dshEntry = /(?:^|\s|\/)dsh(?:\.js)?\s/u.test(command)
518
+ || /(?:^|\s)\S*\/@deepseek-ai\/dsh\/(?:lib\/)?bin\.js\s/u.test(command);
519
+ if (!dshEntry)
520
+ continue;
521
+ const profile = /(?:^|\s)--profile(?:=|\s+)([^\s]+)/u.exec(command)?.[1];
522
+ // An unlisted profile (including a removed profile or node_modules) does
523
+ // not establish another Home. Only a launchd job with a different Home is exempt.
524
+ throw new PurgeError(`macOS Host PID ${match[1]} 仍在运行或 profile ${profile ?? '未知'} 的 Home 归属未知;未升级 CLI 或插件。`);
525
+ }
526
+ }
411
527
  export async function main(argv = process.argv.slice(2), env = process.env, deps = {}) {
528
+ // Rescue scripts probe this before delegating destructive work to an installed CLI.
529
+ // Keep the response read-only and independent of Home, launchd and installed Host state.
530
+ if (argv[0] === '--capabilities') {
531
+ if (argv.length !== 1) {
532
+ process.stderr.write('--capabilities 不接受其他参数\n');
533
+ return 2;
534
+ }
535
+ process.stdout.write(`${JSON.stringify({ capabilities: ['macos-launchd-ownership-v1'] })}\n`);
536
+ return 0;
537
+ }
412
538
  const purge = deps.purge ?? runPurge;
413
539
  const install = deps.install ?? runInstall;
414
540
  const selfUpdate = deps.selfUpdate ?? runSelfUpdate;
@@ -453,7 +579,7 @@ export async function main(argv = process.argv.slice(2), env = process.env, deps
453
579
  }
454
580
  const outcomes = [];
455
581
  for (const profile of profiles) {
456
- outcomes.push(await controlManagedService(process.platform, homedir(), profile, action, undefined, args.dryRun));
582
+ outcomes.push(await controlManagedService(process.platform, homedir(), profile, action, undefined, args.dryRun, args.dshHome));
457
583
  }
458
584
  process.stdout.write(`${formatServiceOutcomes(outcomes, action, args.dryRun)}\n`);
459
585
  // 任一 profile 失败即非零退出,便于脚本判定。
@@ -484,6 +610,25 @@ export async function main(argv = process.argv.slice(2), env = process.env, deps
484
610
  return entries.some(entry => entry.errors.length > 0) ? 1 : 0;
485
611
  }
486
612
  case 'update': {
613
+ const platform = deps.platform ?? process.platform;
614
+ if (args.all && platform === 'darwin') {
615
+ if (!args.passthrough.includes('--confirm-dsh-home-stopped')) {
616
+ throw new PurgeError('macOS update --all 需要操作者先停止整个 Home,再显式传入 --confirm-dsh-home-stopped;未升级 CLI 或插件。');
617
+ }
618
+ await assertMacUpgradeHome(args.dshHome);
619
+ // A Mac launchd Host is not quiesced by the Linux lifecycle executor.
620
+ // Check the entire Home before self-update, including other profiles.
621
+ const allProfiles = await macHomeProfiles(args.dshHome);
622
+ const active = findRunning(allProfiles);
623
+ if (active.error !== undefined || active.active.length > 0) {
624
+ throw new PurgeError(`macOS Home 尚未确认静止:${active.error ?? active.active.map(item => `PID ${item.pid}`).join('、')};未升级 CLI 或插件。`);
625
+ }
626
+ const managed = await managedPids(platform, homedir(), allProfiles);
627
+ if (managed.errors.length > 0 || managed.pids.length > 0) {
628
+ throw new PurgeError(`macOS 受管 Host 状态未静止:${managed.errors.join(';') || managed.pids.map(pid => `PID ${pid}`).join('、')};未升级 CLI 或插件。`);
629
+ }
630
+ await (deps.macHostProcessesStopped ?? assertMacHostProcessesStopped)(args.dshHome, allProfiles);
631
+ }
487
632
  // 先升级自身:--all 下若自身升级失败就不继续动插件集合,避免用旧版 rsi
488
633
  // 的判断去驱动新一轮 cohort 升级。
489
634
  const report = await selfUpdate({
@@ -496,7 +641,7 @@ export async function main(argv = process.argv.slice(2), env = process.env, deps
496
641
  const passthrough = [...args.passthrough];
497
642
  if (!passthrough.includes('--operation'))
498
643
  passthrough.push('--operation', 'upgrade');
499
- if (!passthrough.includes('--confirm-dsh-home-stopped')) {
644
+ if (platform !== 'darwin' && !passthrough.includes('--confirm-dsh-home-stopped')) {
500
645
  passthrough.push('--confirm-dsh-home-stopped');
501
646
  }
502
647
  const releaseVersion = report.installedVersion
@@ -520,18 +665,20 @@ export async function main(argv = process.argv.slice(2), env = process.env, deps
520
665
  if (running.error !== undefined) {
521
666
  throw new PurgeError(`无法确认 DSH_HOME 已静止:${running.error}`);
522
667
  }
523
- const managed = await managedPids(process.platform, homedir(), profiles);
668
+ const managed = await managedPids(platform, homedir(), profiles);
524
669
  if (managed.errors.length > 0) {
525
670
  throw new PurgeError(`无法确认受管服务进程:${managed.errors.join(';')}`);
526
671
  }
527
672
  const managedSet = new Set(managed.pids);
528
- const external = running.active.filter(item => !managedSet.has(item.pid));
673
+ const external = platform === 'darwin' ? running.active : running.active.filter(item => !managedSet.has(item.pid));
529
674
  if (external.length > 0) {
530
675
  const details = external.map(item => `PID ${item.pid}`).join('、');
531
- throw new PurgeError(`检测到目标 profile 存在非受管 Host(${details})。请停止对应手工/测试 dsh 进程后重试;`
532
- + '已注册的受管服务无需手动停止,将由生命周期事务接管。');
676
+ throw new PurgeError(platform === 'darwin'
677
+ ? `检测到 macOS Host(${details});请停止整个 Home 的所有 Host 后重试。`
678
+ : `检测到目标 profile 存在非受管 Host(${details})。请停止对应手工/测试 dsh 进程后重试;`
679
+ + '已注册的受管服务无需手动停止,将由生命周期事务接管。');
533
680
  }
534
- process.stdout.write(managed.pids.length > 0
681
+ process.stdout.write(platform !== 'darwin' && managed.pids.length > 0
535
682
  ? '\n插件集合升级:已确认除受管服务外没有其它 Host;生命周期事务将安全停服、升级并恢复。\n'
536
683
  : '\n插件集合升级:已确认目标 profile 无运行中 Host,正在继承现有部署场景并原地升级。\n');
537
684
  return await install({
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}