@mearl/client 3.0.0-beta.8 → 3.0.0-beta.9

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/dist/bin.js CHANGED
@@ -3,7 +3,7 @@ import { CLIENT_VERSION } from './runtimePaths.js';
3
3
  const args = process.argv.slice(2);
4
4
  if (args[0] === 'guide') {
5
5
  const { runGuideCli } = await import('./guide.js');
6
- process.exitCode = runGuideCli(args.slice(1));
6
+ process.exitCode = await runGuideCli(args.slice(1));
7
7
  }
8
8
  else {
9
9
  const { runMearlCli } = await import('./cli.js');
package/dist/guide.d.ts CHANGED
@@ -42,5 +42,5 @@ export declare const GUIDE_TOPICS: readonly [{
42
42
  }];
43
43
  export declare function renderGuideLinks(source: string, commandName?: string): string;
44
44
  /** Only packaged files are read; unknown IDs never become filesystem paths. */
45
- export declare function readGuide(id: string, commandName?: string, version?: string): string;
46
- export declare function runGuideCli(args: string[], commandName?: string, version?: string): number;
45
+ export declare function readGuide(id: string, commandName?: string, version?: string): Promise<string>;
46
+ export declare function runGuideCli(args: string[], commandName?: string, version?: string): Promise<number>;
package/dist/guide.js CHANGED
@@ -25,7 +25,7 @@ export function renderGuideLinks(source, commandName = 'mearl') {
25
25
  });
26
26
  }
27
27
  /** Only packaged files are read; unknown IDs never become filesystem paths. */
