@agentuity/runtime 0.0.103 → 0.0.105
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/README.md +61 -35
- package/dist/_config.d.ts.map +1 -1
- package/dist/_config.js +9 -2
- package/dist/_config.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +6 -0
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +5 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/eval.d.ts +2 -0
- package/dist/eval.d.ts.map +1 -1
- package/dist/handlers/cron.d.ts +47 -0
- package/dist/handlers/cron.d.ts.map +1 -0
- package/dist/handlers/cron.js +49 -0
- package/dist/handlers/cron.js.map +1 -0
- package/dist/handlers/index.d.ts +5 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +5 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/sse.d.ts +74 -0
- package/dist/handlers/sse.d.ts.map +1 -0
- package/dist/handlers/sse.js +70 -0
- package/dist/handlers/sse.js.map +1 -0
- package/dist/handlers/stream.d.ts +52 -0
- package/dist/handlers/stream.d.ts.map +1 -0
- package/dist/handlers/stream.js +75 -0
- package/dist/handlers/stream.js.map +1 -0
- package/dist/handlers/websocket.d.ts +49 -0
- package/dist/handlers/websocket.d.ts.map +1 -0
- package/dist/handlers/websocket.js +130 -0
- package/dist/handlers/websocket.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/otel/logger.d.ts +1 -4
- package/dist/otel/logger.d.ts.map +1 -1
- package/dist/otel/logger.js +11 -2
- package/dist/otel/logger.js.map +1 -1
- package/dist/router.d.ts +46 -236
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +82 -349
- package/dist/router.js.map +1 -1
- package/dist/workbench.d.ts +6 -2
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +29 -26
- package/dist/workbench.js.map +1 -1
- package/package.json +5 -7
- package/src/_config.ts +9 -2
- package/src/agent.ts +6 -0
- package/src/app.ts +7 -2
- package/src/eval.ts +2 -0
- package/src/handlers/cron.ts +70 -0
- package/src/handlers/index.ts +4 -0
- package/src/handlers/sse.ts +118 -0
- package/src/handlers/stream.ts +86 -0
- package/src/handlers/websocket.ts +153 -0
- package/src/index.ts +16 -3
- package/src/otel/logger.ts +13 -2
- package/src/router.ts +110 -597
- package/src/workbench.ts +30 -27
- package/dist/io/email.d.ts +0 -77
- package/dist/io/email.d.ts.map +0 -1
- package/dist/io/email.js +0 -162
- package/dist/io/email.js.map +0 -1
- package/src/io/email.ts +0 -191
package/dist/router.js
CHANGED
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import { stream as honoStream, streamSSE as honoStreamSSE } from 'hono/streaming';
|
|
5
|
-
import { upgradeWebSocket } from 'hono/bun';
|
|
6
|
-
import { hash, returnResponse } from './_util';
|
|
7
|
-
import { getAgentAsyncLocalStorage } from './_context';
|
|
8
|
-
import { parseEmail } from './io/email';
|
|
2
|
+
import { Hono } from 'hono';
|
|
3
|
+
import { returnResponse } from './_util';
|
|
9
4
|
/**
|
|
10
5
|
* Creates a Hono router with extended methods for Agentuity-specific routing patterns.
|
|
11
6
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* - **
|
|
16
|
-
* - **
|
|
17
|
-
* - **
|
|
18
|
-
* - **cron()** - Scheduled
|
|
7
|
+
* Standard HTTP methods (get, post, put, delete, patch) are available, plus middleware
|
|
8
|
+
* functions for specialized protocols:
|
|
9
|
+
*
|
|
10
|
+
* - **websocket()** - WebSocket connections (import { websocket } from '@agentuity/runtime')
|
|
11
|
+
* - **sse()** - Server-Sent Events (import { sse } from '@agentuity/runtime')
|
|
12
|
+
* - **stream()** - Streaming responses (import { stream } from '@agentuity/runtime')
|
|
13
|
+
* - **cron()** - Scheduled tasks (import { cron } from '@agentuity/runtime')
|
|
19
14
|
*
|
|
20
15
|
* @template E - Environment type (Hono Env)
|
|
21
16
|
* @template S - Schema type for route definitions
|
|
22
17
|
*
|
|
23
|
-
* @returns Extended Hono router
|
|
18
|
+
* @returns Extended Hono router
|
|
24
19
|
*
|
|
25
20
|
* @example
|
|
26
21
|
* ```typescript
|
|
22
|
+
* import { createRouter, websocket, sse, stream, cron } from '@agentuity/runtime';
|
|
23
|
+
*
|
|
27
24
|
* const router = createRouter();
|
|
28
25
|
*
|
|
29
26
|
* // Standard HTTP routes
|
|
@@ -33,54 +30,32 @@ import { parseEmail } from './io/email';
|
|
|
33
30
|
* return c.json({ received: body });
|
|
34
31
|
* });
|
|
35
32
|
*
|
|
36
|
-
* // Streaming response
|
|
37
|
-
* router.stream('/events', (c) => {
|
|
38
|
-
* return new ReadableStream({
|
|
39
|
-
* start(controller) {
|
|
40
|
-
* controller.enqueue('event 1\n');
|
|
41
|
-
* controller.enqueue('event 2\n');
|
|
42
|
-
* controller.close();
|
|
43
|
-
* }
|
|
44
|
-
* });
|
|
45
|
-
* });
|
|
46
|
-
*
|
|
47
33
|
* // WebSocket connection
|
|
48
|
-
* router.
|
|
34
|
+
* router.get('/ws', websocket((c, ws) => {
|
|
49
35
|
* ws.onMessage((event) => {
|
|
50
|
-
* console.log('Received:', event.data);
|
|
51
36
|
* ws.send('Echo: ' + event.data);
|
|
52
37
|
* });
|
|
53
|
-
* });
|
|
38
|
+
* }));
|
|
54
39
|
*
|
|
55
40
|
* // Server-Sent Events
|
|
56
|
-
* router.
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* stream.writeSSE({ data: `Message ${++count}` });
|
|
60
|
-
* if (count >= 10) {
|
|
61
|
-
* clearInterval(interval);
|
|
62
|
-
* stream.close();
|
|
63
|
-
* }
|
|
64
|
-
* }, 1000);
|
|
65
|
-
* });
|
|
41
|
+
* router.get('/events', sse((c, stream) => {
|
|
42
|
+
* stream.writeSSE({ data: 'Hello', event: 'message' });
|
|
43
|
+
* }));
|
|
66
44
|
*
|
|
67
|
-
* //
|
|
68
|
-
* router.
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* return c.text('SMS received');
|
|
77
|
-
* });
|
|
45
|
+
* // Streaming response
|
|
46
|
+
* router.post('/stream', stream((c) => {
|
|
47
|
+
* return new ReadableStream({
|
|
48
|
+
* start(controller) {
|
|
49
|
+
* controller.enqueue('data\n');
|
|
50
|
+
* controller.close();
|
|
51
|
+
* }
|
|
52
|
+
* });
|
|
53
|
+
* }));
|
|
78
54
|
*
|
|
79
|
-
* //
|
|
80
|
-
* router.cron('0 0 * * *', (c) => {
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* });
|
|
55
|
+
* // Cron job
|
|
56
|
+
* router.post('/daily', cron('0 0 * * *', (c) => {
|
|
57
|
+
* return { status: 'complete' };
|
|
58
|
+
* }));
|
|
84
59
|
* ```
|
|
85
60
|
*/
|
|
86
61
|
export const createRouter = () => {
|
|
@@ -127,303 +102,61 @@ export const createRouter = () => {
|
|
|
127
102
|
return _originalInvoker(path, ...newArgs);
|
|
128
103
|
};
|
|
129
104
|
}
|
|
130
|
-
//
|
|
131
|
-
_router.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const wrapper = async (c) => {
|
|
145
|
-
const contentType = (c.req.header('content-type') || '').trim().toLowerCase();
|
|
146
|
-
if (!contentType.includes('message/rfc822')) {
|
|
147
|
-
return c.text('Bad Request: Content-Type must be message/rfc822', 400);
|
|
148
|
-
}
|
|
149
|
-
const arrayBuffer = await c.req.arrayBuffer();
|
|
150
|
-
const buffer = Buffer.from(arrayBuffer);
|
|
151
|
-
const email = await parseEmail(buffer);
|
|
152
|
-
let result = handler(email, c);
|
|
153
|
-
if (result instanceof Promise)
|
|
154
|
-
result = await result;
|
|
155
|
-
if (result === undefined) {
|
|
156
|
-
return c.text('OK', 200);
|
|
157
|
-
}
|
|
158
|
-
return returnResponse(c, result);
|
|
159
|
-
};
|
|
160
|
-
if (middleware) {
|
|
161
|
-
return router.post(path, middleware, wrapper);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
return router.post(path, wrapper);
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
_router.sms = ({ number }, handler) => {
|
|
168
|
-
const id = hash(number);
|
|
169
|
-
const path = `/${id}`;
|
|
170
|
-
// registerSMSHandler(number)
|
|
171
|
-
const wrapper = async (c) => {
|
|
172
|
-
let result = handler(c);
|
|
173
|
-
if (result instanceof Promise)
|
|
174
|
-
result = await result;
|
|
175
|
-
return returnResponse(c, result);
|
|
176
|
-
};
|
|
177
|
-
return router.post(path, wrapper);
|
|
105
|
+
// Deprecated stubs that throw errors with migration instructions
|
|
106
|
+
_router.websocket = (path, ..._args) => {
|
|
107
|
+
throw new Error(`router.websocket() is deprecated and has been removed.\n\n` +
|
|
108
|
+
`Migration: Use the websocket middleware instead:\n\n` +
|
|
109
|
+
` import { createRouter, websocket } from '@agentuity/runtime';\n\n` +
|
|
110
|
+
` const router = createRouter();\n\n` +
|
|
111
|
+
` // Before (deprecated):\n` +
|
|
112
|
+
` // router.websocket('${path}', (c) => (ws) => { ... });\n\n` +
|
|
113
|
+
` // After:\n` +
|
|
114
|
+
` router.get('${path}', websocket((c, ws) => {\n` +
|
|
115
|
+
` ws.onMessage((event) => {\n` +
|
|
116
|
+
` ws.send('Echo: ' + event.data);\n` +
|
|
117
|
+
` });\n` +
|
|
118
|
+
` }));`);
|
|
178
119
|
};
|
|
179
|
-
_router.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
120
|
+
_router.sse = (path, ..._args) => {
|
|
121
|
+
throw new Error(`router.sse() is deprecated and has been removed.\n\n` +
|
|
122
|
+
`Migration: Use the sse middleware instead:\n\n` +
|
|
123
|
+
` import { createRouter, sse } from '@agentuity/runtime';\n\n` +
|
|
124
|
+
` const router = createRouter();\n\n` +
|
|
125
|
+
` // Before (deprecated):\n` +
|
|
126
|
+
` // router.sse('${path}', (c) => async (stream) => { ... });\n\n` +
|
|
127
|
+
` // After:\n` +
|
|
128
|
+
` router.get('${path}', sse((c, stream) => {\n` +
|
|
129
|
+
` stream.writeSSE({ data: 'Hello', event: 'message' });\n` +
|
|
130
|
+
` }));`);
|
|
190
131
|
};
|
|
191
|
-
_router.stream = (path, ...
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return honoStream(c, async (s) => {
|
|
208
|
-
const runInContext = async () => {
|
|
209
|
-
try {
|
|
210
|
-
let streamResult = handler(c);
|
|
211
|
-
if (streamResult instanceof Promise)
|
|
212
|
-
streamResult = await streamResult;
|
|
213
|
-
await s.pipe(streamResult);
|
|
214
|
-
}
|
|
215
|
-
catch (err) {
|
|
216
|
-
c.var.logger.error('Stream error:', err);
|
|
217
|
-
throw err;
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
if (capturedContext) {
|
|
221
|
-
await asyncLocalStorage.run(capturedContext, runInContext);
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
await runInContext();
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
// Use POST for stream routes - allows accepting request body
|
|
229
|
-
// (validators will handle input validation if present)
|
|
230
|
-
if (middleware) {
|
|
231
|
-
return router.post(path, middleware, wrapper);
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
return router.post(path, wrapper);
|
|
235
|
-
}
|
|
132
|
+
_router.stream = (path, ..._args) => {
|
|
133
|
+
throw new Error(`router.stream() is deprecated and has been removed.\n\n` +
|
|
134
|
+
`Migration: Use the stream middleware instead:\n\n` +
|
|
135
|
+
` import { createRouter, stream } from '@agentuity/runtime';\n\n` +
|
|
136
|
+
` const router = createRouter();\n\n` +
|
|
137
|
+
` // Before (deprecated):\n` +
|
|
138
|
+
` // router.stream('${path}', (c) => new ReadableStream({ ... }));\n\n` +
|
|
139
|
+
` // After:\n` +
|
|
140
|
+
` router.post('${path}', stream((c) => {\n` +
|
|
141
|
+
` return new ReadableStream({\n` +
|
|
142
|
+
` start(controller) {\n` +
|
|
143
|
+
` controller.enqueue('data\\n');\n` +
|
|
144
|
+
` controller.close();\n` +
|
|
145
|
+
` }\n` +
|
|
146
|
+
` });\n` +
|
|
147
|
+
` }));`);
|
|
236
148
|
};
|
|
237
|
-
_router.
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
const wrapper = upgradeWebSocket((c) => {
|
|
249
|
-
let openHandler;
|
|
250
|
-
let messageHandler;
|
|
251
|
-
let closeHandler;
|
|
252
|
-
let initialized = false;
|
|
253
|
-
// Capture the AgentContext from the upgrade request
|
|
254
|
-
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
255
|
-
const capturedContext = asyncLocalStorage.getStore();
|
|
256
|
-
const wsConnection = {
|
|
257
|
-
onOpen: (h) => {
|
|
258
|
-
openHandler = h;
|
|
259
|
-
},
|
|
260
|
-
onMessage: (h) => {
|
|
261
|
-
messageHandler = h;
|
|
262
|
-
},
|
|
263
|
-
onClose: (h) => {
|
|
264
|
-
closeHandler = h;
|
|
265
|
-
},
|
|
266
|
-
send: (_data) => {
|
|
267
|
-
// This will be bound to the actual ws in the handlers
|
|
268
|
-
},
|
|
269
|
-
};
|
|
270
|
-
const setupResult = handler(c);
|
|
271
|
-
const setupFn = typeof setupResult === 'function' ? setupResult : null;
|
|
272
|
-
// Call setup IMMEDIATELY during upgrade, not in onOpen
|
|
273
|
-
// This allows the user's code to register handlers before events fire
|
|
274
|
-
if (setupFn) {
|
|
275
|
-
if (capturedContext) {
|
|
276
|
-
asyncLocalStorage.run(capturedContext, () => setupFn(wsConnection));
|
|
277
|
-
}
|
|
278
|
-
else {
|
|
279
|
-
setupFn(wsConnection);
|
|
280
|
-
}
|
|
281
|
-
initialized = true;
|
|
282
|
-
}
|
|
283
|
-
return {
|
|
284
|
-
onOpen: async (event, ws) => {
|
|
285
|
-
try {
|
|
286
|
-
// Bind the real ws.send now that we have the actual websocket
|
|
287
|
-
wsConnection.send = (data) => ws.send(data);
|
|
288
|
-
if (openHandler) {
|
|
289
|
-
// Run handler in captured context
|
|
290
|
-
const handler = openHandler;
|
|
291
|
-
if (capturedContext) {
|
|
292
|
-
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
await handler(event);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
catch (err) {
|
|
300
|
-
c.var.logger?.error('WebSocket onOpen error:', err);
|
|
301
|
-
throw err;
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
onMessage: async (event, ws) => {
|
|
305
|
-
try {
|
|
306
|
-
// Lazy initialization fallback (shouldn't normally happen)
|
|
307
|
-
if (!initialized && setupFn) {
|
|
308
|
-
wsConnection.send = (data) => ws.send(data);
|
|
309
|
-
if (capturedContext) {
|
|
310
|
-
await asyncLocalStorage.run(capturedContext, async () => {
|
|
311
|
-
const result = setupFn(wsConnection);
|
|
312
|
-
if (result instanceof Promise)
|
|
313
|
-
await result;
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
const result = setupFn(wsConnection);
|
|
318
|
-
if (result instanceof Promise)
|
|
319
|
-
await result;
|
|
320
|
-
}
|
|
321
|
-
initialized = true;
|
|
322
|
-
}
|
|
323
|
-
if (messageHandler) {
|
|
324
|
-
// Run handler in captured context
|
|
325
|
-
const handler = messageHandler;
|
|
326
|
-
if (capturedContext) {
|
|
327
|
-
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
await handler(event);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
catch (err) {
|
|
335
|
-
c.var.logger?.error('WebSocket onMessage error:', err);
|
|
336
|
-
throw err;
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
onClose: async (event, _ws) => {
|
|
340
|
-
try {
|
|
341
|
-
if (closeHandler) {
|
|
342
|
-
// Run handler in captured context
|
|
343
|
-
const handler = closeHandler;
|
|
344
|
-
if (capturedContext) {
|
|
345
|
-
await asyncLocalStorage.run(capturedContext, () => handler(event));
|
|
346
|
-
}
|
|
347
|
-
else {
|
|
348
|
-
await handler(event);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
catch (err) {
|
|
353
|
-
c.var.logger?.error('WebSocket onClose error:', err);
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
};
|
|
357
|
-
});
|
|
358
|
-
// wrapper is what upgradeWebSocket(...) returned. Force arity=2 so our get shim
|
|
359
|
-
// recognizes it as middleware and does not wrap/convert undefined -> 200.
|
|
360
|
-
const wsMiddleware = (c, next) => wrapper(c, next);
|
|
361
|
-
if (middleware) {
|
|
362
|
-
// Compose into a single middleware to avoid the 3-arg route which treats the
|
|
363
|
-
// second function as a handler and wraps it.
|
|
364
|
-
const composed = async (c, next) => {
|
|
365
|
-
return middleware(c, async () => {
|
|
366
|
-
await wsMiddleware(c, next);
|
|
367
|
-
});
|
|
368
|
-
};
|
|
369
|
-
return router.get(path, composed);
|
|
370
|
-
}
|
|
371
|
-
else {
|
|
372
|
-
return router.get(path, wsMiddleware);
|
|
373
|
-
}
|
|
374
|
-
};
|
|
375
|
-
_router.sse = (path, ...args) => {
|
|
376
|
-
let middleware;
|
|
377
|
-
let handler;
|
|
378
|
-
if (args.length === 1) {
|
|
379
|
-
handler = args[0];
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
middleware = args[0];
|
|
383
|
-
handler = args[1];
|
|
384
|
-
}
|
|
385
|
-
const wrapper = (c) => {
|
|
386
|
-
// Capture the AgentContext from the request
|
|
387
|
-
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
388
|
-
const capturedContext = asyncLocalStorage.getStore();
|
|
389
|
-
return honoStreamSSE(c, async (stream) => {
|
|
390
|
-
// Wrap the stream to intercept write() calls
|
|
391
|
-
const wrappedStream = {
|
|
392
|
-
...stream,
|
|
393
|
-
write: async (data) => {
|
|
394
|
-
// Convert simple write to writeSSE format
|
|
395
|
-
if (typeof data === 'string' ||
|
|
396
|
-
typeof data === 'number' ||
|
|
397
|
-
typeof data === 'boolean') {
|
|
398
|
-
return stream.writeSSE({ data: String(data) });
|
|
399
|
-
}
|
|
400
|
-
else if (typeof data === 'object' && data !== null) {
|
|
401
|
-
// If it's already an SSE message object, pass it through
|
|
402
|
-
return stream.writeSSE(data);
|
|
403
|
-
}
|
|
404
|
-
return stream.writeSSE({ data: String(data) });
|
|
405
|
-
},
|
|
406
|
-
writeSSE: stream.writeSSE.bind(stream),
|
|
407
|
-
onAbort: stream.onAbort.bind(stream),
|
|
408
|
-
close: stream.close?.bind(stream),
|
|
409
|
-
};
|
|
410
|
-
const runInContext = async () => {
|
|
411
|
-
await handler(c)(wrappedStream);
|
|
412
|
-
};
|
|
413
|
-
if (capturedContext) {
|
|
414
|
-
await asyncLocalStorage.run(capturedContext, runInContext);
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
await runInContext();
|
|
418
|
-
}
|
|
419
|
-
});
|
|
420
|
-
};
|
|
421
|
-
if (middleware) {
|
|
422
|
-
return router.get(path, middleware, wrapper);
|
|
423
|
-
}
|
|
424
|
-
else {
|
|
425
|
-
return router.get(path, wrapper);
|
|
426
|
-
}
|
|
149
|
+
_router.cron = (schedule, ..._args) => {
|
|
150
|
+
throw new Error(`router.cron() is deprecated and has been removed.\n\n` +
|
|
151
|
+
`Migration: Use the cron middleware instead:\n\n` +
|
|
152
|
+
` import { createRouter, cron } from '@agentuity/runtime';\n\n` +
|
|
153
|
+
` const router = createRouter();\n\n` +
|
|
154
|
+
` // Before (deprecated):\n` +
|
|
155
|
+
` // router.cron('${schedule}', (c) => { ... });\n\n` +
|
|
156
|
+
` // After:\n` +
|
|
157
|
+
` router.post('/your-cron-path', cron('${schedule}', (c) => {\n` +
|
|
158
|
+
` return { status: 'complete' };\n` +
|
|
159
|
+
` }));`);
|
|
427
160
|
};
|
|
428
161
|
return router;
|
|
429
162
|
};
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/dist/workbench.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context, Handler } from 'hono';
|
|
2
|
-
import type
|
|
2
|
+
import { type WebSocketConnection } from './handlers/websocket';
|
|
3
3
|
export declare const createWorkbenchExecutionRoute: () => Handler;
|
|
4
4
|
export declare const createWorkbenchClearStateRoute: () => Handler;
|
|
5
5
|
export declare const createWorkbenchStateRoute: () => Handler;
|
|
@@ -9,5 +9,9 @@ export declare const createWorkbenchStateRoute: () => Handler;
|
|
|
9
9
|
export declare const createWorkbenchRouter: () => import("hono").Hono<import("./app").Env<Record<string, never>>, import("hono").Schema, "/">;
|
|
10
10
|
export declare const createWorkbenchSampleRoute: () => Handler;
|
|
11
11
|
export declare const createWorkbenchMetadataRoute: () => Handler;
|
|
12
|
-
export declare const
|
|
12
|
+
export declare const createWorkbenchWebsocketHandler: () => (_c: Context, ws: WebSocketConnection) => void;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use createWorkbenchWebsocketHandler instead
|
|
15
|
+
*/
|
|
16
|
+
export declare const createWorkbenchWebsocketRoute: () => (_c: Context, ws: WebSocketConnection) => void;
|
|
13
17
|
//# sourceMappingURL=workbench.d.ts.map
|
package/dist/workbench.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK7C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK7C,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3E,eAAO,MAAM,6BAA6B,QAAO,OAwHhD,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAO,OA+CjD,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,OAwC5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,mGAsCjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,OAoJ7C,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,OAuF/C,CAAC;AAKF,eAAO,MAAM,+BAA+B,SACnC,IAAI,OAAO,EAAE,IAAI,mBAAmB,SA4B5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,SAjCjC,IAAI,OAAO,EAAE,IAAI,mBAAmB,SAiC+B,CAAC"}
|
package/dist/workbench.js
CHANGED
|
@@ -2,6 +2,7 @@ import { timingSafeEqual } from 'node:crypto';
|
|
|
2
2
|
import { toJSONSchema } from '@agentuity/server';
|
|
3
3
|
import { getAgents, createAgentMiddleware } from './agent';
|
|
4
4
|
import { createRouter } from './router';
|
|
5
|
+
import { websocket } from './handlers/websocket';
|
|
5
6
|
import { privateContext } from './_server';
|
|
6
7
|
import { getThreadProvider } from './_services';
|
|
7
8
|
import { loadBuildMetadata, getAgentMetadataByAgentId, hasMetadata } from './_metadata';
|
|
@@ -220,7 +221,7 @@ export const createWorkbenchRouter = () => {
|
|
|
220
221
|
// Apply agent middleware to ensure proper context is available
|
|
221
222
|
router.use('/_agentuity/workbench/*', createAgentMiddleware(''));
|
|
222
223
|
// Add workbench routes
|
|
223
|
-
router.
|
|
224
|
+
router.get('/_agentuity/workbench/ws', websocket(createWorkbenchWebsocketHandler()));
|
|
224
225
|
router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
|
|
225
226
|
router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
|
|
226
227
|
router.get('/_agentuity/workbench/state', createWorkbenchStateRoute());
|
|
@@ -422,34 +423,36 @@ export const createWorkbenchMetadataRoute = () => {
|
|
|
422
423
|
};
|
|
423
424
|
// Store WebSocket connections to notify them on app restart
|
|
424
425
|
const workbenchWebSockets = new Set();
|
|
425
|
-
export const
|
|
426
|
-
return (
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
workbenchWebSockets.delete(clientWs);
|
|
444
|
-
}
|
|
426
|
+
export const createWorkbenchWebsocketHandler = () => {
|
|
427
|
+
return (_c, ws) => {
|
|
428
|
+
ws.onOpen(() => {
|
|
429
|
+
workbenchWebSockets.add(ws);
|
|
430
|
+
ws.send('alive');
|
|
431
|
+
});
|
|
432
|
+
ws.onMessage((event) => {
|
|
433
|
+
const message = event.data;
|
|
434
|
+
// If a client sends a message (CLI), broadcast to all other clients
|
|
435
|
+
if (message === 'restarting' || message === 'alive') {
|
|
436
|
+
// Broadcast the message to all other clients (excluding this CLI connection)
|
|
437
|
+
for (const clientWs of workbenchWebSockets) {
|
|
438
|
+
if (clientWs !== ws) {
|
|
439
|
+
try {
|
|
440
|
+
clientWs.send(message);
|
|
441
|
+
}
|
|
442
|
+
catch (_error) {
|
|
443
|
+
workbenchWebSockets.delete(clientWs);
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
446
|
}
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
};
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
ws.onClose(() => {
|
|
450
|
+
workbenchWebSockets.delete(ws);
|
|
451
|
+
});
|
|
453
452
|
};
|
|
454
453
|
};
|
|
454
|
+
/**
|
|
455
|
+
* @deprecated Use createWorkbenchWebsocketHandler instead
|
|
456
|
+
*/
|
|
457
|
+
export const createWorkbenchWebsocketRoute = createWorkbenchWebsocketHandler;
|
|
455
458
|
//# sourceMappingURL=workbench.js.map
|