@reminix/runtime 0.0.1

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,227 @@
1
+ /**
2
+ * Base agent and adapter interface.
3
+ */
4
+ import type { InvokeRequest, InvokeResponse, ChatRequest, ChatResponse } from '../types.js';
5
+ /**
6
+ * Web-standard fetch handler type.
7
+ */
8
+ export type FetchHandler = (request: Request) => Promise<Response>;
9
+ /**
10
+ * Metadata returned by agents for discovery.
11
+ */
12
+ export interface AgentMetadata {
13
+ type: 'agent' | 'adapter';
14
+ adapter?: string;
15
+ [key: string]: unknown;
16
+ }
17
+ /**
18
+ * Handler type for invoke requests.
19
+ */
20
+ export type InvokeHandler = (request: InvokeRequest) => Promise<InvokeResponse>;
21
+ /**
22
+ * Handler type for chat requests.
23
+ */
24
+ export type ChatHandler = (request: ChatRequest) => Promise<ChatResponse>;
25
+ /**
26
+ * Handler type for streaming invoke requests.
27
+ */
28
+ export type InvokeStreamHandler = (request: InvokeRequest) => AsyncGenerator<string, void, unknown>;
29
+ /**
30
+ * Handler type for streaming chat requests.
31
+ */
32
+ export type ChatStreamHandler = (request: ChatRequest) => AsyncGenerator<string, void, unknown>;
33
+ /**
34
+ * Abstract base class defining the agent interface.
35
+ *
36
+ * This is the core contract that all agents must fulfill.
37
+ * Use `Agent` for callback-based registration or extend
38
+ * `BaseAdapter` for framework adapters.
39
+ */
40
+ export declare abstract class AgentBase {
41
+ /**
42
+ * Whether invoke supports streaming. Override to enable.
43
+ */
44
+ get invokeStreaming(): boolean;
45
+ /**
46
+ * Whether chat supports streaming. Override to enable.
47
+ */
48
+ get chatStreaming(): boolean;
49
+ /**
50
+ * Return the agent name.
51
+ */
52
+ abstract get name(): string;
53
+ /**
54
+ * Return agent metadata for discovery.
55
+ * Override this to provide custom metadata.
56
+ */
57
+ get metadata(): AgentMetadata;
58
+ /**
59
+ * Handle an invoke request.
60
+ */
61
+ abstract invoke(request: InvokeRequest): Promise<InvokeResponse>;
62
+ /**
63
+ * Handle a chat request.
64
+ */
65
+ abstract chat(request: ChatRequest): Promise<ChatResponse>;
66
+ /**
67
+ * Handle a streaming invoke request.
68
+ */
69
+ invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
70
+ /**
71
+ * Handle a streaming chat request.
72
+ */
73
+ chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
74
+ /**
75
+ * Create a web-standard fetch handler for this agent.
76
+ *
77
+ * Works with Vercel Edge Functions, Cloudflare Workers, Deno Deploy, Bun,
78
+ * and any platform supporting the Fetch API.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Vercel Edge Function
83
+ * const agent = new Agent('my-agent');
84
+ * agent.onInvoke(async (req) => ({ output: 'Hello!' }));
85
+ * export default agent.toHandler();
86
+ *
87
+ * // Cloudflare Worker
88
+ * export default { fetch: agent.toHandler() };
89
+ * ```
90
+ */
91
+ toHandler(): FetchHandler;
92
+ }
93
+ /**
94
+ * Concrete agent with callback-based handler registration.
95
+ *
96
+ * Use this class to create custom agents by registering handlers:
97
+ *
98
+ * ```typescript
99
+ * const agent = new Agent('my-agent');
100
+ *
101
+ * agent.onInvoke(async (request) => {
102
+ * return { output: 'Hello!' };
103
+ * });
104
+ *
105
+ * agent.onChat(async (request) => {
106
+ * return { output: 'Hi!', messages: [...] };
107
+ * });
108
+ *
109
+ * serve([agent], { port: 8080 });
110
+ * ```
111
+ */
112
+ export declare class Agent extends AgentBase {
113
+ private readonly _name;
114
+ private readonly _metadata;
115
+ private _invokeHandler;
116
+ private _chatHandler;
117
+ private _invokeStreamHandler;
118
+ private _chatStreamHandler;
119
+ /**
120
+ * Create a new agent.
121
+ *
122
+ * @param name - The agent name (used in URLs like /agents/{name}/invoke)
123
+ * @param options - Optional configuration
124
+ */
125
+ constructor(name: string, options?: {
126
+ metadata?: Record<string, unknown>;
127
+ });
128
+ /**
129
+ * Return the agent name.
130
+ */
131
+ get name(): string;
132
+ /**
133
+ * Return agent metadata for discovery.
134
+ */
135
+ get metadata(): AgentMetadata;
136
+ /**
137
+ * Whether invoke supports streaming.
138
+ */
139
+ get invokeStreaming(): boolean;
140
+ /**
141
+ * Whether chat supports streaming.
142
+ */
143
+ get chatStreaming(): boolean;
144
+ /**
145
+ * Register an invoke handler.
146
+ *
147
+ * @example
148
+ * agent.onInvoke(async (request) => {
149
+ * return { output: 'Hello!' };
150
+ * });
151
+ */
152
+ onInvoke(handler: InvokeHandler): this;
153
+ /**
154
+ * Register a chat handler.
155
+ *
156
+ * @example
157
+ * agent.onChat(async (request) => {
158
+ * return { output: 'Hi!', messages: [...] };
159
+ * });
160
+ */
161
+ onChat(handler: ChatHandler): this;
162
+ /**
163
+ * Register a streaming invoke handler.
164
+ *
165
+ * @example
166
+ * agent.onInvokeStream(async function* (request) {
167
+ * yield '{"chunk": "Hello"}';
168
+ * yield '{"chunk": " world!"}';
169
+ * });
170
+ */
171
+ onInvokeStream(handler: InvokeStreamHandler): this;
172
+ /**
173
+ * Register a streaming chat handler.
174
+ *
175
+ * @example
176
+ * agent.onChatStream(async function* (request) {
177
+ * yield '{"chunk": "Hi"}';
178
+ * });
179
+ */
180
+ onChatStream(handler: ChatStreamHandler): this;
181
+ /**
182
+ * Handle an invoke request.
183
+ */
184
+ invoke(request: InvokeRequest): Promise<InvokeResponse>;
185
+ /**
186
+ * Handle a chat request.
187
+ */
188
+ chat(request: ChatRequest): Promise<ChatResponse>;
189
+ /**
190
+ * Handle a streaming invoke request.
191
+ */
192
+ invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
193
+ /**
194
+ * Handle a streaming chat request.
195
+ */
196
+ chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
197
+ }
198
+ /**
199
+ * Base class for framework adapters.
200
+ *
201
+ * Extend this class when wrapping an existing AI framework
202
+ * (e.g., LangChain, OpenAI, Anthropic).
203
+ */
204
+ export declare abstract class BaseAdapter extends AgentBase {
205
+ /**
206
+ * The adapter name. Subclasses should override this.
207
+ */
208
+ static adapterName: string;
209
+ /**
210
+ * All built-in adapters support streaming.
211
+ */
212
+ get invokeStreaming(): boolean;
213
+ get chatStreaming(): boolean;
214
+ /**
215
+ * Return adapter metadata for discovery.
216
+ */
217
+ get metadata(): AgentMetadata;
218
+ /**
219
+ * Handle a streaming invoke request.
220
+ */
221
+ invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
222
+ /**
223
+ * Handle a streaming chat request.
224
+ */
225
+ chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
226
+ }
227
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Base agent and adapter interface.
3
+ */
4
+ import { VERSION } from '../version.js';
5
+ /**
6
+ * Abstract base class defining the agent interface.
7
+ *
8
+ * This is the core contract that all agents must fulfill.
9
+ * Use `Agent` for callback-based registration or extend
10
+ * `BaseAdapter` for framework adapters.
11
+ */
12
+ export class AgentBase {
13
+ /**
14
+ * Whether invoke supports streaming. Override to enable.
15
+ */
16
+ get invokeStreaming() {
17
+ return false;
18
+ }
19
+ /**
20
+ * Whether chat supports streaming. Override to enable.
21
+ */
22
+ get chatStreaming() {
23
+ return false;
24
+ }
25
+ /**
26
+ * Return agent metadata for discovery.
27
+ * Override this to provide custom metadata.
28
+ */
29
+ get metadata() {
30
+ return { type: 'agent' };
31
+ }
32
+ /**
33
+ * Handle a streaming invoke request.
34
+ */
35
+ async *invokeStream(request) {
36
+ throw new Error('Streaming not implemented for this agent');
37
+ }
38
+ /**
39
+ * Handle a streaming chat request.
40
+ */
41
+ async *chatStream(request) {
42
+ throw new Error('Streaming not implemented for this agent');
43
+ }
44
+ /**
45
+ * Create a web-standard fetch handler for this agent.
46
+ *
47
+ * Works with Vercel Edge Functions, Cloudflare Workers, Deno Deploy, Bun,
48
+ * and any platform supporting the Fetch API.
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Vercel Edge Function
53
+ * const agent = new Agent('my-agent');
54
+ * agent.onInvoke(async (req) => ({ output: 'Hello!' }));
55
+ * export default agent.toHandler();
56
+ *
57
+ * // Cloudflare Worker
58
+ * export default { fetch: agent.toHandler() };
59
+ * ```
60
+ */
61
+ toHandler() {
62
+ const agent = this;
63
+ return async (request) => {
64
+ const url = new URL(request.url);
65
+ const path = url.pathname;
66
+ const method = request.method;
67
+ // CORS headers
68
+ const corsHeaders = {
69
+ 'Access-Control-Allow-Origin': '*',
70
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
71
+ 'Access-Control-Allow-Headers': 'Content-Type',
72
+ };
73
+ // Handle CORS preflight
74
+ if (method === 'OPTIONS') {
75
+ return new Response(null, { status: 204, headers: corsHeaders });
76
+ }
77
+ try {
78
+ // GET /health
79
+ if (method === 'GET' && path === '/health') {
80
+ return Response.json({ status: 'ok' }, { headers: corsHeaders });
81
+ }
82
+ // GET /info
83
+ if (method === 'GET' && path === '/info') {
84
+ return Response.json({
85
+ runtime: {
86
+ name: 'reminix-runtime',
87
+ version: VERSION,
88
+ language: 'typescript',
89
+ framework: 'fetch',
90
+ },
91
+ agents: [
92
+ {
93
+ name: agent.name,
94
+ ...agent.metadata,
95
+ invoke: { streaming: agent.invokeStreaming },
96
+ chat: { streaming: agent.chatStreaming },
97
+ },
98
+ ],
99
+ }, { headers: corsHeaders });
100
+ }
101
+ // POST /agents/{name}/invoke
102
+ const invokeMatch = path.match(/^\/agents\/([^/]+)\/invoke$/);
103
+ if (method === 'POST' && invokeMatch) {
104
+ const agentName = invokeMatch[1];
105
+ if (agentName !== agent.name) {
106
+ return Response.json({ error: `Agent '${agentName}' not found` }, { status: 404, headers: corsHeaders });
107
+ }
108
+ const body = (await request.json());
109
+ if (!body.input || Object.keys(body.input).length === 0) {
110
+ return Response.json({ error: 'input is required and must not be empty' }, { status: 400, headers: corsHeaders });
111
+ }
112
+ // Handle streaming
113
+ if (body.stream) {
114
+ const stream = new ReadableStream({
115
+ async start(controller) {
116
+ const encoder = new TextEncoder();
117
+ try {
118
+ for await (const chunk of agent.invokeStream(body)) {
119
+ controller.enqueue(encoder.encode(`data: ${chunk}\n\n`));
120
+ }
121
+ controller.enqueue(encoder.encode('data: [DONE]\n\n'));
122
+ }
123
+ catch (error) {
124
+ const message = error instanceof Error ? error.message : 'Unknown error';
125
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: message })}\n\n`));
126
+ }
127
+ controller.close();
128
+ },
129
+ });
130
+ return new Response(stream, {
131
+ headers: {
132
+ ...corsHeaders,
133
+ 'Content-Type': 'text/event-stream',
134
+ 'Cache-Control': 'no-cache',
135
+ Connection: 'keep-alive',
136
+ },
137
+ });
138
+ }
139
+ const response = await agent.invoke(body);
140
+ return Response.json(response, { headers: corsHeaders });
141
+ }
142
+ // POST /agents/{name}/chat
143
+ const chatMatch = path.match(/^\/agents\/([^/]+)\/chat$/);
144
+ if (method === 'POST' && chatMatch) {
145
+ const agentName = chatMatch[1];
146
+ if (agentName !== agent.name) {
147
+ return Response.json({ error: `Agent '${agentName}' not found` }, { status: 404, headers: corsHeaders });
148
+ }
149
+ const body = (await request.json());
150
+ if (!body.messages || body.messages.length === 0) {
151
+ return Response.json({ error: 'messages is required and must not be empty' }, { status: 400, headers: corsHeaders });
152
+ }
153
+ // Handle streaming
154
+ if (body.stream) {
155
+ const stream = new ReadableStream({
156
+ async start(controller) {
157
+ const encoder = new TextEncoder();
158
+ try {
159
+ for await (const chunk of agent.chatStream(body)) {
160
+ controller.enqueue(encoder.encode(`data: ${chunk}\n\n`));
161
+ }
162
+ controller.enqueue(encoder.encode('data: [DONE]\n\n'));
163
+ }
164
+ catch (error) {
165
+ const message = error instanceof Error ? error.message : 'Unknown error';
166
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: message })}\n\n`));
167
+ }
168
+ controller.close();
169
+ },
170
+ });
171
+ return new Response(stream, {
172
+ headers: {
173
+ ...corsHeaders,
174
+ 'Content-Type': 'text/event-stream',
175
+ 'Cache-Control': 'no-cache',
176
+ Connection: 'keep-alive',
177
+ },
178
+ });
179
+ }
180
+ const response = await agent.chat(body);
181
+ return Response.json(response, { headers: corsHeaders });
182
+ }
183
+ // Not found
184
+ return Response.json({ error: 'Not found' }, { status: 404, headers: corsHeaders });
185
+ }
186
+ catch (error) {
187
+ const message = error instanceof Error ? error.message : 'Unknown error';
188
+ return Response.json({ error: message }, { status: 500, headers: corsHeaders });
189
+ }
190
+ };
191
+ }
192
+ }
193
+ /**
194
+ * Concrete agent with callback-based handler registration.
195
+ *
196
+ * Use this class to create custom agents by registering handlers:
197
+ *
198
+ * ```typescript
199
+ * const agent = new Agent('my-agent');
200
+ *
201
+ * agent.onInvoke(async (request) => {
202
+ * return { output: 'Hello!' };
203
+ * });
204
+ *
205
+ * agent.onChat(async (request) => {
206
+ * return { output: 'Hi!', messages: [...] };
207
+ * });
208
+ *
209
+ * serve([agent], { port: 8080 });
210
+ * ```
211
+ */
212
+ export class Agent extends AgentBase {
213
+ _name;
214
+ _metadata;
215
+ _invokeHandler = null;
216
+ _chatHandler = null;
217
+ _invokeStreamHandler = null;
218
+ _chatStreamHandler = null;
219
+ /**
220
+ * Create a new agent.
221
+ *
222
+ * @param name - The agent name (used in URLs like /agents/{name}/invoke)
223
+ * @param options - Optional configuration
224
+ */
225
+ constructor(name, options) {
226
+ super();
227
+ this._name = name;
228
+ this._metadata = options?.metadata ?? {};
229
+ }
230
+ /**
231
+ * Return the agent name.
232
+ */
233
+ get name() {
234
+ return this._name;
235
+ }
236
+ /**
237
+ * Return agent metadata for discovery.
238
+ */
239
+ get metadata() {
240
+ return { type: 'agent', ...this._metadata };
241
+ }
242
+ /**
243
+ * Whether invoke supports streaming.
244
+ */
245
+ get invokeStreaming() {
246
+ return this._invokeStreamHandler !== null;
247
+ }
248
+ /**
249
+ * Whether chat supports streaming.
250
+ */
251
+ get chatStreaming() {
252
+ return this._chatStreamHandler !== null;
253
+ }
254
+ /**
255
+ * Register an invoke handler.
256
+ *
257
+ * @example
258
+ * agent.onInvoke(async (request) => {
259
+ * return { output: 'Hello!' };
260
+ * });
261
+ */
262
+ onInvoke(handler) {
263
+ this._invokeHandler = handler;
264
+ return this;
265
+ }
266
+ /**
267
+ * Register a chat handler.
268
+ *
269
+ * @example
270
+ * agent.onChat(async (request) => {
271
+ * return { output: 'Hi!', messages: [...] };
272
+ * });
273
+ */
274
+ onChat(handler) {
275
+ this._chatHandler = handler;
276
+ return this;
277
+ }
278
+ /**
279
+ * Register a streaming invoke handler.
280
+ *
281
+ * @example
282
+ * agent.onInvokeStream(async function* (request) {
283
+ * yield '{"chunk": "Hello"}';
284
+ * yield '{"chunk": " world!"}';
285
+ * });
286
+ */
287
+ onInvokeStream(handler) {
288
+ this._invokeStreamHandler = handler;
289
+ return this;
290
+ }
291
+ /**
292
+ * Register a streaming chat handler.
293
+ *
294
+ * @example
295
+ * agent.onChatStream(async function* (request) {
296
+ * yield '{"chunk": "Hi"}';
297
+ * });
298
+ */
299
+ onChatStream(handler) {
300
+ this._chatStreamHandler = handler;
301
+ return this;
302
+ }
303
+ /**
304
+ * Handle an invoke request.
305
+ */
306
+ async invoke(request) {
307
+ if (this._invokeHandler === null) {
308
+ throw new Error(`No invoke handler registered for agent '${this._name}'`);
309
+ }
310
+ return this._invokeHandler(request);
311
+ }
312
+ /**
313
+ * Handle a chat request.
314
+ */
315
+ async chat(request) {
316
+ if (this._chatHandler === null) {
317
+ throw new Error(`No chat handler registered for agent '${this._name}'`);
318
+ }
319
+ return this._chatHandler(request);
320
+ }
321
+ /**
322
+ * Handle a streaming invoke request.
323
+ */
324
+ async *invokeStream(request) {
325
+ if (this._invokeStreamHandler === null) {
326
+ throw new Error(`No streaming invoke handler registered for agent '${this._name}'`);
327
+ }
328
+ yield* this._invokeStreamHandler(request);
329
+ }
330
+ /**
331
+ * Handle a streaming chat request.
332
+ */
333
+ async *chatStream(request) {
334
+ if (this._chatStreamHandler === null) {
335
+ throw new Error(`No streaming chat handler registered for agent '${this._name}'`);
336
+ }
337
+ yield* this._chatStreamHandler(request);
338
+ }
339
+ }
340
+ /**
341
+ * Base class for framework adapters.
342
+ *
343
+ * Extend this class when wrapping an existing AI framework
344
+ * (e.g., LangChain, OpenAI, Anthropic).
345
+ */
346
+ export class BaseAdapter extends AgentBase {
347
+ /**
348
+ * The adapter name. Subclasses should override this.
349
+ */
350
+ static adapterName = 'unknown';
351
+ /**
352
+ * All built-in adapters support streaming.
353
+ */
354
+ get invokeStreaming() {
355
+ return true;
356
+ }
357
+ get chatStreaming() {
358
+ return true;
359
+ }
360
+ /**
361
+ * Return adapter metadata for discovery.
362
+ */
363
+ get metadata() {
364
+ return {
365
+ type: 'adapter',
366
+ adapter: this.constructor.adapterName,
367
+ };
368
+ }
369
+ /**
370
+ * Handle a streaming invoke request.
371
+ */
372
+ async *invokeStream(request) {
373
+ throw new Error('Streaming not implemented for this adapter');
374
+ }
375
+ /**
376
+ * Handle a streaming chat request.
377
+ */
378
+ async *chatStream(request) {
379
+ throw new Error('Streaming not implemented for this adapter');
380
+ }
381
+ }
382
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { BaseAdapter } from './base.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { BaseAdapter } from './base.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { serve, createApp } from './server.js';
2
+ export type { ServeOptions } from './server.js';
3
+ export { VERSION } from './version.js';
4
+ export type { Role, InvokeRequest, InvokeResponse, ChatRequest, ChatResponse, Message, } from './types.js';
5
+ export { AgentBase, Agent, BaseAdapter } from './adapters/base.js';
6
+ export type { AgentMetadata, InvokeHandler, ChatHandler, InvokeStreamHandler, ChatStreamHandler, FetchHandler, } from './adapters/base.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,IAAI,EACJ,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { serve, createApp } from './server.js';
2
+ export { VERSION } from './version.js';
3
+ export { AgentBase, Agent, BaseAdapter } from './adapters/base.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}