@wecom/wecom-openclaw-plugin 1.0.13-beta.0 → 1.0.13-beta.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wecom/wecom-openclaw-plugin",
3
- "version": "1.0.13-beta.0",
3
+ "version": "1.0.13-beta.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -37,73 +37,85 @@ metadata:
37
37
 
38
38
  向单聊或群聊发送文本消息。参见 [API 详情](references/api-send-message.md)。
39
39
 
40
+ ---
40
41
 
41
- ## 注意事项
42
-
43
- - 所有时间参数使用 `YYYY-MM-DD HH:mm:ss` 格式;用户说"昨天"、"最近一周"等相对时间时,根据当前日期推算
44
- - `get_messages` 仅支持拉取请求时刻往前 **7 天**内的消息,超出需告知用户此限制
45
- - 目前仅支持**文本**消息的拉取和发送;用户要求发送图片、文件等需告知不支持
46
- - 发送消息内容最大 **2048 字节**
47
- - 会话类型:`1`-单聊(`chatid` 为对方 userid),`2`-群聊(`chatid` 为群 ID)
48
- - **chatid 查找规则**:当用户提供的是人名或群名而非 ID 时,先调用 `get_msg_chat_list` 拉取会话列表,然后在返回的 `chats` 中按 `chat_name` 进行本地筛选匹配,获取对应的 `chat_id` 作为 `chatid`。匹配策略参照:精确匹配直接使用;模糊匹配到多个结果时展示候选列表让用户选择;无匹配时告知用户未找到
49
- - **发送消息前必须向用户确认**发送对象和消息内容,防止误发
50
- - 分页响应中 `has_more` 为 `true` 或 `next_cursor` 不为空时,**必须告知用户还有更多数据**,询问是否继续查看
51
- - `errcode != 0` 时展示 `errmsg` 中的错误信息;遇 HTTP 错误时主动重试,最多 3 次
42
+ ## 核心规则
43
+
44
+ ### 时间范围规则
45
+ - **格式**:所有时间参数使用 `YYYY-MM-DD HH:mm:ss` 格式
46
+ - **默认范围**:用户未指定时,默认使用最近7天(当前时间往前推7天)
47
+ - **限制**:开始时间不能早于当前时间的7天前,不能晚于当前时间
48
+ - **相对时间支持**:支持"昨天"、"最近三天"等自动推算
49
+
50
+ ### chatid查找规则
51
+ - 当用户提供人名或群名而非ID时:
52
+ 1. 调用 `get_msg_chat_list` 获取会话列表(时间范围与目标查询一致)
53
+ 2. 在 `chats` 中按 `chat_name` 匹配
54
+ 3. **匹配策略**:
55
+ - 精确匹配唯一结果:直接使用
56
+ - 模糊匹配多个结果:展示候选列表让用户选择
57
+ - 无匹配结果:告知用户未找到
58
+ - **chat_type 判断**:`get_msg_chat_list` 返回中不含会话类型字段,需根据上下文推断:用户明确提到「群」时使用 `chat_type=2`,否则默认 `chat_type=1`(单聊)
59
+
60
+ ### userid转username
61
+ **流程**:
62
+ 1. 调用 `wecom-contact-lookup get_userlist` 获取用户列表
63
+ 2. 建立userid到username的映射关系
64
+ 3. **展示策略**:
65
+ - 精确匹配:显示username
66
+ - 无匹配:保持显示userid
52
67
 
53
68
  ---
54
69
 
55
70
  ## 典型工作流
56
71
 
57
72
  ### 查看会话列表
58
-
59
- **经典 query 示例:**
73
+ **用户query示例**:
60
74
  - "看看我最近一周有哪些聊天"
61
75
  - "这几天谁给我发过消息"
62
- - "最近有哪些群聊活跃"
63
76
 
64
- **流程:**
65
- 1. 根据用户意图计算时间范围(如"最近一周"→近 7 天)
77
+ **执行流程**:
78
+ 1. 确定时间范围(用户指定或默认最近7天)
66
79
  2. 调用 `get_msg_chat_list` 获取会话列表
