ai-functions 0.4.0 → 2.0.2
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +17 -0
- package/dist/rpc/auth.d.ts +69 -0
- package/dist/rpc/auth.d.ts.map +1 -0
- package/dist/rpc/auth.js +136 -0
- package/dist/rpc/auth.js.map +1 -0
- package/dist/rpc/client.d.ts +62 -0
- package/dist/rpc/client.d.ts.map +1 -0
- package/dist/rpc/client.js +103 -0
- package/dist/rpc/client.js.map +1 -0
- package/dist/rpc/deferred.d.ts +60 -0
- package/dist/rpc/deferred.d.ts.map +1 -0
- package/dist/rpc/deferred.js +96 -0
- package/dist/rpc/deferred.js.map +1 -0
- package/dist/rpc/index.d.ts +22 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +38 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/rpc/local.d.ts +42 -0
- package/dist/rpc/local.d.ts.map +1 -0
- package/dist/rpc/local.js +50 -0
- package/dist/rpc/local.js.map +1 -0
- package/dist/rpc/server.d.ts +165 -0
- package/dist/rpc/server.d.ts.map +1 -0
- package/dist/rpc/server.js +405 -0
- package/dist/rpc/server.js.map +1 -0
- package/dist/rpc/session.d.ts +32 -0
- package/dist/rpc/session.d.ts.map +1 -0
- package/dist/rpc/session.js +43 -0
- package/dist/rpc/session.js.map +1 -0
- package/dist/rpc/transport.d.ts +306 -0
- package/dist/rpc/transport.d.ts.map +1 -0
- package/dist/rpc/transport.js +731 -0
- package/dist/rpc/transport.js.map +1 -0
- package/package.json +3 -3
- package/.turbo/turbo-test.log +0 -105
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC session management utilities
|
|
3
|
+
*/
|
|
4
|
+
export interface RPCSessionOptions {
|
|
5
|
+
/** WebSocket URL for persistent connections */
|
|
6
|
+
wsUrl?: string;
|
|
7
|
+
/** HTTP URL for batch requests */
|
|
8
|
+
httpUrl?: string;
|
|
9
|
+
/** Prefer WebSocket over HTTP when both are available */
|
|
10
|
+
preferWebSocket?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create an RPC session with the appropriate transport
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // WebSocket session (interactive, persistent)
|
|
18
|
+
* const api = createRPCSession<MyAPI>({ wsUrl: 'wss://api.example.com' })
|
|
19
|
+
*
|
|
20
|
+
* // HTTP batch session (request/response pattern)
|
|
21
|
+
* const api = createRPCSession<MyAPI>({ httpUrl: 'https://api.example.com' })
|
|
22
|
+
*
|
|
23
|
+
* // Auto-select based on availability
|
|
24
|
+
* const api = createRPCSession<MyAPI>({
|
|
25
|
+
* wsUrl: 'wss://api.example.com',
|
|
26
|
+
* httpUrl: 'https://api.example.com',
|
|
27
|
+
* preferWebSocket: true
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function createRPCSession<T>(options: RPCSessionOptions): T;
|
|
32
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/rpc/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,GAAG,CAAC,CAqBjE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC session management utilities
|
|
3
|
+
*/
|
|
4
|
+
// Use require-style imports to avoid TypeScript's deep type instantiation
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
6
|
+
const capnweb = require('capnweb');
|
|
7
|
+
/**
|
|
8
|
+
* Create an RPC session with the appropriate transport
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // WebSocket session (interactive, persistent)
|
|
13
|
+
* const api = createRPCSession<MyAPI>({ wsUrl: 'wss://api.example.com' })
|
|
14
|
+
*
|
|
15
|
+
* // HTTP batch session (request/response pattern)
|
|
16
|
+
* const api = createRPCSession<MyAPI>({ httpUrl: 'https://api.example.com' })
|
|
17
|
+
*
|
|
18
|
+
* // Auto-select based on availability
|
|
19
|
+
* const api = createRPCSession<MyAPI>({
|
|
20
|
+
* wsUrl: 'wss://api.example.com',
|
|
21
|
+
* httpUrl: 'https://api.example.com',
|
|
22
|
+
* preferWebSocket: true
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function createRPCSession(options) {
|
|
27
|
+
const { wsUrl, httpUrl, preferWebSocket = true } = options;
|
|
28
|
+
if (!wsUrl && !httpUrl) {
|
|
29
|
+
throw new Error('Either wsUrl or httpUrl must be provided');
|
|
30
|
+
}
|
|
31
|
+
// Determine which transport to use
|
|
32
|
+
const useWebSocket = preferWebSocket ? wsUrl : (wsUrl && !httpUrl);
|
|
33
|
+
if (useWebSocket && wsUrl) {
|
|
34
|
+
// RpcStub<T> proxies all methods of T, so cast is safe at runtime
|
|
35
|
+
return capnweb.newWebSocketRpcSession(wsUrl);
|
|
36
|
+
}
|
|
37
|
+
if (httpUrl) {
|
|
38
|
+
// RpcStub<T> proxies all methods of T, so cast is safe at runtime
|
|
39
|
+
return capnweb.newHttpBatchRpcSession(httpUrl);
|
|
40
|
+
}
|
|
41
|
+
throw new Error('No valid URL provided');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/rpc/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0EAA0E;AAC1E,iEAAiE;AACjE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAGhC,CAAA;AAWD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAA0B;IAC5D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IAE1D,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,mCAAmC;IACnC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAElE,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,kEAAkE;QAClE,OAAO,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAM,CAAA;IACnD,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,kEAAkE;QAClE,OAAO,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAM,CAAA;IACrD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC Transport Layer
|
|
3
|
+
*
|
|
4
|
+
* Unified transport abstraction supporting:
|
|
5
|
+
* - HTTP batch requests
|
|
6
|
+
* - WebSocket persistent connections
|
|
7
|
+
* - postMessage for iframe/worker communication
|
|
8
|
+
* - Bidirectional RPC callbacks
|
|
9
|
+
* - Async iterators for streaming
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* A serializable RPC message
|
|
15
|
+
*/
|
|
16
|
+
export interface RPCMessage {
|
|
17
|
+
/** Unique message ID for correlation */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Message type */
|
|
20
|
+
type: 'call' | 'result' | 'error' | 'callback' | 'stream' | 'stream-end' | 'cancel' | 'ping' | 'pong';
|
|
21
|
+
/** Method name (for calls) */
|
|
22
|
+
method?: string;
|
|
23
|
+
/** Call arguments */
|
|
24
|
+
params?: unknown[];
|
|
25
|
+
/** Operation chain for promise pipelining */
|
|
26
|
+
chain?: OperationDescriptor[];
|
|
27
|
+
/** Result value */
|
|
28
|
+
result?: unknown;
|
|
29
|
+
/** Error info */
|
|
30
|
+
error?: {
|
|
31
|
+
message: string;
|
|
32
|
+
code?: string;
|
|
33
|
+
stack?: string;
|
|
34
|
+
};
|
|
35
|
+
/** Callback reference ID */
|
|
36
|
+
callbackId?: string;
|
|
37
|
+
/** Stream chunk data */
|
|
38
|
+
chunk?: unknown;
|
|
39
|
+
/** Allow additional properties (e.g., __sig__ for HMAC) */
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Serializable operation descriptor (for chain)
|
|
44
|
+
*/
|
|
45
|
+
export interface OperationDescriptor {
|
|
46
|
+
type: 'property' | 'call' | 'map';
|
|
47
|
+
key?: string;
|
|
48
|
+
args?: unknown[];
|
|
49
|
+
/** For map: serialized function or function ID */
|
|
50
|
+
fn?: string | number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Transport connection state
|
|
54
|
+
*/
|
|
55
|
+
export type ConnectionState = 'connecting' | 'connected' | 'disconnected' | 'error';
|
|
56
|
+
/**
|
|
57
|
+
* Transport event handlers
|
|
58
|
+
*/
|
|
59
|
+
export interface TransportEvents {
|
|
60
|
+
onMessage?: (message: RPCMessage) => void;
|
|
61
|
+
onStateChange?: (state: ConnectionState) => void;
|
|
62
|
+
onError?: (error: Error) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Base transport interface - implement for different protocols
|
|
66
|
+
*/
|
|
67
|
+
export interface Transport {
|
|
68
|
+
/** Current connection state */
|
|
69
|
+
readonly state: ConnectionState;
|
|
70
|
+
/** Send a message */
|
|
71
|
+
send(message: RPCMessage): void;
|
|
72
|
+
/** Send and wait for response */
|
|
73
|
+
request(message: RPCMessage): Promise<RPCMessage>;
|
|
74
|
+
/** Subscribe to incoming messages */
|
|
75
|
+
subscribe(handler: (message: RPCMessage) => void): () => void;
|
|
76
|
+
/** Close the transport */
|
|
77
|
+
close(): void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Transport that supports streaming
|
|
81
|
+
*/
|
|
82
|
+
export interface StreamingTransport extends Transport {
|
|
83
|
+
/** Create an async iterator for a stream */
|
|
84
|
+
stream<T>(message: RPCMessage): AsyncIterable<T>;
|
|
85
|
+
}
|
|
86
|
+
export interface CallbackOptions {
|
|
87
|
+
/** Time-to-live in milliseconds (default: 300000 = 5 minutes) */
|
|
88
|
+
ttl?: number;
|
|
89
|
+
/** Maximum number of invocations (default: unlimited) */
|
|
90
|
+
maxInvocations?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Registry for tracking callbacks that can be invoked remotely
|
|
94
|
+
*
|
|
95
|
+
* Security features:
|
|
96
|
+
* - Cryptographically random callback IDs
|
|
97
|
+
* - Automatic expiration (TTL)
|
|
98
|
+
* - Invocation limits
|
|
99
|
+
*/
|
|
100
|
+
export declare class CallbackRegistry {
|
|
101
|
+
private callbacks;
|
|
102
|
+
private cleanupInterval;
|
|
103
|
+
private defaultTtl;
|
|
104
|
+
constructor(options?: {
|
|
105
|
+
defaultTtl?: number;
|
|
106
|
+
});
|
|
107
|
+
/**
|
|
108
|
+
* Register a callback and get its ID
|
|
109
|
+
*/
|
|
110
|
+
register(fn: (...args: unknown[]) => unknown, options?: CallbackOptions): string;
|
|
111
|
+
/**
|
|
112
|
+
* Invoke a callback by ID
|
|
113
|
+
*/
|
|
114
|
+
invoke(id: string, args: unknown[]): Promise<unknown>;
|
|
115
|
+
/**
|
|
116
|
+
* Remove a callback
|
|
117
|
+
*/
|
|
118
|
+
unregister(id: string): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Remove expired callbacks
|
|
121
|
+
*/
|
|
122
|
+
cleanup(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Stop the cleanup interval
|
|
125
|
+
*/
|
|
126
|
+
destroy(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Check if a value contains callbacks and serialize them
|
|
129
|
+
*/
|
|
130
|
+
serializeWithCallbacks(value: unknown, options?: CallbackOptions): {
|
|
131
|
+
value: unknown;
|
|
132
|
+
callbacks: Map<string, string>;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface HTTPTransportOptions {
|
|
136
|
+
/** Base URL for RPC endpoint */
|
|
137
|
+
url: string;
|
|
138
|
+
/** Custom headers */
|
|
139
|
+
headers?: Record<string, string>;
|
|
140
|
+
/** Request timeout in ms (default: 30000) */
|
|
141
|
+
timeout?: number;
|
|
142
|
+
/** Batch delay in ms (default: 0 - microtask) */
|
|
143
|
+
batchDelay?: number;
|
|
144
|
+
/** Max requests per batch (default: 100) */
|
|
145
|
+
maxBatchSize?: number;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* HTTP batch transport - groups multiple calls into single requests
|
|
149
|
+
*/
|
|
150
|
+
export declare class HTTPTransport implements Transport {
|
|
151
|
+
private url;
|
|
152
|
+
private headers;
|
|
153
|
+
private timeout;
|
|
154
|
+
private batchDelay;
|
|
155
|
+
private maxBatchSize;
|
|
156
|
+
private pendingRequests;
|
|
157
|
+
private flushScheduled;
|
|
158
|
+
private subscribers;
|
|
159
|
+
private callbackRegistry;
|
|
160
|
+
state: ConnectionState;
|
|
161
|
+
constructor(options: HTTPTransportOptions);
|
|
162
|
+
send(message: RPCMessage): void;
|
|
163
|
+
request(message: RPCMessage): Promise<RPCMessage>;
|
|
164
|
+
private scheduleFlush;
|
|
165
|
+
private flush;
|
|
166
|
+
subscribe(handler: (message: RPCMessage) => void): () => void;
|
|
167
|
+
close(): void;
|
|
168
|
+
}
|
|
169
|
+
export interface WebSocketTransportOptions {
|
|
170
|
+
/** WebSocket URL */
|
|
171
|
+
url: string;
|
|
172
|
+
/** Reconnect on disconnect (default: true) */
|
|
173
|
+
reconnect?: boolean;
|
|
174
|
+
/** Reconnect delay in ms (default: 1000) */
|
|
175
|
+
reconnectDelay?: number;
|
|
176
|
+
/** Max reconnect attempts (default: 10) */
|
|
177
|
+
maxReconnectAttempts?: number;
|
|
178
|
+
/** Ping interval in ms (default: 30000) */
|
|
179
|
+
pingInterval?: number;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* WebSocket transport - persistent connection with bidirectional communication
|
|
183
|
+
*/
|
|
184
|
+
export declare class WebSocketTransport implements StreamingTransport {
|
|
185
|
+
private url;
|
|
186
|
+
private ws;
|
|
187
|
+
private reconnect;
|
|
188
|
+
private reconnectDelay;
|
|
189
|
+
private maxReconnectAttempts;
|
|
190
|
+
private pingInterval;
|
|
191
|
+
private reconnectAttempts;
|
|
192
|
+
private pingTimer;
|
|
193
|
+
private pendingRequests;
|
|
194
|
+
private streamHandlers;
|
|
195
|
+
private subscribers;
|
|
196
|
+
private callbackRegistry;
|
|
197
|
+
state: ConnectionState;
|
|
198
|
+
constructor(options: WebSocketTransportOptions);
|
|
199
|
+
/**
|
|
200
|
+
* Connect to the WebSocket server
|
|
201
|
+
*/
|
|
202
|
+
connect(): Promise<void>;
|
|
203
|
+
private handleMessage;
|
|
204
|
+
private handleCallback;
|
|
205
|
+
private handleDisconnect;
|
|
206
|
+
private startPing;
|
|
207
|
+
private stopPing;
|
|
208
|
+
send(message: RPCMessage): void;
|
|
209
|
+
request(message: RPCMessage): Promise<RPCMessage>;
|
|
210
|
+
/**
|
|
211
|
+
* Create an async iterator for streaming results
|
|
212
|
+
*/
|
|
213
|
+
stream<T>(message: RPCMessage): AsyncIterable<T>;
|
|
214
|
+
subscribe(handler: (message: RPCMessage) => void): () => void;
|
|
215
|
+
close(): void;
|
|
216
|
+
}
|
|
217
|
+
export interface PostMessageTransportOptions {
|
|
218
|
+
/** Target window/worker to communicate with */
|
|
219
|
+
target: Window | Worker | MessagePort;
|
|
220
|
+
/**
|
|
221
|
+
* Origin for window targets.
|
|
222
|
+
* REQUIRED for Window targets - must be explicit origin, not '*'
|
|
223
|
+
* Ignored for Worker/MessagePort targets
|
|
224
|
+
*/
|
|
225
|
+
targetOrigin?: string;
|
|
226
|
+
/**
|
|
227
|
+
* Expected source origin for incoming messages.
|
|
228
|
+
* REQUIRED for Window targets for security.
|
|
229
|
+
* Ignored for Worker/MessagePort targets (they're trusted by definition)
|
|
230
|
+
*/
|
|
231
|
+
sourceOrigin?: string;
|
|
232
|
+
/**
|
|
233
|
+
* Request timeout in milliseconds (default: 30000)
|
|
234
|
+
*/
|
|
235
|
+
timeout?: number;
|
|
236
|
+
/**
|
|
237
|
+
* Maximum pending requests (default: 1000)
|
|
238
|
+
*/
|
|
239
|
+
maxPendingRequests?: number;
|
|
240
|
+
/**
|
|
241
|
+
* Secret key for HMAC message signing (optional)
|
|
242
|
+
* When set, all messages include a signature that's verified on receipt
|
|
243
|
+
*/
|
|
244
|
+
secret?: string;
|
|
245
|
+
/**
|
|
246
|
+
* Allow unsafe '*' origin (default: false)
|
|
247
|
+
* Set to true only for trusted environments like MessageChannel
|
|
248
|
+
*/
|
|
249
|
+
allowUnsafeOrigin?: boolean;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* postMessage transport - for iframe/worker communication
|
|
253
|
+
*
|
|
254
|
+
* Security features:
|
|
255
|
+
* - Mandatory origin validation for Window targets
|
|
256
|
+
* - Message schema validation
|
|
257
|
+
* - Request timeouts
|
|
258
|
+
* - Max pending requests limit
|
|
259
|
+
* - Optional HMAC message signing
|
|
260
|
+
*/
|
|
261
|
+
export declare class PostMessageTransport implements Transport {
|
|
262
|
+
private target;
|
|
263
|
+
private targetOrigin;
|
|
264
|
+
private sourceOrigin?;
|
|
265
|
+
private isWindowTarget;
|
|
266
|
+
private timeout;
|
|
267
|
+
private maxPendingRequests;
|
|
268
|
+
private secret?;
|
|
269
|
+
private pendingRequests;
|
|
270
|
+
private subscribers;
|
|
271
|
+
private callbackRegistry;
|
|
272
|
+
private messageHandler;
|
|
273
|
+
state: ConnectionState;
|
|
274
|
+
constructor(options: PostMessageTransportOptions);
|
|
275
|
+
private handleMessage;
|
|
276
|
+
private handleCallback;
|
|
277
|
+
/**
|
|
278
|
+
* Sign a message with HMAC-SHA256
|
|
279
|
+
*/
|
|
280
|
+
private signMessage;
|
|
281
|
+
/**
|
|
282
|
+
* Verify message signature
|
|
283
|
+
*/
|
|
284
|
+
private verifySignature;
|
|
285
|
+
send(message: RPCMessage): void;
|
|
286
|
+
request(message: RPCMessage): Promise<RPCMessage>;
|
|
287
|
+
subscribe(handler: (message: RPCMessage) => void): () => void;
|
|
288
|
+
close(): void;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Create an HTTP transport
|
|
292
|
+
*/
|
|
293
|
+
export declare function createHTTPTransport(options: HTTPTransportOptions): HTTPTransport;
|
|
294
|
+
/**
|
|
295
|
+
* Create a WebSocket transport
|
|
296
|
+
*/
|
|
297
|
+
export declare function createWebSocketTransport(options: WebSocketTransportOptions): WebSocketTransport;
|
|
298
|
+
/**
|
|
299
|
+
* Create a postMessage transport
|
|
300
|
+
*/
|
|
301
|
+
export declare function createPostMessageTransport(options: PostMessageTransportOptions): PostMessageTransport;
|
|
302
|
+
/**
|
|
303
|
+
* Generate a unique message ID
|
|
304
|
+
*/
|
|
305
|
+
export declare function generateMessageId(): string;
|
|
306
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/rpc/transport.ts"],"names":[],"mappings":"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"}
|