@agentuity/frontend 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.
Files changed (44) hide show
  1. package/AGENTS.md +7 -31
  2. package/dist/beacon-script.js +1 -1
  3. package/dist/beacon.js +1 -1
  4. package/dist/dev-ws.d.ts +11 -0
  5. package/dist/dev-ws.d.ts.map +1 -0
  6. package/dist/dev-ws.js +34 -0
  7. package/dist/dev-ws.js.map +1 -0
  8. package/dist/index.d.ts +1 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -2
  11. package/dist/index.js.map +1 -1
  12. package/package.json +3 -3
  13. package/src/dev-ws.ts +33 -0
  14. package/src/index.ts +1 -18
  15. package/dist/client/eventstream.d.ts +0 -12
  16. package/dist/client/eventstream.d.ts.map +0 -1
  17. package/dist/client/eventstream.js +0 -39
  18. package/dist/client/eventstream.js.map +0 -1
  19. package/dist/client/index.d.ts +0 -33
  20. package/dist/client/index.d.ts.map +0 -1
  21. package/dist/client/index.js +0 -230
  22. package/dist/client/index.js.map +0 -1
  23. package/dist/client/stream.d.ts +0 -6
  24. package/dist/client/stream.d.ts.map +0 -1
  25. package/dist/client/stream.js +0 -49
  26. package/dist/client/stream.js.map +0 -1
  27. package/dist/client/types.d.ts +0 -168
  28. package/dist/client/types.d.ts.map +0 -1
  29. package/dist/client/types.js +0 -5
  30. package/dist/client/types.js.map +0 -1
  31. package/dist/client/websocket.d.ts +0 -6
  32. package/dist/client/websocket.d.ts.map +0 -1
  33. package/dist/client/websocket.js +0 -49
  34. package/dist/client/websocket.js.map +0 -1
  35. package/dist/types.d.ts +0 -42
  36. package/dist/types.d.ts.map +0 -1
  37. package/dist/types.js +0 -2
  38. package/dist/types.js.map +0 -1
  39. package/src/client/eventstream.ts +0 -52
  40. package/src/client/index.ts +0 -267
  41. package/src/client/stream.ts +0 -61
  42. package/src/client/types.ts +0 -237
  43. package/src/client/websocket.ts +0 -61
  44. package/src/types.ts +0 -56
