@agentuity/runtime 0.0.94 → 0.0.96

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 (72) hide show
  1. package/AGENTS.md +3 -1
  2. package/dist/_events.d.ts +64 -0
  3. package/dist/_events.d.ts.map +1 -0
  4. package/dist/_events.js +92 -0
  5. package/dist/_events.js.map +1 -0
  6. package/dist/_idle.d.ts +1 -1
  7. package/dist/_idle.d.ts.map +1 -1
  8. package/dist/_idle.js +2 -16
  9. package/dist/_idle.js.map +1 -1
  10. package/dist/_server.d.ts +30 -13
  11. package/dist/_server.d.ts.map +1 -1
  12. package/dist/_server.js +39 -572
  13. package/dist/_server.js.map +1 -1
  14. package/dist/_services.d.ts.map +1 -1
  15. package/dist/_services.js +4 -2
  16. package/dist/_services.js.map +1 -1
  17. package/dist/_standalone.d.ts.map +1 -1
  18. package/dist/_standalone.js +2 -1
  19. package/dist/_standalone.js.map +1 -1
  20. package/dist/agent.d.ts.map +1 -1
  21. package/dist/agent.js +13 -17
  22. package/dist/agent.js.map +1 -1
  23. package/dist/app.d.ts +58 -171
  24. package/dist/app.d.ts.map +1 -1
  25. package/dist/app.js +119 -218
  26. package/dist/app.js.map +1 -1
  27. package/dist/index.d.ts +11 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +18 -3
  30. package/dist/index.js.map +1 -1
  31. package/dist/middleware.d.ts +29 -0
  32. package/dist/middleware.d.ts.map +1 -0
  33. package/dist/middleware.js +200 -0
  34. package/dist/middleware.js.map +1 -0
  35. package/dist/router.d.ts.map +1 -1
  36. package/dist/router.js +5 -2
  37. package/dist/router.js.map +1 -1
  38. package/dist/services/local/vector.d.ts.map +1 -1
  39. package/dist/services/local/vector.js +3 -2
  40. package/dist/services/local/vector.js.map +1 -1
  41. package/dist/services/thread/local.d.ts +20 -0
  42. package/dist/services/thread/local.d.ts.map +1 -0
  43. package/dist/services/thread/local.js +76 -0
  44. package/dist/services/thread/local.js.map +1 -0
  45. package/dist/session.d.ts +60 -8
  46. package/dist/session.d.ts.map +1 -1
  47. package/dist/session.js +186 -54
  48. package/dist/session.js.map +1 -1
  49. package/dist/web.d.ts +8 -0
  50. package/dist/web.d.ts.map +1 -0
  51. package/dist/web.js +66 -0
  52. package/dist/web.js.map +1 -0
  53. package/dist/workbench.d.ts +3 -0
  54. package/dist/workbench.d.ts.map +1 -1
  55. package/dist/workbench.js +300 -31
  56. package/dist/workbench.js.map +1 -1
  57. package/package.json +10 -10
  58. package/src/_events.ts +142 -0
  59. package/src/_idle.ts +2 -18
  60. package/src/_server.ts +48 -681
  61. package/src/_services.ts +4 -2
  62. package/src/_standalone.ts +2 -1
  63. package/src/agent.ts +11 -14
  64. package/src/app.ts +164 -246
  65. package/src/index.ts +42 -4
  66. package/src/middleware.ts +252 -0
  67. package/src/router.ts +6 -2
  68. package/src/services/local/vector.ts +3 -2
  69. package/src/services/thread/local.ts +106 -0
  70. package/src/session.ts +238 -59
  71. package/src/web.ts +75 -0
  72. package/src/workbench.ts +367 -30
