@agentuity/react 1.0.48 → 2.0.0-beta.0
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/AGENTS.md +26 -45
- package/README.md +28 -182
- package/dist/client-entrypoint.d.ts +8 -12
- package/dist/client-entrypoint.d.ts.map +1 -1
- package/dist/client-entrypoint.js +8 -15
- package/dist/client-entrypoint.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -12
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +6 -14
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -10
- package/dist/server.js.map +1 -1
- package/dist/webrtc.d.ts.map +1 -1
- package/dist/webrtc.js +2 -2
- package/dist/webrtc.js.map +1 -1
- package/package.json +5 -5
- package/src/client-entrypoint.tsx +8 -22
- package/src/context.tsx +3 -14
- package/src/index.ts +1 -52
- package/src/server.ts +5 -43
- package/src/webrtc.tsx +2 -1
- package/dist/api.d.ts +0 -302
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js +0 -487
- package/dist/api.js.map +0 -1
- package/dist/client.d.ts +0 -75
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -102
- package/dist/client.js.map +0 -1
- package/dist/eventstream.d.ts +0 -79
- package/dist/eventstream.d.ts.map +0 -1
- package/dist/eventstream.js +0 -122
- package/dist/eventstream.js.map +0 -1
- package/dist/types.d.ts +0 -18
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -18
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts +0 -88
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js +0 -151
- package/dist/websocket.js.map +0 -1
- package/src/api.ts +0 -954
- package/src/client.ts +0 -136
- package/src/eventstream.ts +0 -188
- package/src/types.ts +0 -23
- package/src/websocket.ts +0 -241
package/dist/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
DELETED
|
@@ -1,487 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { deserializeData, buildUrl } from '@agentuity/frontend';
|
|
4
|
-
import { AgentuityContext } from './context';
|
|
5
|
-
/**
|
|
6
|
-
* Parse route key into method and path
|
|
7
|
-
*/
|
|
8
|
-
function parseRouteKey(routeKey) {
|
|
9
|
-
const parts = routeKey.split(' ');
|
|
10
|
-
const method = parts[0];
|
|
11
|
-
const path = parts[1];
|
|
12
|
-
if (parts.length !== 2 || !method || !path) {
|
|
13
|
-
throw new Error(`Invalid route key format: "${routeKey}". Expected "METHOD /path"`);
|
|
14
|
-
}
|
|
15
|
-
return { method, path };
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Convert query object to URLSearchParams
|
|
19
|
-
*/
|
|
20
|
-
function toSearchParams(query) {
|
|
21
|
-
if (!query)
|
|
22
|
-
return undefined;
|
|
23
|
-
if (query instanceof URLSearchParams)
|
|
24
|
-
return query;
|
|
25
|
-
return new URLSearchParams(query);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Substitute path parameters in a URL path template.
|
|
29
|
-
* E.g., '/users/:id' with { id: '123' } becomes '/users/123'
|
|
30
|
-
*/
|
|
31
|
-
function substitutePathParams(pathTemplate, pathParams) {
|
|
32
|
-
if (!pathParams)
|
|
33
|
-
return pathTemplate;
|
|
34
|
-
let result = pathTemplate;
|
|
35
|
-
for (const [key, value] of Object.entries(pathParams)) {
|
|
36
|
-
result = result.replace(new RegExp(`:${key}\\??`, 'g'), encodeURIComponent(value));
|
|
37
|
-
result = result.replace(new RegExp(`\\*${key}`, 'g'), encodeURIComponent(value));
|
|
38
|
-
}
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Process ReadableStream with delimiter-based parsing
|
|
43
|
-
*/
|
|
44
|
-
async function processStream(stream, options) {
|
|
45
|
-
const { delimiter, onChunk, onData, onError, mountedRef } = options;
|
|
46
|
-
const reader = stream.getReader();
|
|
47
|
-
const decoder = new TextDecoder();
|
|
48
|
-
let buffer = '';
|
|
49
|
-
try {
|
|
50
|
-
while (true) {
|
|
51
|
-
const { done, value } = await reader.read();
|
|
52
|
-
if (!mountedRef.current) {
|
|
53
|
-
reader.cancel();
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
if (done)
|
|
57
|
-
break;
|
|
58
|
-
buffer += decoder.decode(value, { stream: true });
|
|
59
|
-
const parts = buffer.split(delimiter);
|
|
60
|
-
buffer = parts.pop() || '';
|
|
61
|
-
for (const part of parts) {
|
|
62
|
-
if (!part.trim())
|
|
63
|
-
continue;
|
|
64
|
-
try {
|
|
65
|
-
// Try JSON parsing first, fall back to plain string for text streams
|
|
66
|
-
let parsed;
|
|
67
|
-
try {
|
|
68
|
-
parsed = JSON.parse(part);
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
// Not valid JSON - treat as plain string
|
|
72
|
-
parsed = part;
|
|
73
|
-
}
|
|
74
|
-
if (onChunk) {
|
|
75
|
-
parsed = await Promise.resolve(onChunk(parsed));
|
|
76
|
-
}
|
|
77
|
-
if (!mountedRef.current) {
|
|
78
|
-
reader.cancel();
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
onData(parsed);
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
if (!mountedRef.current) {
|
|
85
|
-
reader.cancel();
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
89
|
-
onError(error);
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (buffer.trim()) {
|
|
95
|
-
try {
|
|
96
|
-
// Try JSON parsing first, fall back to plain string for text streams
|
|
97
|
-
let parsed;
|
|
98
|
-
try {
|
|
99
|
-
parsed = JSON.parse(buffer);
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
// Not valid JSON - treat as plain string
|
|
103
|
-
parsed = buffer;
|
|
104
|
-
}
|
|
105
|
-
if (onChunk) {
|
|
106
|
-
parsed = await Promise.resolve(onChunk(parsed));
|
|
107
|
-
}
|
|
108
|
-
if (mountedRef.current) {
|
|
109
|
-
onData(parsed);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
if (!mountedRef.current)
|
|
114
|
-
return false;
|
|
115
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
116
|
-
onError(error);
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch (err) {
|
|
122
|
-
if (!mountedRef.current)
|
|
123
|
-
return false;
|
|
124
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
125
|
-
onError(error);
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
// Implementation signature
|
|
131
|
-
export function useAPI(routeOrOptions) {
|
|
132
|
-
// Normalize to options object - use plain object type since we're in the implementation
|
|
133
|
-
const options = typeof routeOrOptions === 'string'
|
|
134
|
-
? { route: routeOrOptions }
|
|
135
|
-
: routeOrOptions;
|
|
136
|
-
const context = useContext(AgentuityContext);
|
|
137
|
-
const { input, query, headers, enabled, staleTime = 0, refetchInterval, onSuccess, onError, } = options;
|
|
138
|
-
// Extract params safely
|
|
139
|
-
const pathParams = 'params' in options ? options.params : undefined;
|
|
140
|
-
const delimiter = 'delimiter' in options ? (options.delimiter ?? '\n') : '\n';
|
|
141
|
-
const onChunk = 'onChunk' in options ? options.onChunk : undefined;
|
|
142
|
-
if (!context) {
|
|
143
|
-
throw new Error('useAPI must be used within AgentuityProvider');
|
|
144
|
-
}
|
|
145
|
-
// Extract method and path from either route OR {method, path}
|
|
146
|
-
let method;
|
|
147
|
-
let basePath;
|
|
148
|
-
if ('route' in options && options.route) {
|
|
149
|
-
const parsed = parseRouteKey(options.route);
|
|
150
|
-
method = parsed.method;
|
|
151
|
-
basePath = parsed.path;
|
|
152
|
-
}
|
|
153
|
-
else if ('method' in options && 'path' in options && options.method && options.path) {
|
|
154
|
-
method = options.method;
|
|
155
|
-
basePath = options.path;
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
throw new Error('useAPI requires either route OR {method, path}');
|
|
159
|
-
}
|
|
160
|
-
// Substitute path parameters
|
|
161
|
-
const path = substitutePathParams(basePath, pathParams);
|
|
162
|
-
const [data, setData] = useState(undefined);
|
|
163
|
-
const [error, setError] = useState(null);
|
|
164
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
165
|
-
const [isFetching, setIsFetching] = useState(false);
|
|
166
|
-
const [isSuccess, setIsSuccess] = useState(false);
|
|
167
|
-
const [isError, setIsError] = useState(false);
|
|
168
|
-
const lastFetchTimeRef = useRef(0);
|
|
169
|
-
// Track mounted state to prevent state updates after unmount
|
|
170
|
-
const mountedRef = useRef(true);
|
|
171
|
-
useEffect(() => {
|
|
172
|
-
mountedRef.current = true;
|
|
173
|
-
return () => {
|
|
174
|
-
mountedRef.current = false;
|
|
175
|
-
};
|
|
176
|
-
}, []);
|
|
177
|
-
// Use refs to store latest delimiter/onChunk values to avoid stale closures
|
|
178
|
-
// without causing infinite loops in useCallback dependencies
|
|
179
|
-
const delimiterRef = useRef(delimiter);
|
|
180
|
-
const onChunkRef = useRef(onChunk);
|
|
181
|
-
useEffect(() => {
|
|
182
|
-
delimiterRef.current = delimiter;
|
|
183
|
-
onChunkRef.current = onChunk;
|
|
184
|
-
});
|
|
185
|
-
const fetchData = useCallback(async () => {
|
|
186
|
-
if (!mountedRef.current)
|
|
187
|
-
return;
|
|
188
|
-
const now = Date.now();
|
|
189
|
-
const lastFetchTime = lastFetchTimeRef.current;
|
|
190
|
-
// Check if data is still fresh based on last fetch time
|
|
191
|
-
const isFresh = staleTime > 0 && lastFetchTime !== 0 && now - lastFetchTime < staleTime;
|
|
192
|
-
if (isFresh) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
setIsFetching(true);
|
|
196
|
-
// isLoading = only for first load (or after reset)
|
|
197
|
-
if (lastFetchTime === 0) {
|
|
198
|
-
setIsLoading(true);
|
|
199
|
-
}
|
|
200
|
-
setError(null);
|
|
201
|
-
setIsError(false);
|
|
202
|
-
try {
|
|
203
|
-
const url = buildUrl(context.baseUrl || '', path, undefined, toSearchParams(query));
|
|
204
|
-
const requestInit = {
|
|
205
|
-
method,
|
|
206
|
-
headers: {
|
|
207
|
-
'Content-Type': 'application/json',
|
|
208
|
-
...(context.authHeader && { Authorization: context.authHeader }),
|
|
209
|
-
...headers,
|
|
210
|
-
},
|
|
211
|
-
};
|
|
212
|
-
// Add body for non-GET requests
|
|
213
|
-
if (method !== 'GET' && input !== undefined) {
|
|
214
|
-
requestInit.body = JSON.stringify(input);
|
|
215
|
-
}
|
|
216
|
-
const response = await fetch(url, requestInit);
|
|
217
|
-
if (!response.ok) {
|
|
218
|
-
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
219
|
-
}
|
|
220
|
-
let responseData;
|
|
221
|
-
// Handle 204 No Content - no response body expected
|
|
222
|
-
if (response.status === 204) {
|
|
223
|
-
responseData = undefined;
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
const contentType = response.headers.get('Content-Type') || '';
|
|
227
|
-
if (contentType.includes('text/event-stream') ||
|
|
228
|
-
contentType.includes('application/octet-stream')) {
|
|
229
|
-
if (!response.body) {
|
|
230
|
-
throw new Error('Response body is null for streaming response');
|
|
231
|
-
}
|
|
232
|
-
setData([]);
|
|
233
|
-
// Track accumulated chunks locally to avoid stale closure
|
|
234
|
-
const accumulatedChunks = [];
|
|
235
|
-
const success = await processStream(response.body, {
|
|
236
|
-
delimiter: delimiterRef.current,
|
|
237
|
-
onChunk: onChunkRef.current,
|
|
238
|
-
onData: (chunk) => {
|
|
239
|
-
if (!mountedRef.current)
|
|
240
|
-
return;
|
|
241
|
-
accumulatedChunks.push(chunk);
|
|
242
|
-
setData([...accumulatedChunks]);
|
|
243
|
-
},
|
|
244
|
-
onError: (err) => {
|
|
245
|
-
if (!mountedRef.current)
|
|
246
|
-
return;
|
|
247
|
-
setError(err);
|
|
248
|
-
setIsError(true);
|
|
249
|
-
onError?.(err);
|
|
250
|
-
},
|
|
251
|
-
mountedRef,
|
|
252
|
-
});
|
|
253
|
-
if (!mountedRef.current)
|
|
254
|
-
return;
|
|
255
|
-
if (success) {
|
|
256
|
-
setIsSuccess(true);
|
|
257
|
-
lastFetchTimeRef.current = Date.now();
|
|
258
|
-
const finalData = accumulatedChunks;
|
|
259
|
-
onSuccess?.(finalData);
|
|
260
|
-
}
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
else if (contentType.includes('application/json')) {
|
|
264
|
-
responseData = await response.json();
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
const text = await response.text();
|
|
268
|
-
responseData = deserializeData(text);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if (!mountedRef.current)
|
|
272
|
-
return;
|
|
273
|
-
// Use JSON memoization to prevent re-renders when data hasn't changed
|
|
274
|
-
setData((prev) => {
|
|
275
|
-
const newData = responseData;
|
|
276
|
-
if (prev !== undefined && JSON.stringify(prev) === JSON.stringify(newData)) {
|
|
277
|
-
return prev;
|
|
278
|
-
}
|
|
279
|
-
return newData;
|
|
280
|
-
});
|
|
281
|
-
setIsSuccess(true);
|
|
282
|
-
lastFetchTimeRef.current = Date.now();
|
|
283
|
-
onSuccess?.(responseData);
|
|
284
|
-
}
|
|
285
|
-
catch (err) {
|
|
286
|
-
if (!mountedRef.current)
|
|
287
|
-
return;
|
|
288
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
289
|
-
setError(error);
|
|
290
|
-
setIsError(true);
|
|
291
|
-
onError?.(error);
|
|
292
|
-
}
|
|
293
|
-
finally {
|
|
294
|
-
if (mountedRef.current) {
|
|
295
|
-
setIsLoading(false);
|
|
296
|
-
setIsFetching(false);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}, [
|
|
300
|
-
context.baseUrl,
|
|
301
|
-
context.authHeader,
|
|
302
|
-
path,
|
|
303
|
-
method,
|
|
304
|
-
input,
|
|
305
|
-
query,
|
|
306
|
-
headers,
|
|
307
|
-
staleTime,
|
|
308
|
-
onSuccess,
|
|
309
|
-
onError,
|
|
310
|
-
]);
|
|
311
|
-
const reset = useCallback(() => {
|
|
312
|
-
setData(undefined);
|
|
313
|
-
setError(null);
|
|
314
|
-
setIsLoading(false);
|
|
315
|
-
setIsFetching(false);
|
|
316
|
-
setIsSuccess(false);
|
|
317
|
-
setIsError(false);
|
|
318
|
-
lastFetchTimeRef.current = 0;
|
|
319
|
-
}, []);
|
|
320
|
-
// For GET requests: auto-fetch and provide refetch
|
|
321
|
-
if (method === 'GET') {
|
|
322
|
-
// biome-ignore lint/correctness/useHookAtTopLevel: method is constant per hook usage
|
|
323
|
-
const refetch = useCallback(async () => {
|
|
324
|
-
await fetchData();
|
|
325
|
-
}, [fetchData]);
|
|
326
|
-
// Auto-fetch on mount if enabled (default: true for GET)
|
|
327
|
-
const shouldAutoFetch = enabled ?? true;
|
|
328
|
-
// biome-ignore lint/correctness/useHookAtTopLevel: method is constant per hook usage
|
|
329
|
-
useEffect(() => {
|
|
330
|
-
if (shouldAutoFetch) {
|
|
331
|
-
fetchData();
|
|
332
|
-
}
|
|
333
|
-
}, [shouldAutoFetch, fetchData]);
|
|
334
|
-
// Refetch interval
|
|
335
|
-
// biome-ignore lint/correctness/useHookAtTopLevel: method is constant per hook usage
|
|
336
|
-
useEffect(() => {
|
|
337
|
-
if (!refetchInterval || refetchInterval <= 0)
|
|
338
|
-
return;
|
|
339
|
-
const interval = setInterval(() => {
|
|
340
|
-
fetchData();
|
|
341
|
-
}, refetchInterval);
|
|
342
|
-
return () => clearInterval(interval);
|
|
343
|
-
}, [refetchInterval, fetchData]);
|
|
344
|
-
return {
|
|
345
|
-
data,
|
|
346
|
-
error,
|
|
347
|
-
isLoading,
|
|
348
|
-
isSuccess,
|
|
349
|
-
isError,
|
|
350
|
-
isFetching,
|
|
351
|
-
refetch,
|
|
352
|
-
reset,
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
// For POST/PUT/PATCH/DELETE: provide invoke method (manual invocation)
|
|
356
|
-
// biome-ignore lint/correctness/useHookAtTopLevel: only reached for non-GET methods which is constant per hook usage
|
|
357
|
-
const invoke = useCallback(async (invokeInput, invokeOptions) => {
|
|
358
|
-
// Use invokeInput parameter if provided
|
|
359
|
-
const effectiveInput = invokeInput !== undefined ? invokeInput : input;
|
|
360
|
-
// Compute path at invocation time if params provided, otherwise use hook-level path
|
|
361
|
-
const effectivePath = invokeOptions?.params
|
|
362
|
-
? substitutePathParams(basePath, invokeOptions.params)
|
|
363
|
-
: path;
|
|
364
|
-
setIsFetching(true);
|
|
365
|
-
setIsLoading(true);
|
|
366
|
-
setError(null);
|
|
367
|
-
setIsError(false);
|
|
368
|
-
try {
|
|
369
|
-
const url = buildUrl(context.baseUrl || '', effectivePath, undefined, toSearchParams(query));
|
|
370
|
-
const requestInit = {
|
|
371
|
-
method,
|
|
372
|
-
headers: {
|
|
373
|
-
'Content-Type': 'application/json',
|
|
374
|
-
...(context.authHeader && { Authorization: context.authHeader }),
|
|
375
|
-
...headers,
|
|
376
|
-
},
|
|
377
|
-
};
|
|
378
|
-
if (effectiveInput !== undefined) {
|
|
379
|
-
requestInit.body = JSON.stringify(effectiveInput);
|
|
380
|
-
}
|
|
381
|
-
const response = await fetch(url, requestInit);
|
|
382
|
-
if (!response.ok) {
|
|
383
|
-
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
384
|
-
}
|
|
385
|
-
let responseData;
|
|
386
|
-
if (response.status === 204) {
|
|
387
|
-
responseData = undefined;
|
|
388
|
-
}
|
|
389
|
-
else {
|
|
390
|
-
const contentType = response.headers.get('Content-Type') || '';
|
|
391
|
-
if (contentType.includes('text/event-stream') ||
|
|
392
|
-
contentType.includes('application/octet-stream')) {
|
|
393
|
-
if (!response.body) {
|
|
394
|
-
throw new Error('Response body is null for streaming response');
|
|
395
|
-
}
|
|
396
|
-
setData([]);
|
|
397
|
-
// Track accumulated chunks locally to avoid stale closure
|
|
398
|
-
const accumulatedChunks = [];
|
|
399
|
-
let streamError = undefined;
|
|
400
|
-
const success = await processStream(response.body, {
|
|
401
|
-
delimiter: delimiterRef.current,
|
|
402
|
-
onChunk: onChunkRef.current,
|
|
403
|
-
onData: (chunk) => {
|
|
404
|
-
if (!mountedRef.current)
|
|
405
|
-
return;
|
|
406
|
-
accumulatedChunks.push(chunk);
|
|
407
|
-
setData([...accumulatedChunks]);
|
|
408
|
-
},
|
|
409
|
-
onError: (err) => {
|
|
410
|
-
if (!mountedRef.current)
|
|
411
|
-
return;
|
|
412
|
-
streamError = err;
|
|
413
|
-
setError(err);
|
|
414
|
-
setIsError(true);
|
|
415
|
-
onError?.(err);
|
|
416
|
-
},
|
|
417
|
-
mountedRef,
|
|
418
|
-
});
|
|
419
|
-
if (!mountedRef.current)
|
|
420
|
-
return accumulatedChunks;
|
|
421
|
-
if (!success && streamError) {
|
|
422
|
-
throw streamError;
|
|
423
|
-
}
|
|
424
|
-
if (success) {
|
|
425
|
-
setIsSuccess(true);
|
|
426
|
-
lastFetchTimeRef.current = Date.now();
|
|
427
|
-
const finalData = accumulatedChunks;
|
|
428
|
-
onSuccess?.(finalData);
|
|
429
|
-
return finalData;
|
|
430
|
-
}
|
|
431
|
-
return accumulatedChunks;
|
|
432
|
-
}
|
|
433
|
-
else if (contentType.includes('application/json')) {
|
|
434
|
-
responseData = await response.json();
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
const text = await response.text();
|
|
438
|
-
responseData = deserializeData(text);
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
if (!mountedRef.current)
|
|
442
|
-
return responseData;
|
|
443
|
-
setData(responseData);
|
|
444
|
-
setIsSuccess(true);
|
|
445
|
-
lastFetchTimeRef.current = Date.now();
|
|
446
|
-
onSuccess?.(responseData);
|
|
447
|
-
return responseData;
|
|
448
|
-
}
|
|
449
|
-
catch (err) {
|
|
450
|
-
if (!mountedRef.current)
|
|
451
|
-
throw err;
|
|
452
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
453
|
-
setError(error);
|
|
454
|
-
setIsError(true);
|
|
455
|
-
onError?.(error);
|
|
456
|
-
throw error;
|
|
457
|
-
}
|
|
458
|
-
finally {
|
|
459
|
-
if (mountedRef.current) {
|
|
460
|
-
setIsLoading(false);
|
|
461
|
-
setIsFetching(false);
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
}, [
|
|
465
|
-
context.baseUrl,
|
|
466
|
-
context.authHeader,
|
|
467
|
-
basePath,
|
|
468
|
-
path,
|
|
469
|
-
method,
|
|
470
|
-
query,
|
|
471
|
-
headers,
|
|
472
|
-
input,
|
|
473
|
-
onSuccess,
|
|
474
|
-
onError,
|
|
475
|
-
]);
|
|
476
|
-
return {
|
|
477
|
-
data,
|
|
478
|
-
error,
|
|
479
|
-
isLoading,
|
|
480
|
-
isSuccess,
|
|
481
|
-
isError,
|
|
482
|
-
isFetching,
|
|
483
|
-
invoke,
|
|
484
|
-
reset,
|
|
485
|
-
};
|
|
486
|
-
}
|
|
487
|
-
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { type Client, type ClientOptions, type RPCRouteRegistry } from '@agentuity/frontend';
|
|
2
|
-
export type { RPCRouteRegistry };
|
|
3
|
-
/**
|
|
4
|
-
* Set the global base URL for RPC clients.
|
|
5
|
-
* This is automatically called by AgentuityProvider.
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export declare function setGlobalBaseUrl(url: string): void;
|
|
9
|
-
/**
|
|
10
|
-
* Get the global base URL for RPC clients.
|
|
11
|
-
* Returns the configured base URL or falls back to window.location.origin.
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export declare function getGlobalBaseUrl(): string;
|
|
15
|
-
/**
|
|
16
|
-
* Set the global auth header for RPC clients.
|
|
17
|
-
* This is automatically called by AgentuityProvider when auth state changes.
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export declare function setGlobalAuthHeader(authHeader: string | null): void;
|
|
21
|
-
/**
|
|
22
|
-
* Get the global auth header for RPC clients.
|
|
23
|
-
* Returns the current auth header or undefined if not set.
|
|
24
|
-
* @internal
|
|
25
|
-
*/
|
|
26
|
-
export declare function getGlobalAuthHeader(): string | null | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Create a type-safe RPC client for React applications.
|
|
29
|
-
*
|
|
30
|
-
* This is a React-specific wrapper around @agentuity/core's createClient that
|
|
31
|
-
* automatically uses the baseUrl and auth headers from AgentuityProvider context.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* import { createClient } from '@agentuity/react';
|
|
36
|
-
* import type { RPCRouteRegistry } from '@agentuity/react';
|
|
37
|
-
*
|
|
38
|
-
* const client = createClient<RPCRouteRegistry>();
|
|
39
|
-
*
|
|
40
|
-
* // Inside component
|
|
41
|
-
* const result = await client.hello.post({ name: 'World' });
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare function createClient<R>(options?: Omit<ClientOptions, 'baseUrl' | 'headers'> & {
|
|
45
|
-
baseUrl?: string | (() => string);
|
|
46
|
-
headers?: Record<string, string> | (() => Record<string, string>);
|
|
47
|
-
}, metadata?: unknown): Client<R>;
|
|
48
|
-
/**
|
|
49
|
-
* Create a type-safe API client with optional configuration.
|
|
50
|
-
*
|
|
51
|
-
* This is the recommended way to create an API client in React applications.
|
|
52
|
-
* It automatically includes auth headers from AgentuityProvider and allows
|
|
53
|
-
* custom headers to be passed.
|
|
54
|
-
*
|
|
55
|
-
* The generic type parameter defaults to RPCRouteRegistry which is augmented
|
|
56
|
-
* by generated code, so you don't need to specify it manually.
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* import { createAPIClient } from '@agentuity/react';
|
|
61
|
-
*
|
|
62
|
-
* // Types are automatically inferred from generated routes
|
|
63
|
-
* const api = createAPIClient();
|
|
64
|
-
* await api.hello.post({ name: 'World' });
|
|
65
|
-
*
|
|
66
|
-
* // With custom headers
|
|
67
|
-
* const api = createAPIClient({ headers: { 'X-Custom': 'value' } });
|
|
68
|
-
* await api.hello.post({ name: 'World' });
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
export declare function createAPIClient<R = RPCRouteRegistry>(options?: Omit<ClientOptions, 'baseUrl' | 'headers'> & {
|
|
72
|
-
baseUrl?: string | (() => string);
|
|
73
|
-
headers?: Record<string, string> | (() => Record<string, string>);
|
|
74
|
-
}): Client<R>;
|
|
75
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,MAAM,qBAAqB,CAAC;AAI7B,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAKjC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE/D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC7B,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClE,EACD,QAAQ,CAAC,EAAE,OAAO,GAChB,MAAM,CAAC,CAAC,CAAC,CA2BX;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,gBAAgB,EACnD,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClE,GACC,MAAM,CAAC,CAAC,CAAC,CAKX"}
|