@@ -1,230 +0,0 @@
1
- import { createWebSocketClient } from './websocket';
2
- import { createEventStreamClient } from './eventstream';
3
- import { createStreamClient } from './stream';
4
- /**
5
- * Default base URL (empty = relative URLs).
6
- */
7
- const defaultBaseUrl = '';
8
- /**
9
- * Resolve baseUrl - if it's a function, call it; otherwise return the string.
10
- */
11
- function resolveBaseUrl(baseUrl) {
12
- return typeof baseUrl === 'function' ? baseUrl() : baseUrl;
13
- }
14
- /**
15
- * Resolve headers - if it's a function, call it; otherwise return the object.
16
- */
17
- function resolveHeaders(headers) {
18
- return typeof headers === 'function' ? headers() : headers;
19
- }
20
- /**
21
- * Escape special regex characters in a string.
22
- */
23
- function escapeRegExp(str) {
24
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
25
- }
26
- /**
27
- * Substitute path parameters in a URL path template.
28
- * E.g., '/api/users/:id' with { id: '123' } becomes '/api/users/123'
29
- */
30
- function substitutePathParams(pathTemplate, pathParams) {
31
- if (!pathParams)
32
- return pathTemplate;
33
- let result = pathTemplate;
34
- for (const [key, value] of Object.entries(pathParams)) {
35
- const escapedKey = escapeRegExp(key);
36
- result = result.replace(new RegExp(`:${escapedKey}\\??`, 'g'), encodeURIComponent(value));
37
- result = result.replace(new RegExp(`\\*${escapedKey}`, 'g'), encodeURIComponent(value));
38
- }
39
- return result;
40
- }
41
- /**
42
- * Build URL with query params.
43
- */
44
- function buildUrlWithQuery(baseUrl, path, query) {
45
- const url = `${baseUrl}${path}`;
46
- if (!query || Object.keys(query).length === 0)
47
- return url;
48
- const params = new URLSearchParams(query);
49
- return `${url}?${params.toString()}`;
50
- }
51
- /**
52
- * Create a type-safe API client from a RouteRegistry.
53
- *
54
- * Uses a Proxy to build up the path as you navigate the object,
55
- * then executes the request when you call a terminal method (.post(), .get(), .websocket(), etc.).
56
- *
57
- * @example
58
- * ```typescript
59
- * import { createClient } from '@agentuity/frontend';
60
- * import type { RPCRouteRegistry } from './generated/routes';
61
- *
62
- * const client = createClient<RPCRouteRegistry>();
63
- *
64
- * // Type-safe API call
65
- * const result = await client.hello.post({ name: 'World' });
66
- *
67
- * // WebSocket
68
- * const ws = client.chat.websocket();
69
- * ws.on('message', (msg) => console.log(msg));
70
- *
71
- * // Server-Sent Events
72
- * const es = client.events.eventstream();
73
- * es.on('message', (event) => console.log(event.data));
74
- *
75
- * // Streaming response
76
- * const stream = await client.data.stream({ query: 'foo' });
77
- * stream.on('chunk', (chunk) => console.log(chunk));
78
- * ```
79
- */
80
- export function createClient(options = {}, metadata) {
81
- const { baseUrl = defaultBaseUrl, headers, contentType = 'application/json', signal } = options;
82
- // Default headers to empty object if not provided
83
- const defaultHeaders = headers || {};
84
- const handler = {
85
- get(target, prop) {
86
- const currentPath = target.__path;
87
- const newPath = [...currentPath, prop];
88
- // Check if this is a terminal method
89
- const httpMethods = ['get', 'post', 'put', 'delete', 'patch', 'head', 'options'];
90
- const streamMethods = ['websocket', 'eventstream', 'stream'];
91
- const isHttpMethod = httpMethods.includes(prop);
92
- const isStreamMethod = streamMethods.includes(prop);
93
- const isTerminalMethod = isHttpMethod || isStreamMethod;
94
- // Terminal: method at the end (minimum 1 path segment required)
95
- // Examples: client.hello.post(), client.echo.websocket(), client.events.eventstream()
96
- if (isTerminalMethod && currentPath.length >= 1) {
97
- const method = prop;
98
- const pathSegments = currentPath;
99
- // Look up route metadata
100
- let routeType = 'api';
101
- let routePath;
102
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
103
- let metaNode = metadata;
104
- if (isStreamMethod) {
105
- // Stream methods directly specify the route type
106
- if (method === 'websocket')
107
- routeType = 'websocket';
108
- else if (method === 'eventstream')
109
- routeType = 'sse';
110
- else if (method === 'stream')
111
- routeType = 'stream';
112
- }
113
- if (metadata) {
114
- for (const segment of pathSegments) {
115
- if (metaNode && typeof metaNode === 'object') {
116
- metaNode = metaNode[segment];
117
- }
118
- }
119
- if (metaNode && typeof metaNode === 'object' && metaNode[method]) {
120
- if (metaNode[method].type) {
121
- routeType = metaNode[method].type;
122
- }
123
- if (metaNode[method].path) {
124
- routePath = metaNode[method].path;
125
- }
126
- }
127
- }
128
- // Fallback URL path if no metadata
129
- const fallbackPath = '/api/' + pathSegments.join('/');
130
- return (...args) => {
131
- const resolvedBaseUrl = resolveBaseUrl(baseUrl);
132
- const resolvedHeaders = resolveHeaders(defaultHeaders);
133
- // Get path param names from metadata if available
134
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
- const pathParamNames = metaNode?.[method]?.pathParams;
136
- const hasPathParams = pathParamNames && pathParamNames.length > 0;
137
- let pathParams;
138
- let input;
139
- let query;
140
- if (hasPathParams) {
141
- // Route has path params - positional arguments API
142
- // Args are: param1, param2, ..., [options?]
143
- // Example: client.user.get('123', 12) or client.user.get('123', 12, { query: {...} })
144
- pathParams = {};
145
- for (let i = 0; i < pathParamNames.length; i++) {
146
- const paramName = pathParamNames[i];
147
- if (paramName === undefined)
148
- continue;
149
- const arg = args[i];
150
- if (arg === undefined || arg === null) {
151
- throw new Error(`Missing required path parameter '${paramName}' at position ${i + 1}. ` +
152
- `Expected ${pathParamNames.length} path parameter(s): ${pathParamNames.join(', ')}`);
153
- }
154
- pathParams[paramName] = String(arg);
155
- }
156
- // Check if there's an options object after the path params
157
- const optionsArg = args[pathParamNames.length];
158
- if (optionsArg && typeof optionsArg === 'object') {
159
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
160
- const opts = optionsArg;
161
- input = opts.input;
162
- query = opts.query;
163
- }
164
- }
165
- else {
166
- // No path params - use existing behavior
167
- const options = args[0];
168
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
169
- const opts = options;
170
- const isOptionsObject = opts && typeof opts === 'object' && ('input' in opts || 'query' in opts);
171
- input = isOptionsObject ? opts.input : options;
172
- query = isOptionsObject ? opts.query : undefined;
173
- }
174
- // Substitute path params in the route path
175
- const basePath = routePath || fallbackPath;
176
- const urlPath = substitutePathParams(basePath, pathParams);
177
- // WebSocket endpoint
178
- if (routeType === 'websocket') {
179
- const wsBaseUrl = resolvedBaseUrl.replace(/^http/, 'ws');
180
- const wsUrl = buildUrlWithQuery(wsBaseUrl, urlPath, query);
181
- const ws = createWebSocketClient(wsUrl);
182
- if (input) {
183
- ws.on('open', () => ws.send(input));
184
- }
185
- return ws;
186
- }
187
- // SSE endpoint
188
- if (routeType === 'sse') {
189
- const sseUrl = buildUrlWithQuery(resolvedBaseUrl, urlPath, query);
190
- return createEventStreamClient(sseUrl, {
191
- withCredentials: Object.keys(resolvedHeaders).length > 0,
192
- });
193
- }
194
- // Stream endpoint
195
- if (routeType === 'stream') {
196
- const streamUrl = buildUrlWithQuery(resolvedBaseUrl, urlPath, query);
197
- return fetch(streamUrl, {
198
- method: method.toUpperCase(),
199
- headers: { 'Content-Type': contentType, ...resolvedHeaders },
200
- body: input ? JSON.stringify(input) : undefined,
201
- signal,
202
- }).then((res) => {
203
- if (!res.ok)
204
- throw new Error(`HTTP ${res.status}: ${res.statusText}`);
205
- return createStreamClient(res);
206
- });
207
- }
208
- // Regular API endpoint
209
- const apiUrl = buildUrlWithQuery(resolvedBaseUrl, urlPath, query);
210
- return fetch(apiUrl, {
211
- method: method.toUpperCase(),
212
- headers: { 'Content-Type': contentType, ...resolvedHeaders },
213
- body: method.toUpperCase() !== 'GET' && input ? JSON.stringify(input) : undefined,
214
- signal,
215
- }).then(async (res) => {
216
- if (!res.ok)
217
- throw new Error(`HTTP ${res.status}: ${res.statusText}`);
218
- if (res.status === 204)
219
- return undefined;
220
- return res.json();
221
- });
222
- };
223
- }
224
- // Otherwise, return a new proxy with extended path
225
- return new Proxy({ __path: newPath }, handler);
226
- },
227
- };
228
- return new Proxy({ __path: [] }, handler);
229
- }
230
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { StreamClient } from './types';
2
- /**
3
- * Create a streaming response reader with event-based API.
4
- */
5
- export declare function createStreamClient(response: Response): StreamClient;
6
- //# sourceMappingURL=stream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/client/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAuDnE"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Create a streaming response reader with event-based API.
3
- */
4
- export function createStreamClient(response) {
5
- const handlers = {
6
- chunk: new Set(),
7
- close: new Set(),
8
- error: new Set(),
9
- };
10
- const reader = response.body?.getReader();
11
- let cancelled = false;
12
- // Start reading the stream
13
- const readStream = async () => {
14
- if (!reader) {
15
- const error = new Error('Response body is not readable');
16
- handlers.error.forEach((handler) => handler(error));
17
- return;
18
- }
19
- try {
20
- while (!cancelled) {
21
- const { done, value } = await reader.read();
22
- if (done) {
23
- handlers.close.forEach((handler) => handler());
24
- break;
25
- }
26
- if (value) {
27
- handlers.chunk.forEach((handler) => handler(value));
28
- }
29
- }
30
- }
31
- catch (error) {
32
- const err = error instanceof Error ? error : new Error(String(error));
33
- handlers.error.forEach((handler) => handler(err));
34
- }
35
- };
36
- // Start reading immediately
37
- readStream();
38
- return {
39
- on: ((event, handler) => {
40
- handlers[event].add(handler);
41
- }),
42
- async cancel() {
43
- cancelled = true;
44
- await reader?.cancel();
45
- handlers.close.forEach((handler) => handler());
46
- },
47
- };
48
- }
49
- //# sourceMappingURL=stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/client/stream.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACpD,MAAM,QAAQ,GAIV;QACH,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,KAAK,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,2BAA2B;IAC3B,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACzD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/C,MAAM;gBACP,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBACX,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;IACF,CAAC,CAAC;IAEF,4BAA4B;IAC5B,UAAU,EAAE,CAAC;IAEb,OAAO;QACN,EAAE,EAAE,CAAC,CAAC,KAAkC,EAAE,OAAqB,EAAE,EAAE;YAClE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAkD,CAAC,CAAC;QACzE,CAAC,CAAuB;QAExB,KAAK,CAAC,MAAM;YACX,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,168 +0,0 @@
1
- /**
2
- * Type-safe API client types for RPC-style invocations.
3
- */
4
- /**
5
- * Options for creating a client.
6
- */
7
- export interface ClientOptions {
8
- /**
9
- * Base URL for API requests (e.g., "https://p1234567890.agenuity.run").
10
- * Defaults to empty string (relative URLs).
11
- * Can be a string or a function that returns a string for lazy resolution.
12
- */
13
- baseUrl?: string | (() => string);
14
- /**
15
- * Default headers to include in all requests.
16
- * Can be a static object or a function that returns headers for dynamic resolution (e.g., auth tokens).
17
- */
18
- headers?: Record<string, string> | (() => Record<string, string>);
19
- /**
20
- * Content-Type header for request bodies.
21
- * @default "application/json"
22
- */
23
- contentType?: string;
24
- /**
25
- * AbortSignal for request cancellation.
26
- */
27
- signal?: AbortSignal;
28
- }
29
- /**
30
- * Event handler for streaming responses.
31
- */
32
- export type EventHandler<T = unknown> = (data: T) => void;
33
- /**
34
- * WebSocket wrapper with event-based API.
35
- */
36
- export interface WebSocketClient {
37
- /**
38
- * Register an event handler.
39
- */
40
- on: {
41
- (event: 'message', handler: EventHandler<unknown>): void;
42
- (event: 'open', handler: EventHandler<Event>): void;
43
- (event: 'close', handler: EventHandler<CloseEvent>): void;
44
- (event: 'error', handler: EventHandler<Event>): void;
45
- };
46
- /**
47
- * Send data through the WebSocket.
48
- */
49
- send(data: unknown): void;
50
- /**
51
- * Close the WebSocket connection.
52
- */
53
- close(code?: number, reason?: string): void;
54
- }
55
- /**
56
- * Server-Sent Events (SSE) client with event-based API.
57
- */
58
- export interface EventStreamClient {
59
- /**
60
- * Register an event handler.
61
- */
62
- on: {
63
- (event: 'message', handler: EventHandler<MessageEvent>): void;
64
- (event: 'open', handler: EventHandler<Event>): void;
65
- (event: 'error', handler: EventHandler<Event>): void;
66
- };
67
- /**
68
- * Close the EventSource connection.
69
- */
70
- close(): void;
71
- }
72
- /**
73
- * Streaming response reader with event-based API.
74
- */
75
- export interface StreamClient {
76
- /**
77
- * Register an event handler.
78
- */
79
- on: {
80
- (event: 'chunk', handler: EventHandler<Uint8Array>): void;
81
- (event: 'close', handler: EventHandler<void>): void;
82
- (event: 'error', handler: EventHandler<Error>): void;
83
- };
84
- /**
85
- * Cancel the stream.
86
- */
87
- cancel(): Promise<void>;
88
- }
89
- /**
90
- * Options object for endpoints without path params (optional query support).
91
- */
92
- export interface EndpointOptionsWithQuery<Input = unknown, Query = Record<string, string>> {
93
- input?: Input;
94
- query?: Query;
95
- }
96
- /**
97
- * Additional options that can be passed after positional path params.
98
- */
99
- export interface EndpointExtraOptions<Input = unknown, Query = Record<string, string>> {
100
- input?: Input;
101
- query?: Query;
102
- }
103
- /**
104
- * Convert a path params object to a tuple of its value types.
105
- * Used for positional argument typing.
106
- * Note: For proper ordering, we rely on the generated PathParamsTuple type.
107
- */
108
- export type PathParamsToTuple<P> = P extends readonly [infer First, ...infer Rest] ? [First, ...PathParamsToTuple<Rest>] : P extends readonly [] ? [] : string[];
109
- /**
110
- * API endpoint - callable function for regular HTTP calls.
111
- * - Without path params: accepts input directly OR options object with query
112
- * - With path params: accepts positional arguments followed by optional options object
113
- *
114
- * @example
115
- * // No path params
116
- * client.hello.post({ name: 'World' })
117
- *
118
- * // Single path param
119
- * client.users.userId.get('123')
120
- *
121
- * // Multiple path params
122
- * client.orgs.orgId.members.memberId.get('org-1', 'user-2')
123
- *
124
- * // With additional options
125
- * client.users.userId.get('123', { query: { include: 'posts' } })
126
- */
127
- export type APIEndpoint<Input = unknown, Output = unknown, PathParams = never, PathParamsTuple extends unknown[] = string[]> = [PathParams] extends [never] ? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => Promise<Output> : (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => Promise<Output>;
128
- /**
129
- * WebSocket endpoint - callable function that returns WebSocket client.
130
- */
131
- export type WebSocketEndpoint<Input = unknown, _Output = unknown, PathParams = never, PathParamsTuple extends unknown[] = string[]> = [PathParams] extends [never] ? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => WebSocketClient : (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => WebSocketClient;
132
- /**
133
- * Server-Sent Events endpoint - callable function that returns EventStream client.
134
- */
135
- export type SSEEndpoint<Input = unknown, _Output = unknown, PathParams = never, PathParamsTuple extends unknown[] = string[]> = [PathParams] extends [never] ? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => EventStreamClient : (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => EventStreamClient;
136
- /**
137
- * Streaming endpoint - callable function that returns Stream client.
138
- */
139
- export type StreamEndpoint<Input = unknown, _Output = unknown, PathParams = never, PathParamsTuple extends unknown[] = string[]> = [PathParams] extends [never] ? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => StreamClient : (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => StreamClient;
140
- /**
141
- * Route endpoint - discriminated union based on route type.
142
- */
143
- export type RouteEndpoint<Input = unknown, Output = unknown, Type extends string = 'api', PathParams = never, PathParamsTuple extends unknown[] = []> = Type extends 'websocket' ? WebSocketEndpoint<Input, Output, PathParams, PathParamsTuple> : Type extends 'sse' ? SSEEndpoint<Input, Output, PathParams, PathParamsTuple> : Type extends 'stream' ? StreamEndpoint<Input, Output, PathParams, PathParamsTuple> : APIEndpoint<Input, Output, PathParams, PathParamsTuple>;
144
- /**
145
- * Recursively build the client proxy type from a RouteRegistry.
146
- */
147
- export type Client<R> = {
148
- [K in keyof R]: R[K] extends {
149
- input: infer I;
150
- output: infer O;
151
- type: infer T;
152
- params: infer P;
153
- paramsTuple: infer PT;
154
- } ? PT extends unknown[] ? RouteEndpoint<I, O, T extends string ? T : 'api', P, PT> : RouteEndpoint<I, O, T extends string ? T : 'api', P> : R[K] extends {
155
- input: infer I;
156
- output: infer O;
157
- type: infer T;
158
- params: infer P;
159
- } ? RouteEndpoint<I, O, T extends string ? T : 'api', P> : R[K] extends {
160
- input: infer I;
161
- output: infer O;
162
- type: infer T;
163
- } ? RouteEndpoint<I, O, T extends string ? T : 'api'> : R[K] extends {
164
- input: infer I;
165
- output: infer O;
166
- } ? RouteEndpoint<I, O, 'api'> : R[K] extends object ? Client<R[K]> : never;
167
- };
168
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Type-safe API client types for RPC-style invocations.
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,6 +0,0 @@
1
- import type { WebSocketClient } from './types';
2
- /**
3
- * Create a WebSocket client wrapper with event-based API.
4
- */
5
- export declare function createWebSocketClient(url: string, protocols?: string | string[]): WebSocketClient;
6
- //# sourceMappingURL=websocket.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/client/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,SAAS,CAAC;AAE7D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,CAuDjG"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Create a WebSocket client wrapper with event-based API.
3
- */
4
- export function createWebSocketClient(url, protocols) {
5
- const ws = new WebSocket(url, protocols);
6
- const handlers = {
7
- message: new Set(),
8
- open: new Set(),
9
- close: new Set(),
10
- error: new Set(),
11
- };
12
- // Set up native WebSocket event listeners
13
- ws.addEventListener('message', (event) => {
14
- let data = event.data;
15
- // Try to parse JSON if data is a string
16
- if (typeof event.data === 'string') {
17
- try {
18
- data = JSON.parse(event.data);
19
- }
20
- catch {
21
- // Keep as string if not valid JSON
22
- data = event.data;
23
- }
24
- }
25
- handlers.message.forEach((handler) => handler(data));
26
- });
27
- ws.addEventListener('open', (event) => {
28
- handlers.open.forEach((handler) => handler(event));
29
- });
30
- ws.addEventListener('close', (event) => {
31
- handlers.close.forEach((handler) => handler(event));
32
- });
33
- ws.addEventListener('error', (event) => {
34
- handlers.error.forEach((handler) => handler(event));
35
- });
36
- return {
37
- on: ((event, handler) => {
38
- handlers[event].add(handler);
39
- }),
40
- send(data) {
41
- const payload = typeof data === 'string' ? data : JSON.stringify(data);
42
- ws.send(payload);
43
- },
44
- close(code, reason) {
45
- ws.close(code, reason);
46
- },
47
- };
48
- }
49
- //# sourceMappingURL=websocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/client/websocket.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,SAA6B;IAC/E,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,QAAQ,GAKV;QACH,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,IAAI,EAAE,IAAI,GAAG,EAAE;QACf,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,KAAK,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;IAEF,0CAA0C;IAC1C,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAmB,EAAE,EAAE;QACtD,IAAI,IAAI,GAAY,KAAK,CAAC,IAAI,CAAC;QAC/B,wCAAwC;QACxC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACnB,CAAC;QACF,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE;QAC5C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QAClD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QAC7C,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,EAAE,EAAE,CAAC,CAAC,KAA6C,EAAE,OAAqB,EAAE,EAAE;YAC7E,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAqD,CAAC,CAAC;QAC5E,CAAC,CAA0B;QAE3B,IAAI,CAAC,IAAa;YACjB,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,IAAa,EAAE,MAAe;YACnC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;KACD,CAAC;AACH,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,42 +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
- * @remarks
6
- * This interface is augmented by generated code via `declare module '@agentuity/frontend'`.
7
- * The augmentation provides type-safe routing for useAPI and other hooks.
8
- */
9
- export interface RouteRegistry {
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
- * @remarks
16
- * This interface is augmented by generated code via `declare module '@agentuity/frontend'`.
17
- * The augmentation provides type-safe routing for useWebsocket and other hooks.
18
- */
19
- export interface WebSocketRouteRegistry {
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
- * @remarks
26
- * This interface is augmented by generated code via `declare module '@agentuity/frontend'`.
27
- * The augmentation provides type-safe routing for useEventStream and other hooks.
28
- */
29
- export interface SSERouteRegistry {
30
- }
31
- /**
32
- * RPC route registry containing all typed RPC routes in the application.
33
- * Used by createClient() and createAPIClient() for type-safe RPC-style API calls.
34
- * Auto-generated by the build tool from route discovery.
35
- *
36
- * @remarks
37
- * This interface is augmented by generated code via `declare module '@agentuity/frontend'`.
38
- * The augmentation provides type-safe routing for createClient and createAPIClient.
39
- */
40
- export interface RPCRouteRegistry {
41
- }
42
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;CAG7B;AAED;;;;;;;GAOG;AAEH,MAAM,WAAW,sBAAsB;CAGtC;AAED;;;;;;;GAOG;AAEH,MAAM,WAAW,gBAAgB;CAGhC;AAED;;;;;;;;GAQG;AAEH,MAAM,WAAW,gBAAgB;CAGhC"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}