diff --git a/internal/app/event_personal_output_test.go b/internal/app/event_personal_output_test.go index 188bf1fa..47ea00f5 100644 --- a/internal/app/event_personal_output_test.go +++ b/internal/app/event_personal_output_test.go @@ -51,8 +51,8 @@ func TestPersonalEventListHidesSchemaIDs(t *testing.T) { personal.EventReadGroup, personal.EventRecallO2O, personal.EventRecallGroup, - personal.EventEmotionO2O, - personal.EventEmotionGroup, + personal.EventReactionO2O, + personal.EventReactionGroup, } { if !strings.Contains(got, eventKey) { t.Fatalf("list output missing %s: %s", eventKey, got) @@ -282,8 +282,8 @@ func TestPersonalActionEventSchemaUsesConservativeJSONSchema(t *testing.T) { personal.EventReadGroup, personal.EventRecallO2O, personal.EventRecallGroup, - personal.EventEmotionO2O, - personal.EventEmotionGroup, + personal.EventReactionO2O, + personal.EventReactionGroup, } { t.Run(eventKey, func(t *testing.T) { cmd := newEventSchemaCommand() diff --git a/internal/event/personal/client_test.go b/internal/event/personal/client_test.go index 9f7fa4f5..dc64ff86 100644 --- a/internal/event/personal/client_test.go +++ b/internal/event/personal/client_test.go @@ -116,10 +116,10 @@ func TestClientCreateActionSubscriptionsUsesDocumentedRuleParam(t *testing.T) { }{ {EventReadO2O, RuleOptions{UserID: "staff-1"}, map[string]any{"targetUid": "staff-1", "targetUidType": "staffId"}}, {EventRecallO2O, RuleOptions{UserID: "staff-1"}, map[string]any{"targetUid": "staff-1", "targetUidType": "staffId"}}, - {EventEmotionO2O, RuleOptions{UserID: "staff-1"}, map[string]any{"targetUid": "staff-1", "targetUidType": "staffId"}}, + {EventReactionO2O, RuleOptions{UserID: "staff-1"}, map[string]any{"targetUid": "staff-1", "targetUidType": "staffId"}}, {EventReadGroup, RuleOptions{GroupID: "cid-1"}, map[string]any{"openConversationId": "cid-1"}}, {EventRecallGroup, RuleOptions{GroupID: "cid-1"}, map[string]any{"openConversationId": "cid-1"}}, - {EventEmotionGroup, RuleOptions{GroupID: "cid-1"}, map[string]any{"openConversationId": "cid-1"}}, + {EventReactionGroup, RuleOptions{GroupID: "cid-1"}, map[string]any{"openConversationId": "cid-1"}}, } for _, tt := range tests { t.Run(tt.eventKey, func(t *testing.T) { diff --git a/internal/event/personal/registry.go b/internal/event/personal/registry.go index eb440375..84680121 100644 --- a/internal/event/personal/registry.go +++ b/internal/event/personal/registry.go @@ -23,16 +23,16 @@ import ( ) const ( - EventMention = "user_im_message_receive_at" - EventSingleChat = "user_im_message_receive_o2o" - EventInChat = "user_im_message_receive_group" - EventFromUser = "user_im_message_receive_user" - EventReadO2O = "user_im_message_read_o2o" - EventReadGroup = "user_im_message_read_group" - EventRecallO2O = "user_im_message_recall_o2o" - EventRecallGroup = "user_im_message_recall_group" - EventEmotionO2O = "user_im_message_emotion_o2o" - EventEmotionGroup = "user_im_message_emotion_group" + EventMention = "user_im_message_receive_at" + EventSingleChat = "user_im_message_receive_o2o" + EventInChat = "user_im_message_receive_group" + EventFromUser = "user_im_message_receive_user" + EventReadO2O = "user_im_message_read_o2o" + EventReadGroup = "user_im_message_read_group" + EventRecallO2O = "user_im_message_recall_o2o" + EventRecallGroup = "user_im_message_recall_group" + EventReactionO2O = "user_im_message_reaction_o2o" + EventReactionGroup = "user_im_message_reaction_group" ) const ( @@ -156,7 +156,7 @@ var definitions = []Definition{ Public: true, }, { - EventKey: EventEmotionO2O, + EventKey: EventReactionO2O, DisplayName: "指定单聊消息表情回应", Description: "指定单聊中的消息收到表情回应(贴表情)", Category: "im", @@ -167,7 +167,7 @@ var definitions = []Definition{ Public: true, }, { - EventKey: EventEmotionGroup, + EventKey: EventReactionGroup, DisplayName: "指定群消息表情回应", Description: "指定群聊中的消息收到表情回应(贴表情)", Category: "im", diff --git a/internal/event/personal/registry_test.go b/internal/event/personal/registry_test.go index c1e40bdc..92b0addc 100644 --- a/internal/event/personal/registry_test.go +++ b/internal/event/personal/registry_test.go @@ -37,8 +37,8 @@ func TestCatalogEnabledEvents(t *testing.T) { EventReadGroup, EventRecallO2O, EventRecallGroup, - EventEmotionO2O, - EventEmotionGroup, + EventReactionO2O, + EventReactionGroup, } if !reflect.DeepEqual(keys, want) { t.Fatalf("keys = %#v, want %#v", keys, want) @@ -66,6 +66,10 @@ func TestLegacyEventKeysAreUnknown(t *testing.T) { "im_message_recall_group", "im_message_emotion_o2o", "im_message_emotion_group", + "im_message_reaction_o2o", + "im_message_reaction_group", + "user_im_message_emotion_o2o", + "user_im_message_emotion_group", } for _, key := range legacyKeys { if _, ok := Lookup(key); ok { @@ -285,7 +289,7 @@ func TestBuildRuleParamGroup(t *testing.T) { } func TestBuildRuleParamActionEvents(t *testing.T) { - for _, eventKey := range []string{EventReadO2O, EventRecallO2O, EventEmotionO2O} { + for _, eventKey := range []string{EventReadO2O, EventRecallO2O, EventReactionO2O} { t.Run(eventKey, func(t *testing.T) { if _, _, err := BuildRuleParam(eventKey, RuleOptions{}); err == nil || !strings.Contains(err.Error(), "--user is required for "+eventKey) { t.Fatalf("missing user error = %v", err) @@ -303,7 +307,7 @@ func TestBuildRuleParamActionEvents(t *testing.T) { }) } - for _, eventKey := range []string{EventReadGroup, EventRecallGroup, EventEmotionGroup} { + for _, eventKey := range []string{EventReadGroup, EventRecallGroup, EventReactionGroup} { t.Run(eventKey, func(t *testing.T) { if _, _, err := BuildRuleParam(eventKey, RuleOptions{}); err == nil || !strings.Contains(err.Error(), "--group is required for "+eventKey) { t.Fatalf("missing group error = %v", err) @@ -340,8 +344,8 @@ func actionEventKeysForTest() []string { EventReadGroup, EventRecallO2O, EventRecallGroup, - EventEmotionO2O, - EventEmotionGroup, + EventReactionO2O, + EventReactionGroup, } } diff --git a/internal/event/source/personal_test.go b/internal/event/source/personal_test.go index 6364850b..59c67bf7 100644 --- a/internal/event/source/personal_test.go +++ b/internal/event/source/personal_test.go @@ -613,8 +613,8 @@ func TestPersonalSourceParsedHeadersPassNormalBusFilter(t *testing.T) { func TestPersonalSourceActionEventPassesNormalBusFilter(t *testing.T) { const ( - eventKey = "user_im_message_emotion_group" - subscribeID = "sub-emotion-group" + eventKey = "user_im_message_reaction_group" + subscribeID = "sub-reaction-group" ) src := personalSourceForRawEventTests() raw := src.rawEventFromDataFrame(&payload.DataFrame{ @@ -622,7 +622,7 @@ func TestPersonalSourceActionEventPassesNormalBusFilter(t *testing.T) { "EVENT_TYPE": eventKey, "SUB_ID": subscribeID, }, - Data: `{"eventKey":"user_im_message_emotion_group","subId":"sub-emotion-group","payload":{}}`, + Data: `{"eventKey":"user_im_message_reaction_group","subId":"sub-reaction-group","payload":{}}`, }) h := bus.NewHub(10) consumer, err := h.Register(transport.Hello{ diff --git a/skills/mono/references/products/event.md b/skills/mono/references/products/event.md index 95101527..5c03a0d2 100644 --- a/skills/mono/references/products/event.md +++ b/skills/mono/references/products/event.md @@ -23,8 +23,8 @@ | `user_im_message_read_group` | 指定群聊中当前用户发送的消息被已读 | `--group` | | `user_im_message_recall_o2o` | 指定单聊中的消息被撤回 | `--user` | | `user_im_message_recall_group` | 指定群聊中的消息被撤回 | `--group` | -| `user_im_message_emotion_o2o` | 指定单聊中的消息收到表情回应 | `--user` | -| `user_im_message_emotion_group` | 指定群聊中的消息收到表情回应 | `--group` | +| `user_im_message_reaction_o2o` | 指定单聊中的消息收到表情回应 | `--user` | +| `user_im_message_reaction_group` | 指定群聊中的消息收到表情回应 | `--group` | 只承认上表 9 个事件码。默认身份就是当前用户,不要额外加身份切换 flag。 @@ -39,8 +39,8 @@ | "监听 XX 群消息已读" | 先解析群 ID,再 consume `user_im_message_read_group --group ` | | "监听我和 userId 507971 的消息撤回" | `event consume`,事件码 `user_im_message_recall_o2o`,参数 `--user 507971 -f ndjson` | | "监听 XX 群消息撤回" | 先解析群 ID,再 consume `user_im_message_recall_group --group ` | -| "监听我和 userId 507971 的消息贴表情" | `event consume`,事件码 `user_im_message_emotion_o2o`,参数 `--user 507971 -f ndjson` | -| "监听 XX 群消息表情回应" | 先解析群 ID,再 consume `user_im_message_emotion_group --group ` | +| "监听我和 userId 507971 的消息贴表情" | `event consume`,事件码 `user_im_message_reaction_o2o`,参数 `--user 507971 -f ndjson` | +| "监听 XX 群消息表情回应" | 先解析群 ID,再 consume `user_im_message_reaction_group --group ` | | "监听并自动回复某人的单聊消息" | 先解析对端 userId,再启动 o2o consume;不要写轮询脚本 | | "查看个人消息事件 schema" | `dws event schema ` | | "看个人事件订阅状态" | `dws event status --event ` | @@ -69,8 +69,8 @@ dws event schema user_im_message_read_o2o dws event schema user_im_message_read_group dws event schema user_im_message_recall_o2o dws event schema user_im_message_recall_group -dws event schema user_im_message_emotion_o2o -dws event schema user_im_message_emotion_group +dws event schema user_im_message_reaction_o2o +dws event schema user_im_message_reaction_group ``` ```bash @@ -94,8 +94,8 @@ dws event consume user_im_message_read_o2o --user 507971 -f ndjson dws event consume user_im_message_read_group --group -f ndjson dws event consume user_im_message_recall_o2o --user 507971 -f ndjson dws event consume user_im_message_recall_group --group -f ndjson -dws event consume user_im_message_emotion_o2o --user 507971 -f ndjson -dws event consume user_im_message_emotion_group --group -f ndjson +dws event consume user_im_message_reaction_o2o --user 507971 -f ndjson +dws event consume user_im_message_reaction_group --group -f ndjson ``` ```bash diff --git a/skills/multi/dingtalk-event/SKILL.md b/skills/multi/dingtalk-event/SKILL.md index 4bc15d91..10859df3 100644 --- a/skills/multi/dingtalk-event/SKILL.md +++ b/skills/multi/dingtalk-event/SKILL.md @@ -29,8 +29,8 @@ description: 钉钉个人 IM 事件长连接监听、订阅与消费,覆盖消 | `user_im_message_read_group` | 指定群聊中当前用户发送的消息被已读 | `--group` | | `user_im_message_recall_o2o` | 指定单聊中的消息被撤回 | `--user` | | `user_im_message_recall_group` | 指定群聊中的消息被撤回 | `--group` | -| `user_im_message_emotion_o2o` | 指定单聊中的消息收到表情回应 | `--user` | -| `user_im_message_emotion_group` | 指定群聊中的消息收到表情回应 | `--group` | +| `user_im_message_reaction_o2o` | 指定单聊中的消息收到表情回应 | `--user` | +| `user_im_message_reaction_group` | 指定群聊中的消息收到表情回应 | `--group` | 只承认上表 9 个事件码。其它身份模式、应用凭证模式、非个人 IM 事件不在本 skill 范围内。 @@ -92,7 +92,7 @@ dws event consume user_im_message_recall_group \ -f ndjson # 指定单聊消息收到表情回应 -dws event consume user_im_message_emotion_o2o \ +dws event consume user_im_message_reaction_o2o \ --user 507971 \ -f ndjson diff --git a/skills/multi/dingtalk-event/references/event-im.md b/skills/multi/dingtalk-event/references/event-im.md index 5f34014f..2565b8ea 100644 --- a/skills/multi/dingtalk-event/references/event-im.md +++ b/skills/multi/dingtalk-event/references/event-im.md @@ -22,8 +22,8 @@ dws event schema user_im_message_read_o2o dws event schema user_im_message_read_group dws event schema user_im_message_recall_o2o dws event schema user_im_message_recall_group -dws event schema user_im_message_emotion_o2o -dws event schema user_im_message_emotion_group +dws event schema user_im_message_reaction_o2o +dws event schema user_im_message_reaction_group ``` schema 默认 JSON。业务字段说明在 `schema.properties`,当前业务 payload 解析起点看 `jq_root_path`。 @@ -39,8 +39,8 @@ schema 默认 JSON。业务字段说明在 `schema.properties`,当前业务 pa | `user_im_message_read_group` | `group` | 指定群聊中当前用户发送的消息被已读 | `--group` | | `user_im_message_recall_o2o` | `singleChat` | 指定单聊中的消息被撤回 | `--user` | | `user_im_message_recall_group` | `group` | 指定群聊中的消息被撤回 | `--group` | -| `user_im_message_emotion_o2o` | `singleChat` | 指定单聊中的消息收到表情回应 | `--user` | -| `user_im_message_emotion_group` | `group` | 指定群聊中的消息收到表情回应 | `--group` | +| `user_im_message_reaction_o2o` | `singleChat` | 指定单聊中的消息收到表情回应 | `--user` | +| `user_im_message_reaction_group` | `group` | 指定群聊中的消息收到表情回应 | `--group` | 默认身份就是当前用户。不要额外加身份切换 flag,不要使用应用凭证模式,不要使用本表以外的事件码。 @@ -90,12 +90,12 @@ dws event consume user_im_message_recall_group \ -f ndjson # 指定单聊表情回应事件 -dws event consume user_im_message_emotion_o2o \ +dws event consume user_im_message_reaction_o2o \ --user 507971 \ -f ndjson # 指定群聊表情回应事件 -dws event consume user_im_message_emotion_group \ +dws event consume user_im_message_reaction_group \ --group cidxxxxxxxx \ -f ndjson ``` @@ -111,8 +111,8 @@ dws event consume user_im_message_emotion_group \ | `user_im_message_read_group` | `--group --duration 10m -f ndjson` | 当前用户在群内发送消息,再让群成员打开并阅读 | | `user_im_message_recall_o2o` | `--user --duration 10m -f ndjson` | 在指定单聊中发送并撤回一条消息 | | `user_im_message_recall_group` | `--group --duration 10m -f ndjson` | 在指定群聊中发送并撤回一条消息 | -| `user_im_message_emotion_o2o` | `--user --duration 10m -f ndjson` | 在指定单聊中给消息添加表情回应 | -| `user_im_message_emotion_group` | `--group --duration 10m -f ndjson` | 在指定群聊中给消息添加表情回应 | +| `user_im_message_reaction_o2o` | `--user --duration 10m -f ndjson` | 在指定单聊中给消息添加表情回应 | +| `user_im_message_reaction_group` | `--group --duration 10m -f ndjson` | 在指定群聊中给消息添加表情回应 | stderr 出现 `connected bus pid=...` 表示本地 consume 已连接到事件 bus。stdout 每行是一个事件 JSON。 @@ -190,7 +190,7 @@ dws event status --event user_im_message_receive_o2o dws event status --event user_im_message_receive_group dws event status --event user_im_message_read_o2o dws event status --event user_im_message_recall_group -dws event status --event user_im_message_emotion_o2o +dws event status --event user_im_message_reaction_o2o ``` `status` 同时展示服务端 `Subscriptions` 和本地 `Consumers`。`Consumers` 表里的 PID、事件码、`subscribe_id`、received/dropped 计数用于确认当前前台 consume 是否还挂在 personal bus 上。 diff --git a/test/skill_tests.md b/test/skill_tests.md index 8c77462c..d6014f57 100644 --- a/test/skill_tests.md +++ b/test/skill_tests.md @@ -1053,18 +1053,18 @@ Agent 安装 dws skill 后,仅依据 skill 提供的参考文档,将自然 - Expected: `dws event consume user_im_message_recall_group --group cid123 -f ndjson` - Flags: `--group` = `cid123` -#### `dws event consume user_im_message_emotion_o2o` +#### `dws event consume user_im_message_reaction_o2o` -**event_event_consume_emotion_o2o_001** +**event_event_consume_reaction_o2o_001** - Prompt: 监听我和 userId 507971 的单聊消息贴表情事件 -- Expected: `dws event consume user_im_message_emotion_o2o --user 507971 -f ndjson` +- Expected: `dws event consume user_im_message_reaction_o2o --user 507971 -f ndjson` - Flags: `--user` = `507971` -#### `dws event consume user_im_message_emotion_group` +#### `dws event consume user_im_message_reaction_group` -**event_event_consume_emotion_group_001** +**event_event_consume_reaction_group_001** - Prompt: 监听 openConversationId cid123 的群消息表情回应事件 -- Expected: `dws event consume user_im_message_emotion_group --group cid123 -f ndjson` +- Expected: `dws event consume user_im_message_reaction_group --group cid123 -f ndjson` - Flags: `--group` = `cid123` #### `dws chat search`