@openclaw-cloud/agent-controller 3.2.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/handlers/slack-event.d.ts +4 -1
- package/dist/handlers/slack-event.js +5 -2
- package/dist/handlers/slack-event.js.map +1 -1
- package/dist/heartbeat.js +1 -0
- package/dist/heartbeat.js.map +1 -1
- package/dist/slack-relay-server.d.ts +20 -6
- package/dist/slack-relay-server.js +64 -57
- package/dist/slack-relay-server.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { AgentCommand, AgentResponse } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Backend → Centrifugo `slack_event` command. Forwards one Slack message event
|
|
4
|
-
* to the openclaw relay client over the local WS server
|
|
4
|
+
* to the openclaw relay client over the local WS server. The push resolves once
|
|
5
|
+
* the frame is written to that client socket — NOT on openclaw's later
|
|
6
|
+
* dispatch-ack (see src/slack-relay-server.ts) — so `delivered:true` means the
|
|
7
|
+
* relay client received the frame, not that openclaw dispatched it to the agent.
|
|
5
8
|
*
|
|
6
9
|
* No CLI wrapper — same exemption as `telegram_webhook`: the payload is a live
|
|
7
10
|
* routed message that only makes sense arriving over the WS with a connected
|
|
@@ -3,7 +3,10 @@ import { toErrorMessage, toErrorResponse } from '../utils/response.js';
|
|
|
3
3
|
import { pushSlackEvent } from '../slack-relay-server.js';
|
|
4
4
|
/**
|
|
5
5
|
* Backend → Centrifugo `slack_event` command. Forwards one Slack message event
|
|
6
|
-
* to the openclaw relay client over the local WS server
|
|
6
|
+
* to the openclaw relay client over the local WS server. The push resolves once
|
|
7
|
+
* the frame is written to that client socket — NOT on openclaw's later
|
|
8
|
+
* dispatch-ack (see src/slack-relay-server.ts) — so `delivered:true` means the
|
|
9
|
+
* relay client received the frame, not that openclaw dispatched it to the agent.
|
|
7
10
|
*
|
|
8
11
|
* No CLI wrapper — same exemption as `telegram_webhook`: the payload is a live
|
|
9
12
|
* routed message that only makes sense arriving over the WS with a connected
|
|
@@ -16,7 +19,7 @@ export async function handleSlackEvent(cmd) {
|
|
|
16
19
|
return { id: cmd.id, type: cmd.type, success: false, error: 'Missing event' };
|
|
17
20
|
}
|
|
18
21
|
if (!deliveryId) {
|
|
19
|
-
//
|
|
22
|
+
// Required: it's the backend's at-least-once redelivery key and rides in the frame.
|
|
20
23
|
return { id: cmd.id, type: cmd.type, success: false, error: 'Missing deliveryId' };
|
|
21
24
|
}
|
|
22
25
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-event.js","sourceRoot":"","sources":["../../src/handlers/slack-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D
|
|
1
|
+
{"version":3,"file":"slack-event.js","sourceRoot":"","sources":["../../src/handlers/slack-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAiB;IACtD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAIxC,CAAC;IAEF,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,oFAAoF;QACpF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,CAAC;YACnB,KAAK;YACL,UAAU;YACV,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE;SACrD,CAAC,CAAC;QACH,4EAA4E;QAC5E,YAAY,EAAE,IAAI,CAChB,uBAAuB,EACvB,MAAM,EACN,mDAAmD,UAAU,GAAG,EAChE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,CAClC,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,EAAE,IAAI,CAChB,uBAAuB,EACvB,OAAO,EACP,sCAAsC,UAAU,MAAM,cAAc,CAAC,GAAG,CAAC,EAAE,EAC3E,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,CAClC,CAAC;QACF,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
package/dist/heartbeat.js
CHANGED
package/dist/heartbeat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,16 @@
|
|
|
5
5
|
* dials us at `ws://127.0.0.1:8788/slack-relay?gateway_id=<AGENT_ID>` with an
|
|
6
6
|
* `Authorization: Bearer <token>` header (see the client in openclaw
|
|
7
7
|
* `extensions/slack/src/monitor/relay-source.ts`). We speak the server half of
|
|
8
|
-
* that wire protocol: send a `hello` on connect
|
|
9
|
-
*
|
|
8
|
+
* that wire protocol: send a `hello` on connect and push `slack_event` frames.
|
|
9
|
+
*
|
|
10
|
+
* We resolve each push as soon as the frame is written to the connected client
|
|
11
|
+
* socket (the `ws.send` callback fires with no error) — NOT when openclaw later
|
|
12
|
+
* returns its dispatch `ack`. openclaw only acks after it has dispatched the
|
|
13
|
+
* message to a possibly-busy agent, so waiting on that ack blocked the backend's
|
|
14
|
+
* serial (prefetch(1)) messages-broker for up to a full agent turn and produced
|
|
15
|
+
* false ack-timeouts. openclaw still sends the ack; we simply ignore it. The
|
|
16
|
+
* residual loss window (openclaw crashes after receiving the frame but before
|
|
17
|
+
* dispatch) is covered by openclaw's own channel+ts dedup on redelivery.
|
|
10
18
|
*
|
|
11
19
|
* The backend delivers events over Centrifugo as `slack_event` system commands;
|
|
12
20
|
* `handlers/slack-event.ts` calls `pushSlackEvent()` here. We bind loopback only
|
|
@@ -26,9 +34,15 @@ export declare function startSlackRelayServer(): {
|
|
|
26
34
|
close: () => void;
|
|
27
35
|
};
|
|
28
36
|
/**
|
|
29
|
-
* Send a `slack_event` frame to the connected openclaw client and resolve
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
37
|
+
* Send a `slack_event` frame to the connected openclaw client and resolve as
|
|
38
|
+
* soon as the frame is written to that socket (the `ws.send` callback fires with
|
|
39
|
+
* no error). We do NOT wait for openclaw's dispatch `ack` — see the module
|
|
40
|
+
* header for why. `delivered:true` on the backend therefore means "openclaw's
|
|
41
|
+
* relay client received the frame", not "openclaw dispatched it to the agent".
|
|
42
|
+
*
|
|
43
|
+
* Rejects on: no connected client, a send error, or the send stalling past
|
|
44
|
+
* `SEND_TIMEOUT_MS`. The backend redelivers on rejection (at-least-once), keyed
|
|
45
|
+
* by the same `delivery_id`; the no-client rejection is the durability contract
|
|
46
|
+
* that makes the backend retry rather than drop when nothing is connected.
|
|
33
47
|
*/
|
|
34
48
|
export declare function pushSlackEvent(payload: SlackEventPayload): Promise<void>;
|
|
@@ -8,8 +8,16 @@ import { toErrorMessage } from './utils/response.js';
|
|
|
8
8
|
* dials us at `ws://127.0.0.1:8788/slack-relay?gateway_id=<AGENT_ID>` with an
|
|
9
9
|
* `Authorization: Bearer <token>` header (see the client in openclaw
|
|
10
10
|
* `extensions/slack/src/monitor/relay-source.ts`). We speak the server half of
|
|
11
|
-
* that wire protocol: send a `hello` on connect
|
|
12
|
-
*
|
|
11
|
+
* that wire protocol: send a `hello` on connect and push `slack_event` frames.
|
|
12
|
+
*
|
|
13
|
+
* We resolve each push as soon as the frame is written to the connected client
|
|
14
|
+
* socket (the `ws.send` callback fires with no error) — NOT when openclaw later
|
|
15
|
+
* returns its dispatch `ack`. openclaw only acks after it has dispatched the
|
|
16
|
+
* message to a possibly-busy agent, so waiting on that ack blocked the backend's
|
|
17
|
+
* serial (prefetch(1)) messages-broker for up to a full agent turn and produced
|
|
18
|
+
* false ack-timeouts. openclaw still sends the ack; we simply ignore it. The
|
|
19
|
+
* residual loss window (openclaw crashes after receiving the frame but before
|
|
20
|
+
* dispatch) is covered by openclaw's own channel+ts dedup on redelivery.
|
|
13
21
|
*
|
|
14
22
|
* The backend delivers events over Centrifugo as `slack_event` system commands;
|
|
15
23
|
* `handlers/slack-event.ts` calls `pushSlackEvent()` here. We bind loopback only
|
|
@@ -20,8 +28,14 @@ export const SLACK_RELAY_PORT = 8788;
|
|
|
20
28
|
const SLACK_RELAY_PATH = '/slack-relay';
|
|
21
29
|
/** Matches the client's `SLACK_RELAY_MAX_PAYLOAD_BYTES` (1 MiB). */
|
|
22
30
|
const SLACK_RELAY_MAX_PAYLOAD_BYTES = 1024 * 1024;
|
|
23
|
-
/**
|
|
24
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Safety net only — a healthy loopback `ws.send` calls back in ~ms. This bounds
|
|
33
|
+
* the ONE remaining wait (the send callback) so a stalled/half-open client can't
|
|
34
|
+
* hang the backend's serial broker. It is NOT a wait for openclaw's dispatch-ack
|
|
35
|
+
* (that ack is ignored); the previous 15s ACK_TIMEOUT_MS was that wait and is
|
|
36
|
+
* gone. A successful send never approaches this budget.
|
|
37
|
+
*/
|
|
38
|
+
const SEND_TIMEOUT_MS = 2_000;
|
|
25
39
|
// Module-level singleton so the slack_event handler can reach pushSlackEvent()
|
|
26
40
|
// without threading the server through buildHandlers() — mirrors how handlers
|
|
27
41
|
// reach the shared `logCollector`. Set on start, cleared on close.
|
|
@@ -36,7 +50,7 @@ export function startSlackRelayServer() {
|
|
|
36
50
|
perMessageDeflate: false,
|
|
37
51
|
verifyClient: verifyRelayClient,
|
|
38
52
|
});
|
|
39
|
-
const serverState = { wss, socket: null
|
|
53
|
+
const serverState = { wss, socket: null };
|
|
40
54
|
state = serverState;
|
|
41
55
|
wss.on('connection', (ws) => handleConnection(serverState, ws));
|
|
42
56
|
wss.on('listening', () => {
|
|
@@ -49,11 +63,8 @@ export function startSlackRelayServer() {
|
|
|
49
63
|
});
|
|
50
64
|
return {
|
|
51
65
|
close: () => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
pending.reject(new Error('Slack relay server shutting down'));
|
|
55
|
-
serverState.pending.delete(deliveryId);
|
|
56
|
-
}
|
|
66
|
+
// No pending-ack map to drain — pushSlackEvent resolves on frame-send, so
|
|
67
|
+
// nothing is in flight here.
|
|
57
68
|
serverState.socket?.close();
|
|
58
69
|
serverState.socket = null;
|
|
59
70
|
wss.close();
|
|
@@ -63,10 +74,16 @@ export function startSlackRelayServer() {
|
|
|
63
74
|
};
|
|
64
75
|
}
|
|
65
76
|
/**
|
|
66
|
-
* Send a `slack_event` frame to the connected openclaw client and resolve
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
77
|
+
* Send a `slack_event` frame to the connected openclaw client and resolve as
|
|
78
|
+
* soon as the frame is written to that socket (the `ws.send` callback fires with
|
|
79
|
+
* no error). We do NOT wait for openclaw's dispatch `ack` — see the module
|
|
80
|
+
* header for why. `delivered:true` on the backend therefore means "openclaw's
|
|
81
|
+
* relay client received the frame", not "openclaw dispatched it to the agent".
|
|
82
|
+
*
|
|
83
|
+
* Rejects on: no connected client, a send error, or the send stalling past
|
|
84
|
+
* `SEND_TIMEOUT_MS`. The backend redelivers on rejection (at-least-once), keyed
|
|
85
|
+
* by the same `delivery_id`; the no-client rejection is the durability contract
|
|
86
|
+
* that makes the backend retry rather than drop when nothing is connected.
|
|
70
87
|
*/
|
|
71
88
|
export function pushSlackEvent(payload) {
|
|
72
89
|
const serverState = state;
|
|
@@ -78,28 +95,34 @@ export function pushSlackEvent(payload) {
|
|
|
78
95
|
return Promise.reject(new Error('No Slack relay client connected'));
|
|
79
96
|
}
|
|
80
97
|
const { event, deliveryId, route } = payload;
|
|
98
|
+
const frame = JSON.stringify({
|
|
99
|
+
type: 'slack_event',
|
|
100
|
+
delivery_id: deliveryId,
|
|
101
|
+
route,
|
|
102
|
+
payload: { event },
|
|
103
|
+
});
|
|
81
104
|
return new Promise((resolve, reject) => {
|
|
82
|
-
|
|
83
|
-
//
|
|
105
|
+
let settled = false;
|
|
106
|
+
// Bounds the send itself, not openclaw's dispatch. Fires only if the socket
|
|
107
|
+
// stalls (half-open client, full send buffer) so a broken client can't hang
|
|
108
|
+
// the backend's serial broker.
|
|
84
109
|
const timer = setTimeout(() => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
110
|
+
if (settled)
|
|
111
|
+
return;
|
|
112
|
+
settled = true;
|
|
113
|
+
reject(new Error(`Slack relay send stalled after ${SEND_TIMEOUT_MS}ms (delivery ${deliveryId})`));
|
|
114
|
+
}, SEND_TIMEOUT_MS);
|
|
115
|
+
// A hanging send must never hold the process open during shutdown.
|
|
89
116
|
timer.unref?.();
|
|
90
|
-
serverState.pending.set(deliveryId, { socket: ws, resolve, reject, timer });
|
|
91
|
-
const frame = JSON.stringify({
|
|
92
|
-
type: 'slack_event',
|
|
93
|
-
delivery_id: deliveryId,
|
|
94
|
-
route,
|
|
95
|
-
payload: { event },
|
|
96
|
-
});
|
|
97
117
|
ws.send(frame, (err) => {
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
118
|
+
if (settled)
|
|
119
|
+
return;
|
|
120
|
+
settled = true;
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
if (err)
|
|
101
123
|
reject(err);
|
|
102
|
-
|
|
124
|
+
else
|
|
125
|
+
resolve(); // frame handed to the client socket — ack no longer awaited
|
|
103
126
|
});
|
|
104
127
|
});
|
|
105
128
|
}
|
|
@@ -136,7 +159,7 @@ function handleConnection(serverState, ws) {
|
|
|
136
159
|
console.log('[slack-relay] openclaw relay client connected');
|
|
137
160
|
// hello first — the client reads an optional slack_identity from it; we omit it.
|
|
138
161
|
ws.send(JSON.stringify({ type: 'hello' }));
|
|
139
|
-
ws.on('message', (data) => handleClientFrame(
|
|
162
|
+
ws.on('message', (data) => handleClientFrame(data));
|
|
140
163
|
ws.on('error', (err) => {
|
|
141
164
|
console.error('[slack-relay] client socket error:', toErrorMessage(err));
|
|
142
165
|
});
|
|
@@ -145,38 +168,22 @@ function handleConnection(serverState, ws) {
|
|
|
145
168
|
if (serverState.socket === ws) {
|
|
146
169
|
serverState.socket = null;
|
|
147
170
|
}
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
for (const [deliveryId, pending] of serverState.pending) {
|
|
151
|
-
if (pending.socket !== ws)
|
|
152
|
-
continue;
|
|
153
|
-
clearTimeout(pending.timer);
|
|
154
|
-
pending.reject(new Error('Slack relay client disconnected before ack'));
|
|
155
|
-
serverState.pending.delete(deliveryId);
|
|
156
|
-
}
|
|
171
|
+
// Nothing to fail on close — pushSlackEvent already resolved on frame-send,
|
|
172
|
+
// so there are no in-flight deliveries tied to this socket.
|
|
157
173
|
});
|
|
158
174
|
}
|
|
159
|
-
function handleClientFrame(
|
|
160
|
-
|
|
175
|
+
function handleClientFrame(data) {
|
|
176
|
+
// openclaw still sends `{ type:'ack', delivery_id }` after it dispatches each
|
|
177
|
+
// event to the agent. We resolved the push on frame-send and keep no pending
|
|
178
|
+
// map, so every ack — for any delivery_id, already-resolved or unknown — is a
|
|
179
|
+
// harmless no-op. Parse only to surface a malformed frame; the result is
|
|
180
|
+
// deliberately discarded.
|
|
161
181
|
try {
|
|
162
|
-
|
|
182
|
+
JSON.parse(rawDataToString(data));
|
|
163
183
|
}
|
|
164
184
|
catch {
|
|
165
185
|
console.warn('[slack-relay] dropping malformed JSON frame from client');
|
|
166
|
-
return;
|
|
167
186
|
}
|
|
168
|
-
if (!frame || typeof frame !== 'object')
|
|
169
|
-
return;
|
|
170
|
-
const record = frame;
|
|
171
|
-
// The client only ever sends `ack`.
|
|
172
|
-
if (record.type !== 'ack' || typeof record.delivery_id !== 'string')
|
|
173
|
-
return;
|
|
174
|
-
const pending = serverState.pending.get(record.delivery_id);
|
|
175
|
-
if (!pending)
|
|
176
|
-
return; // unknown or late ack — ignore
|
|
177
|
-
clearTimeout(pending.timer);
|
|
178
|
-
serverState.pending.delete(record.delivery_id);
|
|
179
|
-
pending.resolve();
|
|
180
187
|
}
|
|
181
188
|
function rawDataToString(data) {
|
|
182
189
|
if (typeof data === 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-relay-server.js","sourceRoot":"","sources":["../src/slack-relay-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,IAAI,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"slack-relay-server.js","sourceRoot":"","sources":["../src/slack-relay-server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED