@react-grab/claude-code 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
|
@@ -4964,8 +4964,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4964
4964
|
signal
|
|
4965
4965
|
})) {
|
|
4966
4966
|
if (signal.aborted) break;
|
|
4967
|
+
const getBrowserMessageType = (messageType) => {
|
|
4968
|
+
if (messageType === "status") return "agent-status";
|
|
4969
|
+
if (messageType === "error") return "agent-error";
|
|
4970
|
+
return "agent-done";
|
|
4971
|
+
};
|
|
4967
4972
|
sendToBrowser(browserSocket, {
|
|
4968
|
-
type: message.type
|
|
4973
|
+
type: getBrowserMessageType(message.type),
|
|
4969
4974
|
agentId: handler.agentId,
|
|
4970
4975
|
sessionId,
|
|
4971
4976
|
content: message.content
|
|
@@ -5168,9 +5173,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5168
5173
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5169
5174
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5170
5175
|
if (messageQueue) {
|
|
5171
|
-
const
|
|
5176
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
5177
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
5178
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
5179
|
+
return "error";
|
|
5180
|
+
};
|
|
5172
5181
|
messageQueue.push({
|
|
5173
|
-
type:
|
|
5182
|
+
type: getQueueMessageType(message.type),
|
|
5174
5183
|
content: message.content ?? ""
|
|
5175
5184
|
});
|
|
5176
5185
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -5193,7 +5202,12 @@ ${context.content.join("\n\n")}`;
|
|
|
5193
5202
|
}
|
|
5194
5203
|
}
|
|
5195
5204
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
5196
|
-
res.end(
|
|
5205
|
+
res.end(
|
|
5206
|
+
JSON.stringify({
|
|
5207
|
+
status: "ok",
|
|
5208
|
+
handlers: getRegisteredHandlerIds()
|
|
5209
|
+
})
|
|
5210
|
+
);
|
|
5197
5211
|
return;
|
|
5198
5212
|
}
|
|
5199
5213
|
res.writeHead(404);
|
|
@@ -5208,7 +5222,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5208
5222
|
});
|
|
5209
5223
|
webSocketServer.on("connection", (socket, request) => {
|
|
5210
5224
|
if (token) {
|
|
5211
|
-
const connectionUrl = new URL(
|
|
5225
|
+
const connectionUrl = new URL(
|
|
5226
|
+
request.url ?? "",
|
|
5227
|
+
`http://localhost:${port}`
|
|
5228
|
+
);
|
|
5212
5229
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
5213
5230
|
if (clientToken !== token) {
|
|
5214
5231
|
socket.close(4001, "Unauthorized");
|
|
@@ -5249,7 +5266,9 @@ ${context.content.join("\n\n")}`;
|
|
|
5249
5266
|
});
|
|
5250
5267
|
socket.on("message", (data) => {
|
|
5251
5268
|
try {
|
|
5252
|
-
const message = JSON.parse(
|
|
5269
|
+
const message = JSON.parse(
|
|
5270
|
+
data.toString()
|
|
5271
|
+
);
|
|
5253
5272
|
handleBrowserMessage(socket, message);
|
|
5254
5273
|
} catch {
|
|
5255
5274
|
}
|
|
@@ -5294,7 +5313,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5294
5313
|
httpServer?.close();
|
|
5295
5314
|
};
|
|
5296
5315
|
const registerHandler = (handler) => {
|
|
5297
|
-
registeredHandlers.set(handler.agentId, {
|
|
5316
|
+
registeredHandlers.set(handler.agentId, {
|
|
5317
|
+
agentId: handler.agentId,
|
|
5318
|
+
handler
|
|
5319
|
+
});
|
|
5298
5320
|
broadcastHandlerList();
|
|
5299
5321
|
};
|
|
5300
5322
|
const unregisterHandler = (agentId) => {
|
|
@@ -7855,7 +7877,7 @@ async function fkill(inputs, options = {}) {
|
|
|
7855
7877
|
}
|
|
7856
7878
|
}
|
|
7857
7879
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7858
|
-
var VERSION = "0.1.0-beta.
|
|
7880
|
+
var VERSION = "0.1.0-beta.10";
|
|
7859
7881
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7860
7882
|
try {
|
|
7861
7883
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -7873,7 +7895,10 @@ var connectRelay = async (options) => {
|
|
|
7873
7895
|
const { handler, token } = options;
|
|
7874
7896
|
let relayServer = null;
|
|
7875
7897
|
let isRelayHost = false;
|
|
7876
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
7898
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
7899
|
+
relayPort,
|
|
7900
|
+
token
|
|
7901
|
+
);
|
|
7877
7902
|
if (isRelayServerRunning) {
|
|
7878
7903
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
7879
7904
|
} else {
|
package/dist/cli.js
CHANGED
|
@@ -4936,8 +4936,13 @@ ${context.content.join("\n\n")}`;
|
|
|
4936
4936
|
signal
|
|
4937
4937
|
})) {
|
|
4938
4938
|
if (signal.aborted) break;
|
|
4939
|
+
const getBrowserMessageType = (messageType) => {
|
|
4940
|
+
if (messageType === "status") return "agent-status";
|
|
4941
|
+
if (messageType === "error") return "agent-error";
|
|
4942
|
+
return "agent-done";
|
|
4943
|
+
};
|
|
4939
4944
|
sendToBrowser(browserSocket, {
|
|
4940
|
-
type: message.type
|
|
4945
|
+
type: getBrowserMessageType(message.type),
|
|
4941
4946
|
agentId: handler.agentId,
|
|
4942
4947
|
sessionId,
|
|
4943
4948
|
content: message.content
|
|
@@ -5140,9 +5145,13 @@ ${context.content.join("\n\n")}`;
|
|
|
5140
5145
|
} else if (message.type === "agent-status" || message.type === "agent-done" || message.type === "agent-error") {
|
|
5141
5146
|
const messageQueue = sessionMessageQueues.get(message.sessionId);
|
|
5142
5147
|
if (messageQueue) {
|
|
5143
|
-
const
|
|
5148
|
+
const getQueueMessageType = (handlerMessageType) => {
|
|
5149
|
+
if (handlerMessageType === "agent-status") return "status";
|
|
5150
|
+
if (handlerMessageType === "agent-done") return "done";
|
|
5151
|
+
return "error";
|
|
5152
|
+
};
|
|
5144
5153
|
messageQueue.push({
|
|
5145
|
-
type:
|
|
5154
|
+
type: getQueueMessageType(message.type),
|
|
5146
5155
|
content: message.content ?? ""
|
|
5147
5156
|
});
|
|
5148
5157
|
if (message.type === "agent-done" || message.type === "agent-error") {
|
|
@@ -5165,7 +5174,12 @@ ${context.content.join("\n\n")}`;
|
|
|
5165
5174
|
}
|
|
5166
5175
|
}
|
|
5167
5176
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
5168
|
-
res.end(
|
|
5177
|
+
res.end(
|
|
5178
|
+
JSON.stringify({
|
|
5179
|
+
status: "ok",
|
|
5180
|
+
handlers: getRegisteredHandlerIds()
|
|
5181
|
+
})
|
|
5182
|
+
);
|
|
5169
5183
|
return;
|
|
5170
5184
|
}
|
|
5171
5185
|
res.writeHead(404);
|
|
@@ -5180,7 +5194,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5180
5194
|
});
|
|
5181
5195
|
webSocketServer.on("connection", (socket, request) => {
|
|
5182
5196
|
if (token) {
|
|
5183
|
-
const connectionUrl = new URL(
|
|
5197
|
+
const connectionUrl = new URL(
|
|
5198
|
+
request.url ?? "",
|
|
5199
|
+
`http://localhost:${port}`
|
|
5200
|
+
);
|
|
5184
5201
|
const clientToken = connectionUrl.searchParams.get(RELAY_TOKEN_PARAM);
|
|
5185
5202
|
if (clientToken !== token) {
|
|
5186
5203
|
socket.close(4001, "Unauthorized");
|
|
@@ -5221,7 +5238,9 @@ ${context.content.join("\n\n")}`;
|
|
|
5221
5238
|
});
|
|
5222
5239
|
socket.on("message", (data) => {
|
|
5223
5240
|
try {
|
|
5224
|
-
const message = JSON.parse(
|
|
5241
|
+
const message = JSON.parse(
|
|
5242
|
+
data.toString()
|
|
5243
|
+
);
|
|
5225
5244
|
handleBrowserMessage(socket, message);
|
|
5226
5245
|
} catch {
|
|
5227
5246
|
}
|
|
@@ -5266,7 +5285,10 @@ ${context.content.join("\n\n")}`;
|
|
|
5266
5285
|
httpServer?.close();
|
|
5267
5286
|
};
|
|
5268
5287
|
const registerHandler = (handler) => {
|
|
5269
|
-
registeredHandlers.set(handler.agentId, {
|
|
5288
|
+
registeredHandlers.set(handler.agentId, {
|
|
5289
|
+
agentId: handler.agentId,
|
|
5290
|
+
handler
|
|
5291
|
+
});
|
|
5270
5292
|
broadcastHandlerList();
|
|
5271
5293
|
};
|
|
5272
5294
|
const unregisterHandler = (agentId) => {
|
|
@@ -7827,7 +7849,7 @@ async function fkill(inputs, options = {}) {
|
|
|
7827
7849
|
}
|
|
7828
7850
|
}
|
|
7829
7851
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7830
|
-
var VERSION = "0.1.0-beta.
|
|
7852
|
+
var VERSION = "0.1.0-beta.10";
|
|
7831
7853
|
var checkIfRelayServerIsRunning = async (port, token) => {
|
|
7832
7854
|
try {
|
|
7833
7855
|
const healthUrl = token ? `http://localhost:${port}/health?${RELAY_TOKEN_PARAM}=${encodeURIComponent(token)}` : `http://localhost:${port}/health`;
|
|
@@ -7845,7 +7867,10 @@ var connectRelay = async (options) => {
|
|
|
7845
7867
|
const { handler, token } = options;
|
|
7846
7868
|
let relayServer = null;
|
|
7847
7869
|
let isRelayHost = false;
|
|
7848
|
-
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
7870
|
+
const isRelayServerRunning = await checkIfRelayServerIsRunning(
|
|
7871
|
+
relayPort,
|
|
7872
|
+
token
|
|
7873
|
+
);
|
|
7849
7874
|
if (isRelayServerRunning) {
|
|
7850
7875
|
relayServer = await connectToExistingRelay(relayPort, handler, token);
|
|
7851
7876
|
} 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/claude-code",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"react-grab-claude-code": "./dist/cli.cjs"
|
|
@@ -26,12 +26,12 @@
|
|
|
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
|
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
33
|
-
"@react-grab/relay": "0.1.0-beta.
|
|
34
|
-
"react-grab": "0.1.0-beta.
|
|
33
|
+
"@react-grab/relay": "0.1.0-beta.11",
|
|
34
|
+
"react-grab": "0.1.0-beta.11"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"dev": "tsup --watch",
|