package/dist/web.js ADDED
@@ -0,0 +1,66 @@
1
+ import { Hono } from 'hono';
2
+ import { serveStatic } from 'hono/bun';
3
+ import { join, relative } from 'node:path';
4
+ import { existsSync } from 'node:fs';
5
+ /**
6
+ * Create a router that serves the web application.
7
+ * In dev mode (DEV=true), serves HTML with Vite HMR scripts (Bun server proxies assets to Vite).
8
+ * In production, serves static files from .agentuity/client/.
9
+ */
10
+ export async function createWebRouter() {
11
+ const router = new Hono();
12
+ const isDev = process.env.DEV === 'true';
13
+ const rootDir = process.cwd();
14
+ if (isDev) {
15
+ // In dev mode, serve HTML with Vite client scripts for HMR
16
+ // Bun server proxies /src/*, /@vite/*, etc. to Vite asset server
17
+ router.get('/', (c) => {
18
+ return c.html(`<!DOCTYPE html>
19
+ <html lang="en">
20
+ <head>
21
+ <meta charset="UTF-8" />
22
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
23
+ <title>Agentuity App</title>
24
+ </head>
25
+ <body>
26
+ <div id="root"></div>
27
+
28
+ <script type="module" src="/@vite/client"></script>
29
+ <script type="module">
30
+ import RefreshRuntime from '/@react-refresh';
31
+ RefreshRuntime.injectIntoGlobalHook(window);
32
+ window.$RefreshReg$ = () => {};
33
+ window.$RefreshSig$ = () => (type) => type;
34
+ window.__vite_plugin_react_preamble_installed__ = true;
35
+ </script>
36
+
37
+ <script type="module" src="/src/web/frontend.tsx"></script>
38
+ </body>
39
+ </html>`);
40
+ });
41
+ }
42
+ else {
43
+ // Production: serve static files from .agentuity/client/
44
+ const clientDir = join(rootDir, '.agentuity', 'client');
45
+ // Verify client build exists
46
+ const indexHtmlPath = join(clientDir, 'index.html');
47
+ if (!existsSync(indexHtmlPath)) {
48
+ throw new Error(`Client build not found. Missing ${indexHtmlPath}. Run build to generate client assets.`);
49
+ }
50
+ // Compute relative paths for serveStatic (it expects relative paths from cwd)
51
+ let relClientDir = relative(process.cwd(), clientDir);
52
+ if (!relClientDir.startsWith('.')) {
53
+ relClientDir = './' + relClientDir;
54
+ }
55
+ let relIndexPath = relative(process.cwd(), indexHtmlPath);
56
+ if (!relIndexPath.startsWith('.')) {
57
+ relIndexPath = './' + relIndexPath;
58
+ }
59
+ // Serve static files from .agentuity/client/
60
+ router.use('/*', serveStatic({ root: relClientDir }));
61
+ // Fallback to index.html for SPA routing
62
+ router.get('*', serveStatic({ path: relIndexPath }));
63
+ }
64
+ return router;
65
+ }
66
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,IAAI,KAAK,EAAE,CAAC;QACX,2DAA2D;QAC3D,iEAAiE;QACjE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,CAAC,IAAI,CACZ;;;;;;;;;;;;;;;;;;;;;QAqBI,CACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAExD,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACd,mCAAmC,aAAa,wCAAwC,CACxF,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC;QACpC,CAAC;QACD,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAEtD,yCAAyC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import type { Context, Handler } from 'hono';
2
2
  import type { WebSocketConnection } from './router';
3
3
  export declare const createWorkbenchExecutionRoute: () => Handler;
4
+ export declare const createWorkbenchClearStateRoute: () => Handler;
5
+ export declare const createWorkbenchStateRoute: () => Handler;
4
6
  /**
5
7
  * Creates a workbench router with proper agent middleware for execution routes
6
8
  */
7
9
  export declare const createWorkbenchRouter: () => import("hono").Hono<import("./app").Env<Record<string, never>>, import("hono").Schema, "/">;
10
+ export declare const createWorkbenchSampleRoute: () => Handler;
8
11
  export declare const createWorkbenchMetadataRoute: () => Handler;
9
12
  export declare const createWorkbenchWebsocketRoute: () => (_ctx: Context) => (ws: WebSocketConnection) => void;
10
13
  //# sourceMappingURL=workbench.d.ts.map
