@lansenger-pm/openclaw-lansenger-channel 3.2.12 → 3.3.1

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.fr.md CHANGED
@@ -35,45 +35,36 @@ Connecte OpenClaw à Lansenger — une plateforme de messagerie d'entreprise —
35
35
 
36
36
  ## Outils de l'agent & CLI
37
37
 
38
- **La CLI est la méthode PRINCIPALE** — elle fonctionne toujours via bash. Les outils agent sont un REPLI ils peuvent ne pas s'injecter correctement dans certaines versions de la passerelle.
38
+ Les outils agent sont **intégrés dans ce plugin** — ils sont toujours disponibles lorsque le canal est configuré et en cours d'exécution. La CLI est une alternative optionnelle via bash.
39
39
 
40
- Les messages peuvent être envoyés via les **commandes CLI** (principal) ou les **outils agent** (repli) :
40
+ Les messages peuvent être envoyés via les **outils agent** (intégrés) ou les **commandes CLI** (alternative optionnelle) :
41
41
 
42
42
  | Méthode | Installation | Utilisation |
43
43
  |---------|-------------|-------------|
44
- | **Commandes CLI** (principal) | `pipx install lansenger-cli` (`pip install lansenger-cli` comme alternative) | `lansenger message send-file`, `lansenger message send-text`, etc. |
45
- | Outils agent (repli) | `openclaw plugins install @lansenger-pm/openclaw-lansenger-tools` | `lansenger_send_file`, `lansenger_send_text`, etc. |
44
+ | **Outils agent** (intégrés) | Inclus dans `@lansenger-pm/openclaw-lansenger-channel` | `lansenger_send_file`, `lansenger_send_text`, etc. |
45
+ | Commandes CLI (optionnel) | `pipx install lansenger-cli` (`pip install lansenger-cli` comme alternative) | `lansenger message send-file`, `lansenger message send-text`, etc. |
46
46
 
47
- > ⚠️ **Les outils agent nécessitent le plugin `lansenger-tools` ET une injection réussie de la passerelle**si les outils ne sont pas disponibles, utilisez la CLI comme repli. Les commandes CLI nécessitent `lansenger-cli` (Python). Sans aucun des deux, seules les réponses Markdown normales fonctionnent.
47
+ > **Les outils agent sont toujours disponibles** lorsque le canal est configuré et la passerelle en cours d'exécution aucun plugin séparé nécessaire. Les commandes CLI sont une alternative optionnelle pour les environnements l'accès bash est préféré ; elles nécessitent `lansenger-cli` (Python).
48
48
 
49
49
  ## Installation et Configuration
50
50
 
51
51
  ### Installation recommandée
52
52
 
53
53
  ```bash
54
- # 1. Installer le plugin de canal
54
+ # 1. Installer le plugin de canal (inclut les outils agent)
55
55
  openclaw plugins install @lansenger-pm/openclaw-lansenger-channel
56
56
 
57
- # 2. Installer le CLI OU le plugin outils (au moins un est nécessaire pour les messages)
58
- # Option A : CLI Python (principal — fonctionne toujours via bash)
59
- pipx install lansenger-cli # ou : pip install lansenger-cli
60
- # Option B : Plugin outils agent OpenClaw (repli — nécessite injection passerelle)
61
- openclaw plugins install @lansenger-pm/openclaw-lansenger-tools
62
-
63
- # 3. Activer les plugins (si non auto-activés)
57
+ # 2. Activer le plugin (si non auto-activé)
64
58
  openclaw config set plugins.entries.lansenger.enabled true
65
- openclaw config set plugins.entries.lansenger-tools.enabled true # si Option B
66
59
 
67
- # 4. Configurer le canal (assistant interactif)
60
+ # 3. Configurer le canal (assistant interactif)
68
61
  openclaw channels add
69
62
 
70
- # 5. Redémarrer la passerelle
63
+ # 4. Redémarrer la passerelle
71
64
  openclaw gateway restart
72
65
  ```
73
66
 
74
- > **Note** : Les outils agent (Option B) peuvent ne pas s'injecter correctement dans certaines versions de la passerelle — vérifiez toujours que les outils `lansenger_send_*` apparaissent dans la liste des outils de l'agent. Si les outils sont absents, utilisez la CLI (Option A).
75
-
76
- Les `peerDependencies` de `package.json` avertiront lors de npm install si le plugin tools est absent. L'assistant de configuration vous rappelle également de l'installer.
67
+ > **Optionnel** : Installer `lansenger-cli` pour une alternative CLI : `pipx install lansenger-cli`.
77
68
 
78
69
  > **Passerelle personnalisée** : pour les déploiements entreprise (ex. 奇安信), configurez `apiGatewayUrl` dans `openclaw.json` ou via les variables d'environnement après la configuration — voir [Configuration optionnelle](#configuration-optionnelle).
79
70
 
@@ -340,6 +331,7 @@ openclaw-lansenger-channel/
340
331
  │ ├── client.ts # Client API Lansenger (WS, HTTP, médias)
341
332
  │ ├── channel.ts # Plugin de canal OpenClaw
342
333
  │ ├── channel.test.ts # Tests du plugin de canal
334
+ │ ├── tools.ts # Définitions des outils agent (10 outils intégrés)
343
335
  │ └── runtime.ts # Runtime passerelle (méthodes, handler entrant)
344
336
  ├── skills/
345
337
  │ └── lansenger-messaging/
@@ -379,6 +371,7 @@ Les mises à jour de statut d'approbation utilisent le format DynamicMsg appCard
379
371
 
380
372
  ## Journal des modifications
381
373
 
