@react-grab/opencode 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/cli.cjs +34 -9
- package/dist/cli.js +34 -9
- package/dist/client.cjs +13 -6
- package/dist/client.js +13 -6
- package/package.json +4 -4
package/dist/cli.cjs
CHANGED
|
@@ -5787,8 +5787,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5787
5787
|
signal
|
|
5788
5788
|
})) {
|
|
5789
5789
|
if (signal.aborted) break;
|
|
5790
|
+
const getBrowserMessageType = (messageType) => {
|
|
5791
|
+
if (messageType === "status") return "agent-status";
|
|
5792
|
+
if (messageType === "error") return "agent-error";
|
|
5793
|
+
return "agent-done";
|
|
5794
|
+
};
|
|
5790
5795
|
sendToBrowser(browserSocket, {
|
|
5791
|
-
type: message.type
|
|
5796
|
+
type: getBrowserMessageType(message.type),
|
|
5792
5797
|
agentId: handler.agentId,
|
|
5793
5798
|
sessionId,
|
|
5794
5799
|
content: message.content
|
|
@@ -5991,9 +5996,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5991
5996
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5992
5997
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5993
5998
|
if (messageQueue) {
|
|
5994
|
-
const
|
|
5999
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
6000
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
6001
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
6002
|
+
return "error";
|
|
6003
|
+
};
|
|
5995
6004
|
messageQueue.push({
|
|
5996
|
-
type:
|
|
6005
|
+
type: getQueueMessageType(message.type),
|
|
5997
6006
|
content: message.content ?? ""
|
|
5998
6007
|
});
|
|
5999
6008
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -6016,7 +6025,12 @@ ${context.content.join("\n\n")}`;
|
|
|
6016
6025
|
}
|
|
6017
6026
|
}
|
|
6018
6027
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
6019
|
-
res.end(
|
|
6028
|
+
res.end(
|
|
6029
|
+
JSON.stringify({
|
|
6030
|
+
status: "ok",
|
|
6031
|
+
handlers: getRegisteredHandlerIds()
|
|
6032
|
+
})
|
|
6033
|
+
);
|
|
6020
6034
|
return;
|
|
6021
6035
|
}
|
|
6022
6036
|
res.writeHead(404);
|
|
@@ -6031,7 +6045,10 @@ ${context.content.join("\n\n")}`;
|
|
|
6031
6045
|
});
|
|
6032
6046
|
webSocketServer.on("connection", (socket, request) => {
|
|
6033
6047
|
if (token) {
|
|
6034
|
-
const connectionUrl = new URL(
|
|
6048
|
+
const connectionUrl = new URL(
|
|
6049
|
+
request.url ?? "",
|
|
6050
|
+
`http://localhost:${port}`
|
|
6051
|
+
);
|
|
6035
6052
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
6036
6053
|
if (clientToken !== token) {
|
|
6037
6054
|
socket.close(4001, "Unauthorized");
|
|
@@ -6072,7 +6089,9 @@ ${context.content.join("\n\n")}`;
|
|
|
6072
6089
|
});
|
|
6073
6090
|
socket.on("message", (data) => {
|
|
6074
6091
|
try {
|
|
6075
|
-
const message = JSON.parse(
|
|
6092
|
+
const message = JSON.parse(
|
|
6093
|
+
data.toString()
|
|
6094
|
+
);
|
|
6076
6095
|
handleBrowserMessage(socket, message);
|
|
6077
6096
|
} catch {
|
|
6078
6097
|
}
|
|
@@ -6117,7 +6136,10 @@ ${context.content.join("\n\n")}`;
|
|
|
6117
6136
|
httpServer?.close();
|
|
6118
6137
|
};
|
|
6119
6138
|
const registerHandler = (handler) => {
|
|
6120
|
-
registeredHandlers.set(handler.agentId, {
|
|
6139
|
+
registeredHandlers.set(handler.agentId, {
|
|
6140
|
+
agentId: handler.agentId,
|
|
6141
|
+
handler
|
|
6142
|
+
});
|
|
6121
6143
|
broadcastHandlerList();
|
|
6122
6144
|
};
|
|
6123
6145
|
const unregisterHandler = (agentId) => {
|
|
@@ -8678,7 +8700,7 @@ async function fkill(inputs, options = {}) {
|
|
|
8678
8700
|
}
|
|
8679
8701
|
}
|
|
8680
8702
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
8681
|
-
var VERSION = "0.1.0-beta.
|
|
8703
|
+
var VERSION = "0.1.0-beta.10";
|
|
8682
8704
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
8683
8705
|
try {
|
|
8684
8706
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8696,7 +8718,10 @@ var connectRelay = async (options) => {
|
|
|
8696
8718
|
const { handler, token } = options;
|
|
8697
8719
|
let relayServer = null;
|
|
8698
8720
|
let isRelayHost = false;
|
|
8699
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8721
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8722
|
+
relayPort,
|
|
8723
|
+
token
|
|
8724
|
+
);
|
|
8700
8725
|
if (isRelayServerRunning) {
|
|
8701
8726
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8702
8727
|
} else {
|
package/dist/cli.js
CHANGED
|
@@ -5777,8 +5777,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5777
5777
|
signal
|
|
5778
5778
|
})) {
|
|
5779
5779
|
if (signal.aborted) break;
|
|
5780
|
+
const getBrowserMessageType = (messageType) => {
|
|
5781
|
+
if (messageType === "status") return "agent-status";
|
|
5782
|
+
if (messageType === "error") return "agent-error";
|
|
5783
|
+
return "agent-done";
|
|
5784
|
+
};
|
|
5780
5785
|
sendToBrowser(browserSocket, {
|
|
5781
|
-
type: message.type
|
|
5786
|
+
type: getBrowserMessageType(message.type),
|
|
5782
5787
|
agentId: handler.agentId,
|
|
5783
5788
|
sessionId,
|
|
5784
5789
|
content: message.content
|
|
@@ -5981,9 +5986,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5981
5986
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5982
5987
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5983
5988
|
if (messageQueue) {
|
|
5984
|
-
const
|
|
5989
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
5990
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
5991
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
5992
|
+
return "error";
|
|
5993
|
+
};
|
|
5985
5994
|
messageQueue.push({
|
|
5986
|
-
type:
|
|
5995
|
+
type: getQueueMessageType(message.type),
|
|
5987
5996
|
content: message.content ?? ""
|
|
5988
5997
|
});
|
|
5989
5998
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -6006,7 +6015,12 @@ ${context.content.join("\n\n")}`;
|
|
|
6006
6015
|
}
|
|
6007
6016
|
}
|
|
6008
6017
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
6009
|
-
res.end(
|
|
6018
|
+
res.end(
|
|
6019
|
+
JSON.stringify({
|
|
6020
|
+
status: "ok",
|
|
6021
|
+
handlers: getRegisteredHandlerIds()
|
|
6022
|
+
})
|
|
6023
|
+
);
|
|
6010
6024
|
return;
|
|
6011
6025
|
}
|
|
6012
6026
|
res.writeHead(404);
|
|
@@ -6021,7 +6035,10 @@ ${context.content.join("\n\n")}`;
|
|
|
6021
6035
|
});
|
|
6022
6036
|
webSocketServer.on("connection", (socket, request) => {
|
|
6023
6037
|
if (token) {
|
|
6024
|
-
const connectionUrl = new URL(
|
|
6038
|
+
const connectionUrl = new URL(
|
|
6039
|
+
request.url ?? "",
|
|
6040
|
+
`http://localhost:${port}`
|
|
6041
|
+
);
|
|
6025
6042
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
6026
6043
|
if (clientToken !== token) {
|
|
6027
6044
|
socket.close(4001, "Unauthorized");
|
|
@@ -6062,7 +6079,9 @@ ${context.content.join("\n\n")}`;
|
|
|
6062
6079
|
});
|
|
6063
6080
|
socket.on("message", (data) => {
|
|
6064
6081
|
try {
|
|
6065
|
-
const message = JSON.parse(
|
|
6082
|
+
const message = JSON.parse(
|
|
6083
|
+
data.toString()
|
|
6084
|
+
);
|
|
6066
6085
|
handleBrowserMessage(socket, message);
|
|
6067
6086
|
} catch {
|
|
6068
6087
|
}
|
|
@@ -6107,7 +6126,10 @@ ${context.content.join("\n\n")}`;
|
|
|
6107
6126
|
httpServer?.close();
|
|
6108
6127
|
};
|
|
6109
6128
|
const registerHandler = (handler) => {
|
|
6110
|
-
registeredHandlers.set(handler.agentId, {
|
|
6129
|
+
registeredHandlers.set(handler.agentId, {
|
|
6130
|
+
agentId: handler.agentId,
|
|
6131
|
+
handler
|
|
6132
|
+
});
|
|
6111
6133
|
broadcastHandlerList();
|
|
6112
6134
|
};
|
|
6113
6135
|
const unregisterHandler = (agentId) => {
|
|
@@ -8668,7 +8690,7 @@ async function fkill(inputs, options = {}) {
|
|
|
8668
8690
|
}
|
|
8669
8691
|
}
|
|
8670
8692
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
8671
|
-
var VERSION = "0.1.0-beta.
|
|
8693
|
+
var VERSION = "0.1.0-beta.10";
|
|
8672
8694
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
8673
8695
|
try {
|
|
8674
8696
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -8686,7 +8708,10 @@ var connectRelay = async (options) => {
|
|
|
8686
8708
|
const { handler, token } = options;
|
|
8687
8709
|
let relayServer = null;
|
|
8688
8710
|
let isRelayHost = false;
|
|
8689
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8711
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
8712
|
+
relayPort,
|
|
8713
|
+
token
|
|
8714
|
+
);
|
|
8690
8715
|
if (isRelayServerRunning) {
|
|
8691
8716
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
8692
8717
|
} else {
|
package/dist/client.cjs
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/client.js
CHANGED
|
@@ -258,7 +258,10 @@ var createRelayAgentProvider = (options) => {
|
|
|
258
258
|
signal.removeEventListener("abort", handleAbort);
|
|
259
259
|
throw new Error("Relay connection is not open");
|
|
260
260
|
}
|
|
261
|
-
const didSendRequest = relayClient.sendAgentRequest(
|
|
261
|
+
const didSendRequest = relayClient.sendAgentRequest(
|
|
262
|
+
agentId,
|
|
263
|
+
contextWithSession
|
|
264
|
+
);
|
|
262
265
|
if (!didSendRequest) {
|
|
263
266
|
unsubscribeConnection();
|
|
264
267
|
unsubscribeMessage();
|
|
@@ -316,12 +319,16 @@ var createRelayAgentProvider = (options) => {
|
|
|
316
319
|
reject(new Error(message.content ?? "Operation failed"));
|
|
317
320
|
}
|
|
318
321
|
});
|
|
319
|
-
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
322
|
+
const unsubscribeConnection = relayClient.onConnectionChange(
|
|
323
|
+
(connected) => {
|
|
324
|
+
if (!connected) {
|
|
325
|
+
cleanup();
|
|
326
|
+
reject(
|
|
327
|
+
new Error("Connection lost while waiting for operation response")
|
|
328
|
+
);
|
|
329
|
+
}
|
|
323
330
|
}
|
|
324
|
-
|
|
331
|
+
);
|
|
325
332
|
});
|
|
326
333
|
};
|
|
327
334
|
const undo = async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-grab/opencode",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"react-grab-opencode": "./dist/cli.cjs"
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.7",
|
|
28
28
|
"tsup": "^8.4.0",
|
|
29
|
-
"@react-grab/utils": "0.1.0-beta.
|
|
29
|
+
"@react-grab/utils": "0.1.0-beta.11"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@opencode-ai/sdk": "^1.0.132",
|
|
33
33
|
"fkill": "^9.0.0",
|
|
34
|
-
"@react-grab/relay": "0.1.0-beta.
|
|
35
|
-
"react-grab": "0.1.0-beta.
|
|
34
|
+
"@react-grab/relay": "0.1.0-beta.11",
|
|
35
|
+
"react-grab": "0.1.0-beta.11"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"dev": "tsup --watch",
|