@agentuity/runtime 0.0.51 → 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.
- package/dist/_config.js +99 -0
- package/dist/_config.js.map +1 -0
- package/dist/_context.js +82 -0
- package/dist/_context.js.map +1 -0
- package/dist/_idle.js +24 -0
- package/dist/_idle.js.map +1 -0
- package/dist/_server.js +489 -0
- package/dist/_server.js.map +1 -0
- package/dist/_services.js +258 -0
- package/dist/_services.js.map +1 -0
- package/dist/_tokens.js +98 -0
- package/dist/_tokens.js.map +1 -0
- package/dist/_util.js +54 -0
- package/dist/_util.js.map +1 -0
- package/dist/_waituntil.js +87 -0
- package/dist/_waituntil.js.map +1 -0
- package/dist/agent.js +507 -0
- package/dist/agent.js.map +1 -0
- package/dist/app.d.ts +6 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +72 -0
- package/dist/app.js.map +1 -0
- package/dist/eval.js +2 -0
- package/dist/eval.js.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/io/email.js +154 -0
- package/dist/io/email.js.map +1 -0
- package/dist/logger/console.js +274 -0
- package/dist/logger/console.js.map +1 -0
- package/dist/logger/index.js +3 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/internal.js +133 -0
- package/dist/logger/internal.js.map +1 -0
- package/dist/logger/logger.js +2 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/logger/user.js +7 -0
- package/dist/logger/user.js.map +1 -0
- package/dist/logger/util.js +77 -0
- package/dist/logger/util.js.map +1 -0
- package/dist/otel/config.js +23 -0
- package/dist/otel/config.js.map +1 -0
- package/dist/otel/console.js +52 -0
- package/dist/otel/console.js.map +1 -0
- package/dist/otel/exporters/index.js +4 -0
- package/dist/otel/exporters/index.js.map +1 -0
- package/dist/otel/exporters/jsonl-log-exporter.js +103 -0
- package/dist/otel/exporters/jsonl-log-exporter.js.map +1 -0
- package/dist/otel/exporters/jsonl-metric-exporter.js +104 -0
- package/dist/otel/exporters/jsonl-metric-exporter.js.map +1 -0
- package/dist/otel/exporters/jsonl-trace-exporter.js +111 -0
- package/dist/otel/exporters/jsonl-trace-exporter.js.map +1 -0
- package/dist/otel/fetch.js +81 -0
- package/dist/otel/fetch.js.map +1 -0
- package/dist/otel/http.js +44 -0
- package/dist/otel/http.js.map +1 -0
- package/dist/otel/logger.js +278 -0
- package/dist/otel/logger.js.map +1 -0
- package/dist/otel/otel.js +233 -0
- package/dist/otel/otel.js.map +1 -0
- package/dist/router.js +350 -0
- package/dist/router.js.map +1 -0
- package/dist/services/evalrun/composite.js +26 -0
- package/dist/services/evalrun/composite.js.map +1 -0
- package/dist/services/evalrun/http.js +74 -0
- package/dist/services/evalrun/http.js.map +1 -0
- package/dist/services/evalrun/index.js +5 -0
- package/dist/services/evalrun/index.js.map +1 -0
- package/dist/services/evalrun/json.js +38 -0
- package/dist/services/evalrun/json.js.map +1 -0
- package/dist/services/evalrun/local.js +22 -0
- package/dist/services/evalrun/local.js.map +1 -0
- package/dist/services/local/_db.js +144 -0
- package/dist/services/local/_db.js.map +1 -0
- package/dist/services/local/_router.js +60 -0
- package/dist/services/local/_router.js.map +1 -0
- package/dist/services/local/_util.js +42 -0
- package/dist/services/local/_util.js.map +1 -0
- package/dist/services/local/index.js +8 -0
- package/dist/services/local/index.js.map +1 -0
- package/dist/services/local/keyvalue.js +114 -0
- package/dist/services/local/keyvalue.js.map +1 -0
- package/dist/services/local/objectstore.js +117 -0
- package/dist/services/local/objectstore.js.map +1 -0
- package/dist/services/local/stream.js +218 -0
- package/dist/services/local/stream.js.map +1 -0
- package/dist/services/local/vector.js +183 -0
- package/dist/services/local/vector.js.map +1 -0
- package/dist/services/session/composite.js +26 -0
- package/dist/services/session/composite.js.map +1 -0
- package/dist/services/session/http.js +42 -0
- package/dist/services/session/http.js.map +1 -0
- package/dist/services/session/index.js +5 -0
- package/dist/services/session/index.js.map +1 -0
- package/dist/services/session/json.js +35 -0
- package/dist/services/session/json.js.map +1 -0
- package/dist/services/session/local.js +22 -0
- package/dist/services/session/local.js.map +1 -0
- package/dist/session.js +199 -0
- package/dist/session.js.map +1 -0
- package/dist/workbench.js +38 -0
- package/dist/workbench.js.map +1 -0
- package/package.json +5 -5
- package/src/app.ts +6 -1
package/dist/router.js
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
3
|
+
import { Hono } from 'hono';
|
|
4
|
+
import { stream as honoStream, streamSSE as honoStreamSSE } from 'hono/streaming';
|
|
5
|
+
import { upgradeWebSocket as honoUpgradeWebSocket } from 'hono/bun';
|
|
6
|
+
import { hash, returnResponse } from './_util';
|
|
7
|
+
import { getAgentAsyncLocalStorage } from './_context';
|
|
8
|
+
import { parseEmail } from './io/email';
|
|
9
|
+
export const createRouter = () => {
|
|
10
|
+
const router = new Hono();
|
|
11
|
+
// tslint:disable-next-line:no-any no-unused-variable
|
|
12
|
+
// biome-ignore lint:no-any
|
|
13
|
+
const _router = router;
|
|
14
|
+
for (const method of ['get', 'put', 'post', 'delete', 'options', 'patch']) {
|
|
15
|
+
const _originalInvoker = _router[method].bind(router);
|
|
16
|
+
_router[method] = (path, ...args) => {
|
|
17
|
+
if (args.length === 1) {
|
|
18
|
+
const arg = args[0];
|
|
19
|
+
// Check if it's a middleware (not our agent handler)
|
|
20
|
+
if (typeof arg === 'function' && arg.length === 2) {
|
|
21
|
+
// Middleware only: (path, middleware)
|
|
22
|
+
return _originalInvoker(path, arg);
|
|
23
|
+
}
|
|
24
|
+
// 2-arg: (path, handler)
|
|
25
|
+
const handler = arg;
|
|
26
|
+
const wrapper = async (c) => {
|
|
27
|
+
let result = handler(c);
|
|
28
|
+
if (result instanceof Promise)
|
|
29
|
+
result = await result;
|
|
30
|
+
// If handler returns a Response (e.g., websocket upgrade), return it unchanged
|
|
31
|
+
if (result instanceof Response)
|
|
32
|
+
return result;
|
|
33
|
+
return returnResponse(c, result);
|
|
34
|
+
};
|
|
35
|
+
return _originalInvoker(path, wrapper);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// 3-arg: (path, middleware, handler)
|
|
39
|
+
const middleware = args[0];
|
|
40
|
+
const handler = args[1];
|
|
41
|
+
const wrapper = async (c) => {
|
|
42
|
+
let result = handler(c);
|
|
43
|
+
if (result instanceof Promise)
|
|
44
|
+
result = await result;
|
|
45
|
+
// If handler returns a Response (e.g., websocket upgrade), return it unchanged
|
|
46
|
+
if (result instanceof Response) {
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
return returnResponse(c, result);
|
|
50
|
+
};
|
|
51
|
+
return _originalInvoker(path, middleware, wrapper);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// shim in special routes
|
|
56
|
+
_router.email = (address, ...args) => {
|
|
57
|
+
let middleware;
|
|
58
|
+
let handler;
|
|
59
|
+
if (args.length === 1) {
|
|
60
|
+
handler = args[0];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
middleware = args[0];
|
|
64
|
+
handler = args[1];
|
|
65
|
+
}
|
|
66
|
+
const id = hash(address);
|
|
67
|
+
const path = `/${id}`;
|
|
68
|
+
// registerEmailHandler(address)
|
|
69
|
+
const wrapper = async (c) => {
|
|
70
|
+
const contentType = (c.req.header('content-type') || '').trim().toLowerCase();
|
|
71
|
+
if (!contentType.includes('message/rfc822')) {
|
|
72
|
+
return c.text('Bad Request: Content-Type must be message/rfc822', 400);
|
|
73
|
+
}
|
|
74
|
+
const arrayBuffer = await c.req.arrayBuffer();
|
|
75
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
76
|
+
const email = await parseEmail(buffer);
|
|
77
|
+
let result = handler(email, c);
|
|
78
|
+
if (result instanceof Promise)
|
|
79
|
+
result = await result;
|
|
80
|
+
if (result === undefined) {
|
|
81
|
+
return c.text('OK', 200);
|
|
82
|
+
}
|
|
83
|
+
return returnResponse(c, result);
|
|
84
|
+
};
|
|
85
|
+
if (middleware) {
|
|
86
|
+
return router.post(path, middleware, wrapper);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return router.post(path, wrapper);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
_router.sms = ({ number }, handler) => {
|
|
93
|
+
const id = hash(number);
|
|
94
|
+
const path = `/${id}`;
|
|
95
|
+
// registerSMSHandler(number)
|
|
96
|
+
const wrapper = async (c) => {
|
|
97
|
+
let result = handler(c);
|
|
98
|
+
if (result instanceof Promise)
|
|
99
|
+
result = await result;
|
|
100
|
+
return returnResponse(c, result);
|
|
101
|
+
};
|
|
102
|
+
return router.post(path, wrapper);
|
|
103
|
+
};
|
|
104
|
+
_router.cron = (schedule, handler) => {
|
|
105
|
+
const id = hash(schedule);
|
|
106
|
+
const path = `/${id}`;
|
|
107
|
+
// registerCronHandler(schedule)
|
|
108
|
+
const wrapper = async (c) => {
|
|
109
|
+
let result = handler(c);
|
|
110
|
+
if (result instanceof Promise)
|
|
111
|
+
result = await result;
|
|
112
|
+
return returnResponse(c, result);
|
|
113
|
+
};
|
|
114
|
+
return router.post(path, wrapper);
|
|
115
|
+
};
|
|
116
|
+
_router.stream = (path, ...args) => {
|
|
117
|
+
let middleware;
|
|
118
|
+
let handler;
|
|
119
|
+
if (args.length === 1) {
|
|
120
|
+
handler = args[0];
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
middleware = args[0];
|
|
124
|
+
handler = args[1];
|
|
125
|
+
}
|
|
126
|
+
const wrapper = (c) => {
|
|
127
|
+
// Capture the AgentContext from the request
|
|
128
|
+
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
129
|
+
const capturedContext = asyncLocalStorage.getStore();
|
|
130
|
+
return honoStream(c, async (s) => {
|
|
131
|
+
const runInContext = async () => {
|
|
132
|
+
try {
|
|
133
|
+
let streamResult = handler(c);
|
|
134
|
+
if (streamResult instanceof Promise)
|
|
135
|
+
streamResult = await streamResult;
|
|
136
|
+
await s.pipe(streamResult);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
c.var.logger.error('Stream error:', err);
|
|
140
|
+
throw err;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
if (capturedContext) {
|
|
144
|
+
await asyncLocalStorage.run(capturedContext, runInContext);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
await runInContext();
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
if (middleware) {
|
|
152
|
+
return router.get(path, middleware, wrapper);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
return router.get(path, wrapper);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
_router.websocket = (path, ...args) => {
|
|
159
|
+
let middleware;
|
|
160
|
+
let handler;
|
|
161
|
+
if (args.length === 1) {
|
|
162
|
+
handler = args[0];
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
middleware = args[0];
|
|
166
|
+
handler = args[1];
|
|
167
|
+
}
|
|
168
|
+
const wrapper = honoUpgradeWebSocket((c) => {
|
|
169
|
+
let openHandler;
|
|
170
|
+
let messageHandler;
|
|
171
|
+
let closeHandler;
|
|
172
|
+
let initialized = false;
|
|
173
|
+
// Capture the AgentContext from the upgrade request
|
|
174
|
+
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
175
|
+
const capturedContext = asyncLocalStorage.getStore();
|
|
176
|
+
const wsConnection = {
|
|
177
|
+
onOpen: (h) => {
|
|
178
|
+
openHandler = h;
|
|
179
|
+
},
|
|
180
|
+
onMessage: (h) => {
|
|
181
|
+
messageHandler = h;
|
|
182
|
+
},
|
|
183
|
+
onClose: (h) => {
|
|
184
|
+
closeHandler = h;
|
|
185
|
+
},
|
|
186
|
+
send: (_data) => {
|
|
187
|
+
// This will be bound to the actual ws in the handlers
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
const setupResult = handler(c);
|
|
191
|
+
const setupFn = typeof setupResult === 'function' ? setupResult : null;
|
|
192
|
+
// Call setup IMMEDIATELY during upgrade, not in onOpen
|
|
193
|
+
// This allows the user's code to register handlers before events fire
|
|
194
|
+
if (setupFn) {
|
|
195
|
+
if (capturedContext) {
|
|
196
|
+
asyncLocalStorage.run(capturedContext, () => setupFn(wsConnection));
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
setupFn(wsConnection);
|
|
200
|
+
}
|
|
201
|
+
initialized = true;
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
onOpen: async (event, ws) => {
|
|
205
|
+
try {
|
|
206
|
+
// Bind the real ws.send now that we have the actual websocket
|
|
207
|
+
wsConnection.send = (data) => ws.send(data);
|
|
208
|
+
if (openHandler) {
|
|
209
|
+
// Run handler in captured context
|
|
210
|
+
const handler = openHandler;
|
|
211
|
+
if (capturedContext) {
|
|
212
|
+
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
await handler(event);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
c.var.logger?.error('WebSocket onOpen error:', err);
|
|
221
|
+
throw err;
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
onMessage: async (event, ws) => {
|
|
225
|
+
try {
|
|
226
|
+
// Lazy initialization fallback (shouldn't normally happen)
|
|
227
|
+
if (!initialized && setupFn) {
|
|
228
|
+
wsConnection.send = (data) => ws.send(data);
|
|
229
|
+
if (capturedContext) {
|
|
230
|
+
await asyncLocalStorage.run(capturedContext, async () => {
|
|
231
|
+
const result = setupFn(wsConnection);
|
|
232
|
+
if (result instanceof Promise)
|
|
233
|
+
await result;
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
const result = setupFn(wsConnection);
|
|
238
|
+
if (result instanceof Promise)
|
|
239
|
+
await result;
|
|
240
|
+
}
|
|
241
|
+
initialized = true;
|
|
242
|
+
}
|
|
243
|
+
if (messageHandler) {
|
|
244
|
+
// Run handler in captured context
|
|
245
|
+
const handler = messageHandler;
|
|
246
|
+
if (capturedContext) {
|
|
247
|
+
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
await handler(event);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
c.var.logger?.error('WebSocket onMessage error:', err);
|
|
256
|
+
throw err;
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
onClose: async (event, _ws) => {
|
|
260
|
+
try {
|
|
261
|
+
if (closeHandler) {
|
|
262
|
+
// Run handler in captured context
|
|
263
|
+
const handler = closeHandler;
|
|
264
|
+
if (capturedContext) {
|
|
265
|
+
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
await handler(event);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
c.var.logger?.error('WebSocket onClose error:', err);
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
};
|
|
277
|
+
});
|
|
278
|
+
// wrapper is what upgradeWebSocket(...) returned. Force arity=2 so our get shim
|
|
279
|
+
// recognizes it as middleware and does not wrap/convert undefined -> 200.
|
|
280
|
+
const wsMiddleware = (c, next) => wrapper(c, next);
|
|
281
|
+
if (middleware) {
|
|
282
|
+
// Compose into a single middleware to avoid the 3-arg route which treats the
|
|
283
|
+
// second function as a handler and wraps it.
|
|
284
|
+
const composed = async (c, next) => {
|
|
285
|
+
return middleware(c, async () => {
|
|
286
|
+
await wsMiddleware(c, next);
|
|
287
|
+
});
|
|
288
|
+
};
|
|
289
|
+
return router.get(path, composed);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
return router.get(path, wsMiddleware);
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
_router.sse = (path, ...args) => {
|
|
296
|
+
let middleware;
|
|
297
|
+
let handler;
|
|
298
|
+
if (args.length === 1) {
|
|
299
|
+
handler = args[0];
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
middleware = args[0];
|
|
303
|
+
handler = args[1];
|
|
304
|
+
}
|
|
305
|
+
const wrapper = (c) => {
|
|
306
|
+
// Capture the AgentContext from the request
|
|
307
|
+
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
308
|
+
const capturedContext = asyncLocalStorage.getStore();
|
|
309
|
+
return honoStreamSSE(c, async (stream) => {
|
|
310
|
+
// Wrap the stream to intercept write() calls
|
|
311
|
+
const wrappedStream = {
|
|
312
|
+
...stream,
|
|
313
|
+
write: async (data) => {
|
|
314
|
+
// Convert simple write to writeSSE format
|
|
315
|
+
if (typeof data === 'string' ||
|
|
316
|
+
typeof data === 'number' ||
|
|
317
|
+
typeof data === 'boolean') {
|
|
318
|
+
return stream.writeSSE({ data: String(data) });
|
|
319
|
+
}
|
|
320
|
+
else if (typeof data === 'object' && data !== null) {
|
|
321
|
+
// If it's already an SSE message object, pass it through
|
|
322
|
+
return stream.writeSSE(data);
|
|
323
|
+
}
|
|
324
|
+
return stream.writeSSE({ data: String(data) });
|
|
325
|
+
},
|
|
326
|
+
writeSSE: stream.writeSSE.bind(stream),
|
|
327
|
+
onAbort: stream.onAbort.bind(stream),
|
|
328
|
+
close: stream.close?.bind(stream),
|
|
329
|
+
};
|
|
330
|
+
const runInContext = async () => {
|
|
331
|
+
await handler(c)(wrappedStream);
|
|
332
|
+
};
|
|
333
|
+
if (capturedContext) {
|
|
334
|
+
await asyncLocalStorage.run(capturedContext, runInContext);
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
await runInContext();
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
};
|
|
341
|
+
if (middleware) {
|
|
342
|
+
return router.get(path, middleware, wrapper);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
return router.get(path, wrapper);
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
return router;
|
|
349
|
+
};
|
|
350
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An implementation of the EvalRunEventProvider which wraps multiple providers
|
|
3
|
+
*/
|
|
4
|
+
export class CompositeEvalRunEventProvider {
|
|
5
|
+
providers;
|
|
6
|
+
constructor(...providers) {
|
|
7
|
+
this.providers = providers;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* called when the eval run starts
|
|
11
|
+
*
|
|
12
|
+
* @param event EvalRunStartEvent
|
|
13
|
+
*/
|
|
14
|
+
async start(event) {
|
|
15
|
+
await Promise.allSettled(this.providers.map((provider) => provider.start(event)));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* called when the eval run completes
|
|
19
|
+
*
|
|
20
|
+
* @param event EvalRunCompleteEvent
|
|
21
|
+
*/
|
|
22
|
+
async complete(event) {
|
|
23
|
+
await Promise.allSettled(this.providers.map((provider) => provider.complete(event)));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../../src/services/evalrun/composite.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,6BAA6B;IACjC,SAAS,CAAyB;IAE1C,YAAY,GAAG,SAAiC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,KAAwB;QACnC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAA2B;QACzC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;CACD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { APIResponseSchemaNoData, ValidationError } from '@agentuity/server';
|
|
2
|
+
import { EvalRunStartEventDelayedSchema, EvalRunCompleteEventDelayedSchema, } from '@agentuity/core';
|
|
3
|
+
/**
|
|
4
|
+
* An implementation of the EvalRunEventProvider which uses HTTP for delivery
|
|
5
|
+
*/
|
|
6
|
+
export class HTTPEvalRunEventProvider {
|
|
7
|
+
apiClient;
|
|
8
|
+
logger;
|
|
9
|
+
baseUrl;
|
|
10
|
+
constructor(client, logger, baseUrl) {
|
|
11
|
+
this.apiClient = client;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
this.baseUrl = baseUrl;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* called when the eval run starts
|
|
17
|
+
*
|
|
18
|
+
* @param event EvalRunStartEvent
|
|
19
|
+
*/
|
|
20
|
+
async start(event) {
|
|
21
|
+
const endpoint = '/evalrun/2025-03-17';
|
|
22
|
+
const fullUrl = `${this.baseUrl}${endpoint}`;
|
|
23
|
+
this.logger.debug('[EVALRUN HTTP] Sending eval run start event: %s', event.id);
|
|
24
|
+
this.logger.debug('[EVALRUN HTTP] URL: %s %s', 'POST', fullUrl);
|
|
25
|
+
this.logger.debug('[EVALRUN HTTP] Base URL: %s', this.baseUrl);
|
|
26
|
+
const payload = { ...event, timestamp: Date.now() };
|
|
27
|
+
this.logger.debug('[EVALRUN HTTP] Start event payload: %s', JSON.stringify(payload, null, 2));
|
|
28
|
+
try {
|
|
29
|
+
const resp = await this.apiClient.request('POST', endpoint, APIResponseSchemaNoData(), payload, EvalRunStartEventDelayedSchema);
|
|
30
|
+
if (resp.success) {
|
|
31
|
+
this.logger.debug('[EVALRUN HTTP] Start event sent successfully: %s', event.id);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const errorMsg = resp.message || 'Unknown error';
|
|
35
|
+
this.logger.error('[EVALRUN HTTP] Start event failed: %s, error: %s', event.id, errorMsg);
|
|
36
|
+
throw new Error(errorMsg);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
this.logger.error('[EVALRUN HTTP] Start event exception: %s, error: %s', event.id, error instanceof Error ? error.message : String(error));
|
|
40
|
+
// Log validation errors if available
|
|
41
|
+
if (error instanceof ValidationError) {
|
|
42
|
+
this.logger.error('[EVALRUN HTTP] Validation issues: %s', JSON.stringify(error.issues, null, 2));
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* called when the eval run completes
|
|
49
|
+
*
|
|
50
|
+
* @param event EvalRunCompleteEvent
|
|
51
|
+
*/
|
|
52
|
+
async complete(event) {
|
|
53
|
+
const endpoint = '/evalrun/2025-03-17';
|
|
54
|
+
const fullUrl = `${this.baseUrl}${endpoint}`;
|
|
55
|
+
this.logger.debug('[EVALRUN HTTP] Sending eval run complete event: %s', event.id);
|
|
56
|
+
this.logger.debug('[EVALRUN HTTP] URL: %s %s', 'PUT', fullUrl);
|
|
57
|
+
this.logger.debug('[EVALRUN HTTP] Base URL: %s', this.baseUrl);
|
|
58
|
+
try {
|
|
59
|
+
const resp = await this.apiClient.request('PUT', endpoint, APIResponseSchemaNoData(), { ...event, timestamp: Date.now() }, EvalRunCompleteEventDelayedSchema);
|
|
60
|
+
if (resp.success) {
|
|
61
|
+
this.logger.debug('[EVALRUN HTTP] Complete event sent successfully: %s', event.id);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const errorMsg = resp.message || 'Unknown error';
|
|
65
|
+
this.logger.error('[EVALRUN HTTP] Complete event failed: %s, error: %s', event.id, errorMsg);
|
|
66
|
+
throw new Error(errorMsg);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
this.logger.error('[EVALRUN HTTP] Complete event exception: %s, error: %s', event.id, error instanceof Error ? error.message : String(error));
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/services/evalrun/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/evalrun/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An implementation of the EvalRunEventProvider which writes to JSON files
|
|
3
|
+
*/
|
|
4
|
+
export class JSONEvalRunEventProvider {
|
|
5
|
+
exportDir;
|
|
6
|
+
constructor(exportDir) {
|
|
7
|
+
this.exportDir = exportDir;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* called when the eval run starts
|
|
11
|
+
*
|
|
12
|
+
* @param event EvalRunStartEvent
|
|
13
|
+
*/
|
|
14
|
+
async start(event) {
|
|
15
|
+
const data = {
|
|
16
|
+
type: 'evalrun_start',
|
|
17
|
+
timestamp: Date.now(),
|
|
18
|
+
...event,
|
|
19
|
+
};
|
|
20
|
+
const filename = `${this.exportDir}/evalrun-${event.id}-start.json`;
|
|
21
|
+
await Bun.write(filename, JSON.stringify(data, null, 2));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* called when the eval run completes
|
|
25
|
+
*
|
|
26
|
+
* @param event EvalRunCompleteEvent
|
|
27
|
+
*/
|
|
28
|
+
async complete(event) {
|
|
29
|
+
const data = {
|
|
30
|
+
type: 'evalrun_complete',
|
|
31
|
+
timestamp: Date.now(),
|
|
32
|
+
...event,
|
|
33
|
+
};
|
|
34
|
+
const filename = `${this.exportDir}/evalrun-${event.id}-complete.json`;
|
|
35
|
+
await Bun.write(filename, JSON.stringify(data, null, 2));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/services/evalrun/json.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC5B,SAAS,CAAS;IAE1B,YAAY,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,KAAwB;QACnC,MAAM,IAAI,GAAG;YACZ,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,KAAK;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,YAAY,KAAK,CAAC,EAAE,aAAa,CAAC;QACpE,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAA2B;QACzC,MAAM,IAAI,GAAG;YACZ,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,KAAK;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,YAAY,KAAK,CAAC,EAAE,gBAAgB,CAAC;QACvE,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;CACD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An implementation of the EvalRunEventProvider which just logs locally
|
|
3
|
+
*/
|
|
4
|
+
export class LocalEvalRunEventProvider {
|
|
5
|
+
/**
|
|
6
|
+
* called when the eval run starts
|
|
7
|
+
*
|
|
8
|
+
* @param event EvalRunStartEvent
|
|
9
|
+
*/
|
|
10
|
+
async start(event) {
|
|
11
|
+
console.log('EvalRun started:', event);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* called when the eval run completes
|
|
15
|
+
*
|
|
16
|
+
* @param event EvalRunCompleteEvent
|
|
17
|
+
*/
|
|
18
|
+
async complete(event) {
|
|
19
|
+
console.log('EvalRun completed:', event);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/services/evalrun/local.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACrC;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,KAAwB;QACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAA2B;QACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;CACD"}
|