@agentuity/runtime 0.0.50 → 0.0.52

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 (104) hide show
  1. package/dist/_config.js +99 -0
  2. package/dist/_config.js.map +1 -0
  3. package/dist/_context.js +82 -0
  4. package/dist/_context.js.map +1 -0
  5. package/dist/_idle.js +24 -0
  6. package/dist/_idle.js.map +1 -0
  7. package/dist/_server.js +489 -0
  8. package/dist/_server.js.map +1 -0
  9. package/dist/_services.js +258 -0
  10. package/dist/_services.js.map +1 -0
  11. package/dist/_tokens.js +98 -0
  12. package/dist/_tokens.js.map +1 -0
  13. package/dist/_util.js +54 -0
  14. package/dist/_util.js.map +1 -0
  15. package/dist/_waituntil.js +87 -0
  16. package/dist/_waituntil.js.map +1 -0
  17. package/dist/agent.js +507 -0
  18. package/dist/agent.js.map +1 -0
  19. package/dist/app.d.ts +6 -1
  20. package/dist/app.d.ts.map +1 -1
  21. package/dist/app.js +72 -0
  22. package/dist/app.js.map +1 -0
  23. package/dist/eval.js +2 -0
  24. package/dist/eval.js.map +1 -0
  25. package/dist/index.js +11 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/io/email.js +154 -0
  28. package/dist/io/email.js.map +1 -0
  29. package/dist/logger/console.js +274 -0
  30. package/dist/logger/console.js.map +1 -0
  31. package/dist/logger/index.js +3 -0
  32. package/dist/logger/index.js.map +1 -0
  33. package/dist/logger/internal.js +133 -0
  34. package/dist/logger/internal.js.map +1 -0
  35. package/dist/logger/logger.js +2 -0
  36. package/dist/logger/logger.js.map +1 -0
  37. package/dist/logger/user.js +7 -0
  38. package/dist/logger/user.js.map +1 -0
  39. package/dist/logger/util.js +77 -0
  40. package/dist/logger/util.js.map +1 -0
  41. package/dist/otel/config.js +23 -0
  42. package/dist/otel/config.js.map +1 -0
  43. package/dist/otel/console.js +52 -0
  44. package/dist/otel/console.js.map +1 -0
  45. package/dist/otel/exporters/index.js +4 -0
  46. package/dist/otel/exporters/index.js.map +1 -0
  47. package/dist/otel/exporters/jsonl-log-exporter.js +103 -0
  48. package/dist/otel/exporters/jsonl-log-exporter.js.map +1 -0
  49. package/dist/otel/exporters/jsonl-metric-exporter.js +104 -0
  50. package/dist/otel/exporters/jsonl-metric-exporter.js.map +1 -0
  51. package/dist/otel/exporters/jsonl-trace-exporter.js +111 -0
  52. package/dist/otel/exporters/jsonl-trace-exporter.js.map +1 -0
  53. package/dist/otel/fetch.js +81 -0
  54. package/dist/otel/fetch.js.map +1 -0
  55. package/dist/otel/http.js +44 -0
  56. package/dist/otel/http.js.map +1 -0
  57. package/dist/otel/logger.js +278 -0
  58. package/dist/otel/logger.js.map +1 -0
  59. package/dist/otel/otel.js +233 -0
  60. package/dist/otel/otel.js.map +1 -0
  61. package/dist/router.js +350 -0
  62. package/dist/router.js.map +1 -0
  63. package/dist/services/evalrun/composite.js +26 -0
  64. package/dist/services/evalrun/composite.js.map +1 -0
  65. package/dist/services/evalrun/http.js +74 -0
  66. package/dist/services/evalrun/http.js.map +1 -0
  67. package/dist/services/evalrun/index.js +5 -0
  68. package/dist/services/evalrun/index.js.map +1 -0
  69. package/dist/services/evalrun/json.js +38 -0
  70. package/dist/services/evalrun/json.js.map +1 -0
  71. package/dist/services/evalrun/local.js +22 -0
  72. package/dist/services/evalrun/local.js.map +1 -0
  73. package/dist/services/local/_db.js +144 -0
  74. package/dist/services/local/_db.js.map +1 -0
  75. package/dist/services/local/_router.js +60 -0
  76. package/dist/services/local/_router.js.map +1 -0
  77. package/dist/services/local/_util.js +42 -0
  78. package/dist/services/local/_util.js.map +1 -0
  79. package/dist/services/local/index.js +8 -0
  80. package/dist/services/local/index.js.map +1 -0
  81. package/dist/services/local/keyvalue.js +114 -0
  82. package/dist/services/local/keyvalue.js.map +1 -0
  83. package/dist/services/local/objectstore.js +117 -0
  84. package/dist/services/local/objectstore.js.map +1 -0
  85. package/dist/services/local/stream.js +218 -0
  86. package/dist/services/local/stream.js.map +1 -0
  87. package/dist/services/local/vector.js +183 -0
  88. package/dist/services/local/vector.js.map +1 -0
  89. package/dist/services/session/composite.js +26 -0
  90. package/dist/services/session/composite.js.map +1 -0
  91. package/dist/services/session/http.js +42 -0
  92. package/dist/services/session/http.js.map +1 -0
  93. package/dist/services/session/index.js +5 -0
  94. package/dist/services/session/index.js.map +1 -0
  95. package/dist/services/session/json.js +35 -0
  96. package/dist/services/session/json.js.map +1 -0
  97. package/dist/services/session/local.js +22 -0
  98. package/dist/services/session/local.js.map +1 -0
  99. package/dist/session.js +199 -0
  100. package/dist/session.js.map +1 -0
  101. package/dist/workbench.js +38 -0
  102. package/dist/workbench.js.map +1 -0
  103. package/package.json +7 -7
  104. package/src/app.ts +6 -1
