@lansenger-pm/openclaw-lansenger-channel 2.1.2 → 2.2.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/dist/index.js CHANGED
@@ -1,7 +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 { registerLansengerSendFileTool } from "./src/send-file-tool.js";
4
+ import { registerLansengerTools } from "./src/tools.js";
5
5
  export default defineChannelPluginEntry({
6
6
  id: "lansenger",
7
7
  name: "Lansenger (蓝信)",
@@ -22,7 +22,7 @@ export default defineChannelPluginEntry({
22
22
  },
23
23
  registerFull(api) {
24
24
  startLansengerGateway(api);
25
- registerLansengerSendFileTool(api);
25
+ registerLansengerTools(api);
26
26
  },
27
27
  });
28
28
  //# 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;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,eAAe,wBAAwB,CAAC;IACtC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAE,eAAe;IACvB,mBAAmB,CAAC,GAAG;QACrB,GAAG,CAAC,WAAW,CACb,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACxE,CAAC,EACD;YACE,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,2BAA2B;oBACxC,cAAc,EAAE,KAAK;iBACtB;aACF;SACF,CACF,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,GAAG;QACd,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACrC,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,eAAe,wBAAwB,CAAC;IACtC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAE,eAAe;IACvB,mBAAmB,CAAC,GAAG;QACrB,GAAG,CAAC,WAAW,CACb,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACxE,CAAC,EACD;YACE,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,2BAA2B;oBACxC,cAAc,EAAE,KAAK;iBACtB;aACF;SACF,CACF,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,GAAG;QACd,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC"}
@@ -387,6 +387,55 @@ export class LansengerClient {
387
387
  return { success: false, error: e.message };
388
388
  }
389
389
  }