@@ -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,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,eAAO,MAAM,6BAA6B,QAAO,OAsFhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,mGAmCjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,OA2C/C,CAAC;AAKF,eAAO,MAAM,6BAA6B,SACjC,MAAM,OAAO,MACZ,IAAI,mBAAmB,SA6BhC,CAAC"}
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,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMpD,eAAO,MAAM,6BAA6B,QAAO,OA2HhD,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,OAyJ7C,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,OA2F/C,CAAC;AAKF,eAAO,MAAM,6BAA6B,SACjC,MAAM,OAAO,MACZ,IAAI,mBAAmB,SA6BhC,CAAC"}
package/dist/workbench.js CHANGED
@@ -3,6 +3,9 @@ import { toJSONSchema } from '@agentuity/server';
3
3
  import { getAgents, createAgentMiddleware } from './agent';
4
4
  import { createRouter } from './router';
5
5
  import { privateContext } from './_server';
6
+ import { getThreadProvider } from './_services';
7
+ import { readFileSync, existsSync } from 'node:fs';
8
+ import { join } from 'node:path';
6
9
  export const createWorkbenchExecutionRoute = () => {
7
10
  const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
8
11
  ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
@@ -23,6 +26,11 @@ export const createWorkbenchExecutionRoute = () => {
23
26
  return ctx.text('Unauthorized', { status: 401 });
24
27
  }
25
28
  }
