@react-grab/claude-code 0.0.78 → 0.0.81
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 +498 -4
- package/dist/cli.js +498 -4
- package/dist/client.cjs +36 -14
- package/dist/client.d.cts +1 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.global.js +4 -4
- package/dist/client.js +36 -14
- package/dist/server.cjs +3863 -334
- package/dist/server.js +3860 -334
- package/package.json +5 -2
package/dist/client.js
CHANGED
|
@@ -67,19 +67,33 @@ async function* streamSSE(stream, signal) {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
async function* streamFromServer(serverUrl, context, signal) {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
const sessionId = context.sessionId;
|
|
71
|
+
const handleAbort = () => {
|
|
72
|
+
if (sessionId) {
|
|
73
|
+
fetch(`${serverUrl}/abort/${sessionId}`, { method: "POST" }).catch(
|
|
74
|
+
() => {
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
signal.addEventListener("abort", handleAbort);
|
|
80
|
+
try {
|
|
81
|
+
const response = await fetch(`${serverUrl}/agent`, {
|
|
82
|
+
method: "POST",
|
|
83
|
+
headers: { "Content-Type": "application/json" },
|
|
84
|
+
body: JSON.stringify(context),
|
|
85
|
+
signal
|
|
86
|
+
});
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
throw new Error(`Server error: ${response.status}`);
|
|
89
|
+
}
|
|
90
|
+
if (!response.body) {
|
|
91
|
+
throw new Error("No response body");
|
|
92
|
+
}
|
|
93
|
+
yield* streamSSE(response.body, signal);
|
|
94
|
+
} finally {
|
|
95
|
+
signal.removeEventListener("abort", handleAbort);
|
|
81
96
|
}
|
|
82
|
-
yield* streamSSE(response.body, signal);
|
|
83
97
|
}
|
|
84
98
|
var createClaudeAgentProvider = (providerOptions = {}) => {
|
|
85
99
|
const { serverUrl = DEFAULT_SERVER_URL, getOptions } = providerOptions;
|
|
@@ -116,6 +130,7 @@ var createClaudeAgentProvider = (providerOptions = {}) => {
|
|
|
116
130
|
yield* streamFromServer(serverUrl, mergedContext, signal);
|
|
117
131
|
},
|
|
118
132
|
supportsResume: true,
|
|
133
|
+
supportsFollowUp: true,
|
|
119
134
|
checkConnection: async () => {
|
|
120
135
|
const now = Date.now();
|
|
121
136
|
if (connectionCache && now - connectionCache.timestamp < CONNECTION_CHECK_TTL_MS) {
|
|
@@ -142,19 +157,26 @@ var createClaudeAgentProvider = (providerOptions = {}) => {
|
|
|
142
157
|
var attachAgent = async () => {
|
|
143
158
|
if (typeof window === "undefined") return;
|
|
144
159
|
const provider = createClaudeAgentProvider();
|
|
160
|
+
const attach = (api2) => {
|
|
161
|
+
api2.setAgent({ provider, storage: sessionStorage });
|
|
162
|
+
};
|
|
145
163
|
const api = window.__REACT_GRAB__;
|
|
146
164
|
if (api) {
|
|
147
|
-
api
|
|
165
|
+
attach(api);
|
|
148
166
|
return;
|
|
149
167
|
}
|
|
150
168
|
window.addEventListener(
|
|
151
169
|
"react-grab:init",
|
|
152
170
|
(event) => {
|
|
153
171
|
const customEvent = event;
|
|
154
|
-
customEvent.detail
|
|
172
|
+
attach(customEvent.detail);
|
|
155
173
|
},
|
|
156
174
|
{ once: true }
|
|
157
175
|
);
|
|
176
|
+
const apiAfterListener = window.__REACT_GRAB__;
|
|
177
|
+
if (apiAfterListener) {
|
|
178
|
+
attach(apiAfterListener);
|
|
179
|
+
}
|
|
158
180
|
};
|
|
159
181
|
attachAgent();
|
|
160
182
|
|