28
- export function readGuide(id, commandName = 'mearl', version = CLIENT_VERSION) {
28
+ export async function readGuide(id, commandName = 'mearl', version = CLIENT_VERSION) {
29
29
  const topic = GUIDE_TOPICS.find(topic => topic.id === id);
30
30
  if (!topic)
31
31
  throw new Error(`未知指南主题:${id}。用 ${commandName} guide --list 查看主题。`);
@@ -36,9 +36,18 @@ export function readGuide(id, commandName = 'mearl', version = CLIENT_VERSION) {
36
36
  catch (error) {
37
37
  throw new Error(`当前安装缺少指南资源:${topic.id}。请通过当前发行版的安装入口修复安装包;参数可用 ${commandName} <action> --help 查询。`, { cause: error });
38
38
  }
39
+ let management;
40
+ if (source.includes('{{setup}}')) {
41
+ const { readInstallationManagement, setupManagementCommand } = await import('@mearl/daemon-core/installation');
42
+ const installed = await readInstallationManagement();
43
+ const command = setupManagementCommand(installed.setup ?? { package: '@mearl/setup', version: 'beta' });
44
+ source = source.replaceAll('{{setup}}', command);
45
+ management = installed.source ? `管理入口:${command};沿用本机已选 preset。` : `首次安装入口:${command};本机尚未选择 preset,组织发行环境使用其首次安装指引。`;
46
+ }
39
47
  return [
40
48
  `[mearl:guide] CLI ${version} · ${topic.id}`,
41
49
  '本指南随 CLI 分发;扩展、远端宿主与已安装能力仍须按目标实际帮助核验。',
50
+ ...(management ? [management] : []),
42
51
  '',
43
52
  renderGuideLinks(source.trim(), commandName),
44
53
  '',
@@ -46,7 +55,7 @@ export function readGuide(id, commandName = 'mearl', version = CLIENT_VERSION) {
46
55
  `[mearl:guide] end ${topic.id}`,
47
56
  ].join('\n');
48
57
  }
49
- export function runGuideCli(args, commandName = 'mearl', version = CLIENT_VERSION) {
58
+ export async function runGuideCli(args, commandName = 'mearl', version = CLIENT_VERSION) {
50
59
  const list = () => GUIDE_TOPICS.map(topic => ` ${topic.id.padEnd(18)}${topic.title}`).join('\n');
51
60
  if (args.length === 1 && (args[0] === '--help' || args[0] === '-h')) {
52
61
  console.log(`${commandName} guide — CLI ${version}\n\n用法:${commandName} guide [topic]\n ${commandName} guide --list\n\n默认只读 core;按需读取单个专题。只读本地资源,不连接浏览器或检查更新。\n\n${list()}`);
@@ -61,7 +70,7 @@ export function runGuideCli(args, commandName = 'mearl', version = CLIENT_VERSIO
61
70
  return 2;
62
71
  }
63
72
  try {
64
- console.log(readGuide(args[0] ?? 'core', commandName, version));
73
+ console.log(await readGuide(args[0] ?? 'core', commandName, version));
65
74
  return 0;
66
75
  }
67
76
  catch (error) {
@@ -18,7 +18,7 @@
18
18
  有脚本入口的 Skill 可安装并自动注册插件:
19
19
 
20
20
  ```bash
21
- npx @mearl/setup@beta plugin install https://github.com/mearlhq/mearl --skill <skill-name> --yes
21
+ {{setup}} plugin install https://github.com/mearlhq/mearl --skill <skill-name> --yes
22
22
  ```
23
23
 
24
24
  已可用的专用 Skill 按其说明执行;普通业务操作不因存在可安装能力就主动安装。用户拒绝、要求继续或 Skill 不适用时回到通用流程。
@@ -26,11 +26,11 @@
26
26
  ## 环境安装、更新与卸载
27
27
 
28
28
  CLI、Native Host、MCP 和云端核心运行包要求 Node.js >= 20.18.0。安装前用 `node --version` 确认版本;
29
- 不满足时先升级 Node。3.0 beta 使用 `npx @mearl/setup@beta --yes`,保留显式的 `@beta` 标签。
30
- 出现 `Unknown operation: plugin` 时,用 `npx @mearl/setup@beta --version` 核对安装器版本;
29
+ 不满足时先升级 Node。环境安装使用 `{{setup}} --yes`,沿用所展示入口的包名、版本或标签及 registry。
30
+ 出现 `Unknown operation: plugin` 时,用 `{{setup}} --version` 核对安装器版本;
31
31
  未指定版本时,npm 可能因 Node 不兼容而选择历史版本。
32
32
 
33
- 环境管理使用 `npx @mearl/setup@beta <install|update|uninstall>`,具体选项按子命令 `--help` 查询。Agent 执行 install/uninstall 时附加 `--yes` 或 `--non-interactive`,避免等待交互;人工终端可保留交互选择。
33
+ 环境管理使用 `{{setup}} <install|update|uninstall>`,具体选项按子命令 `--help` 查询。Agent 执行 install/uninstall 时附加 `--yes` 或 `--non-interactive`,避免等待交互;人工终端可保留交互选择。
34
34
 
35
35
  主动安装或更新本机环境时,setup 优先使用显式 `--preset <清单 URL 或路径>`,否则保留本机已选 preset;本机未选择时,在运行时初始化后、安装任何 Skill 前检查已连接扩展的受信 preset 并补齐本机组件。首次连接最多等待约一分钟。多个浏览器选择不同、来源不受信或状态不可读时会停止并提示显式选择,不猜测。浏览器未连接时仅安装基础环境,连接后重跑 setup 即可;普通连接和后台自动更新不触发首次本机 preset 安装。
36
36
 
@@ -49,7 +49,7 @@ CLI、Native Host、MCP 和云端核心运行包要求 Node.js >= 20.18.0。安
49
49
  优先安装 [Chrome 商店版](https://chromewebstore.google.com/detail/mearl/aoehhjnofngknnjefamjbplchbolghkm),由 Chrome 管理更新。商店不可用或用户明确要求 setup 托管时,执行:
50
50
 
51
51
  ```bash
52
- npx @mearl/setup@beta extension --full --yes
52
+ {{setup}} extension --full --yes
53
53
  ```
54
54
 
55
55
  该命令同时准备本地环境。人工在终端执行时可省略 `--yes`。
@@ -61,7 +61,7 @@ npx @mearl/setup@beta extension --full --yes
61
61
  `mearl` 或 `mearl-native-host` 命令不存在时,在浏览器所在机器安装:
62
62
 
63
63
  ```bash
64
- npx @mearl/setup@beta --local --yes
64
+ {{setup}} --local --yes
65
65
  ```
66
66
 
67
67
  命令存在但连接失败时,先检查当前链路:
@@ -73,7 +73,7 @@ mearl check
73
73
  只需隔离检查当前机器时使用 `mearl check --local`;路由参数与配置优先级见 `mearl check --help`。只有检查结果表明本地组件缺失、过期或初始化不完整时,才更新并重新初始化:
74
74
 
75
75
  ```bash
76
- npx @mearl/setup@beta update --local --yes
76
+ {{setup}} update --local --yes
77
77
  ```
78
78
 
79
79
  <a id="eacces"></a>
@@ -125,7 +125,7 @@ client 会处理当前用户的 stale socket 并尝试恢复 native host;恢
125
125
  1. 安装 cloud-server、统一 client 与当前 Agent 的全局 mearl skill:
126
126
 
127
127
  ```bash
128
- npx @mearl/setup@beta --cloud --yes
128
+ {{setup}} --cloud --yes
129
129
  ```
130
130
 
131
131
  setup 会启动 cloud-server 并输出连接命令。把输出的完整命令交给用户在浏览器所在机器执行,不自行拼接地址或 token。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mearl/client",
3
- "version": "3.0.0-beta.8",
3
+ "version": "3.0.0-beta.9",
4
4
  "description": "Unified Mearl SDK & CLI for local and remote browsers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -67,11 +67,11 @@
67
67
  "commander": "^14.0.3",
68
68
  "fastest-levenshtein": "^1.0.16",
69
69
  "ws": "^8.18.0",
70
- "@mearl/daemon-core": "3.0.0-beta.8",
71
- "@mearl/cloud-types": "3.0.0-beta.8",
72
- "@mearl/provider": "3.0.0-beta.8",
73
- "@mearl/agent-runtime": "3.0.0-beta.8",
74
- "@mearl/browser-core": "3.0.0-beta.8"
70
+ "@mearl/daemon-core": "3.0.0-beta.9",
71
+ "@mearl/cloud-types": "3.0.0-beta.9",
72
+ "@mearl/provider": "3.0.0-beta.9",
73
+ "@mearl/agent-runtime": "3.0.0-beta.9",
74
+ "@mearl/browser-core": "3.0.0-beta.9"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@types/node": "^24.9.1",