29
+ // Content-type validation
30
+ const contentType = ctx.req.header('Content-Type');
31
+ if (!contentType || !contentType.includes('application/json')) {
32
+ return ctx.json({ error: 'Content-Type must be application/json' }, { status: 400 });
33
+ }
26
34
  try {
27
35
  let agentId;
28
36
  let input;
@@ -34,17 +42,21 @@ export const createWorkbenchExecutionRoute = () => {
34
42
  catch (_error) {
35
43
  return ctx.json({ error: 'Invalid JSON in request body' }, { status: 400 });
36
44
  }
37
- // Get agents registry and find the agent
38
- const allAgents = getAgents();
39
- let agentObj;
40
- let agentName;
41
- for (const [name, agent] of allAgents) {
42
- if (agent.metadata.agentId === agentId) {
43
- agentObj = agent;
44
- agentName = name;
45
- break;
46
- }
45
+ // Read metadata to find agent name by agentId
46
+ const metadataPath = join(process.cwd(), '.agentuity', 'agentuity.metadata.json');
47
+ if (!existsSync(metadataPath)) {
48
+ return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
49
+ }
50
+ const fileContent = readFileSync(metadataPath, 'utf-8');
51
+ const metadata = JSON.parse(fileContent);
52
+ const agentMeta = metadata.agents?.find((a) => a.agentId === agentId);
53
+ if (!agentMeta) {
54
+ return ctx.text('Agent not found', { status: 404 });
47
55
  }
56
+ // Get runtime agent by name
57
+ const allAgents = getAgents();
58
+ const agentName = agentMeta.name;
59
+ const agentObj = allAgents.get(agentName);
48
60
  if (!agentObj || !agentName) {
49
61
  return ctx.text('Agent not found', { status: 404 });
50
62
  }
@@ -66,6 +78,29 @@ export const createWorkbenchExecutionRoute = () => {
66
78
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
79
  result = await agentObj.handler();
68
80
  }
81
+ // Store input and output in thread state, keyed by agentId
82
+ // This allows multiple agents to have separate message histories in the same thread
83
+ if (ctx.var.thread) {
84
+ const agentMessagesKey = `messages_${agentId}`;
85
+ const existingMessages = ctx.var.thread.state.get(agentMessagesKey);
86
+ const messages = existingMessages || [];
87
+ messages.push({ type: 'input', data: input });
88
+ if (result !== undefined && result !== null) {
89
+ messages.push({ type: 'output', data: result });
90
+ }
91
+ ctx.var.thread.state.set(agentMessagesKey, messages);
92
+ // Manually save the thread to ensure state persists
93
+ try {
94
+ const threadProvider = getThreadProvider();
95
+ await threadProvider.save(ctx.var.thread);
96
+ }
97
+ catch {
98
+ ctx.var.logger?.warn('Failed to save thread state');
99
+ }
100
+ }
101
+ else {
102
+ ctx.var.logger?.warn('Thread not available in workbench execution route');
103
+ }
69
104
  // Handle cases where result might be undefined/null
70
105
  if (result === undefined || result === null) {
71
106
  return ctx.json({ success: true, result: null });
@@ -80,6 +115,83 @@ export const createWorkbenchExecutionRoute = () => {
80
115
  }
81
116
  };
82
117
  };
118
+ export const createWorkbenchClearStateRoute = () => {
119
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
120
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
121
+ : undefined;
122
+ return async (ctx) => {
123
+ // Authentication check
124
+ if (authHeader) {
125
+ try {
126
+ const authValue = ctx.req.header('Authorization');
127
+ if (!authValue ||
128
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
129
+ return ctx.text('Unauthorized', { status: 401 });
130
+ }
131
+ }
132
+ catch {
133
+ // timing safe equals will throw if the input/output lengths are mismatched
134
+ // so we treat all exceptions as invalid
135
+ return ctx.text('Unauthorized', { status: 401 });
136
+ }
137
+ }
138
+ const agentId = ctx.req.query('agentId');
139
+ if (!agentId) {
140
+ return ctx.json({ error: 'agentId query parameter is required' }, { status: 400 });
141
+ }
142
+ if (!ctx.var.thread) {
143
+ return ctx.json({ error: 'Thread not available' }, { status: 404 });
144
+ }
145
+ const agentMessagesKey = `messages_${agentId}`;
146
+ // Remove the messages for this agent
147
+ ctx.var.thread.state.delete(agentMessagesKey);
148
+ // Save the thread to persist the cleared state
149
+ try {
150
+ const threadProvider = getThreadProvider();
151
+ await threadProvider.save(ctx.var.thread);
152
+ }
153
+ catch {
154
+ return ctx.json({ error: 'Failed to save thread state' }, { status: 500 });
155
+ }
156
+ return ctx.json({ success: true, message: `State cleared for agent ${agentId}` });
157
+ };
158
+ };
159
+ export const createWorkbenchStateRoute = () => {
160
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
161
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
162
+ : undefined;
163
+ return async (ctx) => {
164
+ // Authentication check
165
+ if (authHeader) {
166
+ try {
167
+ const authValue = ctx.req.header('Authorization');
168
+ if (!authValue ||
169
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
170
+ return ctx.text('Unauthorized', { status: 401 });
171
+ }
172
+ }
173
+ catch {
174
+ // timing safe equals will throw if the input/output lengths are mismatched
175
+ // so we treat all exceptions as invalid
176
+ return ctx.text('Unauthorized', { status: 401 });
177
+ }
178
+ }
179
+ const agentId = ctx.req.query('agentId');
180
+ if (!agentId) {
181
+ return ctx.json({ error: 'agentId query parameter is required' }, { status: 400 });
182
+ }
183
+ if (!ctx.var.thread) {
184
+ return ctx.json({ error: 'Thread not available' }, { status: 404 });
185
+ }
186
+ const agentMessagesKey = `messages_${agentId}`;
187
+ const messages = ctx.var.thread.state.get(agentMessagesKey);
188
+ return ctx.json({
189
+ threadId: ctx.var.thread.id,
190
+ agentId,
191
+ messages: Array.isArray(messages) ? messages : [],
192
+ });
193
+ };
194
+ };
83
195
  /**
84
196
  * Creates a workbench router with proper agent middleware for execution routes
85
197
  */
@@ -112,14 +224,136 @@ export const createWorkbenchRouter = () => {
112
224
  // Add workbench routes
113
225
  router.websocket('/_agentuity/workbench/ws', createWorkbenchWebsocketRoute());
114
226
  router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
227
+ router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
228
+ router.get('/_agentuity/workbench/state', createWorkbenchStateRoute());
229
+ router.delete('/_agentuity/workbench/state', createWorkbenchClearStateRoute());
115
230
  router.post('/_agentuity/workbench/execute', createWorkbenchExecutionRoute());
116
231
  return router;
117
232
  };
233
+ export const createWorkbenchSampleRoute = () => {
234
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
235
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
236
+ : undefined;
237
+ return async (ctx) => {
238
+ // Authentication check
239
+ if (authHeader) {
240
+ try {
241
+ const authValue = ctx.req.header('Authorization');
242
+ if (!authValue ||
243
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
244
+ return ctx.text('Unauthorized', { status: 401 });
245
+ }
246
+ }
247
+ catch {
248
+ return ctx.text('Unauthorized', { status: 401 });
249
+ }
250
+ }
251
+ try {
252
+ const agentId = ctx.req.query('agentId');
253
+ if (!agentId) {
254
+ return ctx.json({ error: 'Missing agentId query parameter' }, { status: 400 });
255
+ }
256
+ // Read metadata to find agent name by agentId
257
+ const metadataPath = join(process.cwd(), '.agentuity', 'agentuity.metadata.json');
258
+ if (!existsSync(metadataPath)) {
259
+ return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
260
+ }
261
+ const fileContent = readFileSync(metadataPath, 'utf-8');
262
+ const metadata = JSON.parse(fileContent);
263
+ const agentMeta = metadata.agents?.find((a) => a.agentId === agentId);
264
+ if (!agentMeta) {
265
+ return ctx.text('Agent not found', { status: 404 });
266
+ }
267
+ // Get runtime agent by name
268
+ const allAgents = getAgents();
269
+ const agentObj = allAgents.get(agentMeta.name);
270
+ if (!agentObj) {
271
+ return ctx.text('Agent not found', { status: 404 });
272
+ }
273
+ // Check if agent has input schema
274
+ if (!agentObj.inputSchema) {
275
+ return ctx.json({ error: 'Agent has no input schema' }, { status: 400 });
276
+ }
277
+ // Convert schema to JSON Schema
278
+ const jsonSchema = toJSONSchema(agentObj.inputSchema);
279
+ // Get Agentuity SDK key and gateway URL
280
+ const sdkKey = process.env.AGENTUITY_SDK_KEY;
281
+ const gatewayUrl = process.env.AGENTUITY_AIGATEWAY_URL ||
282
+ process.env.AGENTUITY_TRANSPORT_URL ||
283
+ (sdkKey ? 'https://agentuity.ai' : '');
284
+ if (!sdkKey || !gatewayUrl) {
285
+ return ctx.json({
286
+ error: 'AGENTUITY_SDK_KEY and gateway URL must be configured',
287
+ message: 'Set AGENTUITY_SDK_KEY and either AGENTUITY_AIGATEWAY_URL, AGENTUITY_TRANSPORT_URL, or use https://agentuity.ai',
288
+ }, { status: 500 });
289
+ }
290
+ // Generate sample using Groq via Agentuity Gateway
291
+ const prompt = `Generate a realistic sample data object that matches this JSON schema. Return only valid JSON, no markdown code blocks or explanations.
292
+
293
+ JSON Schema:
294
+ ${JSON.stringify(jsonSchema, null, 2)}
295
+
296
+ Return a JSON object that matches this schema with realistic values.`;
297
+ const gatewayEndpoint = `${gatewayUrl}/gateway/groq/openai/v1/chat/completions`;
298
+ const groqResponse = await fetch(gatewayEndpoint, {
299
+ method: 'POST',
300
+ headers: {
301
+ Authorization: `Bearer ${sdkKey}`,
302
+ 'Content-Type': 'application/json',
303
+ },
304
+ body: JSON.stringify({
305
+ model: 'llama-3.3-70b-versatile',
306
+ messages: [
307
+ {
308
+ role: 'user',
309
+ content: prompt,
310
+ },
311
+ ],
312
+ }),
313
+ });
314
+ if (!groqResponse.ok) {
315
+ const errorText = await groqResponse.text();
316
+ return ctx.json({
317
+ error: 'Groq API request failed',
318
+ message: `Status ${groqResponse.status}: ${errorText}`,
319
+ }, { status: 500 });
320
+ }
321
+ const groqData = (await groqResponse.json());
322
+ const text = groqData.choices?.[0]?.message?.content;
323
+ if (!text) {
324
+ return ctx.json({ error: 'Invalid response from Groq API', response: groqData }, { status: 500 });
325
+ }
326
+ // Parse the JSON response
327
+ let sample;
328
+ try {
329
+ // Remove markdown code blocks if present
330
+ const cleanedText = text
331
+ .trim()
332
+ .replace(/^```json\s*|\s*```$/g, '')
333
+ .replace(/^```\s*|\s*```$/g, '');
334
+ sample = JSON.parse(cleanedText);
335
+ }
336
+ catch (parseError) {
337
+ return ctx.json({
338
+ error: 'Failed to parse generated JSON',
339
+ message: parseError instanceof Error ? parseError.message : String(parseError),
340
+ generatedText: text,
341
+ }, { status: 500 });
342
+ }
343
+ return ctx.json(sample);
344
+ }
345
+ catch (error) {
346
+ return ctx.json({
347
+ error: 'Internal server error',
348
+ message: error instanceof Error ? error.message : String(error),
349
+ }, { status: 500 });
350
+ }
351
+ };
352
+ };
118
353
  export const createWorkbenchMetadataRoute = () => {
119
354
  const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
120
355
  ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
121
356
  : undefined;
122
- const agents = getAgents();
123
357
  return async (ctx) => {
124
358
  if (authHeader) {
125
359
  try {
@@ -135,27 +369,62 @@ export const createWorkbenchMetadataRoute = () => {
135
369
  return ctx.text('Unauthorized', { status: 401 });
136
370
  }
137
371
  }
138
- const schemas = { agents: {} };
139
- for (const [, agent] of agents) {
140
- schemas.agents[agent.metadata.id] = {
141
- schema: {
142
- input: agent.inputSchema
143
- ? {
144
- code: agent.metadata.inputSchemaCode || undefined,
145
- json: toJSONSchema(agent.inputSchema),
146
- }
147
- : undefined,
148
- output: agent.outputSchema
149
- ? {
150
- code: agent.metadata.outputSchemaCode || undefined,
151
- json: toJSONSchema(agent.outputSchema),
152
- }
153
- : undefined,
154
- },
155
- metadata: agent.metadata,
156
- };
372
+ // Read metadata from agentuity.metadata.json file
373
+ const metadataPath = join(process.cwd(), '.agentuity', 'agentuity.metadata.json');
374
+ if (!existsSync(metadataPath)) {
375
+ return ctx.json({ error: 'Metadata file not found. Run build to generate metadata.' }, { status: 500 });
376
+ }
377
+ try {
378
+ const fileContent = readFileSync(metadataPath, 'utf-8');
379
+ const metadata = JSON.parse(fileContent);
380
+ // Get runtime agents for JSON schema generation
381
+ const agents = getAgents();
382
+ const agentsByName = new Map();
383
+ for (const [name, agent] of agents) {
384
+ agentsByName.set(name, agent);
385
+ }
386
+ // Transform metadata structure to workbench format
387
+ const schemas = { agents: {} };
388
+ for (const agent of metadata.agents || []) {
389
+ // Try to find runtime agent by name to get JSON schemas
390
+ const runtimeAgent = agentsByName.get(agent.name);
391
+ schemas.agents[agent.id] = {
392
+ schema: {
393
+ input: agent.schema?.input
394
+ ? {
395
+ code: agent.schema.input,
396
+ json: runtimeAgent?.inputSchema
397
+ ? toJSONSchema(runtimeAgent.inputSchema)
398
+ : undefined,
399
+ }
400
+ : undefined,
401
+ output: agent.schema?.output
402
+ ? {
403
+ code: agent.schema.output,
404
+ json: runtimeAgent?.outputSchema
405
+ ? toJSONSchema(runtimeAgent.outputSchema)
406
+ : undefined,
407
+ }
408
+ : undefined,
409
+ },
410
+ metadata: {
411
+ id: agent.id,
412
+ agentId: agent.agentId,
413
+ name: agent.name,
414
+ description: agent.description,
415
+ filename: agent.filename,
416
+ version: agent.version,
417
+ },
418
+ };
419
+ }
420
+ return ctx.json(schemas);
421
+ }
422
+ catch (error) {
423
+ return ctx.json({
424
+ error: 'Failed to read metadata file',
425
+ message: error instanceof Error ? error.message : String(error),
426
+ }, { status: 500 });
157
427
  }
158
- return ctx.json(schemas);
159
428
  };
160
429
  };
161
430
  // Store WebSocket connections to notify them on app restart
@@ -1 +1 @@
1
- {"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAY,EAAE;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxD,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACpD,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7B,uBAAuB;QACvB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,IACC,CAAC,SAAS;oBACV,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAClF,CAAC;oBACF,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,2EAA2E;gBAC3E,wCAAwC;gBACxC,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,0BAA0B;QAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,OAAe,CAAC;YACpB,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACJ,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC9B,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAC3B,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,8CAA8C;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;YAClF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YAE3F,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,4BAA4B;YAC5B,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,iEAAiE;YACjE,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YAED,qCAAqC;YACrC,uEAAuE;YACvE,qDAAqD;YACrD,IAAI,MAAM,CAAC;YACX,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,8DAA8D;gBAC9D,MAAM,GAAG,MAAO,QAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACP,8DAA8D;gBAC9D,MAAM,GAAG,MAAO,QAAgB,CAAC,OAAO,EAAE,CAAC;YAC5C,CAAC;YAED,2DAA2D;YAC3D,oFAAoF;YACpF,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,gBAAgB,GAAG,YAAY,OAAO,EAAE,CAAC;gBAC/C,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAI,gBAA0C,IAAI,EAAE,CAAC;gBAEnE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE9C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;gBAED,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAErD,oDAAoD;gBACpD,IAAI,CAAC;oBACJ,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;oBAC3C,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACR,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC3E,CAAC;YAED,oDAAoD;YACpD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,IAAI,CACd;gBACC,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAY,EAAE;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxD,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACpD,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7B,uBAAuB;QACvB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,IACC,CAAC,SAAS;oBACV,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAClF,CAAC;oBACF,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,2EAA2E;gBAC3E,wCAAwC;gBACxC,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,OAAO,EAAE,CAAC;QAE/C,qCAAqC;QACrC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE9C,+CAA+C;QAC/C,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAY,EAAE;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxD,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACpD,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7B,uBAAuB;QACvB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,IACC,CAAC,SAAS;oBACV,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAClF,CAAC;oBACF,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,2EAA2E;gBAC3E,wCAAwC;gBACxC,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,OAAO,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE5D,OAAO,GAAG,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SACjD,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACzC,mEAAmE;IACnE,IAAI,CAAC;QACJ,sFAAsF;QACtF,IAAI,OAAO,iCAAiC,KAAK,WAAW,EAAE,CAAC;YAC9D,sFAAsF;YACtF,MAAM,OAAO,GAAG,iCAAiC,CAAC;YAElD,mDAAmD;YACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhC,uDAAuD;YACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACnD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,MAAM,CAAC;gBACjD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,wDAAwD;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,+DAA+D;IAC/D,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjE,uBAAuB;IACvB,MAAM,CAAC,SAAS,CAAC,0BAA0B,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,CAAC,qCAAqC,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAY,EAAE;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxD,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACpD,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7B,uBAAuB;QACvB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,IACC,CAAC,SAAS;oBACV,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAClF,CAAC;oBACF,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,8CAA8C;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;YAClF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YAE3F,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,4BAA4B;YAC5B,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,gCAAgC;YAChC,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEtD,wCAAwC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC7C,MAAM,UAAU,GACf,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBACnC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,IAAI,CACd;oBACC,KAAK,EAAE,sDAAsD;oBAC7D,OAAO,EACN,gHAAgH;iBACjH,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,MAAM,MAAM,GAAG;;;EAGhB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;;qEAEgC,CAAC;YAEnE,MAAM,eAAe,GAAG,GAAG,UAAU,0CAA0C,CAAC;YAChF,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;gBACjD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACR,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,cAAc,EAAE,kBAAkB;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACpB,KAAK,EAAE,yBAAyB;oBAChC,QAAQ,EAAE;wBACT;4BACC,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,MAAM;yBACf;qBACD;iBACD,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,GAAG,CAAC,IAAI,CACd;oBACC,KAAK,EAAE,yBAAyB;oBAChC,OAAO,EAAE,UAAU,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE;iBACtD,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAE1C,CAAC;YACF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC/D,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACJ,yCAAyC;gBACzC,MAAM,WAAW,GAAG,IAAI;qBACtB,IAAI,EAAE;qBACN,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;qBACnC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBAClC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAC,IAAI,CACd;oBACC,KAAK,EAAE,gCAAgC;oBACvC,OAAO,EAAE,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC9E,aAAa,EAAE,IAAI;iBACnB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,IAAI,CACd;gBACC,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAY,EAAE;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxD,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACpD,CAAC,CAAC,SAAS,CAAC;IAEb,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,IACC,CAAC,SAAS;oBACV,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAClF,CAAC;oBACF,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,2EAA2E;gBAC3E,wCAAwC;gBACxC,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,kDAAkD;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;QAElF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,0DAA0D,EAAE,EACrE,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEzC,gDAAgD;YAChD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,mDAAmD;YACnD,MAAM,OAAO,GAAwC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAEpE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC3C,wDAAwD;gBACxD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAElD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;oBAC1B,MAAM,EAAE;wBACP,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK;4BACzB,CAAC,CAAC;gCACA,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;gCACxB,IAAI,EAAE,YAAY,EAAE,WAAW;oCAC9B,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC;oCACxC,CAAC,CAAC,SAAS;6BACZ;4BACF,CAAC,CAAC,SAAS;wBACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;4BAC3B,CAAC,CAAC;gCACA,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gCACzB,IAAI,EAAE,YAAY,EAAE,YAAY;oCAC/B,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;oCACzC,CAAC,CAAC,SAAS;6BACZ;4BACF,CAAC,CAAC,SAAS;qBACZ;oBACD,QAAQ,EAAE;wBACT,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACtB;iBACD,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,IAAI,CACd;gBACC,KAAK,EAAE,8BAA8B;gBACrC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,EAAE;IACjD,OAAO,CAAC,IAAa,EAAE,EAAE;QACxB,OAAO,CAAC,EAAuB,EAAE,EAAE;YAClC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;gBACd,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE3B,oEAAoE;gBACpE,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACrD,6EAA6E;oBAC7E,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;wBAC5C,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;4BACrB,IAAI,CAAC;gCACJ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACxB,CAAC;4BAAC,OAAO,MAAM,EAAE,CAAC;gCACjB,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;4BACtC,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACf,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;IACH,CAAC,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "0.0.94",
3
+ "version": "0.0.96",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -26,9 +26,9 @@
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/core": "0.0.94",
30
- "@agentuity/schema": "0.0.94",
31
- "@agentuity/server": "0.0.94",
29
+ "@agentuity/core": "0.0.96",
30
+ "@agentuity/schema": "0.0.96",
31
+ "@agentuity/server": "0.0.96",
32
32
  "@opentelemetry/api": "^1.9.0",
33
33
  "@opentelemetry/api-logs": "^0.207.0",
34
34
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -46,23 +46,23 @@
46
46
  "@opentelemetry/semantic-conventions": "^1.37.0",
47
47
  "@traceloop/ai-semantic-conventions": "0.21.0",
48
48
  "@traceloop/node-server-sdk": "0.21.1",
49
+ "@types/mailparser": "^3.4.6",
49
50
  "hono": "^4.7.13",
50
- "zod": "^4.1.12",
51
51
  "mailparser": "^3.7.1",
52
- "@types/mailparser": "^3.4.6",
53
- "ws": "^8.18.0",
54
- "@types/ws": "^8.5.13"
52
+ "zod": "^4.1.12"
55
53
  },
56
54
  "devDependencies": {
57
- "@agentuity/test-utils": "0.0.94",
55
+ "@agentuity/test-utils": "0.0.96",
58
56
  "@types/bun": "latest",
59
57
  "@types/react": "^19.2.2",
60
58
  "@types/react-dom": "^19.2.2",
59
+ "@types/ws": "^8.5.13",
61
60
  "bun-types": "latest",
62
61
  "expect-type": "^1.2.2",
63
62
  "react": "^19.2.0",
64
63
  "react-dom": "^19.2.0",
65
- "typescript": "^5.9.0"
64
+ "typescript": "^5.9.0",
65
+ "ws": "^8.18.0"
66
66
  },
67
67
  "publishConfig": {
68
68
  "access": "public"