390
+ async updateDynamicCard(msgId, headStatusInfo, links, isLastUpdate) {
391
+ const token = await this.getAppToken();
392
+ if (!token)
393
+ return { success: false, error: "No access token" };
394
+ try {
395
+ const url = `${this.apiGatewayUrl}${API_ENDPOINTS.dynamicUpdate}?app_token=${token}`;
396
+ const appCardUpdateMsg = {};
397
+ if (isLastUpdate)
398
+ appCardUpdateMsg.isLastUpdate = true;
399
+ if (headStatusInfo)
400
+ appCardUpdateMsg.headStatusInfo = headStatusInfo;
401
+ if (links)
402
+ appCardUpdateMsg.links = links;
403
+ const payload = {
404
+ msgId,
405
+ msgType: "appCard",
406
+ msgData: { appCardUpdateMsg },
407
+ };
408
+ const data = await this.postJson(url, payload);
409
+ if (data.errCode !== 0)
410
+ return { success: false, error: data.errMsg ?? undefined };
411
+ return { success: true, rawResponse: data };
412
+ }
413
+ catch (e) {
414
+ return { success: false, error: e.message };
415
+ }
416
+ }
417
+ async queryGroups(pageOffset = 1, pageSize = 100) {
418
+ const token = await this.getAppToken();
419
+ if (!token)
420
+ return { error: "No access token" };
421
+ try {
422
+ const url = `${this.apiGatewayUrl}/v2/groups/fetch?app_token=${token}&page_offset=${pageOffset}&page_size=${pageSize}`;
423
+ const resp = await fetch(url);
424
+ if (!resp.ok)
425
+ return { error: `HTTP error: ${resp.status}` };
426
+ const data = (await resp.json());
427
+ if (data.errCode !== 0)
428
+ return { error: data.errMsg ?? "API error" };
429
+ const result = data.data ?? {};
430
+ return {
431
+ totalGroupIds: result.totalGroupIds ?? 0,
432
+ groupIds: result.groupIds ?? [],
433
+ };
434
+ }
435
+ catch (e) {
436
+ return { error: e.message };
437
+ }
438
+ }
390
439
  async sendGroupText(groupId, content, reminder) {
391
440
  const token = await this.getAppToken();
392
441
  if (!token)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,381 @@
1
+ import { resolveAccount, makeClient } from "./channel.js";
2
+ import * as path from "node:path";
3
+ import * as fs from "node:fs/promises";
4
+ function resolveAccountFromApi(api) {
5
+ if (!api.config)
6
+ return null;
7
+ const section = api.config.channels?.["lansenger"];
8
+ if (!section)
9
+ return null;
10
+ const accounts = section.accounts;
11
+ let account;
12
+ if (accounts && Object.keys(accounts).length > 0) {
13
+ const firstKey = Object.keys(accounts)[0];
14
+ account = resolveAccount(api.config, firstKey);
15
+ }
16
+ else {
17
+ account = resolveAccount(api.config, undefined);
18
+ }
19
+ if (!account.enabled || !account.appId)
20
+ return null;
21
+ return account;
22
+ }
23
+ function resolveSessionTarget(ctx) {
24
+ if (ctx.to)
25
+ return ctx.to;
26
+ if (ctx.sessionKey) {
27
+ const parts = String(ctx.sessionKey).split(":");
28
+ if (parts.length >= 3 && parts[2])
29
+ return parts[2];
30
+ }
31
+ return String(ctx.requesterSenderId ?? "");
32
+ }
33
+ function jsonResult(data) {
34
+ return { content: [{ type: "text", text: JSON.stringify(data) }] };
35
+ }
36
+ const SendFileSchema = {
37
+ type: "object",
38
+ properties: {
39
+ filePath: { type: "string", description: "Absolute local path to the file to send. Any path works — Documents, Desktop, workspace, /tmp, etc." },
40
+ caption: { type: "string", description: "Plain-text caption for the file (Markdown will NOT render on Lansenger). Optional." },
41
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
42
+ },
43
+ required: ["filePath"],
44
+ };
45
+ const SendTextSchema = {
46
+ type: "object",
47
+ properties: {
48
+ content: { type: "string", description: "Plain text content. No Markdown support — use lansenger_send_file for file delivery, Markdown renders automatically in normal replies." },
49
+ filePath: { type: "string", description: "Optional local file/image/video to attach. If provided, content becomes the caption." },
50
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
51
+ reminderAll: { type: "boolean", description: "@mention all members in a group (only works in group/staff chat, not DMs)." },
52
+ reminderUserIds: { type: "array", items: { type: "string" }, description: "List of user IDs to @mention (only works in group/staff chat)." },
53
+ },
54
+ required: ["content"],
55
+ };
56
+ const SendImageUrlSchema = {
57
+ type: "object",
58
+ properties: {
59
+ imageUrl: { type: "string", description: "URL of the image to download and send." },
60
+ caption: { type: "string", description: "Optional plain-text caption (no Markdown)." },
61
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
62
+ },
63
+ required: ["imageUrl"],
64
+ };
65
+ const RevokeMessageSchema = {
66
+ type: "object",
67
+ properties: {
68
+ messageIds: { type: "array", items: { type: "string" }, description: "List of message IDs to revoke." },
69
+ chatType: { type: "string", description: "Chat type: bot (default), staff, group. For staff/group, senderId is required.", default: "bot" },
70
+ senderId: { type: "string", description: "Sender ID (required for staff/group chat types)." },
71
+ },
72
+ required: ["messageIds"],
73
+ };
74
+ const SendLinkCardSchema = {
75
+ type: "object",
76
+ properties: {
77
+ title: { type: "string", description: "Card title." },
78
+ link: { type: "string", description: "Card click-through link URL." },
79
+ description: { type: "string", description: "Card description text." },
80
+ iconLink: { type: "string", description: "Card icon image URL." },
81
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
82
+ },
83
+ required: ["title", "link"],
84
+ };
85
+ const SendAppArticlesSchema = {
86
+ type: "object",
87
+ properties: {
88
+ articles: {
89
+ type: "array",
90
+ items: {
91
+ type: "object",
92
+ properties: {
93
+ imgUrl: { type: "string", description: "Article image URL." },
94
+ title: { type: "string", description: "Article title." },
95
+ url: { type: "string", description: "Article content link URL." },
96
+ pcUrl: { type: "string", description: "PC client content link URL." },
97
+ summary: { type: "string", description: "Optional article summary." },
98
+ },
99
+ required: ["imgUrl", "title", "url"],
100
+ },
101
+ description: "List of article entries. Each must have imgUrl, title, url.",
102
+ },
103
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
104
+ },
105
+ required: ["articles"],
106
+ };
107
+ const SendAppCardSchema = {
108
+ type: "object",
109
+ properties: {
110
+ bodyTitle: { type: "string", description: "Card body title. Supports div-style: color, font-size, text-align." },
111
+ headTitle: { type: "string", description: "Card header title." },
112
+ bodySubTitle: { type: "string", description: "Card body subtitle. Supports div-style formatting." },
113
+ bodyContent: { type: "string", description: "Card body content. Supports div-style formatting. Always use text-indent:0em to avoid unwanted indentation." },
114
+ signature: { type: "string", description: "Card signature line. Supports color." },
115
+ isDynamic: { type: "boolean", description: "Enable dynamic card updates (default: false). When true, card can be updated via lansenger_update_dynamic_card.", default: false },
116
+ headStatusInfo: {
117
+ type: "object",
118
+ properties: {
119
+ description: { type: "string", description: "Status description (max 30 bytes). Supports color div-style." },
120
+ colour: { type: "string", description: "Status color (e.g. #FFB116 amber, #198754 green, #dc3545 red)." },
121
+ },
122
+ description: "Dynamic card status info. Required when isDynamic=true.",
123
+ },
124
+ fields: {
125
+ type: "array",
126
+ items: { type: "object", properties: { key: { type: "string" }, value: { type: "string" } } },
127
+ description: "Key-value pairs (max 10). Both support color div-style.",
128
+ },
129
+ links: {
130
+ type: "array",
131
+ items: { type: "object", properties: { title: { type: "string" }, url: { type: "string" } } },
132
+ description: "Link entries (max 3). Title supports color and text-align.",
133
+ },
134
+ cardLink: { type: "string", description: "Card click-through link." },
135
+ staffId: { type: "string", description: "Staff openId for showing sender avatar." },
136
+ headIconUrl: { type: "string", description: "Header icon URL." },
137
+ to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, sent to current conversation." },
138
+ },
139
+ required: ["bodyTitle"],
140
+ };
141
+ const UpdateDynamicCardSchema = {
142
+ type: "object",
143
+ properties: {
144
+ msgId: { type: "string", description: "Message ID from original lansenger_send_app_card response (required)." },
145
+ headStatusInfo: {
146
+ type: "object",
147
+ properties: {
148
+ description: { type: "string", description: "Updated status description. Supports color div-style." },
149
+ colour: { type: "string", description: "Updated status color (e.g. #198754 green, #dc3545 red)." },
150
+ },
151
+ description: "Updated status info for the card header.",
152
+ },
153
+ links: {
154
+ type: "array",
155
+ items: { type: "object", properties: { title: { type: "string" }, url: { type: "string" } } },
156
+ description: "Updated link entries (max 3).",
157
+ },
158
+ isLastUpdate: { type: "boolean", description: "True = final state, card becomes static (default: false).", default: false },
159
+ },
160
+ required: ["msgId"],
161
+ };
162
+ const QueryGroupsSchema = {
163
+ type: "object",
164
+ properties: {
165
+ pageOffset: { type: "integer", description: "Page number (default: 1).", default: 1 },
166
+ pageSize: { type: "integer", description: "Groups per page (max 100, default: 100).", default: 100 },
167
+ },
168
+ };
169
+ export function registerLansengerTools(api) {
170
+ const account = resolveAccountFromApi(api);
171
+ if (!account)
172
+ return;
173
+ api.registerTool((ctx) => ({
174
+ name: "lansenger_send_file",
175
+ label: "Lansenger Send File",
176
+ description: "Send a local file as an attachment on Lansenger (蓝信). PDF, image, document, video — any local file works. Do NOT use MEDIA: tags for file delivery — they silently fail for files outside the workspace; always use this tool instead.",
177
+ parameters: SendFileSchema,
178
+ async execute(_toolCallId, params) {
179
+ const filePath = params.filePath;
180
+ const caption = params.caption ?? "";
181
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
182
+ if (!filePath)
183
+ return jsonResult({ error: "filePath is required" });
184
+ if (!to)
185
+ return jsonResult({ error: "No target specified and no active session context. Provide a 'to' parameter." });
186
+ const resolved = path.resolve(filePath);
187
+ try {
188
+ const stat = await fs.stat(resolved);
189
+ if (!stat.isFile())
190
+ return jsonResult({ error: `Not a file: ${filePath}` });
191
+ }
192
+ catch {
193
+ return jsonResult({ error: `File not found: ${filePath}` });
194
+ }
195
+ const client = makeClient(account);
196
+ const result = await client.sendFile(to, resolved, caption);
197
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
198
+ },
199
+ }), { name: "lansenger_send_file" });
200
+ api.registerTool((ctx) => ({
201
+ name: "lansenger_send_text",
202
+ label: "Lansenger Send Text",
203
+ description: "Send a plain text message on Lansenger (蓝信) with optional file attachment and @mentions. Uses msgType=text: plain text only (NO Markdown). Supports attachments and @mentions in group/staff chat. 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.",
204
+ parameters: SendTextSchema,
205
+ async execute(_toolCallId, params) {
206
+ const content = params.content ?? "";
207
+ const filePath = params.filePath ?? "";
208
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
209
+ if (!to)
210
+ return jsonResult({ error: "No target specified and no active session context." });
211
+ const client = makeClient(account);
212
+ if (filePath) {
213
+ const resolved = path.resolve(filePath);
214
+ try {
215
+ const stat = await fs.stat(resolved);
216
+ if (!stat.isFile())
217
+ return jsonResult({ error: `Not a file: ${filePath}` });
218
+ }
219
+ catch {
220
+ return jsonResult({ error: `File not found: ${filePath}` });
221
+ }
222
+ const uploadResult = await client.uploadMedia(resolved);
223
+ if ("error" in uploadResult)
224
+ return jsonResult({ error: uploadResult.error });
225
+ const reminder = (params.reminderAll || (params.reminderUserIds && params.reminderUserIds.length > 0))
226
+ ? { all: Boolean(params.reminderAll), userIds: params.reminderUserIds ?? [] }
227
+ : undefined;
228
+ const result = await client.sendTextWithMedia(to, content, 3, [uploadResult.mediaId], reminder);
229
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
230
+ }
231
+ const reminder = (params.reminderAll || (params.reminderUserIds && params.reminderUserIds.length > 0))
232
+ ? { all: Boolean(params.reminderAll), userIds: params.reminderUserIds ?? [] }
233
+ : undefined;
234
+ const result = await client.sendText(to, content, reminder);
235
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
236
+ },
237
+ }), { name: "lansenger_send_text" });
238
+ api.registerTool((ctx) => ({
239
+ name: "lansenger_send_image_url",
240
+ label: "Lansenger Send Image URL",
241
+ description: "Send an image from a URL to a Lansenger (蓝信) user or group. Downloads the image first, then uploads and sends. For local files, use lansenger_send_file instead.",
242
+ parameters: SendImageUrlSchema,
243
+ async execute(_toolCallId, params) {
244
+ const imageUrl = params.imageUrl;
245
+ const caption = params.caption ?? "";
246
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
247
+ if (!imageUrl)
248
+ return jsonResult({ error: "imageUrl is required" });
249
+ if (!to)
250
+ return jsonResult({ error: "No target specified and no active session context." });
251
+ const client = makeClient(account);
252
+ const result = await client.sendImageUrl(to, imageUrl, caption);
253
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
254
+ },
255
+ }), { name: "lansenger_send_image_url" });
256
+ api.registerTool((ctx) => ({
257
+ name: "lansenger_revoke_message",
258
+ label: "Lansenger Revoke Message",
259
+ description: "Revoke previously sent Lansenger (蓝信) messages. You need the message IDs to revoke. For staff/group chat, senderId is required.",
260
+ parameters: RevokeMessageSchema,
261
+ async execute(_toolCallId, params) {
262
+ const messageIds = params.messageIds;
263
+ if (!messageIds || messageIds.length === 0)
264
+ return jsonResult({ error: "messageIds is required" });
265
+ const chatType = params.chatType ?? "bot";
266
+ const senderId = params.senderId;
267
+ if (["staff", "group"].includes(chatType) && !senderId) {
268
+ return jsonResult({ error: `chatType='${chatType}' requires senderId` });
269
+ }
270
+ const client = makeClient(account);
271
+ const result = await client.revokeMessage(messageIds, chatType, senderId);
272
+ return jsonResult({ success: result.success });
273
+ },
274
+ }), { name: "lansenger_revoke_message" });
275
+ api.registerTool((ctx) => ({
276
+ name: "lansenger_send_link_card",
277
+ label: "Lansenger Send Link Card",
278
+ description: "Send a link preview card on Lansenger (蓝信). Displays title, description, icon, and clickable link.",
279
+ parameters: SendLinkCardSchema,
280
+ async execute(_toolCallId, params) {
281
+ const title = params.title;
282
+ const link = params.link;
283
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
284
+ if (!title || !link)
285
+ return jsonResult({ error: "title and link are required" });
286
+ if (!to)
287
+ return jsonResult({ error: "No target specified and no active session context." });
288
+ const client = makeClient(account);
289
+ const result = await client.sendLinkCard(to, title, link, {
290
+ description: params.description ?? "",
291
+ iconLink: params.iconLink ?? "",
292
+ });
293
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
294
+ },
295
+ }), { name: "lansenger_send_link_card" });
296
+ api.registerTool((ctx) => ({
297
+ name: "lansenger_send_app_articles",
298
+ label: "Lansenger Send App Articles",
299
+ description: "Send a multi-article card (图文卡片) on Lansenger (蓝信). Each article has an image, title, and link. For a single link card, use lansenger_send_link_card instead.",
300
+ parameters: SendAppArticlesSchema,
301
+ async execute(_toolCallId, params) {
302
+ const articles = params.articles;
303
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
304
+ if (!articles || articles.length === 0)
305
+ return jsonResult({ error: "articles is required" });
306
+ if (!to)
307
+ return jsonResult({ error: "No target specified and no active session context." });
308
+ const client = makeClient(account);
309
+ const result = await client.sendAppArticles(to, articles);
310
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
311
+ },
312
+ }), { name: "lansenger_send_app_articles" });
313
+ api.registerTool((ctx) => ({
314
+ name: "lansenger_send_app_card",
315
+ label: "Lansenger Send App Card",
316
+ 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 — card can then be updated via lansenger_update_dynamic_card. bodyContent text-indent MUST have units — bare 0 causes API failure; always use 0em.",
317
+ parameters: SendAppCardSchema,
318
+ async execute(_toolCallId, params) {
319
+ const bodyTitle = params.bodyTitle;
320
+ const to = resolveSessionTarget({ ...ctx, to: params.to });
321
+ if (!bodyTitle)
322
+ return jsonResult({ error: "bodyTitle is required" });
323
+ if (!to)
324
+ return jsonResult({ error: "No target specified and no active session context." });
325
+ const client = makeClient(account);
326
+ const cardData = {
327
+ bodyTitle,
328
+ headTitle: params.headTitle ?? "",
329
+ bodySubTitle: params.bodySubTitle ?? "",
330
+ bodyContent: params.bodyContent ?? "",
331
+ signature: params.signature ?? "",
332
+ isDynamic: params.isDynamic ?? false,
333
+ cardLink: params.cardLink ?? "",
334
+ staffId: params.staffId ?? "",
335
+ headIconUrl: params.headIconUrl ?? "",
336
+ };
337
+ if (params.fields)
338
+ cardData.fields = params.fields;
339
+ if (params.links)
340
+ cardData.links = params.links;
341
+ if (params.headStatusInfo)
342
+ cardData.headStatusInfo = params.headStatusInfo;
343
+ if (params.isDynamic && !params.headStatusInfo) {
344
+ cardData.headStatusInfo = {
345
+ description: '<div style="color:rgba(0,0,0,.47);text-align:left">Active</div>',
346
+ colour: "rgba(0,0,0,.47)",
347
+ };
348
+ }
349
+ const result = await client.sendAppCard(to, cardData);
350
+ return jsonResult({ success: result.success, messageId: result.messageId ?? null });
351
+ },
352
+ }), { name: "lansenger_send_app_card" });
353
+ api.registerTool((ctx) => ({
354
+ name: "lansenger_update_dynamic_card",
355
+ label: "Lansenger Update Dynamic Card",
356
+ 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.",
357
+ parameters: UpdateDynamicCardSchema,
358
+ async execute(_toolCallId, params) {
359
+ const msgId = params.msgId;
360
+ if (!msgId)
361
+ return jsonResult({ error: "msgId is required" });
362
+ const client = makeClient(account);
363
+ const result = await client.updateDynamicCard(msgId, params.headStatusInfo, params.links, params.isLastUpdate ?? false);
364
+ return jsonResult({ success: result.success });
365
+ },
366
+ }), { name: "lansenger_update_dynamic_card" });
367
+ api.registerTool((ctx) => ({
368
+ name: "lansenger_query_groups",
369
+ label: "Lansenger Query Groups",
370
+ description: "Query the bot's group list on Lansenger (蓝信). Returns total count and group IDs. Use this to discover available group chat IDs.",
371
+ parameters: QueryGroupsSchema,
372
+ async execute(_toolCallId, params) {
373
+ const client = makeClient(account);
374
+ const result = await client.queryGroups(params.pageOffset ?? 1, params.pageSize ?? 100);
375
+ if ("error" in result)
376
+ return jsonResult({ error: result.error });
377
+ return jsonResult({ success: true, totalGroupIds: result.totalGroupIds, groupIds: result.groupIds });
378
+ },
379
+ }), { name: "lansenger_query_groups" });
380
+ }
381
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,SAAS,qBAAqB,CAAC,GAAQ;IACrC,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAI,GAAG,CAAC,MAAM,CAAC,QAAgC,EAAE,CAAC,WAAW,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA2C,CAAC;IACrE,IAAI,OAAwB,CAAC;IAC7B,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAQ;IACpC,IAAI,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC;IAC1B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qGAAqG,EAAE;QAChJ,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oFAAoF,EAAE;QAC9H,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;KACtH;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wIAAwI,EAAE;QAClL,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE;QACjI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;QACrH,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4EAA4E,EAAE;QAC3H,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,gEAAgE,EAAE;KAC7I;IACD,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;QACnF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;QACtF,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;KACtH;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACvG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3I,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;KAC9F;IACD,QAAQ,EAAE,CAAC,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;QACrD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;QACrE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACjE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;KACtH;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;oBACxD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;oBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBACrE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;iBACtE;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;aACrC;YACD,WAAW,EAAE,6DAA6D;SAC3E;QACD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;KACtH;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oEAAoE,EAAE;QAChH,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAChE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;QACnG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6GAA6G,EAAE;QAC3J,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAClF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iHAAiH,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9K,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;gBAC5G,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;aAC1G;YACD,WAAW,EAAE,yDAAyD;SACvE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7F,WAAW,EAAE,yDAAyD;SACvE;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7F,WAAW,EAAE,4DAA4D;SAC1E;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;QACrE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;QACnF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAChE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;KACtH;IACD,QAAQ,EAAE,CAAC,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE;QAC/G,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBACrG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;aACnG;YACD,WAAW,EAAE,0CAA0C;SACxD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7F,WAAW,EAAE,+BAA+B;SAC7C;QACD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2DAA2D,EAAE,OAAO,EAAE,KAAK,EAAE;KAC5H;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC,EAAE;QACrF,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE,OAAO,EAAE,GAAG,EAAE;KACrG;CACF,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,GAAQ;IAC7C,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wOAAwO;QACrP,UAAU,EAAE,cAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAC,CAAC;YACtH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAErC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,0WAA0W;QACvX,UAAU,EAAE,cAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,OAAO,IAAI,YAAY;oBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9E,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACpG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE;oBAC7E,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAChG,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE;gBAC7E,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAErC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,kKAAkK;QAC/K,UAAU,EAAE,kBAAkB;QAC9B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAE1C,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iIAAiI;QAC9I,UAAU,EAAE,mBAAmB;QAC/B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACnG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvD,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,QAAQ,qBAAqB,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAE1C,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,oGAAoG;QACjH,UAAU,EAAE,kBAAkB;QAC9B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;aAChC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAE1C,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+JAA+J;QAC5K,UAAU,EAAE,qBAAqB;QACjC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1D,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAE7C,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,8TAA8T;QAC3U,UAAU,EAAE,iBAAiB;QAC7B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,QAAQ,GAA4B;gBACxC,SAAS;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;gBACvC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;gBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;gBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;aACtC,CAAC;YACF,IAAI,MAAM,CAAC,MAAM;gBAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACnD,IAAI,MAAM,CAAC,KAAK;gBAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAChD,IAAI,MAAM,CAAC,cAAc;gBAAE,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC3E,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/C,QAAQ,CAAC,cAAc,GAAG;oBACxB,WAAW,EAAE,iEAAiE;oBAC9E,MAAM,EAAE,iBAAiB;iBAC1B,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,QAAe,CAAC,CAAC;YAC7D,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAEzC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,2MAA2M;QACxN,UAAU,EAAE,uBAAuB;QACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAC3C,KAAK,EACL,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,YAAY,IAAI,KAAK,CAC7B,CAAC;YACF,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAE/C,GAAG,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iIAAiI;QAC9I,UAAU,EAAE,iBAAiB;QAC7B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAAW;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;YACxF,IAAI,OAAO,IAAI,MAAM;gBAAE,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;KACF,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC1C,CAAC"}
package/index.ts CHANGED
@@ -1,7 +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 { registerLansengerSendFileTool } from "./src/send-file-tool.js";
4
+ import { registerLansengerTools } from "./src/tools.js";
5
5
 
6
6
  export default defineChannelPluginEntry({
7
7
  id: "lansenger",
@@ -26,6 +26,6 @@ export default defineChannelPluginEntry({
26
26
  },
27
27
  registerFull(api) {
28
28
  startLansengerGateway(api);
29
- registerLansengerSendFileTool(api);
29
+ registerLansengerTools(api);
30
30
  },
31
31
  });
@@ -23,6 +23,48 @@
23
23
  "additionalProperties": false,
24
24
  "properties": {}
25
25
  },
26
+ "contracts": {
27
+ "tools": [
28
+ "lansenger_send_file",
29
+ "lansenger_send_text",
30
+ "lansenger_send_image_url",
31
+ "lansenger_revoke_message",
32
+ "lansenger_send_link_card",
33
+ "lansenger_send_app_articles",
34
+ "lansenger_send_app_card",
35
+ "lansenger_update_dynamic_card",
36
+ "lansenger_query_groups"
37
+ ]
38
+ },
39
+ "toolMetadata": {
40
+ "lansenger_send_file": {
41
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
42
+ },
43
+ "lansenger_send_text": {
44
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
45
+ },
46
+ "lansenger_send_image_url": {
47
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
48
+ },
49
+ "lansenger_revoke_message": {
50
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
51
+ },
52
+ "lansenger_send_link_card": {
53
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
54
+ },
55
+ "lansenger_send_app_articles": {
56
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
57
+ },
58
+ "lansenger_send_app_card": {
59
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
60
+ },
61
+ "lansenger_update_dynamic_card": {
62
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
63
+ },
64
+ "lansenger_query_groups": {
65
+ "configSignals": [{ "rootPath": "channels.lansenger", "required": ["appId", "appSecret"] }]
66
+ }
67
+ },
26
68
  "skills": ["./skills"],
27
69
  "channelConfigs": {
28
70
  "lansenger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lansenger-pm/openclaw-lansenger-channel",
3
- "version": "2.1.2",
3
+ "version": "2.2.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lansenger-messaging
3
- version: 2.1.2
3
+ version: 2.2.0
4
4
  category: communication
5
5
  description: How to communicate effectively on Lansenger (蓝信) — message types, formatting rules, media, cards, approvals, and pitfalls
6
6
  trigger: When the current session channel is lansenger, or when you need to send a message, file, image, card, or approval via Lansenger
@@ -32,10 +32,26 @@ Lansenger has two outbound text types that cannot be combined:
32
32
  ### What this means for you
33
33
 
34
34
  - **Normal replies** → just write Markdown. It's automatically sent as formatText.
35
- - **Need @mention** → Markdown won't work. You must use plain text only. If you need both formatting AND @mention, send the formatted content first, then a separate plain-text message with the @mention.
36
- - **Need to attach a file/image/video** → Markdown won't work. Caption must be plain text. If you need both formatting AND an attachment, send the formatted content first, then a separate message with the file.
35
+ - **Need @mention** → Markdown won't work. You must use plain text only. If you need both formatting AND @mention, send the formatted content first, then use `lansenger_send_text` for the @mention.
36
+ - **Need to attach a file/image/video** → Markdown won't work. Use `lansenger_send_file`. If you need both formatting AND a file, send the Markdown reply first, then call `lansenger_send_file` separately.
37
37
  - **Never put raw Markdown in a plain-text message** — it displays as ugly source code to the user.
38
38
 
39
+ ## Available Tools
40
+
41
+ | Tool | Purpose | Message Type |
42
+ |------|---------|-------------|
43
+ | `lansenger_send_file` | Send a local file/image/video | text (with attachment) |
44
+ | `lansenger_send_text` | Send plain text with optional attachment + @mentions | text |
45
+ | `lansenger_send_image_url` | Send an image from a URL | text (with attachment) |
46
+ | `lansenger_send_link_card` | Send a link preview card | linkCard |
47
+ | `lansenger_send_app_articles` | Send a multi-article card (图文卡片) | appArticles |
48
+ | `lansenger_send_app_card` | Send a rich formatted card (应用卡片) | appCard |
49
+ | `lansenger_update_dynamic_card` | Update a dynamic card's status | dynamic update |
50
+ | `lansenger_revoke_message` | Revoke previously sent messages | — |
51
+ | `lansenger_query_groups` | List bot's group IDs | — |
52
+
53
+ All tools accept an optional `to` parameter (chat ID). If omitted, the message goes to the current conversation automatically.
54
+
39
55
  ## DM vs Group
40
56
 
41
57
  The plugin automatically routes to the right API:
@@ -43,43 +59,84 @@ The plugin automatically routes to the right API:
43
59
  - **Group chat** → group message endpoint
44
60
  - You don't need to specify which — it's detected from the session
45
61
 
62
+ ## Sending Files (CRITICAL)
63
+
64
+ When you need to send a file to the user, **use `lansenger_send_file`**. Do NOT use `MEDIA:` tags — they only work for workspace files and are silently dropped for any other path.
65
+
66
+ ```
67
+ lansenger_send_file(filePath=<absolute local path>, caption=<optional plain-text>, to=<optional chatId>)
68
+ ```
69
+
70
+ - Any local path works — workspace, Documents, Desktop, /tmp, etc.
71
+ - `caption` is plain text only (Markdown will NOT render)
72
+ - If you need both formatted explanation AND a file, send the Markdown reply first, then call `lansenger_send_file` separately
73
+ - **NEVER use `MEDIA:` tags** — always use `lansenger_send_file`
74
+
75
+ ## Sending Text with Attachments or @Mentions
76
+
77
+ When you need plain text + attachment or @mentions in group chat, use `lansenger_send_text`:
78
+
79
+ ```
80
+ lansenger_send_text(content=<plain text>, filePath=<optional local path>, to=<optional chatId>,
81
+ reminderAll=<bool>, reminderUserIds=<list>)
82
+ ```
83
+
84
+ - **NO Markdown** — content is plain text only
85
+ - `filePath` optional — if provided, content becomes caption for the attachment
86
+ - `reminderAll` / `reminderUserIds` — @mention members (group/staff chat only, NOT DMs)
87
+
88
+ ## Sending Images from URLs
89
+
90
+ ```
91
+ lansenger_send_image_url(imageUrl=<URL>, caption=<optional plain-text>, to=<optional chatId>)
92
+ ```
93
+
94
+ Downloads the image first, then uploads and sends. For local files, use `lansenger_send_file` instead.
95
+
46
96
  ## Rich Content Types
47
97
 
48
- Beyond plain text and Markdown, Lansenger supports these special message types:
98
+ ### Link Card (`lansenger_send_link_card`)
99
+ A rich link preview card. Requires `title` + `link`. Optional: `description`, `iconLink`.
49
100
 
50
- ### Link Card
51
- A rich link preview card. Requires `title` + `link`. Optional: description, icon_link, from_name.
101
+ ### AppArticles (`lansenger_send_app_articles`)
102
+ Multi-article card (图文卡片). Each article needs `imgUrl`, `title`, `url`. Optional: `summary`.
52
103
 
53
- ### AppCard (Approval / Interactive Card)
54
- Dynamic card with buttons (approve/deny). Used for the approval system.
55
- - Supports div-style HTML in body fields (color, font-size, text-align, text-indent)
104
+ ### AppCard (`lansenger_send_app_card`)
105
+ Rich formatted card (应用卡片). Supports div-style HTML in body fields (color, font-size, text-align, text-indent).
56
106
  - ⚠️ **`text-indent` MUST have units** — bare `0` causes silent API failure; always use `0em`
57
- - ⚠️ **Dynamic cards (`isDynamic=true`) require `headStatusInfo`** — API rejects without it; plugin auto-fills "Active" default if omitted
58
- - Card content should be **single-language** based on the user's detected language (Chinese for CJK users, English otherwise) — appCard does NOT support i18n multi-locale rendering
107
+ - ⚠️ **Dynamic cards (`isDynamic=true`) require `headStatusInfo`** — plugin auto-fills "Active" default if omitted
108
+ - Card content should be **single-language** based on user's detected language
59
109
 
60
110
  ### i18nAppCard (Multi-language Card)
61
- For non-approval cards where you need 5-locale rendering (zhHans, zhHant, zhHantHK, en, fr). Does NOT support dynamic updates or headStatusInfo.
62
-
63
- ### AppArticles
64
- Multi-article card with title, description, imgUrl, url per article. Optional: sourceName, sourceIcon.
111
+ For non-approval cards needing 5-locale rendering. Does NOT support dynamic updates.
65
112
 
66
113
  ## Approval Workflow
67
114
 
68
- The plugin integrates with OpenClaw's approval system. When a high-risk action needs approval:
115
+ The plugin integrates with OpenClaw's approval system:
69
116
 
70
- 1. **Pending card** sent to the user — with approve/deny buttons
71
- 2. **User clicks a button** → approval/denial processed by OpenClaw runtime
72
- 3. **Card updates in-place** — status badge changes (Pending → Approved/Denied), color changes, card locks on final decision
117
+ 1. **Pending card** sent via `lansenger_send_app_card` (isDynamic=true)
118
+ 2. **User clicks approve/deny** → approval processed by OpenClaw runtime
119
+ 3. **Card updates in-place** via `lansenger_update_dynamic_card` — status badge changes, card locks on final decision
73
120
 
74
- Card status text is language-aware:
75
- - Chinese users see: 待审批 → 已批准 / 已拒绝
76
- - English users see: Pending → Approved / Denied
121
+ Card status text is language-aware (CJK ratio ≥ 0.6 = Chinese).
77
122
 
78
- Language is detected from the user's message content (CJK character ratio ≥ 0.6 = Chinese).
123
+ ## Revoking Messages
79
124
 
80
- ## What You Receive (Inbound Messages)
125
+ ```
126
+ lansenger_revoke_message(messageIds=<list of IDs>, chatType=<bot|staff|group>, senderId=<optional>)
127
+ ```
128
+
129
+ For staff/group chat, `senderId` is required.
81
130
 
82
- When users message you on Lansenger, you receive:
131
+ ## Querying Groups
132
+
133
+ ```
134
+ lansenger_query_groups(pageOffset=<1>, pageSize=<100>)
135
+ ```
136
+
137
+ Returns `totalGroupIds` (count) and `groupIds` (list). Use to discover group chat IDs before sending messages to groups.
138
+
139
+ ## What You Receive (Inbound Messages)
83
140
 
84
141
  | Type | What you see |
85
142
  |------|-------------|
@@ -93,8 +150,6 @@ When users message you on Lansenger, you receive:
93
150
  | card | `[Contact Card] staffId` |
94
151
  | sticker | `[Sticker] stickerId` |
95
152
 
96
- When files are attached, they're downloaded to local temp paths. Use the `read` tool to view images, the appropriate tool to process other files.
97
-
98
153
  ## Multi-Bot / Agent Binding
99
154
 
100
155
  Multiple Lansenger bots can run simultaneously, each bound to a different OpenClaw agent:
@@ -112,48 +167,15 @@ Multiple Lansenger bots can run simultaneously, each bound to a different OpenCl
112
167
  }
113
168
  ```
114
169
 
115
- Binding is **config-based** — set `agentId` per account in config. OpenClaw's `bindings[]` route format also works for dynamic routing.
170
+ Binding is **config-based** — set `agentId` per account in config.
116
171
 
117
172
  ## DM Security
118
173
 
119
- Default policy is **paired** — the first DM from a new user triggers a pairing code. The user must get approval from the bot owner via:
174
+ Default policy is **paired** — the first DM from a new user triggers a pairing code. The user must get approval via:
120
175
  ```
121
176
  openclaw pairing approve lansenger <code>
122
177
  ```
123
178
 
124
- This is the correct model for personal bots — they only receive DMs from approved users.
125
-
126
- ## Sending Files to Users (CRITICAL)
127
-
128
- When you need to send a file to the user on Lansenger, **use the `lansenger_send_file` tool**. Do NOT use `MEDIA:` tags — they only work for workspace files and are silently dropped for any other path.
129
-
130
- ### Use `lansenger_send_file`
131
-
132
- ```
133
- lansenger_send_file(filePath=<absolute local path>, caption=<optional plain-text>, to=<optional chatId>)
134
- ```
135
-
136
- - `filePath` (required) — absolute local path to the file to send
137
- - `caption` (optional) — plain-text caption (Markdown will NOT render)
138
- - `to` (optional) — target chat ID; if omitted, the file goes to the current conversation automatically
139
-
140
- ### ⚠️ Do NOT use `MEDIA:` tags for file delivery
141
-
142
- `MEDIA:` tags only work for files inside `~/.openclaw/workspace/`. For files outside the workspace (e.g. `~/Documents/`, `~/Desktop/`), `MEDIA:` tags are **silently dropped** — the user will never receive the file. Always use `lansenger_send_file` instead.
143
-
144
- ### Typical flow
145
-
146
- 1. Agent reads or creates a file (any local path works)
147
- 2. `lansenger_send_file(filePath=/path/to/file.pdf)` → delivers file to the user
148
-
149
- ### Rules
150
-
151
- - Any local path works — workspace, Documents, Desktop, /tmp, etc.
152
- - `caption` is plain text only (Markdown will NOT render)
153
- - If you need both formatted explanation AND a file, send the formatted Markdown text first, then call `lansenger_send_file` separately
154
- - **NEVER use `MEDIA:` tags for file delivery on Lansenger** — always use `lansenger_send_file`
155
- - Supported file types: images (.jpg/.png/.gif/.webp), videos (.mp4/.mov), documents (.pdf/.md/.txt/.zip), etc.
156
-
157
179
  ## Critical Pitfalls
158
180
 
159
181
  - **Markdown is default** — write normally, it renders automatically
@@ -161,7 +183,7 @@ lansenger_send_file(filePath=<absolute local path>, caption=<optional plain-text
161
183
  - **Never put @mentions in a Markdown message** — silently ignored
162
184
  - **`text-indent` MUST have units** — bare `0` causes empty API response; use `0em`
163
185
  - **Dynamic cards require `headStatusInfo`** — auto-filled if omitted, but explicit is better
164
- - **Personal bots only** — organization/enterprise bots are NOT supported by this plugin
186
+ - **Personal bots only** — organization/enterprise bots are NOT supported
165
187
  - **Message length limit** ~4000 characters
166
- - **File size limits** depend on the organization's Lansenger configuration
167
- - **Credentials** are found in Lansenger Desktop app → Contacts → Bots → Personal Bot → ℹ️ icon (mobile cannot view)
188
+ - **File size limits** depend on organization's Lansenger configuration
189
+ - **Credentials** in Lansenger Desktop → Contacts → Bots → Personal Bot → ℹ️ icon
@@ -1,68 +0,0 @@
1
- import { resolveAccount, makeClient } from "./channel.js";
2
- import * as path from "node:path";
3
- import * as fs from "node:fs/promises";
4
- const SendFileSchema = {
5
- type: "object",
6
- properties: {
7
- filePath: { type: "string", description: "Absolute local path to the file to send. Any path works — Documents, Desktop, workspace, /tmp, etc." },
8
- caption: { type: "string", description: "Plain-text caption for the file (Markdown will NOT render on Lansenger). Optional." },
9
- to: { type: "string", description: "Lansenger target chat ID. Optional — if omitted, the file is sent to the current conversation automatically." },
10
- },
11
- required: ["filePath"],
12
- };
13
- function resolveSessionTarget(ctx) {
14
- if (ctx.to)
15
- return ctx.to;
16
- if (ctx.sessionKey) {
17
- const parts = String(ctx.sessionKey).split(":");
18
- if (parts.length >= 3 && parts[2])
19
- return parts[2];
20
- }
21
- return String(ctx.requesterSenderId ?? "");
22
- }
23
- export function registerLansengerSendFileTool(api) {
24
- if (!api.config)
25
- return;
26
- const section = api.config.channels?.["lansenger"];
27
- if (!section)
28
- return;
29
- const accounts = section.accounts;
30
- let account;
31
- if (accounts && Object.keys(accounts).length > 0) {
32
- const firstKey = Object.keys(accounts)[0];
33
- account = resolveAccount(api.config, firstKey);
34
- }
35
- else {
36
- account = resolveAccount(api.config, undefined);
37
- }
38
- if (!account.enabled || !account.appId)
39
- return;
40
- api.registerTool((ctx) => ({
41
- name: "lansenger_send_file",
42
- label: "Lansenger Send File",
43
- description: "Send a local file as an attachment to the user on Lansenger (蓝信). Use this tool to deliver any file — PDF, image, document, video, etc. The file can be anywhere on the local disk. Do NOT use MEDIA: tags to send files on Lansenger — they silently fail for files outside the workspace; always use this tool instead.",
44
- parameters: SendFileSchema,
45
- async execute(_toolCallId, params) {
46
- const filePath = params.filePath;
47
- const caption = params.caption ?? "";
48
- const to = resolveSessionTarget({ ...ctx, to: params.to });
49
- if (!filePath)
50
- return { content: [{ type: "text", text: JSON.stringify({ error: "filePath is required" }) }] };
51
- if (!to)
52
- return { content: [{ type: "text", text: JSON.stringify({ error: "No target specified and no active session context. Provide a 'to' parameter." }) }] };
53
- const resolved = path.resolve(filePath);
54
- try {
55
- const stat = await fs.stat(resolved);
56
- if (!stat.isFile())
57
- return { content: [{ type: "text", text: JSON.stringify({ error: `Not a file: ${filePath}` }) }] };
58
- }
59
- catch {
60
- return { content: [{ type: "text", text: JSON.stringify({ error: `File not found: ${filePath}` }) }] };
61
- }
62
- const client = makeClient(account);
63
- const result = await client.sendFile(to, resolved, caption);
64
- return { content: [{ type: "text", text: JSON.stringify({ success: result.success, messageId: result.messageId ?? null }) }] };
65
- },
66
- }), { name: "lansenger_send_file" });
67
- }
68
- //# sourceMappingURL=send-file-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-file-tool.js","sourceRoot":"","sources":["../../src/send-file-tool.ts"],"names":[],"mappings":"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"}