@react-grab/relay 0.1.0-beta.1 → 0.1.0-beta.11
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/client.cjs +13 -6
- package/dist/client.js +13 -6
- package/dist/connection.cjs +34 -9
- package/dist/connection.js +34 -9
- package/dist/index.cjs +47 -15
- package/dist/index.js +47 -15
- package/dist/server.cjs +29 -7
- package/dist/server.js +29 -7
- package/package.json +2 -2
package/dist/client.cjs
CHANGED
|
@@ -262,7 +262,10 @@ var createRelayAgentProvider = (options) => {
|
|
|
262
262
|
signal.removeEventListener("abort", handleAbort);
|
|
263
263
|
throw new Error("Relay connection is not open");
|
|
264
264
|
}
|
|
265
|
-
const didSendRequest = relayClient.sendAgentRequest(
|
|
265
|
+
const didSendRequest = relayClient.sendAgentRequest(
|
|
266
|
+
agentId,
|
|
267
|
+
contextWithSession
|
|
268
|
+
);
|
|
266
269
|
if (!didSendRequest) {
|
|
267
270
|
unsubscribeConnection();
|
|
268
271
|
unsubscribeMessage();
|
|
@@ -320,12 +323,16 @@ var createRelayAgentProvider = (options) => {
|
|
|
320
323
|
reject(new Error(message.content ?? "Operation failed"));
|
|
321
324
|
}
|
|
322
325
|
});
|
|
323
|
-
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
326
|
+
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
327
|
+
(connected) => {
|
|
328
|
+
if (!connected) {
|
|
329
|
+
cleanup();
|
|
330
|
+
reject(
|
|
331
|
+
new Error("Connection lost while waiting for operation response")
|
|
332
|
+
);
|
|
333
|
+
}
|
|
327
334
|
}
|
|
328
|
-
|
|
335
|
+
);
|
|
329
336
|
});
|
|
330
337
|
};
|
|
331
338
|
const undo = async () => {
|
package/dist/client.js
CHANGED
|
@@ -260,7 +260,10 @@ var createRelayAgentProvider = (options) => {
|
|
|
260
260
|
signal.removeEventListener("abort", handleAbort);
|
|
261
261
|
throw new Error("Relay connection is not open");
|
|
262
262
|
}
|
|
263
|
-
const didSendRequest = relayClient.sendAgentRequest(
|
|
263
|
+
const didSendRequest = relayClient.sendAgentRequest(
|
|
264
|
+
agentId,
|
|
265
|
+
contextWithSession
|
|
266
|
+
);
|
|
264
267
|
if (!didSendRequest) {
|
|
265
268
|
unsubscribeConnection();
|
|
266
269
|
unsubscribeMessage();
|
|
@@ -318,12 +321,16 @@ var createRelayAgentProvider = (options) => {
|
|
|
318
321
|
reject(new Error(message.content ?? "Operation failed"));
|
|
319
322
|
}
|
|
320
323
|
});
|
|
321
|
-
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
324
|
+
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
325
|
+
(connected) => {
|
|
326
|
+
if (!connected) {
|
|
327
|
+
cleanup();
|
|
328
|
+
reject(
|
|
329
|
+
new Error("Connection lost while waiting for operation response")
|
|
330
|
+
);
|
|
331
|
+
}
|
|
325
332
|
}
|
|
326
|
-
|
|
333
|
+
);
|
|
327
334
|
});
|
|
328
335
|
};
|
|
329
336
|
const undo = async () => {
|
package/dist/connection.cjs
CHANGED
|
@@ -7639,8 +7639,13 @@ ${context.content.join("\n\n")}`;
|
|
|
7639
7639
|
signal
|
|
7640
7640
|
})) {
|
|
7641
7641
|
if (signal.aborted) break;
|
|
7642
|
+
const getBrowserMessageType = (messageType) => {
|
|
7643
|
+
if (messageType === "status") return "agent-status";
|
|
7644
|
+
if (messageType === "error") return "agent-error";
|
|
7645
|
+
return "agent-done";
|
|
7646
|
+
};
|
|
7642
7647
|
sendToBrowser(browserSocket, {
|
|
7643
|
-
type: message.type
|
|
7648
|
+
type: getBrowserMessageType(message.type),
|
|
7644
7649
|
agentId: handler.agentId,
|
|
7645
7650
|
sessionId,
|
|
7646
7651
|
content: message.content
|
|
@@ -7843,9 +7848,13 @@ ${context.content.join("\n\n")}`;
|
|
|
7843
7848
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
7844
7849
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
7845
7850
|
if (messageQueue) {
|
|
7846
|
-
const
|
|
7851
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
7852
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
7853
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
7854
|
+
return "error";
|
|
7855
|
+
};
|
|
7847
7856
|
messageQueue.push({
|
|
7848
|
-
type:
|
|
7857
|
+
type: getQueueMessageType(message.type),
|
|
7849
7858
|
content: message.content ?? ""
|
|
7850
7859
|
});
|
|
7851
7860
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -7868,7 +7877,12 @@ ${context.content.join("\n\n")}`;
|
|
|
7868
7877
|
}
|
|
7869
7878
|
}
|
|
7870
7879
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
7871
|
-
res.end(
|
|
7880
|
+
res.end(
|
|
7881
|
+
JSON.stringify({
|
|
7882
|
+
status: "ok",
|
|
7883
|
+
handlers: getRegisteredHandlerIds()
|
|
7884
|
+
})
|
|
7885
|
+
);
|
|
7872
7886
|
return;
|
|
7873
7887
|
}
|
|
7874
7888
|
res.writeHead(404);
|
|
@@ -7883,7 +7897,10 @@ ${context.content.join("\n\n")}`;
|
|
|
7883
7897
|
});
|
|
7884
7898
|
webSocketServer.on("connection", (socket, request) => {
|
|
7885
7899
|
if (token) {
|
|
7886
|
-
const connectionUrl = new URL(
|
|
7900
|
+
const connectionUrl = new URL(
|
|
7901
|
+
request.url ?? "",
|
|
7902
|
+
`http://localhost:${port}`
|
|
7903
|
+
);
|
|
7887
7904
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
7888
7905
|
if (clientToken !== token) {
|
|
7889
7906
|
socket.close(4001, "Unauthorized");
|
|
@@ -7924,7 +7941,9 @@ ${context.content.join("\n\n")}`;
|
|
|
7924
7941
|
});
|
|
7925
7942
|
socket.on("message", (data) => {
|
|
7926
7943
|
try {
|
|
7927
|
-
const message = JSON.parse(
|
|
7944
|
+
const message = JSON.parse(
|
|
7945
|
+
data.toString()
|
|
7946
|
+
);
|
|
7928
7947
|
handleBrowserMessage(socket, message);
|
|
7929
7948
|
} catch {
|
|
7930
7949
|
}
|
|
@@ -7969,7 +7988,10 @@ ${context.content.join("\n\n")}`;
|
|
|
7969
7988
|
httpServer?.close();
|
|
7970
7989
|
};
|
|
7971
7990
|
const registerHandler = (handler) => {
|
|
7972
|
-
registeredHandlers.set(handler.agentId, {
|
|
7991
|
+
registeredHandlers.set(handler.agentId, {
|
|
7992
|
+
agentId: handler.agentId,
|
|
7993
|
+
handler
|
|
7994
|
+
});
|
|
7973
7995
|
broadcastHandlerList();
|
|
7974
7996
|
};
|
|
7975
7997
|
const unregisterHandler = (agentId) => {
|
|
@@ -7992,7 +8014,7 @@ ${context.content.join("\n\n")}`;
|
|
|
7992
8014
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7993
8015
|
|
|
7994
8016
|
// src/connection.ts
|
|
7995
|
-
var VERSION = "0.1.0-beta.
|
|
8017
|
+
var VERSION = "0.1.0-beta.10";
|
|
7996
8018
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7997
8019
|
try {
|
|
7998
8020
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8010,7 +8032,10 @@ var connectRelay = async (options) => {
|
|
|
8010
8032
|
const { handler, token } = options;
|
|
8011
8033
|
let relayServer = null;
|
|
8012
8034
|
let isRelayHost = false;
|
|
8013
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8035
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8036
|
+
relayPort,
|
|
8037
|
+
token
|
|
8038
|
+
);
|
|
8014
8039
|
if (isRelayServerRunning) {
|
|
8015
8040
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8016
8041
|
} else {
|
package/dist/connection.js
CHANGED
|
@@ -7629,8 +7629,13 @@ ${context.content.join("\n\n")}`;
|
|
|
7629
7629
|
signal
|
|
7630
7630
|
})) {
|
|
7631
7631
|
if (signal.aborted) break;
|
|
7632
|
+
const getBrowserMessageType = (messageType) => {
|
|
7633
|
+
if (messageType === "status") return "agent-status";
|
|
7634
|
+
if (messageType === "error") return "agent-error";
|
|
7635
|
+
return "agent-done";
|
|
7636
|
+
};
|
|
7632
7637
|
sendToBrowser(browserSocket, {
|
|
7633
|
-
type: message.type
|
|
7638
|
+
type: getBrowserMessageType(message.type),
|
|
7634
7639
|
agentId: handler.agentId,
|
|
7635
7640
|
sessionId,
|
|
7636
7641
|
content: message.content
|
|
@@ -7833,9 +7838,13 @@ ${context.content.join("\n\n")}`;
|
|
|
7833
7838
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
7834
7839
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
7835
7840
|
if (messageQueue) {
|
|
7836
|
-
const
|
|
7841
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
7842
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
7843
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
7844
|
+
return "error";
|
|
7845
|
+
};
|
|
7837
7846
|
messageQueue.push({
|
|
7838
|
-
type:
|
|
7847
|
+
type: getQueueMessageType(message.type),
|
|
7839
7848
|
content: message.content ?? ""
|
|
7840
7849
|
});
|
|
7841
7850
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -7858,7 +7867,12 @@ ${context.content.join("\n\n")}`;
|
|
|
7858
7867
|
}
|
|
7859
7868
|
}
|
|
7860
7869
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
7861
|
-
res.end(
|
|
7870
|
+
res.end(
|
|
7871
|
+
JSON.stringify({
|
|
7872
|
+
status: "ok",
|
|
7873
|
+
handlers: getRegisteredHandlerIds()
|
|
7874
|
+
})
|
|
7875
|
+
);
|
|
7862
7876
|
return;
|
|
7863
7877
|
}
|
|
7864
7878
|
res.writeHead(404);
|
|
@@ -7873,7 +7887,10 @@ ${context.content.join("\n\n")}`;
|
|
|
7873
7887
|
});
|
|
7874
7888
|
webSocketServer.on("connection", (socket, request) => {
|
|
7875
7889
|
if (token) {
|
|
7876
|
-
const connectionUrl = new URL(
|
|
7890
|
+
const connectionUrl = new URL(
|
|
7891
|
+
request.url ?? "",
|
|
7892
|
+
`http://localhost:${port}`
|
|
7893
|
+
);
|
|
7877
7894
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
7878
7895
|
if (clientToken !== token) {
|
|
7879
7896
|
socket.close(4001, "Unauthorized");
|
|
@@ -7914,7 +7931,9 @@ ${context.content.join("\n\n")}`;
|
|
|
7914
7931
|
});
|
|
7915
7932
|
socket.on("message", (data) => {
|
|
7916
7933
|
try {
|
|
7917
|
-
const message = JSON.parse(
|
|
7934
|
+
const message = JSON.parse(
|
|
7935
|
+
data.toString()
|
|
7936
|
+
);
|
|
7918
7937
|
handleBrowserMessage(socket, message);
|
|
7919
7938
|
} catch {
|
|
7920
7939
|
}
|
|
@@ -7959,7 +7978,10 @@ ${context.content.join("\n\n")}`;
|
|
|
7959
7978
|
httpServer?.close();
|
|
7960
7979
|
};
|
|
7961
7980
|
const registerHandler = (handler) => {
|
|
7962
|
-
registeredHandlers.set(handler.agentId, {
|
|
7981
|
+
registeredHandlers.set(handler.agentId, {
|
|
7982
|
+
agentId: handler.agentId,
|
|
7983
|
+
handler
|
|
7984
|
+
});
|
|
7963
7985
|
broadcastHandlerList();
|
|
7964
7986
|
};
|
|
7965
7987
|
const unregisterHandler = (agentId) => {
|
|
@@ -7982,7 +8004,7 @@ ${context.content.join("\n\n")}`;
|
|
|
7982
8004
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7983
8005
|
|
|
7984
8006
|
// src/connection.ts
|
|
7985
|
-
var VERSION = "0.1.0-beta.
|
|
8007
|
+
var VERSION = "0.1.0-beta.10";
|
|
7986
8008
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7987
8009
|
try {
|
|
7988
8010
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8000,7 +8022,10 @@ var connectRelay = async (options) => {
|
|
|
8000
8022
|
const { handler, token } = options;
|
|
8001
8023
|
let relayServer = null;
|
|
8002
8024
|
let isRelayHost = false;
|
|
8003
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8025
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8026
|
+
relayPort,
|
|
8027
|
+
token
|
|
8028
|
+
);
|
|
8004
8029
|
if (isRelayServerRunning) {
|
|
8005
8030
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8006
8031
|
} else {
|
package/dist/index.cjs
CHANGED
|
@@ -5012,8 +5012,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5012
5012
|
signal
|
|
5013
5013
|
})) {
|
|
5014
5014
|
if (signal.aborted) break;
|
|
5015
|
+
const getBrowserMessageType = (messageType) => {
|
|
5016
|
+
if (messageType === "status") return "agent-status";
|
|
5017
|
+
if (messageType === "error") return "agent-error";
|
|
5018
|
+
return "agent-done";
|
|
5019
|
+
};
|
|
5015
5020
|
sendToBrowser(browserSocket, {
|
|
5016
|
-
type: message.type
|
|
5021
|
+
type: getBrowserMessageType(message.type),
|
|
5017
5022
|
agentId: handler.agentId,
|
|
5018
5023
|
sessionId,
|
|
5019
5024
|
content: message.content
|
|
@@ -5216,9 +5221,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5216
5221
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5217
5222
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5218
5223
|
if (messageQueue) {
|
|
5219
|
-
const
|
|
5224
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
5225
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
5226
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
5227
|
+
return "error";
|
|
5228
|
+
};
|
|
5220
5229
|
messageQueue.push({
|
|
5221
|
-
type:
|
|
5230
|
+
type: getQueueMessageType(message.type),
|
|
5222
5231
|
content: message.content ?? ""
|
|
5223
5232
|
});
|
|
5224
5233
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -5241,7 +5250,12 @@ ${context.content.join("\n\n")}`;
|
|
|
5241
5250
|
}
|
|
5242
5251
|
}
|
|
5243
5252
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
5244
|
-
res.end(
|
|
5253
|
+
res.end(
|
|
5254
|
+
JSON.stringify({
|
|
5255
|
+
status: "ok",
|
|
5256
|
+
handlers: getRegisteredHandlerIds()
|
|
5257
|
+
})
|
|
5258
|
+
);
|
|
5245
5259
|
return;
|
|
5246
5260
|
}
|
|
5247
5261
|
res.writeHead(404);
|
|
@@ -5256,7 +5270,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5256
5270
|
});
|
|
5257
5271
|
webSocketServer.on("connection", (socket, request) => {
|
|
5258
5272
|
if (token) {
|
|
5259
|
-
const connectionUrl = new URL(
|
|
5273
|
+
const connectionUrl = new URL(
|
|
5274
|
+
request.url ?? "",
|
|
5275
|
+
`http://localhost:${port}`
|
|
5276
|
+
);
|
|
5260
5277
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
5261
5278
|
if (clientToken !== token) {
|
|
5262
5279
|
socket.close(4001, "Unauthorized");
|
|
@@ -5297,7 +5314,9 @@ ${context.content.join("\n\n")}`;
|
|
|
5297
5314
|
});
|
|
5298
5315
|
socket.on("message", (data) => {
|
|
5299
5316
|
try {
|
|
5300
|
-
const message = JSON.parse(
|
|
5317
|
+
const message = JSON.parse(
|
|
5318
|
+
data.toString()
|
|
5319
|
+
);
|
|
5301
5320
|
handleBrowserMessage(socket, message);
|
|
5302
5321
|
} catch {
|
|
5303
5322
|
}
|
|
@@ -5342,7 +5361,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5342
5361
|
httpServer?.close();
|
|
5343
5362
|
};
|
|
5344
5363
|
const registerHandler = (handler) => {
|
|
5345
|
-
registeredHandlers.set(handler.agentId, {
|
|
5364
|
+
registeredHandlers.set(handler.agentId, {
|
|
5365
|
+
agentId: handler.agentId,
|
|
5366
|
+
handler
|
|
5367
|
+
});
|
|
5346
5368
|
broadcastHandlerList();
|
|
5347
5369
|
};
|
|
5348
5370
|
const unregisterHandler = (agentId) => {
|
|
@@ -7994,7 +8016,7 @@ async function fkill(inputs, options = {}) {
|
|
|
7994
8016
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7995
8017
|
|
|
7996
8018
|
// src/connection.ts
|
|
7997
|
-
var VERSION = "0.1.0-beta.
|
|
8019
|
+
var VERSION = "0.1.0-beta.10";
|
|
7998
8020
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7999
8021
|
try {
|
|
8000
8022
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8012,7 +8034,10 @@ var connectRelay = async (options) => {
|
|
|
8012
8034
|
const { handler, token } = options;
|
|
8013
8035
|
let relayServer = null;
|
|
8014
8036
|
let isRelayHost = false;
|
|
8015
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8037
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8038
|
+
relayPort,
|
|
8039
|
+
token
|
|
8040
|
+
);
|
|
8016
8041
|
if (isRelayServerRunning) {
|
|
8017
8042
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8018
8043
|
} else {
|
|
@@ -8481,7 +8506,10 @@ var createRelayAgentProvider = (options) => {
|
|
|
8481
8506
|
signal.removeEventListener("abort", handleAbort);
|
|
8482
8507
|
throw new Error("Relay connection is not open");
|
|
8483
8508
|
}
|
|
8484
|
-
const didSendRequest = relayClient.sendAgentRequest(
|
|
8509
|
+
const didSendRequest = relayClient.sendAgentRequest(
|
|
8510
|
+
agentId,
|
|
8511
|
+
contextWithSession
|
|
8512
|
+
);
|
|
8485
8513
|
if (!didSendRequest) {
|
|
8486
8514
|
unsubscribeConnection();
|
|
8487
8515
|
unsubscribeMessage();
|
|
@@ -8539,12 +8567,16 @@ var createRelayAgentProvider = (options) => {
|
|
|
8539
8567
|
reject(new Error(message.content ?? "Operation failed"));
|
|
8540
8568
|
}
|
|
8541
8569
|
});
|
|
8542
|
-
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8570
|
+
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
8571
|
+
(connected) => {
|
|
8572
|
+
if (!connected) {
|
|
8573
|
+
cleanup();
|
|
8574
|
+
reject(
|
|
8575
|
+
new Error("Connection lost while waiting for operation response")
|
|
8576
|
+
);
|
|
8577
|
+
}
|
|
8546
8578
|
}
|
|
8547
|
-
|
|
8579
|
+
);
|
|
8548
8580
|
});
|
|
8549
8581
|
};
|
|
8550
8582
|
const undo = async () => {
|
package/dist/index.js
CHANGED
|
@@ -5002,8 +5002,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5002
5002
|
signal
|
|
5003
5003
|
})) {
|
|
5004
5004
|
if (signal.aborted) break;
|
|
5005
|
+
const getBrowserMessageType = (messageType) => {
|
|
5006
|
+
if (messageType === "status") return "agent-status";
|
|
5007
|
+
if (messageType === "error") return "agent-error";
|
|
5008
|
+
return "agent-done";
|
|
5009
|
+
};
|
|
5005
5010
|
sendToBrowser(browserSocket, {
|
|
5006
|
-
type: message.type
|
|
5011
|
+
type: getBrowserMessageType(message.type),
|
|
5007
5012
|
agentId: handler.agentId,
|
|
5008
5013
|
sessionId,
|
|
5009
5014
|
content: message.content
|
|
@@ -5206,9 +5211,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5206
5211
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5207
5212
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5208
5213
|
if (messageQueue) {
|
|
5209
|
-
const
|
|
5214
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
5215
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
5216
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
5217
|
+
return "error";
|
|
5218
|
+
};
|
|
5210
5219
|
messageQueue.push({
|
|
5211
|
-
type:
|
|
5220
|
+
type: getQueueMessageType(message.type),
|
|
5212
5221
|
content: message.content ?? ""
|
|
5213
5222
|
});
|
|
5214
5223
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -5231,7 +5240,12 @@ ${context.content.join("\n\n")}`;
|
|
|
5231
5240
|
}
|
|
5232
5241
|
}
|
|
5233
5242
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
5234
|
-
res.end(
|
|
5243
|
+
res.end(
|
|
5244
|
+
JSON.stringify({
|
|
5245
|
+
status: "ok",
|
|
5246
|
+
handlers: getRegisteredHandlerIds()
|
|
5247
|
+
})
|
|
5248
|
+
);
|
|
5235
5249
|
return;
|
|
5236
5250
|
}
|
|
5237
5251
|
res.writeHead(404);
|
|
@@ -5246,7 +5260,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5246
5260
|
});
|
|
5247
5261
|
webSocketServer.on("connection", (socket, request) => {
|
|
5248
5262
|
if (token) {
|
|
5249
|
-
const connectionUrl = new URL(
|
|
5263
|
+
const connectionUrl = new URL(
|
|
5264
|
+
request.url ?? "",
|
|
5265
|
+
`http://localhost:${port}`
|
|
5266
|
+
);
|
|
5250
5267
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
5251
5268
|
if (clientToken !== token) {
|
|
5252
5269
|
socket.close(4001, "Unauthorized");
|
|
@@ -5287,7 +5304,9 @@ ${context.content.join("\n\n")}`;
|
|
|
5287
5304
|
});
|
|
5288
5305
|
socket.on("message", (data) => {
|
|
5289
5306
|
try {
|
|
5290
|
-
const message = JSON.parse(
|
|
5307
|
+
const message = JSON.parse(
|
|
5308
|
+
data.toString()
|
|
5309
|
+
);
|
|
5291
5310
|
handleBrowserMessage(socket, message);
|
|
5292
5311
|
} catch {
|
|
5293
5312
|
}
|
|
@@ -5332,7 +5351,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5332
5351
|
httpServer?.close();
|
|
5333
5352
|
};
|
|
5334
5353
|
const registerHandler = (handler) => {
|
|
5335
|
-
registeredHandlers.set(handler.agentId, {
|
|
5354
|
+
registeredHandlers.set(handler.agentId, {
|
|
5355
|
+
agentId: handler.agentId,
|
|
5356
|
+
handler
|
|
5357
|
+
});
|
|
5336
5358
|
broadcastHandlerList();
|
|
5337
5359
|
};
|
|
5338
5360
|
const unregisterHandler = (agentId) => {
|
|
@@ -7984,7 +8006,7 @@ async function fkill(inputs, options = {}) {
|
|
|
7984
8006
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7985
8007
|
|
|
7986
8008
|
// src/connection.ts
|
|
7987
|
-
var VERSION = "0.1.0-beta.
|
|
8009
|
+
var VERSION = "0.1.0-beta.10";
|
|
7988
8010
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7989
8011
|
try {
|
|
7990
8012
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8002,7 +8024,10 @@ var connectRelay = async (options) => {
|
|
|
8002
8024
|
const { handler, token } = options;
|
|
8003
8025
|
let relayServer = null;
|
|
8004
8026
|
let isRelayHost = false;
|
|
8005
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8027
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8028
|
+
relayPort,
|
|
8029
|
+
token
|
|
8030
|
+
);
|
|
8006
8031
|
if (isRelayServerRunning) {
|
|
8007
8032
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8008
8033
|
} else {
|
|
@@ -8471,7 +8496,10 @@ var createRelayAgentProvider = (options) => {
|
|
|
8471
8496
|
signal.removeEventListener("abort", handleAbort);
|
|
8472
8497
|
throw new Error("Relay connection is not open");
|
|
8473
8498
|
}
|
|
8474
|
-
const didSendRequest = relayClient.sendAgentRequest(
|
|
8499
|
+
const didSendRequest = relayClient.sendAgentRequest(
|
|
8500
|
+
agentId,
|
|
8501
|
+
contextWithSession
|
|
8502
|
+
);
|
|
8475
8503
|
if (!didSendRequest) {
|
|
8476
8504
|
unsubscribeConnection();
|
|
8477
8505
|
unsubscribeMessage();
|
|
@@ -8529,12 +8557,16 @@ var createRelayAgentProvider = (options) => {
|
|
|
8529
8557
|
reject(new Error(message.content ?? "Operation failed"));
|
|
8530
8558
|
}
|
|
8531
8559
|
});
|
|
8532
|
-
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
|
|
8560
|
+
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
8561
|
+
(connected) => {
|
|
8562
|
+
if (!connected) {
|
|
8563
|
+
cleanup();
|
|
8564
|
+
reject(
|
|
8565
|
+
new Error("Connection lost while waiting for operation response")
|
|
8566
|
+
);
|
|
8567
|
+
}
|
|
8536
8568
|
}
|
|
8537
|
-
|
|
8569
|
+
);
|
|
8538
8570
|
});
|
|
8539
8571
|
};
|
|
8540
8572
|
const undo = async () => {
|
package/dist/server.cjs
CHANGED
|
@@ -4075,8 +4075,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4075
4075
|
signal
|
|
4076
4076
|
})) {
|
|
4077
4077
|
if (signal.aborted) break;
|
|
4078
|
+
const getBrowserMessageType = (messageType) => {
|
|
4079
|
+
if (messageType === "status") return "agent-status";
|
|
4080
|
+
if (messageType === "error") return "agent-error";
|
|
4081
|
+
return "agent-done";
|
|
4082
|
+
};
|
|
4078
4083
|
sendToBrowser(browserSocket, {
|
|
4079
|
-
type: message.type
|
|
4084
|
+
type: getBrowserMessageType(message.type),
|
|
4080
4085
|
agentId: handler.agentId,
|
|
4081
4086
|
sessionId,
|
|
4082
4087
|
content: message.content
|
|
@@ -4279,9 +4284,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4279
4284
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
4280
4285
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
4281
4286
|
if (messageQueue) {
|
|
4282
|
-
const
|
|
4287
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
4288
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
4289
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
4290
|
+
return "error";
|
|
4291
|
+
};
|
|
4283
4292
|
messageQueue.push({
|
|
4284
|
-
type:
|
|
4293
|
+
type: getQueueMessageType(message.type),
|
|
4285
4294
|
content: message.content ?? ""
|
|
4286
4295
|
});
|
|
4287
4296
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -4304,7 +4313,12 @@ ${context.content.join("\n\n")}`;
|
|
|
4304
4313
|
}
|
|
4305
4314
|
}
|
|
4306
4315
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
4307
|
-
res.end(
|
|
4316
|
+
res.end(
|
|
4317
|
+
JSON.stringify({
|
|
4318
|
+
status: "ok",
|
|
4319
|
+
handlers: getRegisteredHandlerIds()
|
|
4320
|
+
})
|
|
4321
|
+
);
|
|
4308
4322
|
return;
|
|
4309
4323
|
}
|
|
4310
4324
|
res.writeHead(404);
|
|
@@ -4319,7 +4333,10 @@ ${context.content.join("\n\n")}`;
|
|
|
4319
4333
|
});
|
|
4320
4334
|
webSocketServer.on("connection", (socket, request) => {
|
|
4321
4335
|
if (token) {
|
|
4322
|
-
const connectionUrl = new URL(
|
|
4336
|
+
const connectionUrl = new URL(
|
|
4337
|
+
request.url ?? "",
|
|
4338
|
+
`http://localhost:${port}`
|
|
4339
|
+
);
|
|
4323
4340
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
4324
4341
|
if (clientToken !== token) {
|
|
4325
4342
|
socket.close(4001, "Unauthorized");
|
|
@@ -4360,7 +4377,9 @@ ${context.content.join("\n\n")}`;
|
|
|
4360
4377
|
});
|
|
4361
4378
|
socket.on("message", (data) => {
|
|
4362
4379
|
try {
|
|
4363
|
-
const message = JSON.parse(
|
|
4380
|
+
const message = JSON.parse(
|
|
4381
|
+
data.toString()
|
|
4382
|
+
);
|
|
4364
4383
|
handleBrowserMessage(socket, message);
|
|
4365
4384
|
} catch {
|
|
4366
4385
|
}
|
|
@@ -4405,7 +4424,10 @@ ${context.content.join("\n\n")}`;
|
|
|
4405
4424
|
httpServer?.close();
|
|
4406
4425
|
};
|
|
4407
4426
|
const registerHandler = (handler) => {
|
|
4408
|
-
registeredHandlers.set(handler.agentId, {
|
|
4427
|
+
registeredHandlers.set(handler.agentId, {
|
|
4428
|
+
agentId: handler.agentId,
|
|
4429
|
+
handler
|
|
4430
|
+
});
|
|
4409
4431
|
broadcastHandlerList();
|
|
4410
4432
|
};
|
|
4411
4433
|
const unregisterHandler = (agentId) => {
|
package/dist/server.js
CHANGED
|
@@ -4073,8 +4073,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4073
4073
|
signal
|
|
4074
4074
|
})) {
|
|
4075
4075
|
if (signal.aborted) break;
|
|
4076
|
+
const getBrowserMessageType = (messageType) => {
|
|
4077
|
+
if (messageType === "status") return "agent-status";
|
|
4078
|
+
if (messageType === "error") return "agent-error";
|
|
4079
|
+
return "agent-done";
|
|
4080
|
+
};
|
|
4076
4081
|
sendToBrowser(browserSocket, {
|
|
4077
|
-
type: message.type
|
|
4082
|
+
type: getBrowserMessageType(message.type),
|
|
4078
4083
|
agentId: handler.agentId,
|
|
4079
4084
|
sessionId,
|
|
4080
4085
|
content: message.content
|
|
@@ -4277,9 +4282,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4277
4282
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
4278
4283
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
4279
4284
|
if (messageQueue) {
|
|
4280
|
-
const
|
|
4285
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
4286
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
4287
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
4288
|
+
return "error";
|
|
4289
|
+
};
|
|
4281
4290
|
messageQueue.push({
|
|
4282
|
-
type:
|
|
4291
|
+
type: getQueueMessageType(message.type),
|
|
4283
4292
|
content: message.content ?? ""
|
|
4284
4293
|
});
|
|
4285
4294
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -4302,7 +4311,12 @@ ${context.content.join("\n\n")}`;
|
|
|
4302
4311
|
}
|
|
4303
4312
|
}
|
|
4304
4313
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
4305
|
-
res.end(
|
|
4314
|
+
res.end(
|
|
4315
|
+
JSON.stringify({
|
|
4316
|
+
status: "ok",
|
|
4317
|
+
handlers: getRegisteredHandlerIds()
|
|
4318
|
+
})
|
|
4319
|
+
);
|
|
4306
4320
|
return;
|
|
4307
4321
|
}
|
|
4308
4322
|
res.writeHead(404);
|
|
@@ -4317,7 +4331,10 @@ ${context.content.join("\n\n")}`;
|
|
|
4317
4331
|
});
|
|
4318
4332
|
webSocketServer.on("connection", (socket, request) => {
|
|
4319
4333
|
if (token) {
|
|
4320
|
-
const connectionUrl = new URL(
|
|
4334
|
+
const connectionUrl = new URL(
|
|
4335
|
+
request.url ?? "",
|
|
4336
|
+
`http://localhost:${port}`
|
|
4337
|
+
);
|
|
4321
4338
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
4322
4339
|
if (clientToken !== token) {
|
|
4323
4340
|
socket.close(4001, "Unauthorized");
|
|
@@ -4358,7 +4375,9 @@ ${context.content.join("\n\n")}`;
|
|
|
4358
4375
|
});
|
|
4359
4376
|
socket.on("message", (data) => {
|
|
4360
4377
|
try {
|
|
4361
|
-
const message = JSON.parse(
|
|
4378
|
+
const message = JSON.parse(
|
|
4379
|
+
data.toString()
|
|
4380
|
+
);
|
|
4362
4381
|
handleBrowserMessage(socket, message);
|
|
4363
4382
|
} catch {
|
|
4364
4383
|
}
|
|
@@ -4403,7 +4422,10 @@ ${context.content.join("\n\n")}`;
|
|
|
4403
4422
|
httpServer?.close();
|
|
4404
4423
|
};
|
|
4405
4424
|
const registerHandler = (handler) => {
|
|
4406
|
-
registeredHandlers.set(handler.agentId, {
|
|
4425
|
+
registeredHandlers.set(handler.agentId, {
|
|
4426
|
+
agentId: handler.agentId,
|
|
4427
|
+
handler
|
|
4428
|
+
});
|
|
4407
4429
|
broadcastHandlerList();
|
|
4408
4430
|
};
|
|
4409
4431
|
const unregisterHandler = (agentId) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-grab/relay",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"fkill": "^9.0.0",
|
|
37
37
|
"picocolors": "^1.1.1",
|
|
38
38
|
"ws": "^8.18.0",
|
|
39
|
-
"@react-grab/utils": "0.1.0-beta.
|
|
39
|
+
"@react-grab/utils": "0.1.0-beta.11"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"dev": "tsup --watch",
|