@reminix/runtime 0.0.13 → 0.0.15

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/agent.js CHANGED
@@ -3,16 +3,95 @@
3
3
  */
4
4
  import { VERSION } from './version.js';
5
5
  /**
6
- * Default parameters schema for agents.
7
- * Request: { prompt: '...' }
6
+ * Default input schema for agents.
7
+ * Request: { input: { prompt: '...' } }
8
8
  */
9
- const DEFAULT_AGENT_PARAMETERS = {
9
+ const DEFAULT_AGENT_INPUT = {
10
10
  type: 'object',
11
11
  properties: {
12
12
  prompt: { type: 'string', description: 'The prompt or task for the agent' },
13
13
  },
14
14
  required: ['prompt'],
15
15
  };
16
+ /**
17
+ * Default output schema for agents.
18
+ * Response: { output: '...' }
19
+ */
20
+ const DEFAULT_AGENT_OUTPUT = {
21
+ type: 'string',
22
+ };
23
+ /**
24
+ * Chat agent input schema.
25
+ * Request: { input: { messages: [...] } }
26
+ */
27
+ const CHAT_AGENT_INPUT = {
28
+ type: 'object',
29
+ properties: {
30
+ messages: {
31
+ type: 'array',
32
+ items: {
33
+ type: 'object',
34
+ properties: {
35
+ role: {
36
+ type: 'string',
37
+ enum: ['system', 'user', 'assistant', 'tool'],
38
+ },
39
+ content: {
40
+ type: ['string', 'null'],
41
+ },
42
+ name: {
43
+ type: 'string',
44
+ },
45
+ tool_call_id: {
46
+ type: 'string',
47
+ },
48
+ tool_calls: {
49
+ type: 'array',
50
+ items: {
51
+ type: 'object',
52
+ properties: {
53
+ id: { type: 'string' },
54
+ type: { type: 'string', enum: ['function'] },
55
+ function: {
56
+ type: 'object',
57
+ properties: {
58
+ name: { type: 'string' },
59
+ arguments: { type: 'string' },
60
+ },
61
+ required: ['name', 'arguments'],
62
+ },
63
+ },
64
+ required: ['id', 'type', 'function'],
65
+ },
66
+ },
67
+ },
68
+ required: ['role'],
69
+ },
70
+ },
71
+ },
72
+ required: ['messages'],
73
+ };
74
+ /**
75
+ * Chat agent output schema.
76
+ * Response: { output: { messages: [...] } }
77
+ */
78
+ const CHAT_AGENT_OUTPUT = {
79
+ type: 'object',
80
+ properties: {
81
+ messages: {
82
+ type: 'array',
83
+ items: {
84
+ type: 'object',
85
+ properties: {
86
+ role: { type: 'string' },
87
+ content: { type: ['string', 'null'] },
88
+ },
89
+ required: ['role'],
90
+ },
91
+ },
92
+ },
93
+ required: ['messages'],
94
+ };
16
95
  /**
17
96
  * Abstract base class defining the agent interface.
18
97
  *
@@ -21,29 +100,22 @@ const DEFAULT_AGENT_PARAMETERS = {
21
100
  * `AgentAdapter` for framework adapters.
22
101
  */
23
102
  export class AgentBase {
24
- /**
25
- * Whether execute supports streaming. Override to enable.
26
- */
27
- get streaming() {
28
- return false;
29
- }
30
103
  /**
31
104
  * Return agent metadata for discovery.
32
105
  * Override this to provide custom metadata.
33
106
  */
34
107
  get metadata() {
35
108
  return {
36
- type: 'agent',
37
- parameters: DEFAULT_AGENT_PARAMETERS,
38
- requestKeys: ['prompt'],
39
- responseKeys: ['content'],
109
+ capabilities: { streaming: false },
110
+ input: DEFAULT_AGENT_INPUT,
111
+ output: DEFAULT_AGENT_OUTPUT,
40
112
  };
41
113
  }
42
114
  /**
43
- * Handle a streaming execute request.
115
+ * Handle a streaming invoke request.
44
116
  */
45
117
  // eslint-disable-next-line require-yield
46
- async *executeStream(_request) {
118
+ async *invokeStream(_request) {
47
119
  throw new Error('Streaming not implemented for this agent');
48
120
  }
49
121
  /**
@@ -96,7 +168,6 @@ export class AgentBase {
96
168
  {
97
169
  name: this.name,
98
170
  ...this.metadata,
99
- streaming: this.streaming,
100
171
  },
101
172
  ],
102
173
  }, { headers: corsHeaders });
@@ -106,38 +177,29 @@ export class AgentBase {
106
177
  if (method === 'POST' && invokeMatch) {
107
178
  const agentName = invokeMatch[1];
108
179
  if (agentName !== this.name) {
109
- return Response.json({ error: `Agent '${agentName}' not found` }, { status: 404, headers: corsHeaders });
180
+ return Response.json({ error: { type: 'NotFoundError', message: `Agent '${agentName}' not found` } }, { status: 404, headers: corsHeaders });
110
181
  }
111
182
  const body = (await request.json());
112
- // Get requestKeys from agent metadata (all agents have defaults)
113
- const requestKeys = this.metadata.requestKeys ?? [];
114
- // Extract declared keys from body into input object
115
- // e.g., requestKeys: ['prompt'] with body { prompt: '...' } -> input = { prompt: '...' }
116
- const input = {};
117
- for (const key of requestKeys) {
118
- if (key in body) {
119
- input[key] = body[key];
120
- }
121
- }
122
- const executeRequest = {
123
- input,
183
+ const invokeRequest = {
184
+ input: body.input ?? {},
124
185
  stream: body.stream === true,
125
186
  context: body.context,
126
187
  };
127
188
  // Handle streaming
128
- if (executeRequest.stream) {
189
+ if (invokeRequest.stream) {
129
190
  const stream = new ReadableStream({
130
191
  start: async (controller) => {
131
192
  const encoder = new TextEncoder();
132
193
  try {
133
- for await (const chunk of this.executeStream(executeRequest)) {
134
- controller.enqueue(encoder.encode(`data: ${chunk}\n\n`));
194
+ for await (const chunk of this.invokeStream(invokeRequest)) {
195
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify({ delta: chunk })}\n\n`));
135
196
  }
136
- controller.enqueue(encoder.encode('data: [DONE]\n\n'));
197
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify({ done: true })}\n\n`));
137
198
  }
138
199
  catch (error) {
139
200
  const message = error instanceof Error ? error.message : 'Unknown error';
140
- controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: message })}\n\n`));
201
+ const errorType = error instanceof Error ? error.constructor.name : 'ExecutionError';
202
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: { type: errorType, message } })}\n\n`));
141
203
  }
142
204
  controller.close();
143
205
  },
@@ -151,15 +213,16 @@ export class AgentBase {
151
213
  },
152
214
  });
153
215
  }
154
- const response = await this.execute(executeRequest);
216
+ const response = await this.invoke(invokeRequest);
155
217
  return Response.json(response, { headers: corsHeaders });
156
218
  }
157
219
  // Not found
158
- return Response.json({ error: 'Not found' }, { status: 404, headers: corsHeaders });
220
+ return Response.json({ error: { type: 'NotFoundError', message: 'Not found' } }, { status: 404, headers: corsHeaders });
159
221
  }
160
222
  catch (error) {
161
223
  const message = error instanceof Error ? error.message : 'Unknown error';
162
- return Response.json({ error: message }, { status: 500, headers: corsHeaders });
224
+ const errorType = error instanceof Error ? error.constructor.name : 'ExecutionError';
225
+ return Response.json({ error: { type: errorType, message } }, { status: 500, headers: corsHeaders });
163
226
  }
164
227
  };
165
228
  }
@@ -182,8 +245,8 @@ export class AgentBase {
182
245
  export class Agent extends AgentBase {
183
246
  _name;
184
247
  _metadata;
185
- _executeHandler = null;
186
- _executeStreamHandler = null;
248
+ _invokeHandler = null;
249
+ _invokeStreamHandler = null;
187
250
  /**
188
251
  * Create a new agent.
189
252
  *
@@ -206,19 +269,15 @@ export class Agent extends AgentBase {
206
269
  */
207
270
  get metadata() {
208
271
  return {
209
- type: 'agent',
210
- parameters: DEFAULT_AGENT_PARAMETERS,
211
- requestKeys: ['prompt'],
212
- responseKeys: ['content'],
272
+ capabilities: {
273
+ streaming: this._invokeStreamHandler !== null,
274
+ ...this._metadata.capabilities,
275
+ },
276
+ input: this._metadata.input ?? DEFAULT_AGENT_INPUT,
277
+ output: this._metadata.output ?? DEFAULT_AGENT_OUTPUT,
213
278
  ...this._metadata,
214
279
  };
215
280
  }
216
- /**
217
- * Whether execute supports streaming.
218
- */
219
- get streaming() {
220
- return this._executeStreamHandler !== null;
221
- }
222
281
  /**
223
282
  * Register a handler.
224
283
  *
@@ -228,7 +287,7 @@ export class Agent extends AgentBase {
228
287
  * });
229
288
  */
230
289
  handler(fn) {
231
- this._executeHandler = fn;
290
+ this._invokeHandler = fn;
232
291
  return this;
233
292
  }
234
293
  /**
@@ -236,31 +295,31 @@ export class Agent extends AgentBase {
236
295
  *
237
296
  * @example
238
297
  * agent.streamHandler(async function* (request) {
239
- * yield '{"chunk": "Hello"}';
240
- * yield '{"chunk": " world!"}';
298
+ * yield 'Hello';
299
+ * yield ' world!';
241
300
  * });
242
301
  */
243
302
  streamHandler(fn) {
244
- this._executeStreamHandler = fn;
303
+ this._invokeStreamHandler = fn;
245
304
  return this;
246
305
  }
247
306
  /**
248
- * Handle an execute request.
307
+ * Handle an invoke request.
249
308
  */
250
- async execute(request) {
251
- if (this._executeHandler === null) {
252
- throw new Error(`No execute handler registered for agent '${this._name}'`);
309
+ async invoke(request) {
310
+ if (this._invokeHandler === null) {
311
+ throw new Error(`No invoke handler registered for agent '${this._name}'`);
253
312
  }
254
- return this._executeHandler(request);
313
+ return this._invokeHandler(request);
255
314
  }
256
315
  /**
257
- * Handle a streaming execute request.
316
+ * Handle a streaming invoke request.
258
317
  */
259
- async *executeStream(request) {
260
- if (this._executeStreamHandler === null) {
261
- throw new Error(`No streaming execute handler registered for agent '${this._name}'`);
318
+ async *invokeStream(request) {
319
+ if (this._invokeStreamHandler === null) {
320
+ throw new Error(`No streaming invoke handler registered for agent '${this._name}'`);
262
321
  }
263
- yield* this._executeStreamHandler(request);
322
+ yield* this._invokeStreamHandler(request);
264
323
  }
265
324
  }
266
325
  /**
@@ -269,77 +328,38 @@ export class Agent extends AgentBase {
269
328
  function isAsyncGeneratorFunction(fn) {
270
329
  return fn?.constructor?.name === 'AsyncGeneratorFunction';
271
330
  }
272
- /**
273
- * Wrap output schema to match the full response structure based on responseKeys.
274
- *
275
- * If responseKeys = ["output"], wraps the schema as { output: <schema> }
276
- * If responseKeys = ["message"], wraps the schema as { message: <schema> }
277
- * If responseKeys = ["message", "output"], wraps as { message: <schema>, output: <schema> }
278
- *
279
- * @param outputSchema - The schema for the return value (or undefined)
280
- * @param responseKeys - List of top-level response keys
281
- * @returns Wrapped schema describing the full response object, or undefined if outputSchema is undefined
282
- */
283
- function wrapOutputSchemaForResponseKeys(outputSchema, responseKeys) {
284
- if (outputSchema === undefined || responseKeys.length === 0) {
285
- return undefined;
286
- }
287
- // If single response key, wrap the output schema
288
- if (responseKeys.length === 1) {
289
- return {
290
- type: 'object',
291
- properties: { [responseKeys[0]]: outputSchema },
292
- required: responseKeys,
293
- };
294
- }
295
- // Multiple response keys - need to split the output schema
296
- // For now, assume the output schema describes the first key's value
297
- // and other keys are optional/unknown
298
- const properties = { [responseKeys[0]]: outputSchema };
299
- const required = [responseKeys[0]];
300
- // For additional keys, we don't know their schema, so mark as optional
301
- // Users can override via metadata if they need full schema
302
- for (const key of responseKeys.slice(1)) {
303
- properties[key] = { type: 'object' }; // Placeholder - should be overridden
304
- }
305
- return {
306
- type: 'object',
307
- properties,
308
- required,
309
- };
310
- }
311
331
  /**
312
332
  * Create an agent from a configuration object.
313
333
  *
314
- * By default, agents expect `{ prompt: string }` in the request body and
315
- * return `{ output: ... }`. You can customize by providing `parameters`.
334
+ * By default, agents expect `{ input: { prompt: string } }` in the request body and
335
+ * return `{ output: string }`. You can customize by providing `input` schema.
316
336
  *
317
337
  * @example
318
338
  * ```typescript
319
- * // Simple agent with default parameters
320
- * // Request: { prompt: 'Hello world' }
339
+ * // Simple agent with default input/output
340
+ * // Request: { input: { prompt: 'Hello world' } }
321
341
  * // Response: { output: 'You said: Hello world' }
322
342
  * const echo = agent('echo', {
323
343
  * description: 'Echo the prompt',
324
344
  * handler: async ({ prompt }) => `You said: ${prompt}`,
325
345
  * });
326
346
  *
327
- * // Agent with custom parameters
328
- * // Request: { a: 1, b: 2 }
347
+ * // Agent with custom input schema
348
+ * // Request: { input: { a: 1, b: 2 } }
329
349
  * // Response: { output: 3 }
330
350
  * const calculator = agent('calculator', {
331
351
  * description: 'Add two numbers',
332
- * parameters: {
352
+ * input: {
333
353
  * type: 'object',
334
354
  * properties: { a: { type: 'number' }, b: { type: 'number' } },
335
355
  * required: ['a', 'b'],
336
356
  * },
357
+ * output: { type: 'number' },
337
358
  * handler: async ({ a, b }) => (a as number) + (b as number),
338
359
  * });
339
360
  *
340
361
  * // Streaming agent (async generator)
341
- * // Request: { prompt: 'hello world' }
342
- * // Response: { output: 'hello world ' } (streamed)
362
+ * // Request: { input: { prompt: 'hello world' }, stream: true }
343
363
  * const streamer = agent('streamer', {
344
364
  * description: 'Stream text word by word',
345
365
  * handler: async function* ({ prompt }) {
@@ -351,43 +371,17 @@ function wrapOutputSchemaForResponseKeys(outputSchema, responseKeys) {
351
371
  * ```
352
372
  */
353
373
  export function agent(name, options) {
354
- // Use provided parameters or default to { prompt: string }
355
- const parameters = options.parameters ?? DEFAULT_AGENT_PARAMETERS;
356
- // Derive requestKeys from parameters.properties
357
- const requestKeys = Object.keys(parameters.properties);
358
- // Default responseKeys (can be overridden via metadata)
359
- const responseKeys = ['content'];
360
- // Wrap output schema to match responseKeys structure
361
- const wrappedOutput = wrapOutputSchemaForResponseKeys(options.output, responseKeys);
362
- // Build metadata (allow metadata override to change responseKeys)
363
- const baseMetadata = {
364
- type: 'agent',
365
- description: options.description,
366
- parameters,
367
- requestKeys,
368
- responseKeys,
369
- };
370
- // If metadata override includes responseKeys, re-wrap output schema
371
- const finalResponseKeys = options.metadata?.responseKeys ?? responseKeys;
372
- const finalWrappedOutput = options.metadata?.responseKeys !== undefined
373
- ? wrapOutputSchemaForResponseKeys(options.output, finalResponseKeys)
374
- : wrappedOutput;
375
- if (finalWrappedOutput !== undefined) {
376
- baseMetadata.output = finalWrappedOutput;
377
- }
374
+ const inputSchema = options.input ?? DEFAULT_AGENT_INPUT;
375
+ const outputSchema = options.output ?? DEFAULT_AGENT_OUTPUT;
378
376
  const agentInstance = new Agent(name, {
379
377
  metadata: {
380
- ...baseMetadata,
381
- ...options.metadata,
378
+ description: options.description,
379
+ input: inputSchema,
380
+ output: outputSchema,
382
381
  },
383
382
  });
384
383
  // Detect if handler is an async generator function
385
384
  const isStreaming = isAsyncGeneratorFunction(options.handler);
386
- // Get the response keys from the agent's metadata (allows custom override)
387
- const getResponseKeys = () => {
388
- const keys = agentInstance.metadata.responseKeys;
389
- return keys && keys.length > 0 ? keys : ['content'];
390
- };
391
385
  if (isStreaming) {
392
386
  const streamFn = options.handler;
393
387
  // Register streaming handler
@@ -400,28 +394,14 @@ export function agent(name, options) {
400
394
  for await (const chunk of streamFn(request.input, request.context)) {
401
395
  chunks.push(chunk);
402
396
  }
403
- const result = chunks.join('');
404
- // If result is dict, use as-is; otherwise wrap in first responseKey
405
- if (typeof result === 'object' && result !== null && !Array.isArray(result)) {
406
- return result;
407
- }
408
- const responseKeys = getResponseKeys();
409
- return { [responseKeys[0]]: result };
397
+ return { output: chunks.join('') };
410
398
  });
411
399
  }
412
400
  else {
413
401
  const regularHandler = options.handler;
414
402
  agentInstance.handler(async (request) => {
415
403
  const result = await regularHandler(request.input, request.context);
416
- // If result is dict with all responseKeys, use as-is; otherwise wrap in first responseKey
417
- const responseKeys = getResponseKeys();
418
- if (typeof result === 'object' &&
419
- result !== null &&
420
- !Array.isArray(result) &&
421
- responseKeys.every((key) => key in result)) {
422
- return result;
423
- }
424
- return { [responseKeys[0]]: result };
404
+ return { output: result };
425
405
  });
426
406
  }
427
407
  return agentInstance;
@@ -432,14 +412,12 @@ export function agent(name, options) {
432
412
  * This is a convenience factory that creates an agent with a standard chat
433
413
  * interface (messages in, messages out).
434
414
  *
435
- * Request: `{ messages: [...] }`
436
- * Response: `{ messages: [{ role: 'assistant', content: '...' }, ...] }`
415
+ * Request: `{ input: { messages: [...] } }`
416
+ * Response: `{ output: { messages: [{ role: 'assistant', content: '...' }, ...] } }`
437
417
  *
438
418
  * @example
439
419
  * ```typescript
440
420
  * // Non-streaming chat agent
441
- * // Request: { messages: [{ role: 'user', content: 'hello' }] }
442
- * // Response: { messages: [{ role: 'assistant', content: 'You said: hello' }] }
443
421
  * const bot = chatAgent('bot', {
444
422
  * description: 'A simple chatbot',
445
423
  * handler: async (messages) => {
@@ -460,95 +438,15 @@ export function agent(name, options) {
460
438
  * ```
461
439
  */
462
440
  export function chatAgent(name, options) {
463
- // Chat agents have default request/response keys (can be overridden via metadata)
464
- const requestKeys = ['messages'];
465
- const responseKeys = ['messages'];
466
- // Message item schema (shared between parameters and output)
467
- const messageItemSchema = {
468
- type: 'object',
469
- properties: {
470
- role: {
471
- type: 'string',
472
- enum: ['system', 'user', 'assistant', 'tool'],
473
- },
474
- content: {
475
- type: ['string', 'null'],
476
- },
477
- name: {
478
- type: 'string',
479
- },
480
- tool_call_id: {
481
- type: 'string',
482
- },
483
- tool_calls: {
484
- type: 'array',
485
- items: {
486
- type: 'object',
487
- properties: {
488
- id: { type: 'string' },
489
- type: { type: 'string', enum: ['function'] },
490
- function: {
491
- type: 'object',
492
- properties: {
493
- name: { type: 'string' },
494
- arguments: { type: 'string' },
495
- },
496
- required: ['name', 'arguments'],
497
- },
498
- },
499
- required: ['id', 'type', 'function'],
500
- },
501
- },
502
- },
503
- required: ['role'],
504
- };
505
- // Define standard chat agent schemas
506
- const parametersSchema = {
507
- type: 'object',
508
- properties: {
509
- messages: {
510
- type: 'array',
511
- items: messageItemSchema,
512
- },
513
- },
514
- required: ['messages'],
515
- };
516
- // Messages schema (array of messages, the value, not the full response)
517
- const messagesSchema = {
518
- type: 'array',
519
- items: messageItemSchema,
520
- };
521
- // Wrap messages schema to match responseKeys structure
522
- const wrappedOutput = wrapOutputSchemaForResponseKeys(messagesSchema, responseKeys);
523
- // Build metadata (allow metadata override to change responseKeys)
524
- const baseMetadata = {
525
- type: 'chat_agent',
526
- description: options.description,
527
- parameters: parametersSchema,
528
- requestKeys,
529
- responseKeys,
530
- };
531
- // If metadata override includes responseKeys, re-wrap output schema
532
- const finalResponseKeys = options.metadata?.responseKeys ?? responseKeys;
533
- const finalWrappedOutput = options.metadata?.responseKeys !== undefined
534
- ? wrapOutputSchemaForResponseKeys(messagesSchema, finalResponseKeys)
535
- : wrappedOutput;
536
- if (finalWrappedOutput !== undefined) {
537
- baseMetadata.output = finalWrappedOutput;
538
- }
539
441
  const agentInstance = new Agent(name, {
540
442
  metadata: {
541
- ...baseMetadata,
542
- ...options.metadata,
443
+ description: options.description,
444
+ input: CHAT_AGENT_INPUT,
445
+ output: CHAT_AGENT_OUTPUT,
543
446
  },
544
447
  });
545
448
  // Detect if handler is an async generator function
546
449
  const isStreaming = isAsyncGeneratorFunction(options.handler);
547
- // Get the response keys from the agent's metadata (allows custom override)
548
- const getResponseKeys = () => {
549
- const keys = agentInstance.metadata.responseKeys;
550
- return keys && keys.length > 0 ? keys : ['messages'];
551
- };
552
450
  if (isStreaming) {
553
451
  const streamFn = options.handler;
554
452
  // Register streaming handler
@@ -563,10 +461,11 @@ export function chatAgent(name, options) {
563
461
  for await (const chunk of streamFn(rawMessages, request.context)) {
564
462
  chunks.push(chunk);
565
463
  }
566
- const result = [{ role: 'assistant', content: chunks.join('') }];
567
- // For chat agents, always wrap in first responseKey (typically "messages")
568
- const responseKeys = getResponseKeys();
569
- return { [responseKeys[0]]: result };
464
+ return {
465
+ output: {
466
+ messages: [{ role: 'assistant', content: chunks.join('') }],
467
+ },
468
+ };
570
469
  });
571
470
  }
572
471
  else {
@@ -574,20 +473,11 @@ export function chatAgent(name, options) {
574
473
  agentInstance.handler(async (request) => {
575
474
  const rawMessages = (request.input.messages ?? []);
576
475
  const result = await regularHandler(rawMessages, request.context);
577
- const responseKeys = getResponseKeys();
578
- // Check if result is already a full response dict with all responseKeys
579
- // (This handles cases where responseKeys are overridden and function returns a dict)
580
- if (typeof result === 'object' &&
581
- result !== null &&
582
- !Array.isArray(result) &&
583
- responseKeys.every((key) => key in result)) {
584
- return result;
585
- }
586
476
  // Convert list of Message objects to list of dicts
587
477
  const messagesList = Array.isArray(result)
588
478
  ? result.map((m) => ({ role: m.role, content: m.content }))
589
479
  : [{ role: result.role, content: result.content }];
590
- return { [responseKeys[0]]: messagesList };
480
+ return { output: { messages: messagesList } };
591
481
  });
592
482
  }
593
483
  return agentInstance;
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}