67
- 3. 展示会话名称、最后消息时间、消息数量等信息
68
- 4. 若 `has_more` 为 `true`,告知用户还有更多并询问是否继续
80
+ 3. 展示会话名称、最后消息时间、消息数量
81
+ 4. 若 `has_more` 为 `true`,告知用户还有更多会话可继续查看
69
82
 
70
83
  ### 查看聊天记录
71
-
72
- **经典 query 示例:**
84
+ **用户query示例**:
73
85
  - "帮我看看和张三最近的聊天记录"
74
86
  - "看看项目群里最近的消息"
75
- - "我和李四昨天聊了什么"
76
87
 
77
- **流程:**
78
- 1. **确定 chatid**:调用 `get_msg_chat_list` 拉取会话列表,在 `chats` 中按 `chat_name` 匹配用户提供的人名/群名,获取 `chat_id`
79
- - 精确匹配到唯一结果:直接使用
80
- - 模糊匹配到多个结果:展示候选列表,让用户选择
81
- - 无匹配结果:告知用户未找到对应会话
82
- 2. 根据会话类型设置 `chat_type`(单聊=`1`,群聊=`2`),调用 `get_messages` 拉取消息列表
83
- 3. 展示发送者、时间和消息内容;若 `next_cursor` 不为空,告知用户还有更多消息
88
+ **执行流程**:
89
+ 1. 确定时间范围(用户指定或默认最近7天)
90
+ 2. 通过 **chatid查找规则** 确定目标会话的 `chatid` 和 `chat_type`
91
+ 3. 调用 `get_messages` 拉取消息列表
92
+ 4. 调用 `wecom-contact-lookup` 的 `get_userlist` 获取通讯录,建立 userid→姓名 映射
93
+ 5. 展示消息时将 `userid` 替换为可读姓名,格式:`姓名 [时间]: 内容`
94
+ 6. 若 `next_cursor` 不为空,告知用户还有更多消息可继续查看
84
95
 
85
96
  ### 发送消息
86
-
87
- **经典 query 示例:**
97
+ **用户query示例**:
88
98
  - "帮我给张三发一条消息:明天会议改到下午3点"
89
99
  - "在项目群里发一条消息:今天下午3点开会"
90
- - "给李四回复:收到,谢谢"
91
-
92
- **流程:**
93
- 1. **确定 chatid**:调用 `get_msg_chat_list` 拉取会话列表,在 `chats` 中按 `chat_name` 匹配用户提供的人名/群名,获取 `chat_id`
94
- - 精确匹配到唯一结果:直接使用
95
- - 模糊匹配到多个结果:展示候选列表,让用户选择
96
- - 无匹配结果:告知用户未找到对应会话
97
- 2. **确认发送**:向用户确认发送对象和内容(如:"即将向 张三 发送:'明天会议改到下午3点',确认发送吗?")
98
- 3. 用户确认后调用 `send_message` 发送
100
+
101
+ **执行流程**:
102
+ 1. 通过 **chatid查找规则** 确定目标会话的 `chatid` 和 `chat_type`
103
+ 2. **发送前确认**:向用户确认发送对象和内容(如:"即将向 张三 发送:'明天会议改到下午3点',确认发送吗?"),用户确认后再执行
104
+ 3. 调用 `send_message` 发送(`msgtype` 固定为 `text`)
99
105
  4. 展示发送结果
100
106
 
101
107
  ### 查看消息并回复
102
-
103
- **经典 query 示例:**
108
+ **用户query示例**:
104
109
  - "看看张三给我发了什么,然后帮我回复收到"
105
- - "查看项目群消息,然后回复一下"
106
110
 
107
- **流程:**
108
- 1. 先按"查看聊天记录"流程拉取并展示消息
109
- 2. 再按"发送消息"流程确认并发送回复
111
+ **执行流程**:
112
+ 1. 先执行"查看聊天记录"流程(复用已获取的 `chatid` 和 `chat_type`)
113
+ 2. 展示消息后,执行"发送消息"流程(需确认后再发送)
114
+
115
+ ---
116
+
117
+ ## 错误处理
118
+ - **时间范围超限**:告知用户7天限制并调整为有效范围
119
+ - **会话未找到**:明确告知用户未找到对应会话
120
+ - **API错误**:展示具体错误信息,必要时重试
121
+ - **网络问题**:HTTP错误时主动重试最多3次`