@agentuity/react 0.0.99 → 0.0.101
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/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -2
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +90 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +102 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +3 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +21 -5
- package/dist/context.js.map +1 -1
- package/dist/eventstream.d.ts +8 -22
- package/dist/eventstream.d.ts.map +1 -1
- package/dist/eventstream.js +62 -136
- package/dist/eventstream.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/memo.d.ts +2 -3
- package/dist/memo.d.ts.map +1 -1
- package/dist/memo.js +2 -20
- package/dist/memo.js.map +1 -1
- package/dist/websocket.d.ts +9 -22
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +80 -169
- package/dist/websocket.js.map +1 -1
- package/package.json +5 -2
- package/src/api.ts +1 -3
- package/src/client.ts +148 -0
- package/src/context.tsx +30 -6
- package/src/eventstream.ts +77 -177
- package/src/index.ts +43 -3
- package/src/memo.ts +2 -18
- package/src/websocket.ts +105 -225
- package/dist/env.d.ts +0 -2
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -10
- package/dist/env.js.map +0 -1
- package/dist/reconnect.d.ts +0 -22
- package/dist/reconnect.d.ts.map +0 -1
- package/dist/reconnect.js +0 -47
- package/dist/reconnect.js.map +0 -1
- package/dist/serialization.d.ts +0 -6
- package/dist/serialization.d.ts.map +0 -1
- package/dist/serialization.js +0 -16
- package/dist/serialization.js.map +0 -1
- package/dist/types.d.ts +0 -19
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/url.d.ts +0 -3
- package/dist/url.d.ts.map +0 -1
- package/dist/url.js +0 -24
- package/dist/url.js.map +0 -1
- package/src/env.ts +0 -9
- package/src/reconnect.ts +0 -73
- package/src/serialization.ts +0 -14
- package/src/types.ts +0 -29
- package/src/url.ts +0 -32
package/src/reconnect.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
export interface ReconnectOptions {
|
|
2
|
-
onReconnect: () => void;
|
|
3
|
-
threshold?: number;
|
|
4
|
-
baseDelay?: number;
|
|
5
|
-
factor?: number;
|
|
6
|
-
maxDelay?: number;
|
|
7
|
-
jitter?: number;
|
|
8
|
-
enabled?: () => boolean;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface ReconnectManager {
|
|
12
|
-
recordFailure: () => { scheduled: boolean; delay: number | null };
|
|
13
|
-
recordSuccess: () => void;
|
|
14
|
-
cancel: () => void;
|
|
15
|
-
reset: () => void;
|
|
16
|
-
dispose: () => void;
|
|
17
|
-
getAttempts: () => number;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function createReconnectManager(opts: ReconnectOptions): ReconnectManager {
|
|
21
|
-
let attempts = 0;
|
|
22
|
-
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
23
|
-
|
|
24
|
-
const cancel = () => {
|
|
25
|
-
if (timer) {
|
|
26
|
-
clearTimeout(timer);
|
|
27
|
-
timer = null;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const reset = () => {
|
|
32
|
-
attempts = 0;
|
|
33
|
-
cancel();
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const recordSuccess = () => reset();
|
|
37
|
-
|
|
38
|
-
const computeDelay = (attemptAfterThreshold: number) => {
|
|
39
|
-
const base = opts.baseDelay ?? 500;
|
|
40
|
-
const factor = opts.factor ?? 2;
|
|
41
|
-
const max = opts.maxDelay ?? 30000;
|
|
42
|
-
const jitterMax = opts.jitter ?? 250;
|
|
43
|
-
const backoff = Math.min(base * Math.pow(factor, attemptAfterThreshold), max);
|
|
44
|
-
const jitter = jitterMax > 0 ? Math.random() * jitterMax : 0;
|
|
45
|
-
return backoff + jitter;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const recordFailure = () => {
|
|
49
|
-
attempts += 1;
|
|
50
|
-
const threshold = opts.threshold ?? 0;
|
|
51
|
-
if (opts.enabled && !opts.enabled()) {
|
|
52
|
-
return { scheduled: false, delay: null };
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (attempts - threshold >= 0) {
|
|
56
|
-
const after = Math.max(0, attempts - threshold);
|
|
57
|
-
const delay = computeDelay(after);
|
|
58
|
-
cancel();
|
|
59
|
-
timer = setTimeout(() => {
|
|
60
|
-
if (opts.enabled && !opts.enabled()) return;
|
|
61
|
-
opts.onReconnect();
|
|
62
|
-
}, delay);
|
|
63
|
-
return { scheduled: true, delay };
|
|
64
|
-
}
|
|
65
|
-
return { scheduled: false, delay: null };
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const dispose = () => cancel();
|
|
69
|
-
|
|
70
|
-
const getAttempts = () => attempts;
|
|
71
|
-
|
|
72
|
-
return { recordFailure, recordSuccess, cancel, reset, dispose, getAttempts };
|
|
73
|
-
}
|
package/src/serialization.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deserialize data received from WebSocket or EventStream.
|
|
3
|
-
* Attempts to parse as JSON if the data looks like JSON, otherwise returns as-is.
|
|
4
|
-
*/
|
|
5
|
-
export const deserializeData = <T>(data: string): T => {
|
|
6
|
-
if (data) {
|
|
7
|
-
try {
|
|
8
|
-
return JSON.parse(data) as T;
|
|
9
|
-
} catch {
|
|
10
|
-
/* */
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return data as T;
|
|
14
|
-
};
|
package/src/types.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Route registry containing all typed API routes in the application.
|
|
3
|
-
* Auto-generated by the build tool from routes that use validator() middleware.
|
|
4
|
-
*/
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
6
|
-
export interface RouteRegistry {
|
|
7
|
-
// Will be augmented by generated code
|
|
8
|
-
// Format: 'METHOD /path': { inputSchema: ..., outputSchema: ..., stream?: boolean }
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* WebSocket route registry containing all typed WebSocket routes in the application.
|
|
13
|
-
* Auto-generated by the build tool from routes that use validator() middleware.
|
|
14
|
-
*/
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
16
|
-
export interface WebSocketRouteRegistry {
|
|
17
|
-
// Will be augmented by generated code
|
|
18
|
-
// Format: '/path': { inputSchema: ..., outputSchema: ... }
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* SSE route registry containing all typed SSE routes in the application.
|
|
23
|
-
* Auto-generated by the build tool from routes that use validator() middleware.
|
|
24
|
-
*/
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
26
|
-
export interface SSERouteRegistry {
|
|
27
|
-
// Will be augmented by generated code
|
|
28
|
-
// Format: '/path': { inputSchema: ..., outputSchema: ... }
|
|
29
|
-
}
|
package/src/url.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { getProcessEnv } from './env';
|
|
2
|
-
|
|
3
|
-
export const buildUrl = (
|
|
4
|
-
base: string,
|
|
5
|
-
path: string,
|
|
6
|
-
subpath?: string,
|
|
7
|
-
query?: URLSearchParams
|
|
8
|
-
): string => {
|
|
9
|
-
path = path.startsWith('/') ? path : `/${path}`;
|
|
10
|
-
let url = base.replace(/\/$/, '') + path;
|
|
11
|
-
if (subpath) {
|
|
12
|
-
subpath = subpath.startsWith('/') ? subpath : `/${subpath}`;
|
|
13
|
-
url += `/${subpath}`;
|
|
14
|
-
}
|
|
15
|
-
if (query) {
|
|
16
|
-
url += `?${query.toString()}`;
|
|
17
|
-
}
|
|
18
|
-
return url;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const tryOrigin = () => {
|
|
22
|
-
if (typeof window !== 'undefined') {
|
|
23
|
-
return window.location.origin;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const defaultBaseUrl: string =
|
|
28
|
-
getProcessEnv('NEXT_PUBLIC_AGENTUITY_URL') ||
|
|
29
|
-
getProcessEnv('VITE_AGENTUITY_URL') ||
|
|
30
|
-
getProcessEnv('AGENTUITY_URL') ||
|
|
31
|
-
tryOrigin() ||
|
|
32
|
-
'http://localhost:3500';
|