374
+ - **v3.3.0** — Fusion du plugin tools dans le plugin canal ; outils agent désormais intégrés (pas d'installation séparée) ; suppression des peerDependencies sur `@lansenger-pm/openclaw-lansenger-tools`
382
375
  - **v3.2.10** — Alerte au démarrage si `group:plugins` absent de l'allowlist ; `configWrites` dans le schema de config canal ; plugin compagnon via `globalThis.__lansenger_channel`
383
376
  - **v3.1** — Wizard multi-compte ; alignement dmPolicy (dmSecurity→dmPolicy + paired→pairing) ; prompts bilingues ; shouldPrompt skip steps configurés ; migration config multi-compte
384
377
  - **v3.0** — Ajout `lansenger_send_format_text` (Markdown + @mention) ; réécriture SKILL.md ; correction headStatusInfo description+colour
package/README.md CHANGED
@@ -33,16 +33,16 @@ Lansenger (蓝信) channel plugin for OpenClaw — WebSocket inbound, HTTP API o
33
33
 
34
34
  ## Agent Tools & CLI
35
35
 
36
- **CLI is the PRIMARY method** — it always works via bash. Agent tools are a FALLBACK they may not inject properly in some Gateway versions.
36
+ Agent tools are **built into this plugin** — they are always available when the channel is configured and running. CLI is an optional alternative that works via bash.
37
37
 
38
- Messages can be sent via **CLI commands** (primary) or **agent tools** (fallback):
38
+ Messages can be sent via **agent tools** (built-in) or **CLI commands** (optional alternative):
39
39
 
40
40
  | Method | How to install | Usage |
41
41
  |--------|---------------|-------|
42
- | **CLI commands** (primary) | `pipx install lansenger-cli` (`pip install lansenger-cli` as alternative) | `lansenger message send-file`, `lansenger message send-text`, etc. |
43
- | Agent tools (fallback) | `openclaw plugins install @lansenger-pm/openclaw-lansenger-tools` | `lansenger_send_file`, `lansenger_send_text`, etc. |
42
+ | **Agent tools** (built-in) | Included in `@lansenger-pm/openclaw-lansenger-channel` | `lansenger_send_file`, `lansenger_send_text`, etc. |
43
+ | CLI commands (optional) | `pipx install lansenger-cli` (`pip install lansenger-cli` as alternative) | `lansenger message send-file`, `lansenger message send-text`, etc. |
44
44
 
45
- > ⚠️ **Agent tools require the `lansenger-tools` plugin AND successful Gateway injection** if tools are not available, use CLI as fallback. CLI commands require `lansenger-cli` (Python). Without either, only normal Markdown replies work.
45
+ > **Agent tools are always available** when the channel is configured and the gateway is running no separate plugin needed. CLI commands are an optional alternative for environments where bash access is preferred; they require `lansenger-cli` (Python).
46
46
 
47
47
  | Tool | Description |
48
48
  |------|-------------|
@@ -63,29 +63,20 @@ Tools are also available via CLI: `lansenger message send-text`, `lansenger mess
63
63
  ### Recommended setup
64
64
 
65
65
  ```bash
66
- # 1. Install the channel plugin
66
+ # 1. Install the channel plugin (includes agent tools)
67
67
  openclaw plugins install @lansenger-pm/openclaw-lansenger-channel
68
68
 
69
- # 2. Install the CLI OR the tools plugin (at least one is needed for messaging)
70
- # Option A: Python CLI (primary — always works via bash)
71
- pipx install lansenger-cli # or: pip install lansenger-cli
72
- # Option B: OpenClaw agent tools plugin (fallback — requires Gateway injection)
73
- openclaw plugins install @lansenger-pm/openclaw-lansenger-tools
74
-
75
- # 3. Enable the plugins (if not auto-enabled)
69
+ # 2. Enable the plugin (if not auto-enabled)
76
70
  openclaw config set plugins.entries.lansenger.enabled true
77
- openclaw config set plugins.entries.lansenger-tools.enabled true # if using Option B
78
71
 
79
- # 4. Configure the channel (interactive wizard)
72
+ # 3. Configure the channel (interactive wizard)
80
73
  openclaw channels add
81
74
 
82
- # 5. Restart the gateway
75
+ # 4. Restart the gateway
83
76
  openclaw gateway restart
84
77
  ```
85
78
 
86
- > **Note**: Agent tools (Option B) may not inject properly in some Gateway versions — always verify by checking if `lansenger_send_*` tools appear in the agent's tool list. If tools are missing, use CLI (Option A) instead.
87
-
88
- The `package.json` `peerDependencies` will warn during npm install if the tools plugin is missing. The setup wizard also reminds you to install it.
79
+ > **Optional**: Install `lansenger-cli` for an alternative CLI-based messaging path: `pipx install lansenger-cli`.
89
80
 
90
81
  > **Custom gateway**: For enterprise deployments (e.g. 奇安信), set `apiGatewayUrl` in `openclaw.json` or environment after configuration — see [Optional Configuration](#optional-configuration).
91
82
 
@@ -315,7 +306,7 @@ The plugin supports approval workflow cards:
315
306
  - **reminder** — optional in formatText; recommended in group chat. Include "@姓名" in text when mentioning.
316
307
  - **Media** — `<media>` tags work for workspace files; for external paths use `lansenger_send_file`.
317
308
  - **openclaw skill/message lansenger** — these CLI commands do NOT exist; use agent tools instead.
318
- - **Agent tools** — agent tools (`lansenger_send_*`) require the tools plugin AND successful Gateway injection if tools are not available, use CLI as fallback. CLI commands (`lansenger message send-*`) require `pipx install lansenger-cli`.
309
+ - **Agent tools** — agent tools (`lansenger_send_*`) are built into the channel plugin — always available when the channel is configured and running. CLI commands (`lansenger message send-*`) require `pipx install lansenger-cli` and are an optional alternative.
319
310
 
320
311
  ## Development
321
312
 
@@ -346,6 +337,7 @@ openclaw-lansenger-channel/
346
337
  │ ├── client.ts # Lansenger API client (WS, HTTP, media)
347
338
  │ ├── channel.ts # OpenClaw channel plugin
348
339
  │ ├── channel.test.ts # Channel plugin tests
340
+ │ ├── tools.ts # Agent tool definitions (10 built-in tools)
349
341
  │ └── runtime.ts # Gateway runtime (methods, inbound handler)
350
342
  ├── skills/
351
343
  │ └── lansenger-messaging/
@@ -385,6 +377,7 @@ Approval status updates use the DynamicMsg appCard format. The `updateCardStatus
385
377
 
386
378
  ## Changelog
387
379
 
380
+ - **v3.3.0** — Merge tools plugin into channel plugin; agent tools now built-in (no separate install); remove peerDependencies on `@lansenger-pm/openclaw-lansenger-tools`
388
381
  - **v3.2.10** — Startup warning for missing `group:plugins` in tool allowlist; `configWrites` in channel config schema; companion plugin cross-runtime state via `globalThis.__lansenger_channel`
389
382
  - **v3.1** — Multi-account setup wizard; dmPolicy/dmSecurity→dmPolicy+pairing (OpenClaw standard); bilingual prompts; credential shouldPrompt skips configured steps; clean multi-account config migration
390
383
  - **v3.0** — Add `lansenger_send_format_text` tool (Markdown + @mention); rewrite SKILL.md; fix headStatusInfo description+colour semantics
package/README.zhHans.md CHANGED
@@ -35,16 +35,16 @@
35
35
 
36
36
  ## 代理工具 & CLI
37
37
 
38
- **CLI 是主要方式** 始终通过 bash 调用即可使用。代理工具为备选方式 — 在某些网关版本中可能无法正确注入。
38
+ 代理工具**已内置于此插件**频道配置并运行时始终可用。CLI 为可选替代方案,通过 bash 调用。
39
39
 
40
- 消息可以通过**CLI 命令**(主要)或**代理工具**(备选)发送:
40
+ 消息可以通过**代理工具**(内置)或**CLI 命令**(可选替代)发送:
41
41
 
42
42
  | 方式 | 安装方法 | 使用 |
43
43
  |------|----------|------|
44
- | **CLI 命令**(主要) | `pipx install lansenger-cli`(`pip install lansenger-cli` 为替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
45
- | 代理工具(备选) | `openclaw plugins install @lansenger-pm/openclaw-lansenger-tools` | `lansenger_send_file`、`lansenger_send_text` 等 |
44
+ | **代理工具**(内置) | 已包含在 `@lansenger-pm/openclaw-lansenger-channel` | `lansenger_send_file`、`lansenger_send_text` 等 |
45
+ | CLI 命令(可选) | `pipx install lansenger-cli`(`pip install lansenger-cli` 为替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
46
46
 
47
- > ⚠️ **代理工具需要 `lansenger-tools` 插件且网关注入成功** 若工具不可用,请使用 CLI 作为备选。CLI 命令需要 `lansenger-cli`(Python)。两者均未安装时,代理只能通过普通 Markdown 文本回复。
47
+ > **代理工具始终可用**频道配置且网关运行时即可使用,无需单独安装插件。CLI 命令为可选替代方案,适合偏好 bash 调用的场景;需安装 `lansenger-cli`(Python)。
48
48
 
49
49
  | 工具 | 说明 |
50
50
  |------|------|
@@ -65,29 +65,20 @@
65
65
  ### 推荐安装流程
66
66
 
67
67
  ```bash
68
- # 1. 安装频道插件
68
+ # 1. 安装频道插件(包含代理工具)
69
69
  openclaw plugins install @lansenger-pm/openclaw-lansenger-channel
70
70
 
71
- # 2. 安装 CLI 或工具插件(至少需要一个来发送消息)
72
- # 方案 A:Python CLI(主要 — 始终可通过 bash 调用)
73
- pipx install lansenger-cli # 或:pip install lansenger-cli
74
- # 方案 B:OpenClaw 代理工具插件(备选 — 需网关注入)
75
- openclaw plugins install @lansenger-pm/openclaw-lansenger-tools
76
-
77
- # 3. 启用插件(如未自动启用)
71
+ # 2. 启用插件(如未自动启用)
78
72
  openclaw config set plugins.entries.lansenger.enabled true
79
- openclaw config set plugins.entries.lansenger-tools.enabled true # 使用方案 B 时
80
73
 
81
- # 4. 配置频道(交互式向导)
74
+ # 3. 配置频道(交互式向导)
82
75
  openclaw channels add
83
76
 
84
- # 5. 重启网关
77
+ # 4. 重启网关
85
78
  openclaw gateway restart
86
79
  ```
87
80
 
88
- > **注意**:代理工具(方案 B)在某些网关版本中可能无法正确注入 请务必检查代理工具列表中是否出现 `lansenger_send_*` 工具。若工具缺失,请使用 CLI(方案 A)。
89
-
90
- `package.json` 的 `peerDependencies` 在 npm install 时会警告缺失 tools 插件。设置向导也会提醒安装。
81
+ > **可选**:安装 `lansenger-cli` 作为 CLI 替代方案:`pipx install lansenger-cli`。
91
82
 
92
83
  > **自定义网关**:企业私有化部署(如奇安信)需在配置后通过 `openclaw.json` 或环境变量设置 `apiGatewayUrl` — 见[可选配置](#可选配置)。
93
84
 
@@ -354,6 +345,7 @@ openclaw-lansenger-channel/
354
345
  │ ├── client.ts # 蓝信 API 客户端(WS、HTTP、媒体)
355
346
  │ ├── channel.ts # OpenClaw 频道插件
356
347
  │ ├── channel.test.ts # 频道插件测试
348
+ │ ├── tools.ts # 代理工具定义(10 个内置工具)
357
349
  │ └── runtime.ts # 网关运行时(方法、入站处理器)
358
350
  ├── skills/
359
351
  │ └── lansenger-messaging/
@@ -393,7 +385,7 @@ Agent 路由由 OpenClaw 的 `bindings[]` 配置管理——见[多 Agent 路由
393
385
 
394
386
  ## 更新日志
395
387
 
396
- - **v3.2.10** — 启动时检测 `group:plugins` 缺失警告;`configWrites` 加入频道配置 schema;伴生插件通过 `globalThis.__lansenger_channel` 共享运行时状态
388
+ - **v3.3.0** — 合并 tools 插件至频道插件;代理工具现已内置(无需单独安装);移除 `@lansenger-pm/openclaw-lansenger-tools` peerDependencies
397
389
  - **v3.1** — 多账号设置向导;dmPolicy 对齐 OpenClaw 标准(dmSecurity→dmPolicy + paired→pairing);中英双语提示文案;凭证 shouldPrompt 跳过已配置步骤;多账号配置迁移清理
398
390
  - **v3.0** — 新增 `lansenger_send_format_text` 工具(Markdown + @提及);重写 SKILL.md;修正 headStatusInfo description+colour 语义
399
391
  - **v2.10** — appCard font-size px→pt 自动转换;sendImageUrl 错误分类;工具注册日志
package/README.zhHant.md CHANGED
@@ -35,45 +35,36 @@
35
35
 
36
36
  ## 代理工具 & CLI
37
37
 
38
- **CLI 是主要方式** 始終透過 bash 呼叫即可使用。代理工具為備選方式 — 在某些閘道版本中可能無法正確注入。
38
+ 代理工具**已內建於此插件**頻道設定並執行時始終可用。CLI 為可選替代方案,透過 bash 呼叫。
39
39
 
40
- 訊息可以透過**CLI 命令**(主要)或**代理工具**(備選)傳送:
40
+ 訊息可以透過**代理工具**(內建)或**CLI 命令**(可選替代)傳送:
41
41
 
42
42
  | 方式 | 安裝方法 | 使用 |
43
43
  |------|----------|------|
44
- | **CLI 命令**(主要) | `pipx install lansenger-cli`(`pip install lansenger-cli` 為替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
45
- | 代理工具(備選) | `openclaw plugins install @lansenger-pm/openclaw-lansenger-tools` | `lansenger_send_file`、`lansenger_send_text` 等 |
44
+ | **代理工具**(內建) | 已包含在 `@lansenger-pm/openclaw-lansenger-channel` | `lansenger_send_file`、`lansenger_send_text` 等 |
45
+ | CLI 命令(可選) | `pipx install lansenger-cli`(`pip install lansenger-cli` 為替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
46
46
 
47
- > ⚠️ **代理工具需要 `lansenger-tools` 插件且閘道注入成功** 若工具不可用,請使用 CLI 作為備選。CLI 命令需要 `lansenger-cli`(Python)。兩者均未安裝時,代理只能透過普通 Markdown 文字回覆。
47
+ > **代理工具始終可用**頻道設定且閘道執行時即可使用,無需單獨安裝插件。CLI 命令為可選替代方案,適合偏好 bash 呼叫的場景;需安裝 `lansenger-cli`(Python)。
48
48
 
49
49
  ## 安裝與設定
50
50
 
51
51
  ### 建議安裝流程
52
52
 
53
53
  ```bash
54
- # 1. 安裝頻道插件
54
+ # 1. 安裝頻道插件(包含代理工具)
55
55
  openclaw plugins install @lansenger-pm/openclaw-lansenger-channel
56
56
 
57
- # 2. 安裝 CLI 或工具插件(至少需要一個來傳送訊息)
58
- # 方案 A:Python CLI(主要 — 始終可透過 bash 呼叫)
59
- pipx install lansenger-cli # 或:pip install lansenger-cli
60
- # 方案 B:OpenClaw 代理工具插件(備選 — 需閘道注入)
61
- openclaw plugins install @lansenger-pm/openclaw-lansenger-tools
62
-
63
- # 3. 啟用插件(如未自動啟用)
57
+ # 2. 啟用插件(如未自動啟用)
64
58
  openclaw config set plugins.entries.lansenger.enabled true
65
- openclaw config set plugins.entries.lansenger-tools.enabled true # 使用方案 B 時
66
59
 
67
- # 4. 配置頻道(互動式精靈)
60
+ # 3. 配置頻道(互動式精靈)
68
61
  openclaw channels add
69
62
 
70
- # 5. 重啟閘道
63
+ # 4. 重啟閘道
71
64
  openclaw gateway restart
72
65
  ```
73
66
 
74
- > **注意**:代理工具(方案 B)在某些閘道版本中可能無法正確注入 請務必檢查代理工具列表中是否出現 `lansenger_send_*` 工具。若工具缺失,請使用 CLI(方案 A)。
75
-
76
- `package.json` 的 `peerDependencies` 在 npm install 時會警告缺少 tools 插件。設定精靈也會提醒安裝。
67
+ > **可選**:安裝 `lansenger-cli` 作為 CLI 替代方案:`pipx install lansenger-cli`。
77
68
 
78
69
  > **自訂閘道**:企業私有化部署(如奇安信)需在設定後透過 `openclaw.json` 或環境變數設定 `apiGatewayUrl` — 見[可選設定](#可選設定)。
79
70
 
@@ -338,8 +329,9 @@ npx tsc --noEmit
338
329
  openclaw-lansenger-channel/
339
330
  ├── src/
340
331
  │ ├── client.ts # 藍信 API 客戶端(WS、HTTP、媒體)
341
- │ ├── channel.ts # OpenClaw 頻道插件
342
- │ ├── channel.test.ts # 頻道插件測試
332
+ │ ├── channel.ts # OpenClaw 频道插件
333
+ │ ├── channel.test.ts # 频道插件測試
334
+ │ ├── tools.ts # 代理工具定義(10 個內建工具)
343
335
  │ └── runtime.ts # 閘道運行時(方法、入站處理器)
344
336
  ├── skills/
345
337
  │ └── lansenger-messaging/
@@ -379,7 +371,7 @@ Agent 路由由 OpenClaw 的 `bindings[]` 設定管理——見[多 Agent 路由
379
371
 
380
372
  ## 更新日誌
381
373
 
382
- - **v3.2.10** — 啟動時檢測 `group:plugins` 缺失警告;`configWrites` 加入頻道配置 schema;伴生插件透過 `globalThis.__lansenger_channel` 共享運行時狀態
374
+ - **v3.3.0** — 合併 tools 插件至頻道插件;代理工具現已內建(無需單獨安裝);移除 `@lansenger-pm/openclaw-lansenger-tools` peerDependencies
383
375
  - **v3.1** — 多帳號設定精靈;dmPolicy 對齊 OpenClaw 標準(dmSecurity→dmPolicy + paired→pairing);中英雙語提示文案;憑證 shouldPrompt 跳過已設定步驟;多帳號設定遷移清理
384
376
  - **v3.0** — 新增 `lansenger_send_format_text` 工具(Markdown + @提及);重寫 SKILL.md;修正 headStatusInfo description+colour 語義
385
377
  - **v2.10** — appCard font-size px→pt 自動轉換;sendImageUrl 錯誤分類;工具註冊日誌
@@ -35,45 +35,36 @@
35
35
 
36
36
  ## 代理工具 & CLI
37
37
 
38
- **CLI 是主要方式** 始終透過 bash 呼叫即可使用。代理工具為備選方式 — 在某些網關版本中可能無法正確注入。
38
+ 代理工具**已內建於此插件**頻道設定並執行時始終可用。CLI 為可選替代方案,透過 bash 呼叫。
39
39
 
40
- 訊息可以透過**CLI 命令**(主要)或**代理工具**(備選)發送:
40
+ 訊息可以透過**代理工具**(內建)或**CLI 命令**(可選替代)發送:
41
41
 
42
42
  | 方式 | 安裝方法 | 使用 |
43
43
  |------|----------|------|
44
- | **CLI 命令**(主要) | `pipx install lansenger-cli`(`pip install lansenger-cli` 為替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
45
- | 代理工具(備選) | `openclaw plugins install @lansenger-pm/openclaw-lansenger-tools` | `lansenger_send_file`、`lansenger_send_text` 等 |
44
+ | **代理工具**(內建) | 已包含在 `@lansenger-pm/openclaw-lansenger-channel` | `lansenger_send_file`、`lansenger_send_text` 等 |
45
+ | CLI 命令(可選) | `pipx install lansenger-cli`(`pip install lansenger-cli` 為替代) | `lansenger message send-file`、`lansenger message send-text` 等 |
46
46
 
47
- > ⚠️ **代理工具需要 `lansenger-tools` 插件且網關注入成功** 若工具不可用,請使用 CLI 作為備選。CLI 命令需要 `lansenger-cli`(Python)。兩者均未安裝時,代理只能透過普通 Markdown 文字回覆。
47
+ > **代理工具始終可用**頻道設定且網關執行時即可使用,無需單獨安裝插件。CLI 命令為可選替代方案,適合偏好 bash 呼叫的場景;需安裝 `lansenger-cli`(Python)。
48
48
 
49
49
  ## 安裝與設定
50
50
 
51
51
  ### 建議安裝流程
52
52
 
53
53
  ```bash
54
- # 1. 安裝頻道插件
54
+ # 1. 安裝頻道插件(包含代理工具)
55
55
  openclaw plugins install @lansenger-pm/openclaw-lansenger-channel
56
56
 
57
- # 2. 安裝 CLI 或工具插件(至少需要一個來發送訊息)
58
- # 方案 A:Python CLI(主要 — 始終可透過 bash 呼叫)
59
- pipx install lansenger-cli # 或:pip install lansenger-cli
60
- # 方案 B:OpenClaw 代理工具插件(備選 — 需網關注入)
61
- openclaw plugins install @lansenger-pm/openclaw-lansenger-tools
62
-
63
- # 3. 啟用插件(如未自動啟用)
57
+ # 2. 啟用插件(如未自動啟用)
64
58
  openclaw config set plugins.entries.lansenger.enabled true
65
- openclaw config set plugins.entries.lansenger-tools.enabled true # 使用方案 B 時
66
59
 
67
- # 4. 配置頻道(互動式精靈)
60
+ # 3. 配置頻道(互動式精靈)
68
61
  openclaw channels add
69
62
 
70
- # 5. 重啟網關
63
+ # 4. 重啟網關
71
64
  openclaw gateway restart
72
65
  ```
73
66
 
74
- > **注意**:代理工具(方案 B)在某些網關版本中可能無法正確注入 請務必檢查代理工具列表中是否出現 `lansenger_send_*` 工具。若工具缺失,請使用 CLI(方案 A)。
75
-
76
- `package.json` 的 `peerDependencies` 在 npm install 時會警告缺少 tools 插件。設定精靈也會提醒安裝。
67
+ > **可選**:安裝 `lansenger-cli` 作為 CLI 替代方案:`pipx install lansenger-cli`。
77
68
 
78
69
  > **自訂閘道**:企業私有化部署(如奇安信)需在設定後透過 `openclaw.json` 或環境變數設定 `apiGatewayUrl` — 見[可選設定](#可選設定)。
79
70
 
@@ -340,8 +331,9 @@ npx tsc --noEmit
340
331
  openclaw-lansenger-channel/
341
332
  ├── src/
342
333
  │ ├── client.ts # 藍信 API 客戶端(WS、HTTP、媒體)
343
- │ ├── channel.ts # OpenClaw 頻道插件
344
- │ ├── channel.test.ts # 頻道插件測試
334
+ │ ├── channel.ts # OpenClaw 频道插件
335
+ │ ├── channel.test.ts # 频道插件測試
336
+ │ ├── tools.ts # 代理工具定義(10 個內建工具)
345
337
  │ └── runtime.ts # 網關運行時(方法、入站處理器)
346
338
  ├── skills/
347
339
  │ └── lansenger-messaging/
@@ -381,7 +373,7 @@ Agent 路由由 OpenClaw 的 `bindings[]` 設定管理——見[多 Agent 路由
381
373
 
382
374
  ## 更新日誌
383
375
 
384
- - **v3.2.10** — 啟動時檢測 `group:plugins` 缺失警告;`configWrites` 加入頻道配置 schema;伴生插件透過 `globalThis.__lansenger_channel` 共享運行時狀態
376
+ - **v3.3.0** — 合併 tools 插件至頻道插件;代理工具現已內建(無需單獨安裝);移除 `@lansenger-pm/openclaw-lansenger-tools` peerDependencies
385
377
  - **v3.1** — 多帳號設定精靈;dmPolicy 對齊 OpenClaw 標準(dmSecurity→dmPolicy + paired→pairing);中英雙語提示文案;憑證 shouldPrompt 跳過已設定步驟;多帳號設定遷移清理
386
378
  - **v3.0** — 新增 `lansenger_send_format_text` 工具(Markdown + @提及);重寫 SKILL.md;修正 headStatusInfo description+colour 語義
387
379
  - **v2.10** — appCard font-size px→pt 自動轉換;sendImageUrl 錯誤分類;工具註冊日誌
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
2
2
  import { lansengerPlugin } from "./src/channel.js";
3
3
  import { startLansengerGateway } from "./src/runtime.js";
4
+ import { registerLansengerTools } from "./src/tools.js";
4
5
  export { resolveAccount, makeClient } from "./src/channel.js";
5
6
  export { getRunningClient, getRunningAccount, getLastInboundChatId } from "./src/runtime.js";
6
7
  export { LansengerClient } from "./src/client.js";
@@ -11,6 +12,7 @@ export default defineChannelPluginEntry({
11
12
  plugin: lansengerPlugin,
12
13
  registerFull(api) {
13
14
  startLansengerGateway(api);
15
+ registerLansengerTools(api);
14
16
  },
15
17
  });
16
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,eAAe,wBAAwB,CAAC;IACtC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAE,eAAe;IACvB,YAAY,CAAC,GAAG;QACd,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,eAAe,wBAAwB,CAAC;IACtC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAE,eAAe;IACvB,YAAY,CAAC,GAAG;QACd,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC"}
@@ -78,7 +78,7 @@ export function startLansengerGateway(api) {
78
78
  const toolsConfig = api.config.tools;
79
79
  const alsoAllow = (toolsConfig?.alsoAllow ?? []);
80
80
  if (!alsoAllow.some((e) => e === "group:plugins" || e === "__openclaw_default_plugin_tools__")) {
81
- log.warn(`Plugin tools (lansenger_send_text, etc.) may be INVISIBLE under the current profile.` +
81
+ log.warn(`Agent tools (lansenger_send_file, etc.) are registered by this channel plugin but may be INVISIBLE under the current tool profile.` +
82
82
  ` Add to openclaw.json: "tools": { "alsoAllow": ["group:plugins"] }` +
83
83
  ` — see https://openclaw.ai/docs/tool-policy for details.`);
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,8 @@ const HELP_LINES = [
32
32
  "Mobile client does NOT support viewing credentials / 移动端不支持查看凭证",
33
33
  `Docs: ${formatDocsLink("https://open.e.lanxin.cn/docs", "lansenger")}`,
34
34
  "",
35
- "⚠️ Agent tools require a separate plugin, CLI requires a Python package: / 代理工具或 CLI 需单独安装:",
36
- " Option A: openclaw plugins install @lansenger-pm/openclaw-lansenger-tools",
37
- " Option B: pip install lansenger-cli",
35
+ " Agent tools are included in this plugin (no separate install needed). / 代理工具已内置于此插件,无需单独安装。",
36
+ "CLI is an optional alternative: pip install lansenger-cli / CLI 为可选替代方案:pip install lansenger-cli",
38
37
  ];
39
38
  function makeInspect(field, envVar) {
40
39
  return ({ cfg, accountId }) => {
@@ -231,17 +230,14 @@ export const lansengerSetupWizard = {
231
230
  }),
232
231
  disable: (cfg) => setSetupChannelEnabled(cfg, CHANNEL, false),
233
232
  companionNote: {
234
- title: "Install Messaging Tools / 安装消息工具",
233
+ title: "Messaging Tools / 消息工具",
235
234
  lines: [
236
- "To send files, cards, and formatted messages, install one of: / 发送文件、卡片和格式化消息,安装以下任一:",
235
+ "Agent tools (lansenger_send_file, etc.) are included in this plugin — no separate install needed. / 代理工具(lansenger_send_file 等)已内置于此插件,无需单独安装。",
237
236
  "",
238
- " Option A: OpenClaw agent tools plugin / 方案 A:OpenClaw 代理工具插件",
239
- " openclaw plugins install @lansenger-pm/openclaw-lansenger-tools",
237
+ "CLI is an optional alternative (works via bash): / CLI 为可选替代方案(通过 bash 调用):",
238
+ " pip install lansenger-cli",
240
239
  "",
241
- " Option B: Python CLI (works via bash) / 方案 B:Python CLI(通过 bash 调用)",
242
- " pip install lansenger-cli",
243
- "",
244
- "Without either, the agent can only reply via normal Markdown text. / 未安装任一时,代理只能通过普通 Markdown 文本回复。",
240
+ "Without CLI, the agent can still use built-in tools for files, cards, and formatted messages. / 未安装 CLI 时,代理仍可使用内置工具发送文件、卡片和格式化消息。",
245
241
  ],
246
242
  shouldShow: () => true,
247
243
  },
@@ -1 +1 @@
1
- {"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/setup-wizard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,4BAA4B,EAC5B,mCAAmC,EACnC,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,6BAA6B,EAC7B,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B,SAAS,UAAU,CAAC,GAAmB;IACrC,OAAQ,GAAG,CAAC,QAAgC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAmB,EAAE,SAAkB;IACpE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA2C,CAAC;IACrE,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QAC9E,OAAO,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,EAAE,KAAK,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,mFAAmF;IACnF,gEAAgE;IAChE,iEAAiE;IACjE,iEAAiE;IACjE,SAAS,cAAc,CAAC,+BAA+B,EAAE,WAAW,CAAC,EAAE;IACvE,EAAE;IACF,6FAA6F;IAC7F,6EAA6E;IAC7E,uCAAuC;CACxC,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,EAA+C,EAAO,EAAE;QAC9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,kBAAkB,CAAC;YAC1F,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,iBAAiB,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;YAC7C,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC;YAClC,aAAa,EAAE,KAAK,IAAI,SAAS;YACjC,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAQ;IACvC,OAAO,EAAE,OAAO;IAEhB,MAAM,EAAE,gCAAgC,CAAC;QACvC,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,kBAAkB;QACnC,iBAAiB,EAAE,sDAAsD;QACzE,cAAc,EAAE,kBAAkB;QAClC,gBAAgB,EAAE,oBAAoB;QACtC,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,CAAC,EAAE,GAAG,EAAO,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAA2C,CAAC;YACtE,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,SAAS,CAAC;gBAClD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC;IAEF,SAAS,EAAE;QACT,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,CAAC,EAAE,GAAG,EAAO,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAA2C,CAAC;YACtE,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;KACF;IAED,WAAW,EAAE;QACX;YACE,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,WAAW;YACzB,eAAe,EAAE,kBAAkB;YACnC,eAAe,EAAE,kBAAkB;YACnC,SAAS,EAAE,8BAA8B;YACzC,SAAS,EAAE;gBACT,yDAAyD;gBACzD,oFAAoF;aACrF;YACD,SAAS,EAAE,yEAAyE;YACpF,UAAU,EAAE,uDAAuD;YACnE,WAAW,EAAE,sCAAsC;YACnD,YAAY,EAAE,CAAC,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB;YAC3D,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,kBAAkB;YAC3G,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACjD,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC;gBACjF,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;gBAChC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;aAChC,CAAC;SACH;QACD;YACE,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,WAAW;YACzB,eAAe,EAAE,sBAAsB;YACvC,eAAe,EAAE,sBAAsB;YACvC,SAAS,EAAE,sCAAsC;YACjD,SAAS,EAAE;gBACT,iEAAiE;gBACjE,gFAAgF;aACjF;YACD,SAAS,EAAE,iFAAiF;YAC5F,UAAU,EAAE,+DAA+D;YAC3E,WAAW,EAAE,8CAA8C;YAC3D,YAAY,EAAE,CAAC,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB;YAC3D,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,kBAAkB;YAC3G,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,sBAAsB,CAAC;YACzD,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC;gBACjF,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;gBAChC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;aACpC,CAAC;SACH;KACF;IAED,UAAU,EAAE;QACV;YACE,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,kFAAkF;YAC3F,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAO,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACtD,OAAO,OAAO,EAAE,aAAa,IAAI,qCAAqC,CAAC;YACzE,CAAC;YACD,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC;gBACzE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;gBAChC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;aAChC,CAAC;SACH;KACF;IAEH,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAO,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAE,GAAG,CAAC,QAAgC,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,OAAO,CAAC,QAA2C,CAAC;QAEnE,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAE5B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YAEvD,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;iBAAM,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC/B,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBACtG,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC7C,CAAC;gBACD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,YAAY,CAAC;gBAC5C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;gBACpE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;gBAChC,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1F,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;oBACxB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;iBAC9D,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,OAAO,CAAC,SAAS,CAAC;YACzB,OAAO,OAAO,CAAC,aAAa,CAAC;YAC7B,OAAO,OAAO,CAAC,SAAS,CAAC;YACzB,OAAO,OAAO,CAAC,QAAQ,CAAC;YACxB,OAAO,OAAO,CAAC,UAAU,CAAC;YAC1B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;QACzE,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAC5B,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC;QAE3B,MAAM,kBAAkB,GAAG,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,kBAAkB;YACjG,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEtE,OAAO,4BAA4B,CAAC;YAClC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB;YACpD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,SAAS,EAAE,mCAAmC,CAAC;QAC7C,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE;YACT,qEAAqE;YACrE,4CAA4C;SAC7C;QACD,OAAO,EAAE,iFAAiF;QAC1F,WAAW,EAAE,iBAAiB;QAC9B,4BAA4B,EAAE,wGAAwG;QACtI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI;QAChD,cAAc,EAAE,KAAK,EAAE,EAAE,OAAO,EAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YAC1E,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE;SACjB,CAAC,CAAC;KACJ,CAAC;IAEF,QAAQ,EAAE,6BAA6B,CAAC;QACtC,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,6BAA6B;QACxC,YAAY,EAAE,8BAA8B;QAC5C,UAAU,EAAE,CAAC,GAAQ,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,UAAU,IAAI,SAAS,CAAQ,CAAC;QACxE,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;IAElE,aAAa,EAAE;QACb,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE;YACL,uFAAuF;YACvF,EAAE;YACF,gEAAgE;YAChE,qEAAqE;YACrE,EAAE;YACF,uEAAuE;YACvE,+BAA+B;YAC/B,EAAE;YACF,qGAAqG;SACtG;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;KACvB;CACF,CAAC"}
1
+ {"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/setup-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ import * as path from "node:path";
2
+ import * as fs from "node:fs/promises";
3
+ import { getRunningClient, getRunningAccount, getLastInboundChatId } from "./runtime.js";
4
+ function resolveTarget(to) {
5
+ if (to)
6
+ return to;
7
+ return getLastInboundChatId() ?? "";
8
+ }
9
+ function jsonResult(data) {
10
+ return { content: [{ type: "text", text: JSON.stringify(data) }] };
11
+ }
12
+ function makeToolClient() {
13
+ const account = getRunningAccount();
14
+ if (!account)
15
+ return null;
16
+ const client = getRunningClient();
17
+ if (!client)
18
+ return null;
19
+ return { client, account };
20
+ }
21
+ const SendFileSchema = {
22
+ type: "object",
23
+ properties: {
24
+ filePath: { type: "string", description: "Absolute local path to the file to send. Any path works — Documents, Desktop, workspace, /tmp, etc." },
25
+ caption: { type: "string", description: "Plain-text caption for the file (Markdown will NOT render on Lansenger). Optional." },
26
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
27
+ },
28
+ required: ["filePath"],
29
+ };
30
+ const SendTextSchema = {
31
+ type: "object",
32
+ properties: {
33
+ content: { type: "string", description: "Plain text content. No Markdown support — Markdown renders automatically in normal replies. Use this for text + file attachment or text + @mentions." },
34
+ filePath: { type: "string", description: "Optional local file/image/video to attach. If provided, content becomes the caption." },
35
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
36
+ reminderAll: { type: "boolean", description: "@mention all members in a group (only works in group chat, not DMs)." },
37
+ reminderUserIds: { type: "array", items: { type: "string" }, description: "List of user IDs to @mention (group chat only). Include '@姓名' in the message text so users can see who was mentioned." },
38
+ },
39
+ required: ["content"],
40
+ };
41
+ const SendFormatTextSchema = {
42
+ type: "object",
43
+ properties: {
44
+ content: { type: "string", description: "Markdown-formatted text. Renders as rich text on Lansenger. Use this when you need Markdown + @mention. Does NOT support file attachments." },
45
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
46
+ reminderAll: { type: "boolean", description: "@mention all members in a group (group chat only)." },
47
+ reminderUserIds: { type: "array", items: { type: "string" }, description: "List of user IDs to @mention (group chat only). Include '@姓名' in text so the mention is visible." },
48
+ },
49
+ required: ["content"],
50
+ };
51
+ const SendImageUrlSchema = {
52
+ type: "object",
53
+ properties: {
54
+ imageUrl: { type: "string", description: "URL of the image to download and send. Must be directly reachable from the gateway host." },
55
+ caption: { type: "string", description: "Optional plain-text caption (no Markdown)." },
56
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
57
+ },
58
+ required: ["imageUrl"],
59
+ };
60
+ const RevokeMessageSchema = {
61
+ type: "object",
62
+ properties: {
63
+ messageIds: { type: "array", items: { type: "string" }, description: "List of message IDs to revoke." },
64
+ chatType: { type: "string", description: "Chat type: bot (default) or group. For group, senderId is required.", default: "bot" },
65
+ senderId: { type: "string", description: "Sender ID (required for group chat type)." },
66
+ },
67
+ required: ["messageIds"],
68
+ };
69
+ const SendLinkCardSchema = {
70
+ type: "object",
71
+ properties: {
72
+ title: { type: "string", description: "Card title." },
73
+ link: { type: "string", description: "Card click-through link URL." },
74
+ description: { type: "string", description: "Card description text (API-required, defaults to empty)." },
75
+ iconLink: { type: "string", description: "Card icon image URL (API-required, defaults to empty)." },
76
+ pcLink: { type: "string", description: "PC client link URL." },
77
+ fromName: { type: "string", description: "Card source name (API-required, defaults to empty)." },
78
+ fromIconLink: { type: "string", description: "Card source icon URL (API-required, defaults to empty)." },
79
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
80
+ },
81
+ required: ["title", "link"],
82
+ };
83
+ const SendAppArticlesSchema = {
84
+ type: "object",
85
+ properties: {
86
+ articles: {
87
+ type: "array",
88
+ items: {
89
+ type: "object",
90
+ properties: {
91
+ imgUrl: { type: "string", description: "Article image URL." },
92
+ title: { type: "string", description: "Article title." },
93
+ url: { type: "string", description: "Article content link URL." },
94
+ pcUrl: { type: "string", description: "PC client content link URL." },
95
+ summary: { type: "string", description: "Optional article summary (摘要). NOT 'description' — that field is ignored by the API." },
96
+ },
97
+ required: ["imgUrl", "title", "url"],
98
+ },
99
+ description: "List of article entries. Each must have imgUrl, title, url.",
100
+ },
101
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
102
+ },
103
+ required: ["articles"],
104
+ };
105
+ const SendAppCardSchema = {
106
+ type: "object",
107
+ properties: {
108
+ bodyTitle: { type: "string", description: "Card body title. Supports div-style: color, font-size, text-align." },
109
+ headTitle: { type: "string", description: "Card header title." },
110
+ bodySubTitle: { type: "string", description: "Card body subtitle. Supports div-style formatting." },
111
+ bodyContent: { type: "string", description: "Card body content. Supports div-style formatting. Always use text-indent:0em — bare 0 causes API failure." },
112
+ signature: { type: "string", description: "Card signature line. Supports color." },
113
+ isDynamic: { type: "boolean", description: "Enable dynamic card updates (default: false). When true, card can be updated via lansenger_update_dynamic_card.", default: false },
114
+ headStatusInfo: {
115
+ type: "object",
116
+ properties: {
117
+ description: { type: "string", description: "Status text (max 30 bytes). Supports div-style for color: e.g. '<div style=\"color:#FFB116\">待审批</div>'. Plain text also works." },
118
+ colour: { type: "string", description: "Status color (e.g. #FFB116 amber, #198754 green, #dc3545 red)." },
119
+ },
120
+ description: "Dynamic card status info. Required when isDynamic=true. description = text supporting div-style color (max 30 bytes). colour = status dot color (hex). These are TWO different things: description text color vs dot color.",
121
+ },
122
+ fields: {
123
+ type: "array",
124
+ items: { type: "object", properties: { key: { type: "string" }, value: { type: "string" } } },
125
+ description: "Key-value pairs (max 10). Both support color div-style.",
126
+ },
127
+ links: {
128
+ type: "array",
129
+ items: { type: "object", properties: { title: { type: "string" }, url: { type: "string" } } },
130
+ description: "Link entries (max 3). Title supports color and text-align.",
131
+ },
132
+ cardLink: { type: "string", description: "Card click-through link." },
133
+ staffId: { type: "string", description: "Staff openId for showing sender avatar." },
134
+ headIconUrl: { type: "string", description: "Header icon URL." },
135
+ to: { type: "string", description: "Chat ID to send to. Leave empty to auto-detect from current session." },
136
+ },
137
+ required: ["bodyTitle"],
138
+ };
139
+ const UpdateDynamicCardSchema = {
140
+ type: "object",
141
+ properties: {
142
+ msgId: { type: "string", description: "Message ID from original lansenger_send_app_card response (required)." },
143
+ headStatusInfo: {
144
+ type: "object",
145
+ properties: {
146
+ description: { type: "string", description: "Updated status text. Supports div-style for color." },
147
+ colour: { type: "string", description: "Updated status color (e.g. #198754 green, #dc3545 red)." },
148
+ },
149
+ description: "Updated status info for the card header.",
150
+ },
151
+ links: {
152
+ type: "array",
153
+ items: { type: "object", properties: { title: { type: "string" }, url: { type: "string" } } },
154
+ description: "Updated link entries (max 3).",
155
+ },
156
+ isLastUpdate: { type: "boolean", description: "True = final state, card becomes static (default: false).", default: false },
157
+ },
158
+ required: ["msgId"],
159
+ };
160
+ const QueryGroupsSchema = {
161
+ type: "object",
162
+ properties: {
163
+ pageOffset: { type: "integer", description: "Page number (default: 1).", default: 1 },
164
+ pageSize: { type: "integer", description: "Groups per page (max 100, default: 100).", default: 100 },
165
+ },
166
+ };
167
+ export function registerLansengerTools(api) {
168
+ api.registerTool({
169
+ name: "lansenger_send_file",
170
+ description: "Send a local file as an attachment on Lansenger (蓝信). Any local file works — workspace, Documents, /tmp, etc. Do NOT use MEDIA: tags for files outside the workspace; they silently fail. Always use this tool instead.",
171
+ parameters: SendFileSchema,
172
+ async execute(_toolCallId, params) {
173
+ const tc = makeToolClient();
174
+ if (!tc)
175
+ return jsonResult({ error: "Lansenger account not configured or not running." });
176
+ const filePath = params.filePath;
177
+ const caption = params.caption ?? "";
178
+ const to = resolveTarget(params.to);
179
+ if (!filePath)
180
+ return jsonResult({ error: "filePath is required" });
181
+ if (!to)
182
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
183
+ const resolved = path.resolve(filePath);
184
+ try {
185
+ const stat = await fs.stat(resolved);
186
+ if (!stat.isFile())
187
+ return jsonResult({ error: `Not a file: ${filePath}` });
188
+ }
189
+ catch {
190
+ return jsonResult({ error: `File not found: ${filePath}` });
191
+ }
192
+ const result = await tc.client.sendFile(to, resolved, caption);
193
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
194
+ },
195
+ });
196
+ api.registerTool({
197
+ name: "lansenger_send_text",
198
+ description: "Send plain text on Lansenger (蓝信) with optional file attachment and @mentions. Uses msgType=text: plain text ONLY (NO Markdown). For Markdown, just write normally — it renders automatically in replies. If you need both Markdown AND a file, send Markdown first, then call this tool for the file.",
199
+ parameters: SendTextSchema,
200
+ async execute(_toolCallId, params) {
201
+ const tc = makeToolClient();
202
+ if (!tc)
203
+ return jsonResult({ error: "Lansenger account not configured or not running." });
204
+ const content = params.content ?? "";
205
+ const filePath = params.filePath ?? "";
206
+ const to = resolveTarget(params.to);
207
+ if (!to)
208
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
209
+ const client = tc.client;
210
+ if (filePath) {
211
+ const resolved = path.resolve(filePath);
212
+ try {
213
+ const stat = await fs.stat(resolved);
214
+ if (!stat.isFile())
215
+ return jsonResult({ error: `Not a file: ${filePath}` });
216
+ }
217
+ catch {
218
+ return jsonResult({ error: `File not found: ${filePath}` });
219
+ }
220
+ const uploadResult = await client.uploadMedia(resolved);
221
+ if ("error" in uploadResult)
222
+ return jsonResult({ error: uploadResult.error });
223
+ const reminder = (params.reminderAll || (params.reminderUserIds && params.reminderUserIds.length > 0))
224
+ ? { all: Boolean(params.reminderAll), userIds: params.reminderUserIds ?? [] }
225
+ : undefined;
226
+ const result = await client.sendTextWithMedia(to, content, 3, [uploadResult.mediaId], reminder);
227
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
228
+ }
229
+ const reminder = (params.reminderAll || (params.reminderUserIds && params.reminderUserIds.length > 0))
230
+ ? { all: Boolean(params.reminderAll), userIds: params.reminderUserIds ?? [] }
231
+ : undefined;
232
+ const result = await client.sendText(to, content, reminder);
233
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
234
+ },
235
+ });
236
+ api.registerTool({
237
+ name: "lansenger_send_format_text",
238
+ description: "Send Markdown-formatted text on Lansenger (蓝信) with optional @mentions. Uses msgType=formatText: Markdown renders as rich text. Supports @mentions via reminder params. Does NOT support file attachments — for Markdown + file, write the Markdown reply normally first, then use lansenger_send_file separately.",
239
+ parameters: SendFormatTextSchema,
240
+ async execute(_toolCallId, params) {
241
+ const tc = makeToolClient();
242
+ if (!tc)
243
+ return jsonResult({ error: "Lansenger account not configured or not running." });
244
+ const content = params.content ?? "";
245
+ const to = resolveTarget(params.to);
246
+ if (!to)
247
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
248
+ const reminder = (params.reminderAll || (params.reminderUserIds && params.reminderUserIds.length > 0))
249
+ ? { all: Boolean(params.reminderAll), userIds: params.reminderUserIds ?? [] }
250
+ : undefined;
251
+ const result = await tc.client.sendFormatText(to, content, reminder);
252
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
253
+ },
254
+ });
255
+ api.registerTool({
256
+ name: "lansenger_send_image_url",
257
+ description: "Send an image from a URL to a Lansenger (蓝信) user or group. Downloads the image first, then uploads and sends. URL must be directly reachable from the gateway host. For local files, use lansenger_send_file instead.",
258
+ parameters: SendImageUrlSchema,
259
+ async execute(_toolCallId, params) {
260
+ const tc = makeToolClient();
261
+ if (!tc)
262
+ return jsonResult({ error: "Lansenger account not configured or not running." });
263
+ const imageUrl = params.imageUrl;
264
+ const caption = params.caption ?? "";
265
+ const to = resolveTarget(params.to);
266
+ if (!imageUrl)
267
+ return jsonResult({ error: "imageUrl is required" });
268
+ if (!to)
269
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
270
+ const result = await tc.client.sendImageUrl(to, imageUrl, caption);
271
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
272
+ },
273
+ });
274
+ api.registerTool({
275
+ name: "lansenger_revoke_message",
276
+ description: "Revoke previously sent Lansenger (蓝信) messages. The recipient sees a 'message revoked' notification. For group chat, senderId is required.",
277
+ parameters: RevokeMessageSchema,
278
+ async execute(_toolCallId, params) {
279
+ const tc = makeToolClient();
280
+ if (!tc)
281
+ return jsonResult({ error: "Lansenger account not configured or not running." });
282
+ const messageIds = params.messageIds;
283
+ if (!messageIds || messageIds.length === 0)
284
+ return jsonResult({ error: "messageIds is required" });
285
+ const chatType = params.chatType ?? "bot";
286
+ const senderId = params.senderId;
287
+ if (chatType === "group" && !senderId) {
288
+ return jsonResult({ error: "chatType='group' requires senderId" });
289
+ }
290
+ const result = await tc.client.revokeMessage(messageIds, chatType, senderId);
291
+ return jsonResult({ success: result.success });
292
+ },
293
+ });
294
+ api.registerTool({
295
+ name: "lansenger_send_link_card",
296
+ description: "Send a link preview card on Lansenger (蓝信). Displays title, description, icon, and clickable link. API requires description, iconLink, fromName, fromIconLink (defaults to empty string if omitted).",
297
+ parameters: SendLinkCardSchema,
298
+ async execute(_toolCallId, params) {
299
+ const tc = makeToolClient();
300
+ if (!tc)
301
+ return jsonResult({ error: "Lansenger account not configured or not running." });
302
+ const title = params.title;
303
+ const link = params.link;
304
+ const to = resolveTarget(params.to);
305
+ if (!title || !link)
306
+ return jsonResult({ error: "title and link are required" });
307
+ if (!to)
308
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
309
+ const result = await tc.client.sendLinkCard(to, title, link, {
310
+ description: params.description ?? "",
311
+ iconLink: params.iconLink ?? "",
312
+ pcLink: params.pcLink ?? "",
313
+ fromName: params.fromName ?? "",
314
+ fromIconLink: params.fromIconLink ?? "",
315
+ });
316
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
317
+ },
318
+ });
319
+ api.registerTool({
320
+ name: "lansenger_send_app_articles",
321
+ description: "Send a multi-article card (图文卡片) on Lansenger (蓝信). Each article has an image, title, and link. Article summary field is 'summary' (NOT 'description' — that field is silently ignored by the API). For a single link card, use lansenger_send_link_card instead.",
322
+ parameters: SendAppArticlesSchema,
323
+ async execute(_toolCallId, params) {
324
+ const tc = makeToolClient();
325
+ if (!tc)
326
+ return jsonResult({ error: "Lansenger account not configured or not running." });
327
+ const articles = params.articles;
328
+ const to = resolveTarget(params.to);
329
+ if (!articles || articles.length === 0)
330
+ return jsonResult({ error: "articles is required" });
331
+ if (!to)
332
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
333
+ const result = await tc.client.sendAppArticles(to, articles);
334
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
335
+ },
336
+ });
337
+ api.registerTool({
338
+ name: "lansenger_send_app_card",
339
+ description: "Send a rich formatted card (应用卡片) on Lansenger (蓝信). Supports div-style formatting (color, font-size, text-align, text-indent). Set isDynamic=true for approval workflows. ⚠️ font-size MUST use pt units (12pt–36pt) — px causes 'invalid bodyContent'. ⚠️ text-indent MUST have units — bare 0 causes silent failure, use 0em. ⚠️ headStatusInfo: description is status TEXT (supports div-style for color, max 30 bytes), colour is the DOT/圆点 color (hex like #FFB116). These are TWO different things — text color vs dot color. ⚠️ Group chat does NOT support appCard msgType — falls back to plain text.",
340
+ parameters: SendAppCardSchema,
341
+ async execute(_toolCallId, params) {
342
+ const tc = makeToolClient();
343
+ if (!tc)
344
+ return jsonResult({ error: "Lansenger account not configured or not running." });
345
+ const bodyTitle = params.bodyTitle;
346
+ const to = resolveTarget(params.to);
347
+ if (!bodyTitle)
348
+ return jsonResult({ error: "bodyTitle is required" });
349
+ if (!to)
350
+ return jsonResult({ error: "No target specified. Provide a 'to' parameter (chat ID)." });
351
+ const cardData = {
352
+ bodyTitle,
353
+ headTitle: params.headTitle ?? "",
354
+ bodySubTitle: params.bodySubTitle ?? "",
355
+ bodyContent: params.bodyContent ?? "",
356
+ signature: params.signature ?? "",
357
+ isDynamic: params.isDynamic ?? false,
358
+ cardLink: params.cardLink ?? "",
359
+ staffId: params.staffId ?? "",
360
+ headIconUrl: params.headIconUrl ?? "",
361
+ };
362
+ if (params.fields)
363
+ cardData.fields = params.fields;
364
+ if (params.links)
365
+ cardData.links = params.links;
366
+ if (params.headStatusInfo)
367
+ cardData.headStatusInfo = params.headStatusInfo;
368
+ if (params.isDynamic && !params.headStatusInfo) {
369
+ cardData.headStatusInfo = {
370
+ description: '<div style="color:rgba(0,0,0,.47);text-align:left">Active</div>',
371
+ colour: "rgba(0,0,0,.47)",
372
+ };
373
+ }
374
+ const result = await tc.client.sendAppCard(to, cardData);
375
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
376
+ },
377
+ });
378
+ api.registerTool({
379
+ name: "lansenger_update_dynamic_card",
380
+ description: "Update a dynamic appCard's status in-place on Lansenger (蓝信). The card must have been sent with isDynamic=true via lansenger_send_app_card. Use this for approval workflows: pending → approved/rejected. headStatusInfo: description supports div-style for color, colour is the status dot color.",
381
+ parameters: UpdateDynamicCardSchema,
382
+ async execute(_toolCallId, params) {
383
+ const tc = makeToolClient();
384
+ if (!tc)
385
+ return jsonResult({ error: "Lansenger account not configured or not running." });
386
+ const msgId = params.msgId;
387
+ if (!msgId)
388
+ return jsonResult({ error: "msgId is required" });
389
+ const result = await tc.client.updateDynamicCard(msgId, params.headStatusInfo, params.links, params.isLastUpdate ?? false);
390
+ return jsonResult({ success: result.success });
391
+ },
392
+ });
393
+ api.registerTool({
394
+ name: "lansenger_query_groups",
395
+ description: "Query the bot's group list on Lansenger (蓝信). Returns total count and group IDs. ⚠️ May return errCode=10005 'API服务无权限' on enterprise deployments where /v2/groups/fetch is not authorized. If permission denied, ask the user for group chatIds manually.",
396
+ parameters: QueryGroupsSchema,
397
+ async execute(_toolCallId, params) {
398
+ const tc = makeToolClient();
399
+ if (!tc)
400
+ return jsonResult({ error: "Lansenger account not configured or not running." });
401
+ const result = await tc.client.queryGroups(params.pageOffset ?? 1, params.pageSize ?? 100);
402
+ if ("error" in result)
403
+ return jsonResult({ error: result.error });
404
+ return jsonResult({ success: true, totalGroupIds: result.totalGroupIds, groupIds: result.groupIds });
405
+ },
406
+ });
407
+ }
408
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,57 @@
11
11
  "channelEnvVars": {
12
12
  "lansenger": ["LANSENGER_APP_ID", "LANSENGER_APP_SECRET", "LANSENGER_API_GATEWAY_URL"]
13
13
  },
14
- "activation": {
14
+ "activation": {
15
15
  "onStartup": true,
16
16
  "onChannels": ["lansenger"],
17
17
  "onConfigPaths": ["channels.lansenger"]
18
18
  },
19
+ "contracts": {
20
+ "tools": [
21
+ "lansenger_send_file",
22
+ "lansenger_send_text",
23
+ "lansenger_send_format_text",
24
+ "lansenger_send_image_url",
25
+ "lansenger_revoke_message",
26
+ "lansenger_send_link_card",
27
+ "lansenger_send_app_articles",
28
+ "lansenger_send_app_card",
29
+ "lansenger_update_dynamic_card",
30
+ "lansenger_query_groups"
31
+ ]
32
+ },
33
+ "toolMetadata": {
34
+ "lansenger_send_file": {
35
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
36
+ },
37
+ "lansenger_send_text": {
38
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
39
+ },
40
+ "lansenger_send_format_text": {
41
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
42
+ },
43
+ "lansenger_send_image_url": {
44
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
45
+ },
46
+ "lansenger_revoke_message": {
47
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
48
+ },
49
+ "lansenger_send_link_card": {
50
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
51
+ },
52
+ "lansenger_send_app_articles": {
53
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
54
+ },
55
+ "lansenger_send_app_card": {
56
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
57
+ },
58
+ "lansenger_update_dynamic_card": {
59
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
60
+ },
61
+ "lansenger_query_groups": {
62
+ "configSignals": [{ "rootPath": "channels.lansenger", "requiredAny": ["appId", "accounts"] }]
63
+ }
64
+ },
19
65
 
20
66
  "skills": ["./skills"],
21
67
  "channelConfigs": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lansenger-pm/openclaw-lansenger-channel",
3
- "version": "3.2.12",
3
+ "version": "3.3.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -88,7 +88,21 @@
88
88
  "description": "Lansenger API Gateway URL (default: https://open.e.lanxin.cn/open/apigw)",
89
89
  "sensitive": false
90
90
  }
91
- ]
91
+ ],
92
+ "contracts": {
93
+ "tools": [
94
+ "lansenger_send_file",
95
+ "lansenger_send_text",
96
+ "lansenger_send_format_text",
97
+ "lansenger_send_image_url",
98
+ "lansenger_revoke_message",
99
+ "lansenger_send_link_card",
100
+ "lansenger_send_app_articles",
101
+ "lansenger_send_app_card",
102
+ "lansenger_update_dynamic_card",
103
+ "lansenger_query_groups"
104
+ ]
105
+ }
92
106
  },
93
107
  "devDependencies": {
94
108
  "openclaw": "^2026.5.7",
@@ -97,14 +111,6 @@
97
111
  "typescript": "^6.0.3",
98
112
  "vitest": "^4.1.6"
99
113
  },
100
- "peerDependencies": {
101
- "@lansenger-pm/openclaw-lansenger-tools": ">=1.0.0"
102
- },
103
- "peerDependenciesMeta": {
104
- "@lansenger-pm/openclaw-lansenger-tools": {
105
- "optional": false
106
- }
107
- },
108
114
  "dependencies": {
109
115
  "ws": "^8.20.0"
110
116
  }
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: lansenger-messaging
3
- description: How to communicate on Lansenger (蓝信) — send rich content via CLI (primary) or agent tools (fallback), approvals, and pitfalls
4
- metadata: {"openclaw":{"requires":{"config":["channels.lansenger"],"plugins":["lansenger-tools"],"cli":["lansenger"]},"primaryEnv":"LANSENGER_APP_ID"}}
3
+ description: How to communicate on Lansenger (蓝信) — send rich content via message tool, agent tools, CLI, approvals, and pitfalls
4
+ metadata: {"openclaw":{"requires":{"config":["channels.lansenger"],"cli":["lansenger"]},"primaryEnv":"LANSENGER_APP_ID"}}
5
5
  ---
6
6
 
7
7
  # Lansenger (蓝信) Messaging — Agent Quick Reference
8
8
 
9
9
  In a Lansenger session, **just write your reply normally** — Markdown renders automatically as formatText. No tool needed for formatted text unless you also need @mentions.
10
10
 
11
- You can send messages via **CLI commands** (primary, always works) or **agent tools** (fallback, may not inject properly in some Gateway versions):
11
+ You can send messages via **CLI commands** (alternative) or **agent tools** (built-in):
12
12
 
13
- - **CLI commands** (PRIMARY): `lansenger message send-file`, `lansenger message send-text`, etc. — via bash exec. Requires `pipx install lansenger-cli` or `pip install lansenger-cli`.
14
- - **Agent tools** (FALLBACK): `lansenger_send_file`, `lansenger_send_text`, etc. — available ONLY when `lansenger-tools` plugin is installed AND Gateway successfully injects them. If `toolNames: []`, tools are unavailable — use CLI instead.
13
+ - **Agent tools** (PRIMARY): `lansenger_send_file`, `lansenger_send_text`, etc. — built into the channel plugin, always available when the channel is configured and running.
14
+ - **CLI commands** (ALTERNATIVE): `lansenger message send-file`, `lansenger message send-text`, etc. — via bash exec. Requires `pipx install lansenger-cli` or `pip install lansenger-cli`.
15
15
 
16
- > ⚠️ **Install CLI first**: `pipx install lansenger-cli` (or `pip install lansenger-cli`). This is the reliable path. Agent tools may not inject in some OpenClaw versions always verify availability before relying on them.
16
+ > 💡 **CLI is an optional alternative**: `pipx install lansenger-cli` (or `pip install lansenger-cli`). Agent tools are built into the channel plugin and available when the channel is running.
17
17
 
18
18
  However, Markdown and file attachments are **mutually exclusive**. If you need both formatting AND a file, send the Markdown reply first, then call `lansenger_send_file` or `lansenger message send-file` separately.
19
19
 
@@ -76,7 +76,7 @@ Need to send something? Follow this decision tree:
76
76
  1. Normal reply with formatting → JUST WRITE IT. No tool needed.
77
77
  2. Markdown + @mention → `lansenger_send_format_text` or `lansenger message send-markdown`
78
78
  3. Plain text + @mention + file → `lansenger_send_text` or `lansenger message send-text`
79
- 4. Send a FILE → `lansenger_send_file` or `lansenger message send-file`
79
+ 4. Send a FILE → **`message(action=send, filePath=<path>)`** (always available, no extra permissions needed) or `lansenger_send_file` or `lansenger message send-file`
80
80
  5. Send image from URL → `lansenger_send_image_url` or `lansenger message send-image-url`
81
81
  6. Link card → `lansenger_send_link_card` or `lansenger message send-link-card`
82
82
  7. Multi-article card (图文) → `lansenger_send_app_articles` or `lansenger message send-app-articles`
@@ -307,13 +307,12 @@ Status colors: #FFB116 (pending), #198754 (approved), #dc3545 (denied)
307
307
  | Pitfall | Fix |
308
308
  |--------------------------------|----------------------------------------------------------------------------------|
309
309
  | Raw Markdown in text tool/CLI | Never do this — shows as ugly source code. Write normally for Markdown. |
310
- | MEDIA: tag for file delivery | ⚠️ Currently broken for ALL files. Use `lansenger_send_file` instead. |
311
310
  | AppArticles `description` field | Use `summary`, not `description`. `description` is silently ignored by the API. |
312
311
  | AppCard `font-size: px` | Use `pt` units (12pt–36pt). px causes API "invalid bodyContent" error. |
313
312
  | AppCard `text-indent: 0` | Use `0em` with unit. Bare 0 causes silent failure. |
314
313
  | headStatusInfo div wrapping | description supports div-style for color. colour is the DOT/圆点 color. Separate. |
315
314
  | Message too long | ~4000 character limit. Split into multiple messages. |
316
- | Tools not available | **Use CLI as fallback**: `pipx install lansenger-cli`, then `lansenger message send-text <chatId> <content>`. Agent tools may not inject in some Gateway versions. |
315
+ | Tools not available | Tools are built into the channel plugin. If unavailable, use `message(action=send, filePath=...)` for file sending (works without `group:plugins`). As a last resort, use CLI: `pipx install lansenger-cli`, then `lansenger message send-text <chatId> <content>`. |
317
316
  | CLI command not found | Install: `pipx install lansenger-cli` or `pip install lansenger-cli`. Then verify: `lansenger --help`. |
318
317
  | CLI wrong credentials / sends as wrong bot | **Always use `-P <appId>`** (global flag after `lansenger`). Without it, CLI uses the `default` profile which may be a different bot. Sync first: `lansenger -P <appId> config show` → if missing, run `lansenger -P <appId> config set` commands. |
319
318
  | CLI "Credentials configured: False" | Run credential sync: `lansenger -P <appId> config set app_id <appId>` + `lansenger -P <appId> config set app_secret <appSecret>`. |