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.
@@ -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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"}