diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f51e827..c89c0f89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is inspired by [Keep a Changelog](https://keepachangelog.com/) and th ## [Unreleased] +### Added + +- **In-place text-emotion updates** — adds `dws chat message update-text-emotion`, mapping the seven required conversation, message, old/new emotion, name, text, and background parameters to Wukong's proven `im/update_text_emotion` capability so status transitions can avoid remove-then-add flicker and duplicate network calls ([hugozhu/dingtalk-opencode-tag#85](https://github.com/hugozhu/dingtalk-opencode-tag/issues/85)). + ### Fixed - **Name→ID resolution kept external contacts** — the shared contact resolver (`chat +dm`, `+broadcast`, …) no longer drops `search_contact_by_key_word` rows that carry only an `openDingTalkId` (external / cross-org contacts have an empty `userId`), so those people are found instead of reported missing or collapsed into a wrong single match; the display name also falls back through `nick`/`showName`/`flowerName`/`staffName`/`userName`. diff --git a/internal/cli/schema_agent_metadata/chat.json b/internal/cli/schema_agent_metadata/chat.json index 9b1c1025..86953da3 100644 --- a/internal/cli/schema_agent_metadata/chat.json +++ b/internal/cli/schema_agent_metadata/chat.json @@ -30788,32 +30788,33 @@ ] }, "chat message update-text-emotion": { - "agent_summary": "更新消息上已有的文字表情回应", + "agent_summary": "把消息上已有的文字表情原地替换为新的文字表情", "agent_summary_source": "dws-agent-selection/chat", "availability": "available", "avoid_when": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "confirmation": "not_required", "effect": "write", "effect_source": "agent-hint", "examples": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ], "field_provenance": { "agent_summary": { - "value": "更新消息上已有的文字表情回应", + "value": "把消息上已有的文字表情原地替换为新的文字表情", "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "candidates": [ { - "value": "更新消息上已有的文字表情回应", + "value": "把消息上已有的文字表情原地替换为新的文字表情", "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。" + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。" } ] }, @@ -30822,34 +30823,36 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." } ] }, "avoid_when": { "value": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "candidates": [ { "value": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。" + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。" } ] }, @@ -30858,14 +30861,20 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "not_required", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." + }, + { + "value": "not_required", + "source": "risk-default", + "precedence": "inference_or_default", + "selected": false } ] }, @@ -30874,34 +30883,40 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." + }, + { + "value": "write", + "source": "command-verb", + "precedence": "inference_or_default", + "selected": false } ] }, "examples": { "value": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "candidates": [ { "value": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。" + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。" } ] }, @@ -30910,14 +30925,20 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "idempotent", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." + }, + { + "value": "unknown", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": false } ] }, @@ -30926,30 +30947,30 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "composite", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." } ] }, "interface_reason": { - "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "value": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { - "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "value": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." } ] }, @@ -30974,21 +30995,21 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": true, "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." }, { "value": true, "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。" + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。" } ] }, @@ -30997,52 +31018,63 @@ "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "candidates": [ { "value": "low", "source": "internal/cli/schema_hints/metadata/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call." + }, + { + "value": "medium", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": false } ] }, "use_when": { "value": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "candidates": [ { "value": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ], "source": "internal/cli/schema_hints/selection/chat.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。" + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。" } ] } }, "idempotency": "idempotent", "interface_mode": "composite", - "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_reason": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "reviewed": true, "risk": "low", "source_refs": [ - "CommandRegistry:canonical_path=chat.update_text_emotion", "cobra-help:dws chat message update-text-emotion", + "dws-wukong:30f13f02", + "dws-wukong:bcf56ccf", + "dws-wukong:d6831318", + "github:hugozhu/dingtalk-opencode-tag#85", + "internal/cli/schema_command_registry/products/chat.json#chat.update_text_emotion", "internal/cli/schema_hints/metadata/chat.json", "internal/cli/schema_hints/selection/chat.json", - "wukong-develop:wukong/products" + "live-dws-schema:im.update_text_emotion#FAILED_NOT_AUTHENTICATED", + "skills/mono/references/products/chat.md" ], "use_when": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ] }, "chat mute": { diff --git a/internal/cli/schema_agent_metadata/index.json b/internal/cli/schema_agent_metadata/index.json index 64dfa9d9..24017bd3 100644 --- a/internal/cli/schema_agent_metadata/index.json +++ b/internal/cli/schema_agent_metadata/index.json @@ -1,6 +1,6 @@ { "version": 1, - "source_hash": "sha256:ced34d4510fddb0b0cd02478f0f5051b0de0aab3d6bc7e1e43aaa1a12717d3b7", + "source_hash": "sha256:334b39376cb6fb3de8461b89e8cfb4fb6c69f40ad92e38ba5a8e971a64301bb2", "surface_hash": "sha256:674e6c00efb4d7f4c177ec0a1c4c097c8fb48b0045d1787c0ed001c32c51f20a", "coverage": { "surface_products": 26, diff --git a/internal/cli/schema_agent_metadata_audit.json b/internal/cli/schema_agent_metadata_audit.json index deea4bcc..1a7a80dd 100644 --- a/internal/cli/schema_agent_metadata_audit.json +++ b/internal/cli/schema_agent_metadata_audit.json @@ -1,6 +1,6 @@ { "version": 1, - "source_hash": "sha256:ced34d4510fddb0b0cd02478f0f5051b0de0aab3d6bc7e1e43aaa1a12717d3b7", + "source_hash": "sha256:334b39376cb6fb3de8461b89e8cfb4fb6c69f40ad92e38ba5a8e971a64301bb2", "surface_hash": "sha256:674e6c00efb4d7f4c177ec0a1c4c097c8fb48b0045d1787c0ed001c32c51f20a", "source_files": 160, "hint_files": 54, @@ -1492,7 +1492,7 @@ { "tool_path": "chat message list-emotion-replies", "source": "skills/mono/references/products/chat.md", - "line": 1103, + "line": 1119, "candidates": [ "chat message add-emoji", "chat message add-favorite", @@ -1506,7 +1506,7 @@ { "tool_path": "chat category create", "source": "skills/mono/references/products/chat.md", - "line": 1480, + "line": 1496, "candidates": [ "chat group create", "chat category batch-info", @@ -1520,7 +1520,7 @@ { "tool_path": "chat category delete", "source": "skills/mono/references/products/chat.md", - "line": 1505, + "line": 1521, "candidates": [ "chat category batch-info", "chat category create-smart", @@ -1534,7 +1534,7 @@ { "tool_path": "chat category rename", "source": "skills/mono/references/products/chat.md", - "line": 1516, + "line": 1532, "candidates": [ "chat group rename", "chat category batch-info", @@ -1548,7 +1548,7 @@ { "tool_path": "chat category add-conv", "source": "skills/mono/references/products/chat.md", - "line": 1528, + "line": 1544, "candidates": [ "chat category batch-info", "chat category create-smart", @@ -1562,7 +1562,7 @@ { "tool_path": "chat category remove-conv", "source": "skills/mono/references/products/chat.md", - "line": 1541, + "line": 1557, "candidates": [ "chat category batch-info", "chat category create-smart", @@ -1576,7 +1576,7 @@ { "tool_path": "chat text translate", "source": "skills/mono/references/products/chat.md", - "line": 1556, + "line": 1572, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1590,7 +1590,7 @@ { "tool_path": "chat text translate", "source": "skills/mono/references/products/chat.md", - "line": 1557, + "line": 1573, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1604,7 +1604,7 @@ { "tool_path": "chat text translate", "source": "skills/mono/references/products/chat.md", - "line": 1558, + "line": 1574, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1618,7 +1618,7 @@ { "tool_path": "chat hide", "source": "skills/mono/references/products/chat.md", - "line": 1595, + "line": 1611, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1632,7 +1632,7 @@ { "tool_path": "chat hide", "source": "skills/mono/references/products/chat.md", - "line": 1596, + "line": 1612, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1646,7 +1646,7 @@ { "tool_path": "chat mute-at-all", "source": "skills/mono/references/products/chat.md", - "line": 1618, + "line": 1634, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1660,7 +1660,7 @@ { "tool_path": "chat mute-at-all", "source": "skills/mono/references/products/chat.md", - "line": 1619, + "line": 1635, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1674,7 +1674,7 @@ { "tool_path": "chat mute-red-envelope", "source": "skills/mono/references/products/chat.md", - "line": 1641, + "line": 1657, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1688,7 +1688,7 @@ { "tool_path": "chat mute-red-envelope", "source": "skills/mono/references/products/chat.md", - "line": 1642, + "line": 1658, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1702,7 +1702,7 @@ { "tool_path": "chat mark-unread", "source": "skills/mono/references/products/chat.md", - "line": 1662, + "line": 1678, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1716,7 +1716,7 @@ { "tool_path": "chat mark-unread", "source": "skills/mono/references/products/chat.md", - "line": 1663, + "line": 1679, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1730,7 +1730,7 @@ { "tool_path": "chat clear-red-point", "source": "skills/mono/references/products/chat.md", - "line": 1681, + "line": 1697, "candidates": [ "chat +at-me", "chat +bot-find", @@ -1744,20 +1744,6 @@ { "tool_path": "chat clear-red-point", "source": "skills/mono/references/products/chat.md", - "line": 1682, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat clear-all-red-point", - "source": "skills/mono/references/products/chat.md", "line": 1698, "candidates": [ "chat +at-me", @@ -1772,20 +1758,6 @@ { "tool_path": "chat clear-all-red-point", "source": "skills/mono/references/products/chat.md", - "line": 1700, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat list-all-conversations", - "source": "skills/mono/references/products/chat.md", "line": 1714, "candidates": [ "chat +at-me", @@ -1798,21 +1770,7 @@ } }, { - "tool_path": "chat list-all-conversations", - "source": "skills/mono/references/products/chat.md", - "line": 1715, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat list-all-conversations", + "tool_path": "chat clear-all-red-point", "source": "skills/mono/references/products/chat.md", "line": 1716, "candidates": [ @@ -1828,413 +1786,7 @@ { "tool_path": "chat list-all-conversations", "source": "skills/mono/references/products/chat.md", - "line": 1717, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat clear-messages", - "source": "skills/mono/references/products/chat.md", - "line": 1737, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat clear-messages", - "source": "skills/mono/references/products/chat.md", - "line": 1738, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mark-read", - "source": "skills/mono/references/products/chat.md", - "line": 1756, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mark-read", - "source": "skills/mono/references/products/chat.md", - "line": 1757, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group list-join-validations", - "source": "skills/mono/references/products/chat.md", - "line": 1800, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group list-join-validations", - "source": "skills/mono/references/products/chat.md", - "line": 1801, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group list-join-validations", - "source": "skills/mono/references/products/chat.md", - "line": 1802, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group audit-join-validation", - "source": "skills/mono/references/products/chat.md", - "line": 1822, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group audit-join-validation", - "source": "skills/mono/references/products/chat.md", - "line": 1823, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group members", - "source": "skills/mono/references/products/chat.md", - "line": 1855, - "candidates": [ - "chat group members add", - "chat group members add-bot", - "chat group members remove" - ], - "review": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - } - }, - { - "tool_path": "chat group update-alias", - "source": "skills/mono/references/products/chat.md", - "line": 1860, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group members list-by-ids", - "source": "skills/mono/references/products/chat.md", - "line": 1864, - "candidates": [ - "chat message list-by-ids", - "chat group members add", - "chat group members add-bot" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat category create", - "source": "skills/mono/references/products/chat.md", - "line": 1891, - "candidates": [ - "chat group create", - "chat category batch-info", - "chat category create-smart" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat category delete", - "source": "skills/mono/references/products/chat.md", - "line": 1893, - "candidates": [ - "chat category batch-info", - "chat category create-smart", - "chat category list" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat category rename", - "source": "skills/mono/references/products/chat.md", - "line": 1894, - "candidates": [ - "chat group rename", - "chat category batch-info", - "chat category create-smart" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat category add-conv", - "source": "skills/mono/references/products/chat.md", - "line": 1895, - "candidates": [ - "chat category batch-info", - "chat category create-smart", - "chat category list" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat category remove-conv", - "source": "skills/mono/references/products/chat.md", - "line": 1896, - "candidates": [ - "chat category batch-info", - "chat category create-smart", - "chat category list" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group share-invite", - "source": "skills/mono/references/products/chat.md", - "line": 1907, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat group notice create/edit/get/list", - "source": "skills/mono/references/products/chat.md", - "line": 1908, - "candidates": [ - "chat group bots", - "chat group create", - "chat group dismiss" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat message list-emotion-replies", - "source": "skills/mono/references/products/chat.md", - "line": 1910, - "candidates": [ - "chat message add-emoji", - "chat message add-favorite", - "chat message add-text-emotion" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat hide", - "source": "skills/mono/references/products/chat.md", - "line": 1917, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mute-at-all", - "source": "skills/mono/references/products/chat.md", - "line": 1918, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mute-at-all", - "source": "skills/mono/references/products/chat.md", - "line": 1919, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mute-red-envelope", - "source": "skills/mono/references/products/chat.md", - "line": 1920, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mute-red-envelope", - "source": "skills/mono/references/products/chat.md", - "line": 1921, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mark-unread", - "source": "skills/mono/references/products/chat.md", - "line": 1922, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat mark-read", - "source": "skills/mono/references/products/chat.md", - "line": 1923, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat clear-red-point", - "source": "skills/mono/references/products/chat.md", - "line": 1924, - "candidates": [ - "chat +at-me", - "chat +bot-find", - "chat +bot-search" - ], - "review": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - } - }, - { - "tool_path": "chat clear-all-red-point", - "source": "skills/mono/references/products/chat.md", - "line": 1925, + "line": 1730, "candidates": [ "chat +at-me", "chat +bot-find", @@ -2248,7 +1800,35 @@ { "tool_path": "chat list-all-conversations", "source": "skills/mono/references/products/chat.md", - "line": 1926, + "line": 1731, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat list-all-conversations", + "source": "skills/mono/references/products/chat.md", + "line": 1732, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat list-all-conversations", + "source": "skills/mono/references/products/chat.md", + "line": 1733, "candidates": [ "chat +at-me", "chat +bot-find", @@ -2262,7 +1842,49 @@ { "tool_path": "chat clear-messages", "source": "skills/mono/references/products/chat.md", - "line": 1927, + "line": 1753, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat clear-messages", + "source": "skills/mono/references/products/chat.md", + "line": 1754, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mark-read", + "source": "skills/mono/references/products/chat.md", + "line": 1772, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mark-read", + "source": "skills/mono/references/products/chat.md", + "line": 1773, "candidates": [ "chat +at-me", "chat +bot-find", @@ -2276,7 +1898,35 @@ { "tool_path": "chat group list-join-validations", "source": "skills/mono/references/products/chat.md", - "line": 1929, + "line": 1816, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group list-join-validations", + "source": "skills/mono/references/products/chat.md", + "line": 1817, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group list-join-validations", + "source": "skills/mono/references/products/chat.md", + "line": 1818, "candidates": [ "chat group bots", "chat group create", @@ -2290,7 +1940,357 @@ { "tool_path": "chat group audit-join-validation", "source": "skills/mono/references/products/chat.md", - "line": 1930, + "line": 1838, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group audit-join-validation", + "source": "skills/mono/references/products/chat.md", + "line": 1839, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group members", + "source": "skills/mono/references/products/chat.md", + "line": 1871, + "candidates": [ + "chat group members add", + "chat group members add-bot", + "chat group members remove" + ], + "review": { + "status": "group", + "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" + } + }, + { + "tool_path": "chat group update-alias", + "source": "skills/mono/references/products/chat.md", + "line": 1876, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group members list-by-ids", + "source": "skills/mono/references/products/chat.md", + "line": 1880, + "candidates": [ + "chat message list-by-ids", + "chat group members add", + "chat group members add-bot" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat category create", + "source": "skills/mono/references/products/chat.md", + "line": 1907, + "candidates": [ + "chat group create", + "chat category batch-info", + "chat category create-smart" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat category delete", + "source": "skills/mono/references/products/chat.md", + "line": 1909, + "candidates": [ + "chat category batch-info", + "chat category create-smart", + "chat category list" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat category rename", + "source": "skills/mono/references/products/chat.md", + "line": 1910, + "candidates": [ + "chat group rename", + "chat category batch-info", + "chat category create-smart" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat category add-conv", + "source": "skills/mono/references/products/chat.md", + "line": 1911, + "candidates": [ + "chat category batch-info", + "chat category create-smart", + "chat category list" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat category remove-conv", + "source": "skills/mono/references/products/chat.md", + "line": 1912, + "candidates": [ + "chat category batch-info", + "chat category create-smart", + "chat category list" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group share-invite", + "source": "skills/mono/references/products/chat.md", + "line": 1923, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group notice create/edit/get/list", + "source": "skills/mono/references/products/chat.md", + "line": 1924, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat message list-emotion-replies", + "source": "skills/mono/references/products/chat.md", + "line": 1926, + "candidates": [ + "chat message add-emoji", + "chat message add-favorite", + "chat message add-text-emotion" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat hide", + "source": "skills/mono/references/products/chat.md", + "line": 1934, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mute-at-all", + "source": "skills/mono/references/products/chat.md", + "line": 1935, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mute-at-all", + "source": "skills/mono/references/products/chat.md", + "line": 1936, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mute-red-envelope", + "source": "skills/mono/references/products/chat.md", + "line": 1937, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mute-red-envelope", + "source": "skills/mono/references/products/chat.md", + "line": 1938, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mark-unread", + "source": "skills/mono/references/products/chat.md", + "line": 1939, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat mark-read", + "source": "skills/mono/references/products/chat.md", + "line": 1940, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat clear-red-point", + "source": "skills/mono/references/products/chat.md", + "line": 1941, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat clear-all-red-point", + "source": "skills/mono/references/products/chat.md", + "line": 1942, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat list-all-conversations", + "source": "skills/mono/references/products/chat.md", + "line": 1943, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat clear-messages", + "source": "skills/mono/references/products/chat.md", + "line": 1944, + "candidates": [ + "chat +at-me", + "chat +bot-find", + "chat +bot-search" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group list-join-validations", + "source": "skills/mono/references/products/chat.md", + "line": 1946, + "candidates": [ + "chat group bots", + "chat group create", + "chat group dismiss" + ], + "review": { + "status": "stale", + "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" + } + }, + { + "tool_path": "chat group audit-join-validation", + "source": "skills/mono/references/products/chat.md", + "line": 1947, "candidates": [ "chat group bots", "chat group create", @@ -2304,7 +2304,7 @@ { "tool_path": "chat text translate", "source": "skills/mono/references/products/chat.md", - "line": 1950, + "line": 1967, "candidates": [ "chat +at-me", "chat +bot-find", diff --git a/internal/cli/schema_catalog/catalog.json b/internal/cli/schema_catalog/catalog.json index 5b085848..ab24ec82 100644 --- a/internal/cli/schema_catalog/catalog.json +++ b/internal/cli/schema_catalog/catalog.json @@ -1,12 +1,12 @@ { "version": 1, "surface_hash": "sha256:674e6c00efb4d7f4c177ec0a1c4c097c8fb48b0045d1787c0ed001c32c51f20a", - "source_hash": "sha256:f2cf7fcd3a70748029688ef5653386d9b503ef898bf763acb1da04a0b150d483", + "source_hash": "sha256:c8e5313acea3e819656786a5abc9d03e23dcc19da2302d24ad13c183f23c14ea", "catalog": { "agent_metadata": { "products_with_metadata": 26, "source": "embedded-skill-metadata", - "source_hash": "sha256:ced34d4510fddb0b0cd02478f0f5051b0de0aab3d6bc7e1e43aaa1a12717d3b7", + "source_hash": "sha256:334b39376cb6fb3de8461b89e8cfb4fb6c69f40ad92e38ba5a8e971a64301bb2", "surface_hash": "sha256:674e6c00efb4d7f4c177ec0a1c4c097c8fb48b0045d1787c0ed001c32c51f20a", "surface_products": 26, "surface_tools": 839, @@ -11249,11 +11249,12 @@ }, { "agent_metadata_source": "embedded-skill-metadata", - "agent_summary": "更新消息上已有的文字表情回应", + "agent_summary": "把消息上已有的文字表情原地替换为新的文字表情", "agent_summary_source": "dws-agent-selection/chat", "availability": "available", "avoid_when": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "canonical_path": "chat.update_text_emotion", "cli_name": "update-text-emotion", @@ -11264,14 +11265,14 @@ "group": "message", "idempotency": "idempotent", "interface_mode": "composite", - "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_reason": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "name": "update_text_emotion", "primary_cli_path": "chat message update-text-emotion", "reviewed": true, "risk": "low", "title": "更新消息的文字表情回应", "use_when": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ] }, { diff --git a/internal/cli/schema_catalog/tools/chat.json b/internal/cli/schema_catalog/tools/chat.json index d41b1170..c46c9acc 100644 --- a/internal/cli/schema_catalog/tools/chat.json +++ b/internal/cli/schema_catalog/tools/chat.json @@ -83288,51 +83288,67 @@ "chat.update_text_emotion": { "agent_metadata_source": "embedded-skill-metadata", "agent_source_refs": [ - "CommandRegistry:canonical_path=chat.update_text_emotion", "cobra-help:dws chat message update-text-emotion", + "dws-wukong:30f13f02", + "dws-wukong:bcf56ccf", + "dws-wukong:d6831318", + "github:hugozhu/dingtalk-opencode-tag#85", + "internal/cli/schema_command_registry/products/chat.json#chat.update_text_emotion", "internal/cli/schema_hints/metadata/chat.json", "internal/cli/schema_hints/selection/chat.json", - "wukong-develop:wukong/products" + "live-dws-schema:im.update_text_emotion#FAILED_NOT_AUTHENTICATED", + "skills/mono/references/products/chat.md" ], - "agent_summary": "更新消息上已有的文字表情回应", + "agent_summary": "把消息上已有的文字表情原地替换为新的文字表情", "agent_summary_source": "dws-agent-selection/chat", "availability": "available", "avoid_when": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "canonical_path": "chat.update_text_emotion", "cli_name": "update-text-emotion", "cli_path": "chat message update-text-emotion", "confirmation": "not_required", + "constraints": { + "require_one_of": [ + [ + "conversation-id", + "group", + "id", + "chat" + ] + ] + }, "description": "更新消息的文字表情回应", "display": "群聊 / 消息 / 机器人", "effect": "write", "effect_source": "agent-hint", "examples": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ], "field_provenance": { "agent_summary": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "selected": true, "source": "internal/cli/schema_hints/selection/chat.json", - "value": "更新消息上已有的文字表情回应" + "value": "把消息上已有的文字表情原地替换为新的文字表情" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "source": "internal/cli/schema_hints/selection/chat.json", - "value": "更新消息上已有的文字表情回应" + "value": "把消息上已有的文字表情原地替换为新的文字表情" }, "availability": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "available" @@ -83340,7 +83356,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "available" }, @@ -83348,20 +83364,22 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "selected": true, "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ] } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ] }, "canonical_path": { @@ -83372,6 +83390,14 @@ "source": "reviewed_command_registry", "source_ref": "chat message update-text-emotion", "value": "chat.update_text_emotion" + }, + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": false, + "source": "reviewed_manual_hint", + "source_ref": "chat message update-text-emotion", + "value": "chat.update_text_emotion" } ], "precedence": "command_registry", @@ -83384,15 +83410,21 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "not_required" + }, + { + "precedence": "inference_or_default", + "selected": false, + "source": "risk-default", + "value": "not_required" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "not_required" }, @@ -83414,15 +83446,21 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "write" + }, + { + "precedence": "inference_or_default", + "selected": false, + "source": "command-verb", + "value": "write" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "write" }, @@ -83430,35 +83468,41 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "selected": true, "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ] } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "dws chat message update-text-emotion --conversation-id \u003ccid\u003e --msg-id \u003cmid\u003e --old-emotion-id \u003cold\u003e --emotion-id \u003cnew\u003e --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id \u003copenConversationId\u003e --msg-id \u003copenMessageId\u003e --old-emotion-id \u003coldEmotionId\u003e --emotion-id \u003cemotionId\u003e --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ] }, "idempotency": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "idempotent" + }, + { + "precedence": "inference_or_default", + "selected": false, + "source": "effect-default", + "value": "unknown" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "idempotent" }, @@ -83466,7 +83510,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "composite" @@ -83474,7 +83518,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "composite" }, @@ -83482,17 +83526,17 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", - "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + "value": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", - "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + "value": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet." }, "interface_ref": { "candidates": [ @@ -83514,14 +83558,14 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": true }, { "precedence": "reviewed_explicit", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "selected": false, "source": "internal/cli/schema_hints/selection/chat.json", "value": true @@ -83529,7 +83573,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": true }, @@ -83537,15 +83581,21 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, "source": "internal/cli/schema_hints/metadata/chat.json", "value": "low" + }, + { + "precedence": "inference_or_default", + "selected": false, + "source": "effect-default", + "value": "medium" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "dws-tool-metadata/chat marks this tool as reviewed", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "source": "internal/cli/schema_hints/metadata/chat.json", "value": "low" }, @@ -83567,20 +83617,20 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "selected": true, "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ] } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "source": "internal/cli/schema_hints/selection/chat.json", "value": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ] } }, @@ -83588,19 +83638,41 @@ "has_parameters": true, "idempotency": "idempotent", "interface_mode": "composite", - "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_reason": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "is_alias": false, "name": "update_text_emotion", "parameter_count": 10, "parameters": { "background-id": { - "description": "新背景 ID (必填)", + "cli_required": true, + "description": "新文字表情的背景 ID", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "新文字表情的背景 ID" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "新背景 ID (必填)" }, @@ -83611,19 +83683,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "新背景 ID (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "新文字表情的背景 ID" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --background-id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "backgroundId" }, { "precedence": "inference", @@ -83632,17 +83705,30 @@ "value": "backgroundId" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --background-id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "backgroundId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -83653,9 +83739,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -83687,6 +83774,7 @@ "value": "string" } }, + "property": "backgroundId", "required": true, "type": "string" }, @@ -83716,11 +83804,11 @@ "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --chat is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "openConversationId" }, { "precedence": "inference", @@ -83729,24 +83817,38 @@ "value": "chat" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --chat is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "openConversationId" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "command_constraint", + "selected": false, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": false }, "required_when": { @@ -83778,17 +83880,25 @@ "value": "string" } }, + "property": "openConversationId", "required": false, "type": "string" }, "conversation-id": { - "description": "会话 openConversationId (必填,支持单聊/群聊)", + "description": "会话 openConversationId;与 --group、--id、--chat 四选一", "field_provenance": { "description": { "candidates": [ { - "precedence": "cobra_contract", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": "会话 openConversationId;与 --group、--id、--chat 四选一" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "会话 openConversationId (必填,支持单聊/群聊)" }, @@ -83799,19 +83909,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "会话 openConversationId (必填,支持单聊/群聊)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "会话 openConversationId;与 --group、--id、--chat 四选一" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --conversation-id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "openConversationId" }, { "precedence": "inference", @@ -83820,17 +83931,30 @@ "value": "conversationId" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --conversation-id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "openConversationId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "command_constraint", + "selected": false, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -83841,10 +83965,11 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", - "value": true + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -83875,17 +84000,40 @@ "value": "string" } }, - "required": true, + "property": "openConversationId", + "required": false, "type": "string" }, "emotion-id": { - "description": "新表情 ID (必填)", + "cli_required": true, + "description": "新的文字表情 ID,可通过 create-text-emotion 获取", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "新的文字表情 ID,可通过 create-text-emotion 获取" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "新表情 ID (必填)" }, @@ -83896,19 +84044,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "新表情 ID (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "新的文字表情 ID,可通过 create-text-emotion 获取" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "emotionId" }, { "precedence": "inference", @@ -83917,17 +84066,30 @@ "value": "emotionId" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "emotionId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -83938,9 +84100,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -83972,17 +84135,40 @@ "value": "string" } }, + "property": "emotionId", "required": true, "type": "string" }, "emotion-name": { - "description": "新表情名称 (必填)", + "cli_required": true, + "description": "新的文字表情名称", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "新的文字表情名称" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "新表情名称 (必填)" }, @@ -83993,19 +84179,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "新表情名称 (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "新的文字表情名称" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-name is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "emotionName" }, { "precedence": "inference", @@ -84014,17 +84201,30 @@ "value": "emotionName" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-name is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "emotionName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -84035,9 +84235,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -84069,6 +84270,7 @@ "value": "string" } }, + "property": "emotionName", "required": true, "type": "string" }, @@ -84098,11 +84300,11 @@ "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --group is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "openConversationId" }, { "precedence": "inference", @@ -84111,24 +84313,38 @@ "value": "group" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --group is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "openConversationId" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "command_constraint", + "selected": false, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": false }, "required_when": { @@ -84160,6 +84376,7 @@ "value": "string" } }, + "property": "openConversationId", "required": false, "type": "string" }, @@ -84189,11 +84406,11 @@ "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "openConversationId" }, { "precedence": "inference", @@ -84202,24 +84419,38 @@ "value": "id" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "openConversationId" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "command_constraint", + "selected": false, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": false }, "required_when": { @@ -84251,17 +84482,40 @@ "value": "string" } }, + "property": "openConversationId", "required": false, "type": "string" }, "msg-id": { - "description": "消息 openMsgId (必填)", + "cli_required": true, + "description": "需要原地更新文字表情的消息 openMsgId", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "需要原地更新文字表情的消息 openMsgId" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "消息 openMsgId (必填)" }, @@ -84272,19 +84526,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "消息 openMsgId (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "需要原地更新文字表情的消息 openMsgId" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --msg-id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "openMsgId" }, { "precedence": "inference", @@ -84293,17 +84548,30 @@ "value": "msgId" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --msg-id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "openMsgId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -84314,9 +84582,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -84348,17 +84617,40 @@ "value": "string" } }, + "property": "openMsgId", "required": true, "type": "string" }, "old-emotion-id": { - "description": "待更新的原表情 ID (必填)", + "cli_required": true, + "description": "消息上当前文字表情的 emotionId", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "消息上当前文字表情的 emotionId" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "待更新的原表情 ID (必填)" }, @@ -84369,19 +84661,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "待更新的原表情 ID (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "消息上当前文字表情的 emotionId" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --old-emotion-id is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "oldEmotionId" }, { "precedence": "inference", @@ -84390,17 +84683,30 @@ "value": "oldEmotionId" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --old-emotion-id is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "oldEmotionId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -84411,9 +84717,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -84445,17 +84752,40 @@ "value": "string" } }, + "property": "oldEmotionId", "required": true, "type": "string" }, "text": { - "description": "新文字内容 (必填)", + "cli_required": true, + "description": "新的文字表情内容", "field_provenance": { - "description": { + "cli_required": { "candidates": [ { "precedence": "cobra_contract", "selected": true, + "source": "cobra_hard_required", + "value": true + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_hard_required", + "value": true + }, + "description": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "selected": true, + "source": "reviewed_manual_hint", + "value": "新的文字表情内容" + }, + { + "precedence": "cobra_contract", + "selected": false, "source": "cobra_usage", "value": "新文字内容 (必填)" }, @@ -84466,19 +84796,20 @@ "value": "" } ], - "precedence": "cobra_contract", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "新文字内容 (必填)" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "新的文字表情内容" }, "property": { "candidates": [ { - "precedence": "reviewed_mapping_exclusion", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --text is a CLI wrapper input and does not publish a direct interface property.", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, - "source": "reviewed_mapping_exclusion", - "value": "" + "source": "reviewed_manual_hint", + "value": "text" }, { "precedence": "inference", @@ -84487,17 +84818,30 @@ "value": "text" } ], - "precedence": "reviewed_mapping_exclusion", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --text is a CLI wrapper input and does not publish a direct interface property.", - "source": "reviewed_mapping_exclusion", - "value": "" + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", + "value": "text" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", "selected": true, + "source": "reviewed_manual_hint", + "value": true + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_hard_required", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -84508,9 +84852,10 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "source": "reviewed_manual_hint", "value": true }, "required_when": { @@ -84542,6 +84887,7 @@ "value": "string" } }, + "property": "text", "required": true, "type": "string" } @@ -84554,7 +84900,7 @@ "source": "reviewed_command_registry", "title": "更新消息的文字表情回应", "use_when": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ] }, "chat.upgrade_group_to_external": { diff --git a/internal/cli/schema_constraints_runtime.go b/internal/cli/schema_constraints_runtime.go index 2351f60f..686e7b76 100644 --- a/internal/cli/schema_constraints_runtime.go +++ b/internal/cli/schema_constraints_runtime.go @@ -40,6 +40,7 @@ func init() { registerExclusiveOneOf("chat.create_and_send_card", "group", "receiver") registerRequireOneOf("chat.add_emoji_reaction", "conversation-id", "group", "id", "chat") registerRequireOneOf("chat.add_text_emotion", "conversation-id", "group", "id", "chat") + registerRequireOneOf("chat.update_text_emotion", "conversation-id", "group", "id", "chat") registerExclusiveOneOf("chat.get_conversation_info", "group", "user", "open-dingtalk-id") registerExclusiveOneOf("chat.list_conversation_message_v2", "group", "user", "open-dingtalk-id") registerExclusiveOneOf("chat.list_individual_chat_message", "user", "open-dingtalk-id") diff --git a/internal/cli/schema_hints/metadata/chat.json b/internal/cli/schema_hints/metadata/chat.json index 0e05bfff..8856f9aa 100644 --- a/internal/cli/schema_hints/metadata/chat.json +++ b/internal/cli/schema_hints/metadata/chat.json @@ -1354,8 +1354,59 @@ "idempotency": "idempotent", "interface_mode": "composite", "availability": "available", - "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_reason": "Reviewed unpinned remote adapter: the executable CLI calls im/update_text_emotion, which is proven by dws-wukong develop@30f13f02 but absent from the pinned MCP metadata snapshot; no pinned interface_ref can represent the command yet.", "reviewed": true, + "parameters": { + "background-id": { + "property": "backgroundId", + "description": "新文字表情的背景 ID", + "required": true + }, + "chat": { + "property": "openConversationId", + "required": false + }, + "conversation-id": { + "property": "openConversationId", + "description": "会话 openConversationId;与 --group、--id、--chat 四选一", + "required": false + }, + "emotion-id": { + "property": "emotionId", + "description": "新的文字表情 ID,可通过 create-text-emotion 获取", + "required": true + }, + "emotion-name": { + "property": "emotionName", + "description": "新的文字表情名称", + "required": true + }, + "group": { + "property": "openConversationId", + "required": false + }, + "id": { + "property": "openConversationId", + "required": false + }, + "msg-id": { + "property": "openMsgId", + "description": "需要原地更新文字表情的消息 openMsgId", + "required": true + }, + "old-emotion-id": { + "property": "oldEmotionId", + "description": "消息上当前文字表情的 emotionId", + "required": true + }, + "text": { + "property": "text", + "description": "新的文字表情内容", + "required": true + } + }, + "review_reason": "Ported from dws-wukong commits d6831318 and bcf56ccf, merged at 30f13f02. The four conversation locators alias one property; the other six business parameters are required by Cobra before the single im/update_text_emotion call.", + "cli_path": "chat message update-text-emotion", "runtime_gate": "none" }, "chat.get_group_mute_config": { diff --git a/internal/cli/schema_hints/selection/chat.json b/internal/cli/schema_hints/selection/chat.json index 31cf8c8f..f76b5ef9 100644 --- a/internal/cli/schema_hints/selection/chat.json +++ b/internal/cli/schema_hints/selection/chat.json @@ -2399,22 +2399,27 @@ ] }, "chat.update_text_emotion": { - "agent_summary": "更新消息上已有的文字表情回应", + "agent_summary": "把消息上已有的文字表情原地替换为新的文字表情", "use_when": [ - "用户说 改一下消息上的文字表情" + "需要更新消息的状态文字或表情,并避免先移除再添加造成闪烁和两次网络调用时" ], "avoid_when": [ - "新增用 add-text-emotion;移除用 remove-text-emotion" + "消息上还没有文字表情时使用 chat message add-text-emotion", + "只需清除文字表情时使用 chat message remove-text-emotion" ], "examples": [ - "dws chat message update-text-emotion --conversation-id --msg-id --old-emotion-id --emotion-id --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5 --format json" + "dws chat message update-text-emotion --conversation-id --msg-id --old-emotion-id --emotion-id --emotion-name \"处理中\" --text \"处理中 2 分钟\" --background-id im_bg_5" ], "reviewed": true, - "review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。", + "review_reason": "依据 issue #85 的原地状态更新场景、Wukong 30f13f02 的真实 Cobra/MCP 映射和开源实现复核;选择语义不改变执行、安全或参数事实。", "source_refs": [ - "CommandRegistry:canonical_path=chat.update_text_emotion", + "internal/cli/schema_command_registry/products/chat.json#chat.update_text_emotion", "cobra-help:dws chat message update-text-emotion", - "wukong-develop:wukong/products" + "dws-wukong:d6831318", + "dws-wukong:bcf56ccf", + "dws-wukong:30f13f02", + "github:hugozhu/dingtalk-opencode-tag#85", + "live-dws-schema:im.update_text_emotion#FAILED_NOT_AUTHENTICATED" ] }, "chat.get_group_mute_config": { diff --git a/internal/cli/schema_parameter_bindings.json b/internal/cli/schema_parameter_bindings.json index 9996ee6c..b686f2f8 100644 --- a/internal/cli/schema_parameter_bindings.json +++ b/internal/cli/schema_parameter_bindings.json @@ -1900,16 +1900,6 @@ "chat.batch_query_group_chat_settings --groups": "Reviewed unpinned adapter: chat.batch_query_group_chat_settings has no singular pinned interface_ref; --groups is a CLI wrapper input and does not publish a direct interface property.", "chat.batch_update_group_chat_settings --items": "Reviewed unpinned adapter: chat.batch_update_group_chat_settings has no singular pinned interface_ref; --items is a CLI wrapper input and does not publish a direct interface property.", "chat.get_group_mute_config --group": "Reviewed unpinned adapter: chat.get_group_mute_config has no singular pinned interface_ref; --group is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --background-id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --background-id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --chat": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --chat is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --conversation-id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --conversation-id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --emotion-id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --emotion-name": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --emotion-name is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --group": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --group is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --msg-id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --msg-id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --old-emotion-id": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --old-emotion-id is a CLI wrapper input and does not publish a direct interface property.", - "chat.update_text_emotion --text": "Reviewed unpinned adapter: chat.update_text_emotion has no singular pinned interface_ref; --text is a CLI wrapper input and does not publish a direct interface property.", "doc.get_document_style --node": "Reviewed unpinned adapter: doc.get_document_style has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "doc.style_background_clear --node": "Reviewed unpinned adapter: doc.style_background_clear has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "doc.style_background_set --color": "Reviewed unpinned adapter: doc.style_background_set has no singular pinned interface_ref; --color is a CLI wrapper input and does not publish a direct interface property.", diff --git a/internal/helpers/chat.go b/internal/helpers/chat.go index 0e929c16..d6d33b1a 100644 --- a/internal/helpers/chat.go +++ b/internal/helpers/chat.go @@ -3218,6 +3218,10 @@ func newChatCommand() *cobra.Command { chatMessageUpdateTextEmotionCmd.Flags().String("emotion-name", "", "新表情名称 (必填)") chatMessageUpdateTextEmotionCmd.Flags().String("text", "", "新文字内容 (必填)") chatMessageUpdateTextEmotionCmd.Flags().String("background-id", "", "新背景 ID (必填)") + chatMessageUpdateTextEmotionCmd.MarkFlagsOneRequired("conversation-id", "group", "id", "chat") + for _, name := range []string{"msg-id", "old-emotion-id", "emotion-id", "emotion-name", "text", "background-id"} { + _ = chatMessageUpdateTextEmotionCmd.MarkFlagRequired(name) + } // ── 创建文字表情(获取 emotionId)────────────────────── diff --git a/internal/helpers/chat_text_emotion_update_test.go b/internal/helpers/chat_text_emotion_update_test.go new file mode 100644 index 00000000..91d8b149 --- /dev/null +++ b/internal/helpers/chat_text_emotion_update_test.go @@ -0,0 +1,86 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + "strings" + "testing" +) + +func TestChatMessageUpdateTextEmotionMapsReplacementTemplate(t *testing.T) { + for _, locator := range []string{"conversation-id", "group", "id", "chat"} { + t.Run(locator, func(t *testing.T) { + caller := &wukongWeeklySyncCaller{} + _, _, err := executeWukongWeeklySyncCommand(t, "chat", caller, newChatCommand, + "message", "update-text-emotion", + "--"+locator, "cid", + "--msg-id", "mid", + "--old-emotion-id", "old-emotion", + "--emotion-id", "new-emotion", + "--emotion-name", "赞", + "--text", "nice", + "--background-id", "im_bg_5", + ) + if err != nil { + t.Fatalf("update-text-emotion returned error: %v", err) + } + requireWukongWeeklySyncCall(t, caller, wukongWeeklySyncCall{ + server: "im", + tool: "update_text_emotion", + args: map[string]any{ + "openConversationId": "cid", + "openMsgId": "mid", + "oldEmotionId": "old-emotion", + "emotionId": "new-emotion", + "emotionName": "赞", + "text": "nice", + "backgroundId": "im_bg_5", + }, + }) + }) + } +} + +func TestChatMessageUpdateTextEmotionRequiresEveryBusinessParameter(t *testing.T) { + required := []struct { + name string + args []string + }{ + {name: "conversation-id", args: []string{"--group", "cid"}}, + {name: "msg-id", args: []string{"--msg-id", "mid"}}, + {name: "old-emotion-id", args: []string{"--old-emotion-id", "old-emotion"}}, + {name: "emotion-id", args: []string{"--emotion-id", "new-emotion"}}, + {name: "emotion-name", args: []string{"--emotion-name", "赞"}}, + {name: "text", args: []string{"--text", "nice"}}, + {name: "background-id", args: []string{"--background-id", "im_bg_5"}}, + } + + for omitted := range required { + t.Run("missing-"+required[omitted].name, func(t *testing.T) { + args := []string{"message", "update-text-emotion"} + for i, parameter := range required { + if i != omitted { + args = append(args, parameter.args...) + } + } + + caller := &wukongWeeklySyncCaller{} + _, _, err := executeWukongWeeklySyncCommand(t, "chat", caller, newChatCommand, args...) + if err == nil || !strings.Contains(err.Error(), required[omitted].name) { + t.Fatalf("missing %s error = %v", required[omitted].name, err) + } + requireWukongWeeklySyncNoCalls(t, caller) + }) + } +} diff --git a/skills/mono/references/products/chat.md b/skills/mono/references/products/chat.md index f42e6226..d631945f 100644 --- a/skills/mono/references/products/chat.md +++ b/skills/mono/references/products/chat.md @@ -1060,6 +1060,22 @@ Flags: --background-id string 背景 ID (必填) ``` +#### 原地更新消息的文字表情回应 +``` +Usage: + dws chat message update-text-emotion [flags] +Example: + dws chat message update-text-emotion --conversation-id --msg-id --old-emotion-id --emotion-id --emotion-name "处理中" --text "处理中 2 分钟" --background-id im_bg_5 +Flags: + --conversation-id string 会话 openConversationId (必填,支持单聊/群聊,别名: --group / --id / --chat) + --msg-id string 消息 openMsgId (必填) + --old-emotion-id string 待替换的原表情 ID (必填) + --emotion-id string 新表情 ID (必填,通过 create-text-emotion 获取) + --emotion-name string 新表情名称 (必填) + --text string 新文字内容 (必填) + --background-id string 新背景 ID (必填) +``` + #### 移除消息的文字表情回应 ``` Usage: @@ -1911,6 +1927,7 @@ Flags: 用户说"emoji回应/表情回应/给消息加表情" → `chat message add-emoji` 用户说"取消emoji回应/移除表情回应" → `chat message remove-emoji` 用户说"文字表情回应/添加文字表情" → `chat message add-text-emotion` +用户说"修改文字表情回应/更新消息状态文字" → `chat message update-text-emotion` 用户说"取消文字表情回应/移除文字表情" → `chat message remove-text-emotion` 用户说"创建文字表情/新建文字表情" → `chat message create-text-emotion` 用户说"免打扰/消息免打扰/静音/开启免打扰/关闭免打扰" → `chat mute` @@ -1973,7 +1990,7 @@ Flags: - `chat message list-by-ids` — 根据消息 ID 批量查询消息(最多 50 条) - `chat message add-emoji` / `remove-emoji` — 对消息添加/移除 emoji 表情回应 - `chat message list-emotion-replies` — 批量拉取消息的表情回复和文字回复 -- `chat message add-text-emotion` / `remove-text-emotion` — 对消息添加/移除文字表情回应 +- `chat message add-text-emotion` / `update-text-emotion` / `remove-text-emotion` — 对消息添加、原地更新或移除文字表情回应 - `chat message create-text-emotion` — 创建文字表情模板,返回 emotionId 供 add-text-emotion 使用 - `chat category list` — 获取用户自定义会话分组列表 - `chat category list-conversations` — 拉取指定分组下的会话列表