@react-grab/cursor 0.0.78 → 0.0.80
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 +38 -16
- package/dist/client.d.cts +2 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.global.js +3 -3
- package/dist/client.js +38 -16
- package/dist/server.cjs +656 -70
- package/dist/server.js +656 -69
- package/package.json +6 -2
package/dist/client.js
CHANGED
|
@@ -55,19 +55,33 @@ async function* streamSSE(stream, signal) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
async function* streamFromServer(serverUrl, context, signal) {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
const sessionId = context.sessionId;
|
|
59
|
+
const handleAbort = () => {
|
|
60
|
+
if (sessionId) {
|
|
61
|
+
fetch(`${serverUrl}/abort/${sessionId}`, { method: "POST" }).catch(
|
|
62
|
+
() => {
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
signal.addEventListener("abort", handleAbort);
|
|
68
|
+
try {
|
|
69
|
+
const response = await fetch(`${serverUrl}/agent`, {
|
|
70
|
+
method: "POST",
|
|
71
|
+
headers: { "Content-Type": "application/json" },
|
|
72
|
+
body: JSON.stringify(context),
|
|
73
|
+
signal
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
throw new Error(`Server error: ${response.status}`);
|
|
77
|
+
}
|
|
78
|
+
if (!response.body) {
|
|
79
|
+
throw new Error("No response body");
|
|
80
|
+
}
|
|
81
|
+
yield* streamSSE(response.body, signal);
|
|
82
|
+
} finally {
|
|
83
|
+
signal.removeEventListener("abort", handleAbort);
|
|
69
84
|
}
|
|
70
|
-
yield* streamSSE(response.body, signal);
|
|
71
85
|
}
|
|
72
86
|
var createCursorAgentProvider = (providerOptions = {}) => {
|
|
73
87
|
const { serverUrl = DEFAULT_SERVER_URL, getOptions } = providerOptions;
|
|
@@ -103,6 +117,7 @@ var createCursorAgentProvider = (providerOptions = {}) => {
|
|
|
103
117
|
yield* streamFromServer(serverUrl, mergedContext, signal);
|
|
104
118
|
},
|
|
105
119
|
supportsResume: true,
|
|
120
|
+
supportsFollowUp: true,
|
|
106
121
|
checkConnection: async () => {
|
|
107
122
|
const now = Date.now();
|
|
108
123
|
if (connectionCache && now - connectionCache.timestamp < CONNECTION_CHECK_TTL_MS) {
|
|
@@ -118,9 +133,9 @@ var createCursorAgentProvider = (providerOptions = {}) => {
|
|
|
118
133
|
return false;
|
|
119
134
|
}
|
|
120
135
|
},
|
|
121
|
-
|
|
136
|
+
abort: async (sessionId) => {
|
|
122
137
|
try {
|
|
123
|
-
await fetch(`${serverUrl}/
|
|
138
|
+
await fetch(`${serverUrl}/abort/${sessionId}`, { method: "POST" });
|
|
124
139
|
} catch {
|
|
125
140
|
}
|
|
126
141
|
}
|
|
@@ -129,19 +144,26 @@ var createCursorAgentProvider = (providerOptions = {}) => {
|
|
|
129
144
|
var attachAgent = async () => {
|
|
130
145
|
if (typeof window === "undefined") return;
|
|
131
146
|
const provider = createCursorAgentProvider();
|
|
147
|
+
const attach = (api2) => {
|
|
148
|
+
api2.setAgent({ provider, storage: sessionStorage });
|
|
149
|
+
};
|
|
132
150
|
const api = window.__REACT_GRAB__;
|
|
133
151
|
if (api) {
|
|
134
|
-
api
|
|
152
|
+
attach(api);
|
|
135
153
|
return;
|
|
136
154
|
}
|
|
137
155
|
window.addEventListener(
|
|
138
156
|
"react-grab:init",
|
|
139
157
|
(event) => {
|
|
140
158
|
const customEvent = event;
|
|
141
|
-
customEvent.detail
|
|
159
|
+
attach(customEvent.detail);
|
|
142
160
|
},
|
|
143
161
|
{ once: true }
|
|
144
162
|
);
|
|
163
|
+
const apiAfterListener = window.__REACT_GRAB__;
|
|
164
|
+
if (apiAfterListener) {
|
|
165
|
+
attach(apiAfterListener);
|
|
166
|
+
}
|
|
145
167
|
};
|
|
146
168
|
attachAgent();
|
|
147
169
|
|