package/dist/agent.js ADDED
@@ -0,0 +1,507 @@
1
+ import { context, SpanStatusCode, trace } from '@opentelemetry/api';
2
+ import { getAgentContext, runInAgentContext } from './_context';
3
+ import { internal } from './logger/internal';
4
+ import { getApp } from './app';
5
+ import { privateContext } from './_server';
6
+ import { generateId } from './session';
7
+ import { getEvalRunEventProvider } from './_services';
8
+ import * as runtimeConfig from './_config';
9
+ // Will be populated at runtime with strongly typed agents
10
+ const agents = new Map();
11
+ // WeakMap to store event listeners for each agent instance (truly private)
12
+ const agentEventListeners = new WeakMap();
13
+ async function fireAgentEvent(agent, eventName, context, data) {
14
+ // Fire agent-level listeners
15
+ const listeners = agentEventListeners.get(agent);
16
+ if (listeners) {
17
+ const callbacks = listeners.get(eventName);
18
+ if (callbacks && callbacks.size > 0) {
19
+ for (const callback of callbacks) {
20
+ if (eventName === 'errored' && data) {
21
+ await callback(eventName, agent, context, data);
22
+ }
23
+ else if (eventName === 'started' || eventName === 'completed') {
24
+ await callback(eventName, agent, context);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ // Fire app-level listeners
30
+ const app = getApp();
31
+ if (app) {
32
+ if (eventName === 'errored' && data) {
33
+ await app.fireEvent('agent.errored', agent, context, data);
34
+ }
35
+ else if (eventName === 'started') {
36
+ await app.fireEvent('agent.started', agent, context);
37
+ }
38
+ else if (eventName === 'completed') {
39
+ await app.fireEvent('agent.completed', agent, context);
40
+ }
41
+ }
42
+ }
43
+ export const registerAgent = (name, agent) => {
44
+ agents.set(name, agent);
45
+ };
46
+ export function createAgent(config) {
47
+ const inputSchema = config.schema?.input;
48
+ const outputSchema = config.schema?.output;
49
+ // Initialize evals array before handler so it can be captured in closure
50
+ // Evals should only be added via agent.createEval() after agent creation
51
+ const evalsArray = [];
52
+ const handler = async (_ctx, input) => {
53
+ let validatedInput = undefined;
54
+ if (inputSchema) {
55
+ const inputResult = await inputSchema['~standard'].validate(input);
56
+ if (inputResult.issues) {
57
+ throw new Error(`Input validation failed: ${inputResult.issues.map((i) => i.message).join(', ')}`);
58
+ }
59
+ validatedInput = inputResult.value;
60
+ }
61
+ const agentCtx = getAgentContext();
62
+ // Get the agent instance from the agents Map to fire events
63
+ // The agent will be registered in the agents Map before the handler is called
64
+ const agentName = agentCtx.agentName;
65
+ const registeredAgent = agentName ? agents.get(agentName) : undefined;
66
+ // Fire 'started' event (only if agent is registered)
67
+ if (registeredAgent) {
68
+ await fireAgentEvent(registeredAgent, 'started', agentCtx);
69
+ }
70
+ try {
71
+ const result = inputSchema
72
+ ? await config.handler(agentCtx, validatedInput)
73
+ : await config.handler(agentCtx);
74
+ let validatedOutput = result;
75
+ if (outputSchema) {
76
+ const outputResult = await outputSchema['~standard'].validate(result);
77
+ if (outputResult.issues) {
78
+ throw new Error(`Output validation failed: ${outputResult.issues.map((i) => i.message).join(', ')}`);
79
+ }
80
+ validatedOutput = outputResult.value;
81
+ }
82
+ // Store validated input/output in context state for event listeners
83
+ agentCtx.state.set('_evalInput', validatedInput);
84
+ agentCtx.state.set('_evalOutput', validatedOutput);
85
+ // Fire 'completed' event - evals will run via event listener
86
+ if (registeredAgent) {
87
+ await fireAgentEvent(registeredAgent, 'completed', agentCtx);
88
+ }
89
+ return validatedOutput;
90
+ }
91
+ catch (error) {
92
+ // Fire 'errored' event
93
+ if (registeredAgent) {
94
+ await fireAgentEvent(registeredAgent, 'errored', agentCtx, error);
95
+ }
96
+ throw error;
97
+ }
98
+ };
99
+ // Create createEval method that infers types from agent and automatically adds to agent
100
+ const createEval = (evalConfig) => {
101
+ const evalName = evalConfig.metadata?.name || 'unnamed';
102
+ // Trace log to verify evals file is imported
103
+ internal.debug(`createEval called for agent "${config?.metadata?.name || 'unknown'}": registering eval "${evalName}"`);
104
+ // Get filename (can be provided via __filename or set by bundler)
105
+ const filename = evalConfig.metadata?.filename || '';
106
+ // Use name as identifier for consistency (same as agents)
107
+ const identifier = evalName;
108
+ // Use build-time injected id/version if available, otherwise generate at runtime
109
+ // Build-time injection happens via bundler AST transformation
110
+ let evalId = evalConfig.metadata?.id;
111
+ let stableEvalId = evalConfig.metadata?.evalId;
112
+ let version = evalConfig.metadata?.version;
113
+ // Generate version from available metadata if not provided (deterministic hash)
114
+ // At build-time, version is hash of file contents; at runtime we use metadata
115
+ if (!version) {
116
+ const versionHasher = new Bun.CryptoHasher('sha1');
117
+ versionHasher.update(identifier);
118
+ versionHasher.update(evalName);
119
+ versionHasher.update(filename);
120
+ version = versionHasher.digest('hex');
121
+ }
122
+ // Generate eval ID using same logic as build-time (getEvalId) if not provided
123
+ // Format: eval_${hashSHA1(projectId, deploymentId, filename, name, version)}
124
+ if (!evalId) {
125
+ const projectId = runtimeConfig.getProjectId() || '';
126
+ const deploymentId = runtimeConfig.getDeploymentId() || '';
127
+ const idHasher = new Bun.CryptoHasher('sha1');
128
+ idHasher.update(projectId);
129
+ idHasher.update(deploymentId);
130
+ idHasher.update(filename);
131
+ idHasher.update(evalName);
132
+ idHasher.update(version);
133
+ evalId = `eval_${idHasher.digest('hex')}`;
134
+ }
135
+ // Generate stable evalId if not provided (for project-wide identification)
136
+ if (!stableEvalId) {
137
+ const projectId = runtimeConfig.getProjectId() || '';
138
+ const stableHasher = new Bun.CryptoHasher('sha1');
139
+ stableHasher.update(projectId);
140
+ stableHasher.update(evalName);
141
+ stableEvalId = `evalid_${stableHasher.digest('hex')}`.substring(0, 64);
142
+ }
143
+ const evalType = {
144
+ metadata: {
145
+ id: evalId,
146
+ evalId: stableEvalId,
147
+ version,
148
+ identifier,
149
+ name: evalConfig.metadata?.name || '',
150
+ description: evalConfig.metadata?.description || '',
151
+ filename,
152
+ },
153
+ handler: evalConfig.handler,
154
+ };
155
+ if (inputSchema) {
156
+ evalType.inputSchema = inputSchema;
157
+ }
158
+ if (outputSchema) {
159
+ evalType.outputSchema = outputSchema;
160
+ }
161
+ // Automatically add eval to agent's evals array
162
+ evalsArray.push(evalType);
163
+ internal.debug(`Added eval "${evalName}" to agent "${config?.metadata?.name || 'unknown'}". Total evals: ${evalsArray.length}`);
164
+ return evalType;
165
+ };
166
+ const agent = {
167
+ handler,
168
+ metadata: config.metadata,
169
+ evals: evalsArray,
170
+ createEval,
171
+ };
172
+ // Add event listener methods
173
+ agent.addEventListener = (eventName, callback) => {
174
+ const agentForListeners = agent;
175
+ const callbackForListeners = callback;
176
+ let listeners = agentEventListeners.get(agentForListeners);
177
+ if (!listeners) {
178
+ listeners = new Map();
179
+ agentEventListeners.set(agentForListeners, listeners);
180
+ }
181
+ let callbacks = listeners.get(eventName);
182
+ if (!callbacks) {
183
+ callbacks = new Set();
184
+ listeners.set(eventName, callbacks);
185
+ }
186
+ callbacks.add(callbackForListeners);
187
+ };
188
+ // Automatically add event listener for 'completed' event to run evals
189
+ agent.addEventListener('completed', async (_event, _agent, ctx) => {
190
+ // Get the agent instance from the agents Map to access its current evals array
191
+ // This ensures we get evals that were added via agent.createEval() after agent creation
192
+ const agentName = ctx.agentName;
193
+ const registeredAgent = agentName ? agents.get(agentName) : undefined;
194
+ const agentEvals = registeredAgent?.evals || evalsArray;
195
+ internal.debug(`Checking evals: agentName=${agentName}, evalsArray.length=${evalsArray?.length || 0}, agent.evals.length=${registeredAgent?.evals?.length || 0}`);
196
+ if (agentEvals && agentEvals.length > 0) {
197
+ internal.info(`Executing ${agentEvals.length} eval(s) after agent run`);
198
+ // Get validated input/output from context state
199
+ const validatedInput = ctx.state.get('_evalInput');
200
+ const validatedOutput = ctx.state.get('_evalOutput');
201
+ // Execute each eval using waitUntil to avoid blocking the response
202
+ for (const evalItem of agentEvals) {
203
+ const evalName = evalItem.metadata.name || 'unnamed';
204
+ ctx.waitUntil((async () => {
205
+ internal.info(`[EVALRUN] Starting eval run tracking for '${evalName}'`);
206
+ const evalRunId = generateId('evalrun');
207
+ const evalId = evalItem.metadata.id || '';
208
+ const orgId = runtimeConfig.getOrganizationId();
209
+ const projectId = runtimeConfig.getProjectId();
210
+ const devMode = runtimeConfig.isDevMode() ?? false;
211
+ const evalRunEventProvider = getEvalRunEventProvider();
212
+ // Only send events if we have required context (devmode flag will be set based on devMode)
213
+ const shouldSendEvalRunEvents = orgId && projectId && evalId !== '';
214
+ internal.info(`[EVALRUN] Checking conditions for eval '${evalName}':`, {
215
+ orgId: orgId,
216
+ projectId: projectId,
217
+ evalId: evalId,
218
+ devMode,
219
+ hasEvalRunEventProvider: !!evalRunEventProvider,
220
+ shouldSendEvalRunEvents,
221
+ });
222
+ if (!shouldSendEvalRunEvents) {
223
+ const reasons = [];
224
+ if (!orgId)
225
+ reasons.push('missing orgId');
226
+ if (!projectId)
227
+ reasons.push('missing projectId');
228
+ if (!evalId || evalId === '')
229
+ reasons.push('empty evalId');
230
+ internal.info(`[EVALRUN] Skipping eval run events for '${evalName}': ${reasons.join(', ')}`);
231
+ }
232
+ try {
233
+ internal.debug(`Executing eval: ${evalName}`);
234
+ // Send eval run start event
235
+ if (shouldSendEvalRunEvents && evalRunEventProvider) {
236
+ internal.info(`[EVALRUN] Sending start event for eval '${evalName}' (id: ${evalRunId}, evalId: ${evalId})`);
237
+ try {
238
+ const deploymentId = runtimeConfig.getDeploymentId();
239
+ const startEvent = {
240
+ id: evalRunId,
241
+ sessionId: ctx.sessionId,
242
+ evalId: evalId,
243
+ orgId: orgId,
244
+ projectId: projectId,
245
+ devmode: Boolean(devMode),
246
+ deploymentId: deploymentId || undefined,
247
+ };
248
+ internal.debug('[EVALRUN] Start event payload: %s', JSON.stringify(startEvent, null, 2));
249
+ await evalRunEventProvider.start(startEvent);
250
+ internal.info(`[EVALRUN] Start event sent successfully for eval '${evalName}' (id: ${evalRunId})`);
251
+ }
252
+ catch (error) {
253
+ internal.error(`[EVALRUN] Error sending eval run start event for '${evalName}' (id: ${evalRunId})`, {
254
+ error,
255
+ });
256
+ // Don't throw - continue with eval execution even if start event fails
257
+ }
258
+ }
259
+ else if (shouldSendEvalRunEvents && !evalRunEventProvider) {
260
+ internal.warn(`[EVALRUN] Conditions met but no evalRunEventProvider available for '${evalName}'`);
261
+ }
262
+ else {
263
+ internal.debug(`[EVALRUN] Not sending start event for '${evalName}': shouldSendEvalRunEvents=${shouldSendEvalRunEvents}, hasProvider=${!!evalRunEventProvider}`);
264
+ }
265
+ // Validate eval input if schema exists
266
+ let evalValidatedInput = validatedInput;
267
+ if (evalItem.inputSchema) {
268
+ const evalInputResult = await evalItem.inputSchema['~standard'].validate(validatedInput);
269
+ if (evalInputResult.issues) {
270
+ throw new Error(`Eval input validation failed: ${evalInputResult.issues.map((i) => i.message).join(', ')}`);
271
+ }
272
+ evalValidatedInput = evalInputResult.value;
273
+ }
274
+ // Validate eval output if schema exists
275
+ let evalValidatedOutput = validatedOutput;
276
+ if (evalItem.outputSchema) {
277
+ const evalOutputResult = await evalItem.outputSchema['~standard'].validate(validatedOutput);
278
+ if (evalOutputResult.issues) {
279
+ throw new Error(`Eval output validation failed: ${evalOutputResult.issues.map((i) => i.message).join(', ')}`);
280
+ }
281
+ evalValidatedOutput = evalOutputResult.value;
282
+ }
283
+ // Create EvalContext (just an alias for AgentContext)
284
+ const evalContext = ctx;
285
+ // Execute the eval handler conditionally based on agent schema
286
+ let result;
287
+ if (inputSchema && outputSchema) {
288
+ // Both input and output defined
289
+ result = await evalItem.handler(evalContext, evalValidatedInput, evalValidatedOutput);
290
+ }
291
+ else if (inputSchema) {
292
+ // Only input defined
293
+ result = await evalItem.handler(evalContext, evalValidatedInput);
294
+ }
295
+ else if (outputSchema) {
296
+ // Only output defined
297
+ result = await evalItem.handler(evalContext, evalValidatedOutput);
298
+ }
299
+ else {
300
+ // Neither defined
301
+ result = await evalItem.handler(evalContext);
302
+ }
303
+ // Process the returned result
304
+ if (result.success) {
305
+ if ('passed' in result) {
306
+ internal.info(`Eval '${evalName}' pass: ${result.passed}`, result.metadata);
307
+ }
308
+ else if ('score' in result) {
309
+ internal.info(`Eval '${evalName}' score: ${result.score}`, result.metadata);
310
+ }
311
+ }
312
+ else {
313
+ internal.error(`Eval '${evalName}' failed: ${result.error}`);
314
+ }
315
+ // Send eval run complete event
316
+ if (shouldSendEvalRunEvents && evalRunEventProvider) {
317
+ internal.info(`[EVALRUN] Sending complete event for eval '${evalName}' (id: ${evalRunId})`);
318
+ try {
319
+ await evalRunEventProvider.complete({
320
+ id: evalRunId,
321
+ result: result.success ? result : undefined,
322
+ error: result.success ? undefined : result.error,
323
+ });
324
+ internal.info(`[EVALRUN] Complete event sent successfully for eval '${evalName}' (id: ${evalRunId})`);
325
+ }
326
+ catch (error) {
327
+ internal.error(`[EVALRUN] Error sending eval run complete event for '${evalName}' (id: ${evalRunId})`, {
328
+ error,
329
+ });
330
+ }
331
+ }
332
+ internal.debug(`Eval '${evalName}' completed successfully`);
333
+ }
334
+ catch (error) {
335
+ const errorMessage = error instanceof Error ? error.message : String(error);
336
+ internal.error(`Error executing eval '${evalName}'`, { error });
337
+ // Send eval run complete event with error
338
+ if (shouldSendEvalRunEvents && evalRunEventProvider) {
339
+ internal.info(`[EVALRUN] Sending complete event (error) for eval '${evalName}' (id: ${evalRunId})`);
340
+ try {
341
+ await evalRunEventProvider.complete({
342
+ id: evalRunId,
343
+ error: errorMessage,
344
+ });
345
+ internal.info(`[EVALRUN] Complete event (error) sent successfully for eval '${evalName}' (id: ${evalRunId})`);
346
+ }
347
+ catch (eventError) {
348
+ internal.error(`[EVALRUN] Error sending eval run complete event (error) for '${evalName}' (id: ${evalRunId})`, { error: eventError });
349
+ }
350
+ }
351
+ }
352
+ })());
353
+ }
354
+ }
355
+ });
356
+ agent.removeEventListener = (eventName, callback) => {
357
+ const agentForListeners = agent;
358
+ const callbackForListeners = callback;
359
+ const listeners = agentEventListeners.get(agentForListeners);
360
+ if (!listeners)
361
+ return;
362
+ const callbacks = listeners.get(eventName);
363
+ if (!callbacks)
364
+ return;
365
+ callbacks.delete(callbackForListeners);
366
+ };
367
+ if (inputSchema) {
368
+ agent.inputSchema = inputSchema;
369
+ }
370
+ if (outputSchema) {
371
+ agent.outputSchema = outputSchema;
372
+ }
373
+ if (config.schema?.stream) {
374
+ agent.stream = config.schema.stream;
375
+ }
376
+ return agent;
377
+ }
378
+ const runWithSpan = async (tracer, agent, handler) => {
379
+ const currentContext = context.active();
380
+ const span = tracer.startSpan('agent.run', {
381
+ attributes: {
382
+ '@agentuity/agentName': agent.metadata?.name || '',
383
+ '@agentuity/agentId': agent.metadata?.id || '',
384
+ },
385
+ }, currentContext);
386
+ try {
387
+ const spanContext = trace.setSpan(currentContext, span);
388
+ return await context.with(spanContext, handler);
389
+ }
390
+ catch (error) {
391
+ span.recordException(error);
392
+ span.setStatus({ code: SpanStatusCode.ERROR });
393
+ throw error;
394
+ }
395
+ finally {
396
+ span.end();
397
+ }
398
+ };
399
+ const createAgentRunner = (agent, ctx) => {
400
+ const tracer = ctx.var.tracer;
401
+ if (agent.inputSchema) {
402
+ return {
403
+ metadata: agent.metadata,
404
+ run: async (input) => {
405
+ return runWithSpan(tracer, agent, () => agent.handler(ctx, input));
406
+ },
407
+ };
408
+ }
409
+ else {
410
+ return {
411
+ metadata: agent.metadata,
412
+ run: async () => {
413
+ return runWithSpan(tracer, agent, () => agent.handler(ctx));
414
+ },
415
+ };
416
+ }
417
+ };
418
+ /**
419
+ * Populate the agents object with all registered agents
420
+ */
421
+ export const populateAgentsRegistry = (ctx) => {
422
+ const agentsObj = {};
423
+ // Convert kebab-case to camelCase
424
+ const toCamelCase = (str) => {
425
+ return str
426
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
427
+ .replace(/^(.)/, (char) => char.toLowerCase());
428
+ };
429
+ // Build nested structure for agents and subagents
430
+ for (const [name, agentFn] of agents) {
431
+ const runner = createAgentRunner(agentFn, ctx);
432
+ if (name.includes('.')) {
433
+ // Subagent: "parent.child"
434
+ const parts = name.split('.');
435
+ if (parts.length !== 2) {
436
+ internal.warn(`Invalid subagent name format: "${name}". Expected "parent.child".`);
437
+ continue;
438
+ }
439
+ const parentName = parts[0];
440
+ const childName = parts[1];
441
+ if (parentName && childName) {
442
+ if (!agentsObj[parentName]) {
443
+ // Ensure parent exists
444
+ const parentAgent = agents.get(parentName);
445
+ if (parentAgent) {
446
+ agentsObj[parentName] = createAgentRunner(parentAgent, ctx);
447
+ }
448
+ }
449
+ // Attach subagent to parent using camelCase property name
450
+ const camelChildName = toCamelCase(childName);
451
+ if (agentsObj[parentName]) {
452
+ agentsObj[parentName][camelChildName] = runner;
453
+ }
454
+ }
455
+ }
456
+ else {
457
+ // Parent agent or standalone agent
458
+ agentsObj[name] = runner;
459
+ }
460
+ }
461
+ return agentsObj;
462
+ };
463
+ export const createAgentMiddleware = (agentName) => {
464
+ return async (ctx, next) => {
465
+ // Populate agents object with strongly-typed keys
466
+ const agentsObj = populateAgentsRegistry(ctx);
467
+ // Determine current and parent agents
468
+ let currentAgent;
469
+ let parentAgent;
470
+ if (agentName?.includes('.')) {
471
+ // This is a subagent
472
+ const parts = agentName.split('.');
473
+ const parentName = parts[0];
474
+ const childName = parts[1];
475
+ if (parentName && childName) {
476
+ currentAgent = agentsObj[parentName]?.[childName];
477
+ parentAgent = agentsObj[parentName];
478
+ }
479
+ }
480
+ else if (agentName) {
481
+ // This is a parent or standalone agent
482
+ currentAgent = agentsObj[agentName];
483
+ }
484
+ const _ctx = privateContext(ctx);
485
+ if (currentAgent?.metadata?.id) {
486
+ _ctx.var.agentIds.add(currentAgent.metadata.id);
487
+ }
488
+ const sessionId = ctx.var.sessionId;
489
+ const thread = ctx.var.thread;
490
+ const session = ctx.var.session;
491
+ const args = {
492
+ agent: agentsObj,
493
+ current: currentAgent,
494
+ parent: parentAgent,
495
+ agentName,
496
+ logger: ctx.var.logger.child({ agent: agentName }),
497
+ tracer: ctx.var.tracer,
498
+ sessionId,
499
+ session,
500
+ thread,
501
+ handler: ctx.var.waitUntilHandler,
502
+ };
503
+ return runInAgentContext(ctx, args, next);
504
+ };
505
+ };
506
+ export const getAgents = () => agents;
507
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAe,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAU9F,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,WAAW,CAAC;AAyK3C,0DAA0D;AAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;AAExC,2EAA2E;AAC3E,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAGpC,CAAC;AAcJ,KAAK,UAAU,cAAc,CAC5B,KAA2B,EAC3B,SAAyB,EACzB,OAAqB,EACrB,IAAY;IAEZ,6BAA6B;IAC7B,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;oBACrC,MAAO,QAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC1D,CAAC;qBAAM,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;oBACjE,MAAO,QAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACpD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,2BAA2B;IAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,GAAG,EAAE,CAAC;QACT,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;AACF,CAAC;AAUD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAe,EAAE,KAAY,EAAQ,EAAE;IACpE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAIzB,MA2CD;IACA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE3C,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,UAAU,GAAW,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,KAAK,EAAE,IAAa,EAAE,KAAW,EAAE,EAAE;QACpD,IAAI,cAAc,GAAQ,SAAS,CAAC;QAEpC,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACd,4BAA4B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;YACH,CAAC;YACD,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QAEnC,4DAA4D;QAC5D,8EAA8E;QAC9E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtE,qDAAqD;QACrD,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,WAAW;gBACzB,CAAC,CAAC,MAAO,MAAM,CAAC,OAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;gBACzD,CAAC,CAAC,MAAO,MAAM,CAAC,OAAe,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,eAAe,GAAQ,MAAM,CAAC;YAClC,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CACd,6BAA6B,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;gBACH,CAAC;gBACD,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;YACtC,CAAC;YAED,oEAAoE;YACpE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACjD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAEnD,6DAA6D;YAC7D,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,eAAe,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,uBAAuB;YACvB,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAc,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CAAC;IAUF,wFAAwF;IACxF,MAAM,UAAU,GAAG,CAAC,UAGnB,EAAyB,EAAE;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC;QACxD,6CAA6C;QAC7C,QAAQ,CAAC,KAAK,CACb,gCAAgC,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,wBAAwB,QAAQ,GAAG,CACtG,CAAC;QAEF,kEAAkE;QAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;QAErD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC;QAE5B,iFAAiF;QACjF,8DAA8D;QAC9D,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,IAAI,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC/C,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;QAE3C,gFAAgF;QAChF,8EAA8E;QAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,8EAA8E;QAC9E,6EAA6E;QAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClD,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,YAAY,GAAG,UAAU,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAQ;YACrB,QAAQ,EAAE;gBACT,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,YAAY;gBACpB,OAAO;gBACP,UAAU;gBACV,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;gBACrC,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE;gBACnD,QAAQ;aACR;YACD,OAAO,EAAE,UAAU,CAAC,OAAO;SAC3B,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACtC,CAAC;QAED,gDAAgD;QAChD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,QAAQ,CAAC,KAAK,CACb,eAAe,QAAQ,eAAe,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,mBAAmB,UAAU,CAAC,MAAM,EAAE,CAC/G,CAAC;QAEF,OAAO,QAAiC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,KAAK,GAAQ;QAClB,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,UAAU;QACjB,UAAU;KACV,CAAC;IAEF,6BAA6B;IAC7B,KAAK,CAAC,gBAAgB,GAAG,CAAC,SAAyB,EAAE,QAAa,EAAQ,EAAE;QAC3E,MAAM,iBAAiB,GAAG,KAAoC,CAAC;QAC/D,MAAM,oBAAoB,GAAG,QAA0C,CAAC;QACxE,IAAI,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,sEAAsE;IACrE,KAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5E,+EAA+E;QAC/E,wFAAwF;QACxF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,UAAU,GAAG,eAAe,EAAE,KAAK,IAAI,UAAU,CAAC;QAExD,QAAQ,CAAC,KAAK,CACb,6BAA6B,SAAS,uBAAuB,UAAU,EAAE,MAAM,IAAI,CAAC,wBAAwB,eAAe,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CACjJ,CAAC;QAEF,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,MAAM,0BAA0B,CAAC,CAAC;YAExE,gDAAgD;YAChD,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAErD,mEAAmE;YACnE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC;gBAErD,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,QAAQ,CAAC,IAAI,CAAC,6CAA6C,QAAQ,GAAG,CAAC,CAAC;oBACxE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;oBACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;oBAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;oBAChD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;oBAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC;oBACnD,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;oBAEvD,2FAA2F;oBAC3F,MAAM,uBAAuB,GAAG,KAAK,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC;oBAEpE,QAAQ,CAAC,IAAI,CAAC,2CAA2C,QAAQ,IAAI,EAAE;wBACtE,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE,MAAM;wBACd,OAAO;wBACP,uBAAuB,EAAE,CAAC,CAAC,oBAAoB;wBAC/C,uBAAuB;qBACvB,CAAC,CAAC;oBAEH,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;wBAC7B,IAAI,CAAC,KAAK;4BAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS;4BAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBAClD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE;4BAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAC3D,QAAQ,CAAC,IAAI,CACZ,2CAA2C,QAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC;wBACJ,QAAQ,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;wBAE9C,4BAA4B;wBAC5B,IAAI,uBAAuB,IAAI,oBAAoB,EAAE,CAAC;4BACrD,QAAQ,CAAC,IAAI,CACZ,2CAA2C,QAAQ,UAAU,SAAS,aAAa,MAAM,GAAG,CAC5F,CAAC;4BACF,IAAI,CAAC;gCACJ,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;gCACrD,MAAM,UAAU,GAAsB;oCACrC,EAAE,EAAE,SAAS;oCACb,SAAS,EAAE,GAAG,CAAC,SAAS;oCACxB,MAAM,EAAE,MAAM;oCACd,KAAK,EAAE,KAAM;oCACb,SAAS,EAAE,SAAU;oCACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;oCACzB,YAAY,EAAE,YAAY,IAAI,SAAS;iCACvC,CAAC;gCACF,QAAQ,CAAC,KAAK,CACb,mCAAmC,EACnC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAC;gCACF,MAAM,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gCAC7C,QAAQ,CAAC,IAAI,CACZ,qDAAqD,QAAQ,UAAU,SAAS,GAAG,CACnF,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCAChB,QAAQ,CAAC,KAAK,CACb,qDAAqD,QAAQ,UAAU,SAAS,GAAG,EACnF;oCACC,KAAK;iCACL,CACD,CAAC;gCACF,uEAAuE;4BACxE,CAAC;wBACF,CAAC;6BAAM,IAAI,uBAAuB,IAAI,CAAC,oBAAoB,EAAE,CAAC;4BAC7D,QAAQ,CAAC,IAAI,CACZ,uEAAuE,QAAQ,GAAG,CAClF,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,QAAQ,CAAC,KAAK,CACb,0CAA0C,QAAQ,8BAA8B,uBAAuB,iBAAiB,CAAC,CAAC,oBAAoB,EAAE,CAChJ,CAAC;wBACH,CAAC;wBAED,uCAAuC;wBACvC,IAAI,kBAAkB,GAAQ,cAAc,CAAC;wBAC7C,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;4BAC1B,MAAM,eAAe,GACpB,MAAM,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;4BAClE,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gCAC5B,MAAM,IAAI,KAAK,CACd,iCAAiC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;4BACH,CAAC;4BACD,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC;wBAC5C,CAAC;wBAED,wCAAwC;wBACxC,IAAI,mBAAmB,GAAQ,eAAe,CAAC;wBAC/C,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;4BAC3B,MAAM,gBAAgB,GACrB,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;4BACpE,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gCAC7B,MAAM,IAAI,KAAK,CACd,kCAAkC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjG,CAAC;4BACH,CAAC;4BACD,mBAAmB,GAAG,gBAAgB,CAAC,KAAK,CAAC;wBAC9C,CAAC;wBAED,sDAAsD;wBACtD,MAAM,WAAW,GAAgB,GAAG,CAAC;wBAErC,+DAA+D;wBAC/D,IAAI,MAAqB,CAAC;wBAC1B,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;4BACjC,gCAAgC;4BAChC,MAAM,GAAG,MAAO,QAAQ,CAAC,OAAe,CACvC,WAAW,EACX,kBAAkB,EAClB,mBAAmB,CACnB,CAAC;wBACH,CAAC;6BAAM,IAAI,WAAW,EAAE,CAAC;4BACxB,qBAAqB;4BACrB,MAAM,GAAG,MAAO,QAAQ,CAAC,OAAe,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;wBAC3E,CAAC;6BAAM,IAAI,YAAY,EAAE,CAAC;4BACzB,sBAAsB;4BACtB,MAAM,GAAG,MAAO,QAAQ,CAAC,OAAe,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACP,kBAAkB;4BAClB,MAAM,GAAG,MAAO,QAAQ,CAAC,OAAe,CAAC,WAAW,CAAC,CAAC;wBACvD,CAAC;wBAED,8BAA8B;wBAC9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACpB,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gCACxB,QAAQ,CAAC,IAAI,CACZ,SAAS,QAAQ,WAAW,MAAM,CAAC,MAAM,EAAE,EAC3C,MAAM,CAAC,QAAQ,CACf,CAAC;4BACH,CAAC;iCAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gCAC9B,QAAQ,CAAC,IAAI,CACZ,SAAS,QAAQ,YAAY,MAAM,CAAC,KAAK,EAAE,EAC3C,MAAM,CAAC,QAAQ,CACf,CAAC;4BACH,CAAC;wBACF,CAAC;6BAAM,CAAC;4BACP,QAAQ,CAAC,KAAK,CAAC,SAAS,QAAQ,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC9D,CAAC;wBAED,+BAA+B;wBAC/B,IAAI,uBAAuB,IAAI,oBAAoB,EAAE,CAAC;4BACrD,QAAQ,CAAC,IAAI,CACZ,8CAA8C,QAAQ,UAAU,SAAS,GAAG,CAC5E,CAAC;4BACF,IAAI,CAAC;gCACJ,MAAM,oBAAoB,CAAC,QAAQ,CAAC;oCACnC,EAAE,EAAE,SAAS;oCACb,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oCAC3C,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;iCAChD,CAAC,CAAC;gCACH,QAAQ,CAAC,IAAI,CACZ,wDAAwD,QAAQ,UAAU,SAAS,GAAG,CACtF,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCAChB,QAAQ,CAAC,KAAK,CACb,wDAAwD,QAAQ,UAAU,SAAS,GAAG,EACtF;oCACC,KAAK;iCACL,CACD,CAAC;4BACH,CAAC;wBACF,CAAC;wBAED,QAAQ,CAAC,KAAK,CAAC,SAAS,QAAQ,0BAA0B,CAAC,CAAC;oBAC7D,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC5E,QAAQ,CAAC,KAAK,CAAC,yBAAyB,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;wBAEhE,0CAA0C;wBAC1C,IAAI,uBAAuB,IAAI,oBAAoB,EAAE,CAAC;4BACrD,QAAQ,CAAC,IAAI,CACZ,sDAAsD,QAAQ,UAAU,SAAS,GAAG,CACpF,CAAC;4BACF,IAAI,CAAC;gCACJ,MAAM,oBAAoB,CAAC,QAAQ,CAAC;oCACnC,EAAE,EAAE,SAAS;oCACb,KAAK,EAAE,YAAY;iCACnB,CAAC,CAAC;gCACH,QAAQ,CAAC,IAAI,CACZ,gEAAgE,QAAQ,UAAU,SAAS,GAAG,CAC9F,CAAC;4BACH,CAAC;4BAAC,OAAO,UAAU,EAAE,CAAC;gCACrB,QAAQ,CAAC,KAAK,CACb,gEAAgE,QAAQ,UAAU,SAAS,GAAG,EAC9F,EAAE,KAAK,EAAE,UAAU,EAAE,CACrB,CAAC;4BACH,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC,CAAC,EAAE,CACJ,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,mBAAmB,GAAG,CAAC,SAAyB,EAAE,QAAa,EAAQ,EAAE;QAC9E,MAAM,iBAAiB,GAAG,KAAoC,CAAC;QAC/D,MAAM,oBAAoB,GAAG,QAA0C,CAAC;QACxE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACjB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,KAAwC,CAAC;AACjD,CAAC;AAED,MAAM,WAAW,GAAG,KAAK,EACxB,MAAc,EACd,KAA2B,EAC3B,OAAyB,EACZ,EAAE;IACf,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAC5B,WAAW,EACX;QACC,UAAU,EAAE;YACX,sBAAsB,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAClD,oBAAoB,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;SAC9C;KACD,EACD,cAAc,CACd,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACb,CAAC;YAAS,CAAC;QACV,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAKzB,KAAsC,EACtC,GAAY,EAC4B,EAAE;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IAE9B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE;gBACzB,OAAO,WAAW,CAAC,MAAM,EAAE,KAA6B,EAAE,GAAG,EAAE,CAC9D,KAAK,CAAC,OAAO,CAAC,GAA8B,EAAE,KAAK,CAAC,CACpD,CAAC;YACH,CAAC;SACwC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACP,OAAO;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,EAAE,KAAK,IAAI,EAAE;gBACf,OAAO,WAAW,CAAC,MAAM,EAAE,KAA6B,EAAE,GAAG,EAAE,CAC9D,KAAK,CAAC,OAAO,CAAC,GAA8B,CAAC,CAC7C,CAAC;YACH,CAAC;SACwC,CAAC;IAC5C,CAAC;AACF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAY,EAAO,EAAE;IAC3D,MAAM,SAAS,GAAQ,EAAE,CAAC;IAE1B,kCAAkC;IAClC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;QAC3C,OAAO,GAAG;aACR,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACtE,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,kDAAkD;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,2BAA2B;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,IAAI,6BAA6B,CAAC,CAAC;gBACnF,SAAS;YACV,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,uBAAuB;oBACvB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC3C,IAAI,WAAW,EAAE,CAAC;wBACjB,SAAS,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;oBAC7D,CAAC;gBACF,CAAC;gBACD,0DAA0D;gBAC1D,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3B,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;gBAChD,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,mCAAmC;YACnC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAqB,EAAE;IAChF,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,kDAAkD;QAClD,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAE9C,sCAAsC;QACtC,IAAI,YAAqC,CAAC;QAC1C,IAAI,WAAoC,CAAC;QAEzC,IAAI,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,qBAAqB;YACrB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBAClD,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACF,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACtB,uCAAuC;YACvC,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAEhC,MAAM,IAAI,GAAyD;YAClE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;YACnB,SAAS;YACT,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAClD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;YACtB,SAAS;YACT,OAAO;YACP,MAAM;YACN,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB;SACjC,CAAC;QAEF,OAAO,iBAAiB,CACvB,GAAyC,EACzC,IAAyC,EACzC,IAAI,CACJ,CAAC;IACH,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC"}
package/dist/app.d.ts CHANGED
@@ -6,7 +6,7 @@ import { createServer } from './_server';
6
6
  import type { Meter, Tracer } from '@opentelemetry/api';
7
7
  import type { KeyValueStorage, ObjectStorage, SessionEventProvider, EvalRunEventProvider, StreamStorage, VectorStorage, SessionStartEvent } from '@agentuity/core';
8
8
  import type { Email } from './io/email';
9
- import type { Agent, AgentContext } from './agent';
9
+ import type { Agent, AgentContext, AgentRegistry } from './agent';
10
10
  import type { ThreadProvider, SessionProvider, Session, Thread } from './session';
11
11
  import type WaitUntilHandler from './_waituntil';
12
12
  type CorsOptions = Parameters<typeof cors>[0];
@@ -65,6 +65,11 @@ export interface Variables {
65
65
  sessionId: string;
66
66
  thread: Thread;
67
67
  session: Session;
68
+ agent: AgentRegistry;
69
+ kv: KeyValueStorage;
70
+ objectstore: ObjectStorage;
71
+ stream: StreamStorage;
72
+ vector: VectorStorage;
68
73
  }
69
74
  export type TriggerType = SessionStartEvent['trigger'];
70
75
  export interface PrivateVariables {
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js ADDED
@@ -0,0 +1,72 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /** biome-ignore-all lint/suspicious/noExplicitAny: any are ok */
3
+ import { Hono } from 'hono';
4
+ import { createServer, getLogger } from './_server';
5
+ export class App {
6
+ /**
7
+ * the router instance
8
+ */
9
+ router;
10
+ /**
11
+ * the server instance
12
+ */
13
+ server;
14
+ /**
15
+ * the logger instance
16
+ */
17
+ logger;
18
+ eventListeners = new Map();
19
+ constructor(config) {
20
+ this.router = new Hono();
21
+ this.server = createServer(this.router, config);
22
+ this.logger = getLogger();
23
+ setGlobalApp(this);
24
+ }
25
+ addEventListener(eventName, callback) {
26
+ let callbacks = this.eventListeners.get(eventName);
27
+ if (!callbacks) {
28
+ callbacks = new Set();
29
+ this.eventListeners.set(eventName, callbacks);
30
+ }
31
+ callbacks.add(callback);
32
+ }
33
+ removeEventListener(eventName, callback) {
34
+ const callbacks = this.eventListeners.get(eventName);
35
+ if (!callbacks)
36
+ return;
37
+ callbacks.delete(callback);
38
+ }
39
+ async fireEvent(eventName, ...args) {
40
+ const callbacks = this.eventListeners.get(eventName);
41
+ if (!callbacks || callbacks.size === 0)
42
+ return;
43
+ for (const callback of callbacks) {
44
+ await callback(eventName, ...args);
45
+ }
46
+ }
47
+ }
48
+ let globalApp = null;
49
+ function setGlobalApp(app) {
50
+ globalApp = app;
51
+ }
52
+ export function getApp() {
53
+ return globalApp;
54
+ }
55
+ /**
56
+ * create a new app instance
57
+ *
58
+ * @returns App instance
59
+ */
60
+ export function createApp(config) {
61
+ return new App(config);
62
+ }
63
+ /**
64
+ * fire a global event
65
+ *
66
+ * @param eventName
67
+ * @param args
68
+ */
69
+ export async function fireEvent(eventName, ...args) {
70
+ await globalApp?.fireEvent(eventName, ...args);
71
+ }
72
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,iEAAiE;AACjE,OAAO,EAAuB,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA6GpD,MAAM,OAAO,GAAG;IACf;;OAEG;IACM,MAAM,CAAY;IAC3B;;OAEG;IACM,MAAM,CAAkC;IACjD;;OAEG;IACM,MAAM,CAAS;IAEhB,cAAc,GAAG,IAAI,GAAG,EAAiD,CAAC;IAElF,YAAY,MAAkB;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,EAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,SAAS,EAAY,CAAC;QACpC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,gBAAgB,CACf,SAAY,EACZ,QAA6B;QAE7B,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,mBAAmB,CAClB,SAAY,EACZ,QAA6B;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CACd,SAAY,EACZ,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;CACD;AAED,IAAI,SAAS,GAAe,IAAI,CAAC;AAEjC,SAAS,YAAY,CAAC,GAAQ;IAC7B,SAAS,GAAG,GAAG,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM;IACrB,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC3C,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,SAAY,EACZ,GAAG,IAAoB;IAEvB,MAAM,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;AAChD,CAAC"}
package/dist/eval.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=eval.js.map