grix-connector 4.2.3 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/claude/claude-adapter.js +18 -17
- package/dist/adapter/claude/claude-bridge-server.js +1 -1
- package/dist/adapter/claude/claude-tools.js +1 -1
- package/dist/adapter/claude/claude-worker-client.js +1 -1
- package/dist/adapter/claude/mcp-http-launcher.js +2 -2
- package/dist/adapter/claude/result-timeout.js +1 -1
- package/dist/assets/dsh-bridge/{grix-dsh-bridge-4.2.3.tgz → grix-dsh-bridge-4.2.4.tgz} +0 -0
- package/dist/assets/dsh-bridge/manifest.json +4 -4
- package/dist/core/access/allowlist-store.js +1 -1
- package/dist/core/file-ops/list-files.js +1 -1
- package/dist/default-skills/grix-access-control/SKILL.md +1 -1
- package/dist/default-skills/grix-admin/SKILL.md +110 -155
- package/dist/default-skills/grix-admin/references/api-contract.md +23 -12
- package/dist/default-skills/grix-agent-dispatch/SKILL.md +152 -188
- package/dist/default-skills/grix-audit-data/SKILL.md +1 -1
- package/dist/default-skills/grix-chat-state/SKILL.md +26 -43
- package/dist/default-skills/grix-egg/SKILL.md +1 -1
- package/dist/default-skills/grix-group/SKILL.md +1 -1
- package/dist/default-skills/grix-owner-relay/SKILL.md +30 -64
- package/dist/default-skills/grix-query/SKILL.md +1 -1
- package/dist/default-skills/grix-skill-library/SKILL.md +52 -0
- package/dist/default-skills/grix-widget-visitor-ban/SKILL.md +1 -1
- package/dist/default-skills/message-send/SKILL.md +1 -1
- package/dist/default-skills/message-unsend/SKILL.md +1 -1
- package/dist/default-skills/tailnet-file-share/SKILL.md +38 -72
- package/dist/default-skills/tailnet-file-share/references/certificate-trust.md +64 -0
- package/dist/log.js +2 -2
- package/dist/mcp/stream-http/config.js +1 -1
- package/dist/mcp/stream-http/connection-binding.js +1 -1
- package/dist/mcp/stream-http/security.js +1 -1
- package/dist/mcp/stream-http/tool-executor.js +1 -1
- package/dist/mcp/stream-http/tool-registry.js +1 -1
- package/dist/mcp/stream-http/tool-schemas.js +1 -1
- package/openclaw-plugin/skills/grix-admin/SKILL.md +122 -156
- package/openclaw-plugin/skills/grix-group/SKILL.md +52 -159
- package/openclaw-plugin/skills/grix-query/SKILL.md +54 -248
- package/openclaw-plugin/skills/grix-update/SKILL.md +70 -304
- package/openclaw-plugin/skills/message-send/SKILL.md +41 -172
- package/openclaw-plugin/skills/message-unsend/SKILL.md +29 -170
- package/package.json +1 -1
|
@@ -1,186 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: message-unsend
|
|
3
|
-
description: Silently recall/unsend already-sent
|
|
3
|
+
description: Silently recall/unsend an already-sent message through OpenClaw's `message` tool, in the current session or another session. Only the owner or an explicitly authorized operator may trigger it; after execution end immediately with `NO_REPLY` and no confirmation text. Trigger words: recall, unsend, delete message.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Message Unsend
|
|
6
|
+
# Message Unsend
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Recall a sent message with OpenClaw's `message` tool, `action: "unsend"`,
|
|
9
|
+
`channel: "grix"`. The whole operation is **silent**.
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## Who may trigger it
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
Execute only when the requester is clearly the current agent's owner, or an
|
|
14
|
+
operator already established as authorized in the current context — in a
|
|
15
|
+
private chat, a group chat, or by quoting the target message. If a third party
|
|
16
|
+
asks, or the identity is unclear: do nothing and return `NO_REPLY`.
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
2. **Recall the command message**: the current "recall/unsend" command message itself must also be recalled
|
|
16
|
-
3. **Never send confirmation text**: do not send "recalled", "recall successful", "processing complete", or any other message
|
|
17
|
-
4. **Only `NO_REPLY` is allowed at the end**: the skill must end by returning `NO_REPLY`
|
|
18
|
+
## Parameters
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
| Parameter | Required | Value |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `action` | ✅ | `"unsend"` |
|
|
23
|
+
| `channel` | ✅ | `"grix"` |
|
|
24
|
+
| `accountId` | ✅ | the current Grix account ID (never hardcode `default`) |
|
|
25
|
+
| `messageId` | ✅ | numeric string — from inbound context, a previous send result, or message records |
|
|
26
|
+
| `sessionId` | cross-session only | exact target `session_id`; omit when the message is in the current session |
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- Owner says "recall / unsend / delete message" in a private chat
|
|
26
|
-
- Owner says "recall / unsend / delete message" in a group chat
|
|
27
|
-
- Owner or explicitly authorized operator quotes a message requesting recall
|
|
28
|
-
|
|
29
|
-
### Prohibited Execution Cases
|
|
30
|
-
|
|
31
|
-
- A third-party user requests recall
|
|
32
|
-
- Requester identity is unclear, cannot determine if they are the owner / authorized operator
|
|
33
|
-
|
|
34
|
-
### Handling Recall Requests from Others
|
|
35
|
-
|
|
36
|
-
Completely ignore, do not reply, do not execute, directly `NO_REPLY`.
|
|
37
|
-
|
|
38
|
-
## Core Behavior: Completely Silent + Dual Recall
|
|
39
|
-
|
|
40
|
-
When the owner or explicitly authorized operator sends a recall command, must execute in order:
|
|
41
|
-
|
|
42
|
-
1. Recall the target message
|
|
43
|
-
2. Recall the command message
|
|
44
|
-
3. Immediately return `NO_REPLY`
|
|
45
|
-
|
|
46
|
-
Do not send any confirmation, error explanation, or supplementary notes.
|
|
47
|
-
|
|
48
|
-
## Two Recall Modes
|
|
49
|
-
|
|
50
|
-
### 1. Current Session Recall
|
|
51
|
-
|
|
52
|
-
If the target message is in the current Grix session, `messageId` must be provided; `sessionId` / `to` / `topic` can be omitted.
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"action": "unsend",
|
|
57
|
-
"channel": "grix",
|
|
58
|
-
"accountId": "{accountId}",
|
|
59
|
-
"messageId": "18889990099"
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 2. Cross-Session Recall
|
|
64
|
-
|
|
65
|
-
If the target message is not in the current session, prefer using `sessionId` to point to the target session. `to` and `topic` are only compatibility aliases; do not use them as the primary format.
|
|
66
|
-
|
|
67
|
-
```json
|
|
68
|
-
{
|
|
69
|
-
"action": "unsend",
|
|
70
|
-
"channel": "grix",
|
|
71
|
-
"accountId": "{accountId}",
|
|
72
|
-
"messageId": "18889990099",
|
|
73
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950"
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Parameter Rules
|
|
78
|
-
|
|
79
|
-
1. `messageId` is required and must be a numeric string
|
|
80
|
-
2. In the current Grix session, `sessionId` / `to` / `topic` can be omitted
|
|
81
|
-
3. For cross-session, prefer passing the exact `sessionId`
|
|
82
|
-
4. `to` / `topic` are only compatibility aliases; if using `topic`, pass the bare `session_id`
|
|
83
|
-
5. Do not hardcode `accountId=default`; always use the current exact account ID
|
|
84
|
-
|
|
85
|
-
## Use Cases
|
|
86
|
-
|
|
87
|
-
- User says "recall that last message" in the current conversation
|
|
88
|
-
- Need to silently clean up a message just sent by mistake
|
|
89
|
-
- Need to recall a known message cross-session
|
|
90
|
-
|
|
91
|
-
## Actual Call Examples
|
|
92
|
-
|
|
93
|
-
### Example 1: Current Session Recall
|
|
28
|
+
`to` / `topic` are compatibility aliases for `sessionId`; do not use them as
|
|
29
|
+
the primary form. Never pass a user ID, agent ID, or legacy other-channel
|
|
30
|
+
session format. Both agent-sent and user-sent messages can be recalled.
|
|
94
31
|
|
|
95
32
|
```json
|
|
96
|
-
{
|
|
97
|
-
"action": "unsend",
|
|
98
|
-
"channel": "grix",
|
|
99
|
-
"accountId": "{accountId}",
|
|
100
|
-
"messageId": "2033329436849868800"
|
|
101
|
-
}
|
|
33
|
+
{ "action": "unsend", "channel": "grix", "accountId": "{accountId}", "messageId": "18889990099", "sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950" }
|
|
102
34
|
```
|
|
103
35
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
```json
|
|
107
|
-
{
|
|
108
|
-
"action": "unsend",
|
|
109
|
-
"channel": "grix",
|
|
110
|
-
"accountId": "{accountId}",
|
|
111
|
-
"messageId": "2033474284277993472",
|
|
112
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950"
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Important Notes
|
|
117
|
-
|
|
118
|
-
1. The Grix channel can recall messages sent by both agents and users
|
|
119
|
-
2. For cross-session, must first obtain the exact target session; do not pass user ID, agent ID, or legacy other-channel session formats
|
|
120
|
-
3. `messageId` can be obtained from inbound context, previous send results, or message records
|
|
121
|
-
4. The current command message will also be silently recalled if it can be located
|
|
122
|
-
|
|
123
|
-
## Error Handling
|
|
124
|
-
|
|
125
|
-
Common errors are only for internal judgment; do not convert them into replies to the user:
|
|
126
|
-
|
|
127
|
-
- `messageId` does not exist: directly `NO_REPLY`
|
|
128
|
-
- Cannot resolve target session: directly `NO_REPLY`
|
|
129
|
-
- Insufficient permissions: directly `NO_REPLY`
|
|
130
|
-
- Message already deleted: directly `NO_REPLY`
|
|
131
|
-
|
|
132
|
-
## Grix Live Test Results (Updated 2026-03-16)
|
|
133
|
-
|
|
134
|
-
**Status**: Available
|
|
135
|
-
|
|
136
|
-
### Example: Recall a message sent by the agent
|
|
137
|
-
|
|
138
|
-
```json
|
|
139
|
-
{
|
|
140
|
-
"action": "unsend",
|
|
141
|
-
"channel": "grix",
|
|
142
|
-
"accountId": "primary",
|
|
143
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950",
|
|
144
|
-
"messageId": "2033371385615093760"
|
|
145
|
-
}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Return:
|
|
149
|
-
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"ok": true,
|
|
153
|
-
"deleted": true,
|
|
154
|
-
"unsent": true,
|
|
155
|
-
"messageId": "2033371385615093760",
|
|
156
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950"
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### Example: Recall a message sent by the user
|
|
161
|
-
|
|
162
|
-
```json
|
|
163
|
-
{
|
|
164
|
-
"action": "unsend",
|
|
165
|
-
"channel": "grix",
|
|
166
|
-
"accountId": "primary",
|
|
167
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950",
|
|
168
|
-
"messageId": "2033474284277993472"
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
Return:
|
|
173
|
-
|
|
174
|
-
```json
|
|
175
|
-
{
|
|
176
|
-
"ok": true,
|
|
177
|
-
"deleted": true,
|
|
178
|
-
"unsent": true,
|
|
179
|
-
"messageId": "2033474284277993472",
|
|
180
|
-
"sessionId": "5c495569-ba1b-46ac-8070-5a1193a3f950"
|
|
181
|
-
}
|
|
182
|
-
```
|
|
36
|
+
The plugin also recalls the "recall/unsend" command message itself when it can
|
|
37
|
+
locate it — you do not issue a second call for that.
|
|
183
38
|
|
|
184
|
-
##
|
|
39
|
+
## Completion contract
|
|
185
40
|
|
|
186
|
-
|
|
41
|
+
1. Make the single `unsend` call.
|
|
42
|
+
2. Send **no** text — no "recalled", no error explanation, no follow-up. A
|
|
43
|
+
missing message, unresolvable session, permission failure, or already
|
|
44
|
+
deleted message is handled the same way: silently.
|
|
45
|
+
3. End with exactly `NO_REPLY` as the last line.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "grix-connector",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.4",
|
|
4
4
|
"description": "Connect local AI coding agents (Claude, Codex, Gemini, Qwen, DeepSeek, Cursor, OpenCode, Pi, OpenHuman, Reasonix) to the Grix scheduling platform. Also serves as an OpenClaw plugin for Grix channel transport.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|