@agentuity/runtime 0.1.14 → 0.1.16

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 (269) hide show
  1. package/dist/_config.d.ts +100 -0
  2. package/dist/_config.d.ts.map +1 -0
  3. package/dist/_config.js +147 -0
  4. package/dist/_config.js.map +1 -0
  5. package/dist/_context.d.ts +76 -0
  6. package/dist/_context.d.ts.map +1 -0
  7. package/dist/_context.js +147 -0
  8. package/dist/_context.js.map +1 -0
  9. package/dist/_events.d.ts +64 -0
  10. package/dist/_events.d.ts.map +1 -0
  11. package/dist/_events.js +92 -0
  12. package/dist/_events.js.map +1 -0
  13. package/dist/_idle.d.ts +7 -0
  14. package/dist/_idle.d.ts.map +1 -0
  15. package/dist/_idle.js +10 -0
  16. package/dist/_idle.js.map +1 -0
  17. package/dist/_metadata.d.ts +117 -0
  18. package/dist/_metadata.d.ts.map +1 -0
  19. package/dist/_metadata.js +246 -0
  20. package/dist/_metadata.js.map +1 -0
  21. package/dist/_process-protection.d.ts +25 -0
  22. package/dist/_process-protection.d.ts.map +1 -0
  23. package/dist/_process-protection.js +65 -0
  24. package/dist/_process-protection.js.map +1 -0
  25. package/dist/_server.d.ts +46 -0
  26. package/dist/_server.d.ts.map +1 -0
  27. package/dist/_server.js +85 -0
  28. package/dist/_server.js.map +1 -0
  29. package/dist/_services.d.ts +21 -0
  30. package/dist/_services.d.ts.map +1 -0
  31. package/dist/_services.js +248 -0
  32. package/dist/_services.js.map +1 -0
  33. package/dist/_standalone.d.ts +208 -0
  34. package/dist/_standalone.d.ts.map +1 -0
  35. package/dist/_standalone.js +569 -0
  36. package/dist/_standalone.js.map +1 -0
  37. package/dist/_tokens.d.ts +12 -0
  38. package/dist/_tokens.d.ts.map +1 -0
  39. package/dist/_tokens.js +96 -0
  40. package/dist/_tokens.js.map +1 -0
  41. package/dist/_util.d.ts +16 -0
  42. package/dist/_util.d.ts.map +1 -0
  43. package/dist/_util.js +54 -0
  44. package/dist/_util.js.map +1 -0
  45. package/dist/_validation.d.ts +89 -0
  46. package/dist/_validation.d.ts.map +1 -0
  47. package/dist/_validation.js +29 -0
  48. package/dist/_validation.js.map +1 -0
  49. package/dist/_waituntil.d.ts +18 -0
  50. package/dist/_waituntil.d.ts.map +1 -0
  51. package/dist/_waituntil.js +97 -0
  52. package/dist/_waituntil.js.map +1 -0
  53. package/dist/agent.d.ts +1210 -0
  54. package/dist/agent.d.ts.map +1 -0
  55. package/dist/agent.js +903 -0
  56. package/dist/agent.js.map +1 -0
  57. package/dist/app.d.ts +322 -0
  58. package/dist/app.d.ts.map +1 -0
  59. package/dist/app.js +160 -0
  60. package/dist/app.js.map +1 -0
  61. package/dist/bun-s3-patch.d.ts +37 -0
  62. package/dist/bun-s3-patch.d.ts.map +1 -0
  63. package/dist/bun-s3-patch.js +139 -0
  64. package/dist/bun-s3-patch.js.map +1 -0
  65. package/dist/cors.d.ts +42 -0
  66. package/dist/cors.d.ts.map +1 -0
  67. package/dist/cors.js +117 -0
  68. package/dist/cors.js.map +1 -0
  69. package/dist/devmode.d.ts +3 -0
  70. package/dist/devmode.d.ts.map +1 -0
  71. package/dist/devmode.js +167 -0
  72. package/dist/devmode.js.map +1 -0
  73. package/dist/eval.d.ts +91 -0
  74. package/dist/eval.d.ts.map +1 -0
  75. package/dist/eval.js +16 -0
  76. package/dist/eval.js.map +1 -0
  77. package/dist/handlers/cron.d.ts +47 -0
  78. package/dist/handlers/cron.d.ts.map +1 -0
  79. package/dist/handlers/cron.js +49 -0
  80. package/dist/handlers/cron.js.map +1 -0
  81. package/dist/handlers/index.d.ts +5 -0
  82. package/dist/handlers/index.d.ts.map +1 -0
  83. package/dist/handlers/index.js +5 -0
  84. package/dist/handlers/index.js.map +1 -0
  85. package/dist/handlers/sse.d.ts +91 -0
  86. package/dist/handlers/sse.d.ts.map +1 -0
  87. package/dist/handlers/sse.js +213 -0
  88. package/dist/handlers/sse.js.map +1 -0
  89. package/dist/handlers/stream.d.ts +52 -0
  90. package/dist/handlers/stream.d.ts.map +1 -0
  91. package/dist/handlers/stream.js +116 -0
  92. package/dist/handlers/stream.js.map +1 -0
  93. package/dist/handlers/websocket.d.ts +49 -0
  94. package/dist/handlers/websocket.d.ts.map +1 -0
  95. package/dist/handlers/websocket.js +143 -0
  96. package/dist/handlers/websocket.js.map +1 -0
  97. package/dist/index.d.ts +71 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +58 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/logger/console.d.ts +70 -0
  102. package/dist/logger/console.d.ts.map +1 -0
  103. package/dist/logger/console.js +274 -0
  104. package/dist/logger/console.js.map +1 -0
  105. package/dist/logger/index.d.ts +3 -0
  106. package/dist/logger/index.d.ts.map +1 -0
  107. package/dist/logger/index.js +3 -0
  108. package/dist/logger/index.js.map +1 -0
  109. package/dist/logger/internal.d.ts +79 -0
  110. package/dist/logger/internal.d.ts.map +1 -0
  111. package/dist/logger/internal.js +133 -0
  112. package/dist/logger/internal.js.map +1 -0
  113. package/dist/logger/logger.d.ts +41 -0
  114. package/dist/logger/logger.d.ts.map +1 -0
  115. package/dist/logger/logger.js +2 -0
  116. package/dist/logger/logger.js.map +1 -0
  117. package/dist/logger/user.d.ts +8 -0
  118. package/dist/logger/user.d.ts.map +1 -0
  119. package/dist/logger/user.js +7 -0
  120. package/dist/logger/user.js.map +1 -0
  121. package/dist/logger/util.d.ts +11 -0
  122. package/dist/logger/util.d.ts.map +1 -0
  123. package/dist/logger/util.js +77 -0
  124. package/dist/logger/util.js.map +1 -0
  125. package/dist/middleware.d.ts +112 -0
  126. package/dist/middleware.d.ts.map +1 -0
  127. package/dist/middleware.js +507 -0
  128. package/dist/middleware.js.map +1 -0
  129. package/dist/otel/config.d.ts +19 -0
  130. package/dist/otel/config.d.ts.map +1 -0
  131. package/dist/otel/config.js +26 -0
  132. package/dist/otel/config.js.map +1 -0
  133. package/dist/otel/console.d.ts +33 -0
  134. package/dist/otel/console.d.ts.map +1 -0
  135. package/dist/otel/console.js +86 -0
  136. package/dist/otel/console.js.map +1 -0
  137. package/dist/otel/exporters/index.d.ts +4 -0
  138. package/dist/otel/exporters/index.d.ts.map +1 -0
  139. package/dist/otel/exporters/index.js +4 -0
  140. package/dist/otel/exporters/index.js.map +1 -0
  141. package/dist/otel/exporters/jsonl-log-exporter.d.ts +36 -0
  142. package/dist/otel/exporters/jsonl-log-exporter.d.ts.map +1 -0
  143. package/dist/otel/exporters/jsonl-log-exporter.js +103 -0
  144. package/dist/otel/exporters/jsonl-log-exporter.js.map +1 -0
  145. package/dist/otel/exporters/jsonl-metric-exporter.d.ts +40 -0
  146. package/dist/otel/exporters/jsonl-metric-exporter.d.ts.map +1 -0
  147. package/dist/otel/exporters/jsonl-metric-exporter.js +104 -0
  148. package/dist/otel/exporters/jsonl-metric-exporter.js.map +1 -0
  149. package/dist/otel/exporters/jsonl-trace-exporter.d.ts +36 -0
  150. package/dist/otel/exporters/jsonl-trace-exporter.d.ts.map +1 -0
  151. package/dist/otel/exporters/jsonl-trace-exporter.js +111 -0
  152. package/dist/otel/exporters/jsonl-trace-exporter.js.map +1 -0
  153. package/dist/otel/fetch.d.ts +12 -0
  154. package/dist/otel/fetch.d.ts.map +1 -0
  155. package/dist/otel/fetch.js +82 -0
  156. package/dist/otel/fetch.js.map +1 -0
  157. package/dist/otel/http.d.ts +16 -0
  158. package/dist/otel/http.d.ts.map +1 -0
  159. package/dist/otel/http.js +44 -0
  160. package/dist/otel/http.js.map +1 -0
  161. package/dist/otel/logger.d.ts +37 -0
  162. package/dist/otel/logger.d.ts.map +1 -0
  163. package/dist/otel/logger.js +268 -0
  164. package/dist/otel/logger.js.map +1 -0
  165. package/dist/otel/otel.d.ts +65 -0
  166. package/dist/otel/otel.d.ts.map +1 -0
  167. package/dist/otel/otel.js +261 -0
  168. package/dist/otel/otel.js.map +1 -0
  169. package/dist/router.d.ts +100 -0
  170. package/dist/router.d.ts.map +1 -0
  171. package/dist/router.js +163 -0
  172. package/dist/router.js.map +1 -0
  173. package/dist/services/evalrun/composite.d.ts +21 -0
  174. package/dist/services/evalrun/composite.d.ts.map +1 -0
  175. package/dist/services/evalrun/composite.js +26 -0
  176. package/dist/services/evalrun/composite.js.map +1 -0
  177. package/dist/services/evalrun/http.d.ts +24 -0
  178. package/dist/services/evalrun/http.d.ts.map +1 -0
  179. package/dist/services/evalrun/http.js +86 -0
  180. package/dist/services/evalrun/http.js.map +1 -0
  181. package/dist/services/evalrun/index.d.ts +5 -0
  182. package/dist/services/evalrun/index.d.ts.map +1 -0
  183. package/dist/services/evalrun/index.js +5 -0
  184. package/dist/services/evalrun/index.js.map +1 -0
  185. package/dist/services/evalrun/json.d.ts +21 -0
  186. package/dist/services/evalrun/json.d.ts.map +1 -0
  187. package/dist/services/evalrun/json.js +38 -0
  188. package/dist/services/evalrun/json.js.map +1 -0
  189. package/dist/services/evalrun/local.d.ts +19 -0
  190. package/dist/services/evalrun/local.d.ts.map +1 -0
  191. package/dist/services/evalrun/local.js +22 -0
  192. package/dist/services/evalrun/local.js.map +1 -0
  193. package/dist/services/local/_db.d.ts +4 -0
  194. package/dist/services/local/_db.d.ts.map +1 -0
  195. package/dist/services/local/_db.js +123 -0
  196. package/dist/services/local/_db.js.map +1 -0
  197. package/dist/services/local/_router.d.ts +3 -0
  198. package/dist/services/local/_router.d.ts.map +1 -0
  199. package/dist/services/local/_router.js +28 -0
  200. package/dist/services/local/_router.js.map +1 -0
  201. package/dist/services/local/_util.d.ts +18 -0
  202. package/dist/services/local/_util.d.ts.map +1 -0
  203. package/dist/services/local/_util.js +44 -0
  204. package/dist/services/local/_util.js.map +1 -0
  205. package/dist/services/local/index.d.ts +7 -0
  206. package/dist/services/local/index.d.ts.map +1 -0
  207. package/dist/services/local/index.js +7 -0
  208. package/dist/services/local/index.js.map +1 -0
  209. package/dist/services/local/keyvalue.d.ts +17 -0
  210. package/dist/services/local/keyvalue.d.ts.map +1 -0
  211. package/dist/services/local/keyvalue.js +125 -0
  212. package/dist/services/local/keyvalue.js.map +1 -0
  213. package/dist/services/local/stream.d.ts +12 -0
  214. package/dist/services/local/stream.d.ts.map +1 -0
  215. package/dist/services/local/stream.js +262 -0
  216. package/dist/services/local/stream.js.map +1 -0
  217. package/dist/services/local/vector.d.ts +17 -0
  218. package/dist/services/local/vector.d.ts.map +1 -0
  219. package/dist/services/local/vector.js +303 -0
  220. package/dist/services/local/vector.js.map +1 -0
  221. package/dist/services/sandbox/http.d.ts +13 -0
  222. package/dist/services/sandbox/http.d.ts.map +1 -0
  223. package/dist/services/sandbox/http.js +130 -0
  224. package/dist/services/sandbox/http.js.map +1 -0
  225. package/dist/services/sandbox/index.d.ts +2 -0
  226. package/dist/services/sandbox/index.d.ts.map +1 -0
  227. package/dist/services/sandbox/index.js +2 -0
  228. package/dist/services/sandbox/index.js.map +1 -0
  229. package/dist/services/session/composite.d.ts +21 -0
  230. package/dist/services/session/composite.d.ts.map +1 -0
  231. package/dist/services/session/composite.js +26 -0
  232. package/dist/services/session/composite.js.map +1 -0
  233. package/dist/services/session/http.d.ts +34 -0
  234. package/dist/services/session/http.d.ts.map +1 -0
  235. package/dist/services/session/http.js +80 -0
  236. package/dist/services/session/http.js.map +1 -0
  237. package/dist/services/session/index.d.ts +5 -0
  238. package/dist/services/session/index.d.ts.map +1 -0
  239. package/dist/services/session/index.js +5 -0
  240. package/dist/services/session/index.js.map +1 -0
  241. package/dist/services/session/json.d.ts +22 -0
  242. package/dist/services/session/json.d.ts.map +1 -0
  243. package/dist/services/session/json.js +35 -0
  244. package/dist/services/session/json.js.map +1 -0
  245. package/dist/services/session/local.d.ts +19 -0
  246. package/dist/services/session/local.d.ts.map +1 -0
  247. package/dist/services/session/local.js +23 -0
  248. package/dist/services/session/local.js.map +1 -0
  249. package/dist/services/thread/local.d.ts +20 -0
  250. package/dist/services/thread/local.d.ts.map +1 -0
  251. package/dist/services/thread/local.js +158 -0
  252. package/dist/services/thread/local.js.map +1 -0
  253. package/dist/session.d.ts +734 -0
  254. package/dist/session.d.ts.map +1 -0
  255. package/dist/session.js +1139 -0
  256. package/dist/session.js.map +1 -0
  257. package/dist/validator.d.ts +142 -0
  258. package/dist/validator.d.ts.map +1 -0
  259. package/dist/validator.js +149 -0
  260. package/dist/validator.js.map +1 -0
  261. package/dist/web.d.ts +8 -0
  262. package/dist/web.d.ts.map +1 -0
  263. package/dist/web.js +66 -0
  264. package/dist/web.js.map +1 -0
  265. package/dist/workbench.d.ts +17 -0
  266. package/dist/workbench.d.ts.map +1 -0
  267. package/dist/workbench.js +507 -0
  268. package/dist/workbench.js.map +1 -0
  269. package/package.json +8 -8
@@ -0,0 +1,507 @@
1
+ import { timingSafeEqual } from 'node:crypto';
2
+ import { toJSONSchema } from '@agentuity/server';
3
+ import { getAgents, createAgentMiddleware } from './agent';
4
+ import { createRouter } from './router';
5
+ import { websocket } from './handlers/websocket';
6
+ import { privateContext } from './_server';
7
+ import { getThreadProvider } from './_services';
8
+ import { loadBuildMetadata, getAgentMetadataByAgentId, hasMetadata, ensureAgentsImported, } from './_metadata';
9
+ import { TOKENS_HEADER, DURATION_HEADER } from './_tokens';
10
+ /**
11
+ * Middleware that captures execution metadata (tokens, duration, sessionId) after the handler completes
12
+ * and saves it to thread state. Applied only to the /execute route.
13
+ */
14
+ const createWorkbenchExecutionMetadataMiddleware = () => {
15
+ return async (ctx, next) => {
16
+ const started = performance.now();
17
+ await next();
18
+ // After handler completes, tokens and duration headers are available
19
+ const thread = ctx.var.thread;
20
+ if (!thread) {
21
+ return;
22
+ }
23
+ // Get execution context set by the handler
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ const executionCtx = ctx.var.workbenchExecution;
26
+ if (!executionCtx) {
27
+ return;
28
+ }
29
+ const { agentId, input, result } = executionCtx;
30
+ const agentMessagesKey = `messages_${agentId}`;
31
+ const maxMessages = 50;
32
+ // Read tokens and duration from response headers
33
+ const tokens = ctx.res.headers.get(TOKENS_HEADER) ?? undefined;
34
+ const duration = ctx.res.headers.get(DURATION_HEADER) ??
35
+ `${((performance.now() - started) / 1000).toFixed(1)}s`;
36
+ const sessionId = ctx.var.sessionId;
37
+ // Store input with metadata
38
+ await thread.state.push(agentMessagesKey, {
39
+ type: 'input',
40
+ data: input,
41
+ sessionId,
42
+ timestamp: Date.now(),
43
+ }, maxMessages);
44
+ // Store output with metadata (tokens, duration)
45
+ if (result !== undefined && result !== null) {
46
+ await thread.state.push(agentMessagesKey, {
47
+ type: 'output',
48
+ data: result,
49
+ sessionId,
50
+ tokens,
51
+ duration,
52
+ timestamp: Date.now(),
53
+ }, maxMessages);
54
+ }
55
+ // Save thread state
56
+ try {
57
+ const threadProvider = getThreadProvider();
58
+ await threadProvider.save(thread);
59
+ }
60
+ catch {
61
+ ctx.var.logger?.warn('Failed to save thread state');
62
+ }
63
+ };
64
+ };
65
+ export const createWorkbenchExecutionRoute = () => {
66
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
67
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
68
+ : undefined;
69
+ return async (ctx) => {
70
+ // Authentication check
71
+ if (authHeader) {
72
+ try {
73
+ const authValue = ctx.req.header('Authorization');
74
+ if (!authValue ||
75
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
76
+ return ctx.text('Unauthorized', { status: 401 });
77
+ }
78
+ }
79
+ catch {
80
+ // timing safe equals will throw if the input/output lengths are mismatched
81
+ // so we treat all exceptions as invalid
82
+ return ctx.text('Unauthorized', { status: 401 });
83
+ }
84
+ }
85
+ // Content-type validation
86
+ const contentType = ctx.req.header('Content-Type');
87
+ if (!contentType || !contentType.includes('application/json')) {
88
+ return ctx.json({ error: 'Content-Type must be application/json' }, { status: 400 });
89
+ }
90
+ try {
91
+ let agentId;
92
+ let input;
93
+ try {
94
+ const requestData = await ctx.req.json();
95
+ agentId = requestData.agentId;
96
+ input = requestData.input;
97
+ }
98
+ catch (_error) {
99
+ return ctx.json({ error: 'Invalid JSON in request body' }, { status: 400 });
100
+ }
101
+ // Read metadata to find agent name by agentId
102
+ const agentMeta = getAgentMetadataByAgentId(agentId);
103
+ if (!agentMeta) {
104
+ if (!hasMetadata()) {
105
+ return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
106
+ }
107
+ return ctx.text('Agent not found', { status: 404 });
108
+ }
109
+ // Get runtime agent by name
110
+ const allAgents = getAgents();
111
+ const agentName = agentMeta.name;
112
+ const agentObj = allAgents.get(agentName);
113
+ if (!agentObj || !agentName) {
114
+ return ctx.text('Agent not found', { status: 404 });
115
+ }
116
+ // Track agent ID for telemetry (otelMiddleware sets up agentIds)
117
+ const _ctx = privateContext(ctx);
118
+ if (agentObj.metadata?.id) {
119
+ _ctx.var.agentIds.add(agentObj.metadata.id);
120
+ }
121
+ if (agentObj.metadata?.agentId) {
122
+ _ctx.var.agentIds.add(agentObj.metadata.agentId);
123
+ }
124
+ // Execute the agent handler directly
125
+ // The agentMiddleware has already set up the AsyncLocalStorage context
126
+ // so the handler can access it via getAgentContext()
127
+ let result;
128
+ if (agentObj.inputSchema) {
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ result = await agentObj.handler(input);
131
+ }
132
+ else {
133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
+ result = await agentObj.handler();
135
+ }
136
+ // Store execution context for the metadata middleware to save with tokens/duration
137
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
138
+ ctx.set('workbenchExecution', { agentId, input, result });
139
+ return ctx.json({ success: true, data: result ?? null });
140
+ }
141
+ catch (error) {
142
+ const err = error instanceof Error ? error : new Error(String(error));
143
+ // Return 200 with wrapped error so UI can display it properly
144
+ return ctx.json({
145
+ success: false,
146
+ error: {
147
+ message: err.message,
148
+ stack: err.stack,
149
+ code: 'code' in err && typeof err.code === 'string' ? err.code : 'EXECUTION_ERROR',
150
+ cause: err.cause,
151
+ },
152
+ });
153
+ }
154
+ };
155
+ };
156
+ export const createWorkbenchClearStateRoute = () => {
157
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
158
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
159
+ : undefined;
160
+ return async (ctx) => {
161
+ // Authentication check
162
+ if (authHeader) {
163
+ try {
164
+ const authValue = ctx.req.header('Authorization');
165
+ if (!authValue ||
166
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
167
+ return ctx.text('Unauthorized', { status: 401 });
168
+ }
169
+ }
170
+ catch {
171
+ // timing safe equals will throw if the input/output lengths are mismatched
172
+ // so we treat all exceptions as invalid
173
+ return ctx.text('Unauthorized', { status: 401 });
174
+ }
175
+ }
176
+ const agentId = ctx.req.query('agentId');
177
+ if (!agentId) {
178
+ return ctx.json({ error: 'agentId query parameter is required' }, { status: 400 });
179
+ }
180
+ if (!ctx.var.thread) {
181
+ return ctx.json({ error: 'Thread not available' }, { status: 404 });
182
+ }
183
+ // Clear state associated with this specific agent:
184
+ // 1. messages_${agentId} - workbench message history
185
+ // 2. Any keys starting with ${agentId}_ - agent-specific state
186
+ const allKeys = await ctx.var.thread.state.keys();
187
+ const agentPrefix = `${agentId}_`;
188
+ const messagesKey = `messages_${agentId}`;
189
+ for (const key of allKeys) {
190
+ if (key === messagesKey || key.startsWith(agentPrefix)) {
191
+ await ctx.var.thread.state.delete(key);
192
+ }
193
+ }
194
+ // Save the thread to persist the cleared state
195
+ try {
196
+ const threadProvider = getThreadProvider();
197
+ await threadProvider.save(ctx.var.thread);
198
+ }
199
+ catch {
200
+ return ctx.json({ error: 'Failed to save thread state' }, { status: 500 });
201
+ }
202
+ return ctx.json({ success: true, message: `State cleared for agent ${agentId}` });
203
+ };
204
+ };
205
+ export const createWorkbenchStateRoute = () => {
206
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
207
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
208
+ : undefined;
209
+ return async (ctx) => {
210
+ // Authentication check
211
+ if (authHeader) {
212
+ try {
213
+ const authValue = ctx.req.header('Authorization');
214
+ if (!authValue ||
215
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
216
+ return ctx.text('Unauthorized', { status: 401 });
217
+ }
218
+ }
219
+ catch {
220
+ // timing safe equals will throw if the input/output lengths are mismatched
221
+ // so we treat all exceptions as invalid
222
+ return ctx.text('Unauthorized', { status: 401 });
223
+ }
224
+ }
225
+ const agentId = ctx.req.query('agentId');
226
+ if (!agentId) {
227
+ return ctx.json({ error: 'agentId query parameter is required' }, { status: 400 });
228
+ }
229
+ if (!ctx.var.thread) {
230
+ return ctx.json({ error: 'Thread not available' }, { status: 404 });
231
+ }
232
+ const agentMessagesKey = `messages_${agentId}`;
233
+ const messages = await ctx.var.thread.state.get(agentMessagesKey);
234
+ return ctx.json({
235
+ threadId: ctx.var.thread.id,
236
+ agentId,
237
+ messages: Array.isArray(messages) ? messages : [],
238
+ });
239
+ };
240
+ };
241
+ /**
242
+ * Creates a workbench router with proper agent middleware for execution routes
243
+ */
244
+ export const createWorkbenchRouter = () => {
245
+ // Try to extract API key from inline workbench config if available
246
+ try {
247
+ // @ts-expect-error - AGENTUITY_WORKBENCH_CONFIG_INLINE will be replaced at build time
248
+ if (typeof AGENTUITY_WORKBENCH_CONFIG_INLINE !== 'undefined') {
249
+ // @ts-expect-error - AGENTUITY_WORKBENCH_CONFIG_INLINE will be replaced at build time
250
+ const encoded = AGENTUITY_WORKBENCH_CONFIG_INLINE;
251
+ // Decode the config manually to avoid async import
252
+ const json = Buffer.from(encoded, 'base64').toString('utf-8');
253
+ const config = JSON.parse(json);
254
+ // Extract API key from Authorization header if present
255
+ if (config.headers?.['Authorization']) {
256
+ const authHeader = config.headers['Authorization'];
257
+ if (authHeader.startsWith('Bearer ')) {
258
+ const apiKey = authHeader.slice('Bearer '.length);
259
+ process.env.AGENTUITY_WORKBENCH_APIKEY = apiKey;
260
+ }
261
+ }
262
+ }
263
+ }
264
+ catch {
265
+ // Silently ignore if config is not available or invalid
266
+ }
267
+ const router = createRouter();
268
+ // Apply agent middleware to ensure proper context is available
269
+ router.use('/_agentuity/workbench/*', createAgentMiddleware(''));
270
+ // Add workbench routes
271
+ router.get('/_agentuity/workbench/ws', websocket(createWorkbenchWebsocketHandler()));
272
+ router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
273
+ router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
274
+ router.get('/_agentuity/workbench/state', createWorkbenchStateRoute());
275
+ router.delete('/_agentuity/workbench/state', createWorkbenchClearStateRoute());
276
+ router.post('/_agentuity/workbench/execute', createWorkbenchExecutionMetadataMiddleware(), createWorkbenchExecutionRoute());
277
+ return router;
278
+ };
279
+ export const createWorkbenchSampleRoute = () => {
280
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
281
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
282
+ : undefined;
283
+ return async (ctx) => {
284
+ // Authentication check
285
+ if (authHeader) {
286
+ try {
287
+ const authValue = ctx.req.header('Authorization');
288
+ if (!authValue ||
289
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
290
+ return ctx.text('Unauthorized', { status: 401 });
291
+ }
292
+ }
293
+ catch {
294
+ return ctx.text('Unauthorized', { status: 401 });
295
+ }
296
+ }
297
+ try {
298
+ const agentId = ctx.req.query('agentId');
299
+ if (!agentId) {
300
+ return ctx.json({ error: 'Missing agentId query parameter' }, { status: 400 });
301
+ }
302
+ // Read metadata to find agent name by agentId
303
+ const agentMeta = getAgentMetadataByAgentId(agentId);
304
+ if (!agentMeta) {
305
+ if (!hasMetadata()) {
306
+ return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
307
+ }
308
+ return ctx.text('Agent not found', { status: 404 });
309
+ }
310
+ // Get runtime agent by name
311
+ const allAgents = getAgents();
312
+ const agentObj = allAgents.get(agentMeta.name);
313
+ if (!agentObj) {
314
+ return ctx.text('Agent not found', { status: 404 });
315
+ }
316
+ // Check if agent has input schema
317
+ if (!agentObj.inputSchema) {
318
+ return ctx.json({ error: 'Agent has no input schema' }, { status: 400 });
319
+ }
320
+ // Convert schema to JSON Schema
321
+ const jsonSchema = toJSONSchema(agentObj.inputSchema);
322
+ // Get Agentuity SDK key and gateway URL
323
+ const sdkKey = process.env.AGENTUITY_SDK_KEY;
324
+ const gatewayUrl = process.env.AGENTUITY_AIGATEWAY_URL ||
325
+ process.env.AGENTUITY_TRANSPORT_URL ||
326
+ (sdkKey ? 'https://agentuity.ai' : '');
327
+ if (!sdkKey || !gatewayUrl) {
328
+ return ctx.json({
329
+ error: 'AGENTUITY_SDK_KEY and gateway URL must be configured',
330
+ message: 'Set AGENTUITY_SDK_KEY and either AGENTUITY_AIGATEWAY_URL, AGENTUITY_TRANSPORT_URL, or use https://agentuity.ai',
331
+ }, { status: 500 });
332
+ }
333
+ // Generate sample using Groq via Agentuity Gateway
334
+ const prompt = `Generate a realistic sample data object that matches this JSON schema. Return only valid JSON, no markdown code blocks or explanations.
335
+
336
+ JSON Schema:
337
+ ${JSON.stringify(jsonSchema, null, 2)}
338
+
339
+ Return a JSON object that matches this schema with realistic values.`;
340
+ const gatewayEndpoint = `${gatewayUrl}/gateway/groq/openai/v1/chat/completions`;
341
+ const groqResponse = await fetch(gatewayEndpoint, {
342
+ method: 'POST',
343
+ headers: {
344
+ Authorization: `Bearer ${sdkKey}`,
345
+ 'Content-Type': 'application/json',
346
+ },
347
+ body: JSON.stringify({
348
+ model: 'llama-3.3-70b-versatile',
349
+ messages: [
350
+ {
351
+ role: 'user',
352
+ content: prompt,
353
+ },
354
+ ],
355
+ }),
356
+ });
357
+ if (!groqResponse.ok) {
358
+ const errorText = await groqResponse.text();
359
+ return ctx.json({
360
+ error: 'Groq API request failed',
361
+ message: `Status ${groqResponse.status}: ${errorText}`,
362
+ }, { status: 500 });
363
+ }
364
+ const groqData = (await groqResponse.json());
365
+ const text = groqData.choices?.[0]?.message?.content;
366
+ if (!text) {
367
+ return ctx.json({ error: 'Invalid response from Groq API', response: groqData }, { status: 500 });
368
+ }
369
+ // Parse the JSON response
370
+ let sample;
371
+ try {
372
+ // Remove markdown code blocks if present
373
+ const cleanedText = text
374
+ .trim()
375
+ .replace(/^```json\s*|\s*```$/g, '')
376
+ .replace(/^```\s*|\s*```$/g, '');
377
+ sample = JSON.parse(cleanedText);
378
+ }
379
+ catch (parseError) {
380
+ return ctx.json({
381
+ error: 'Failed to parse generated JSON',
382
+ message: parseError instanceof Error ? parseError.message : String(parseError),
383
+ generatedText: text,
384
+ }, { status: 500 });
385
+ }
386
+ return ctx.json(sample);
387
+ }
388
+ catch (error) {
389
+ return ctx.json({
390
+ error: 'Internal server error',
391
+ message: error instanceof Error ? error.message : String(error),
392
+ }, { status: 500 });
393
+ }
394
+ };
395
+ };
396
+ export const createWorkbenchMetadataRoute = () => {
397
+ const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
398
+ ? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
399
+ : undefined;
400
+ return async (ctx) => {
401
+ if (authHeader) {
402
+ try {
403
+ const authValue = ctx.req.header('Authorization');
404
+ if (!authValue ||
405
+ !timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
406
+ return ctx.text('Unauthorized', { status: 401 });
407
+ }
408
+ }
409
+ catch {
410
+ // timing safe equals will throw if the input/output lengths are mismatched
411
+ // so we treat all exceptions as invalid
412
+ return ctx.text('Unauthorized', { status: 401 });
413
+ }
414
+ }
415
+ // Read metadata from agentuity.metadata.json file
416
+ const metadata = loadBuildMetadata();
417
+ if (!metadata) {
418
+ return ctx.json({ error: 'Metadata file not found. Run build to generate metadata.' }, { status: 500 });
419
+ }
420
+ try {
421
+ // Ensure all agents are imported so their schemas are available
422
+ await ensureAgentsImported();
423
+ // Get runtime agents for JSON schema generation
424
+ const agents = getAgents();
425
+ const agentsByName = new Map();
426
+ for (const [name, agent] of agents) {
427
+ agentsByName.set(name, agent);
428
+ }
429
+ // Transform metadata structure to workbench format
430
+ const schemas = { agents: {} };
431
+ for (const agent of metadata.agents || []) {
432
+ // Try to find runtime agent by name to get JSON schemas
433
+ const runtimeAgent = agentsByName.get(agent.name);
434
+ schemas.agents[agent.id] = {
435
+ schema: {
436
+ input: agent.schema?.input
437
+ ? {
438
+ code: agent.schema.input,
439
+ json: runtimeAgent?.inputSchema
440
+ ? toJSONSchema(runtimeAgent.inputSchema)
441
+ : undefined,
442
+ }
443
+ : undefined,
444
+ output: agent.schema?.output
445
+ ? {
446
+ code: agent.schema.output,
447
+ json: runtimeAgent?.outputSchema
448
+ ? toJSONSchema(runtimeAgent.outputSchema)
449
+ : undefined,
450
+ }
451
+ : undefined,
452
+ },
453
+ metadata: {
454
+ id: agent.id,
455
+ agentId: agent.agentId,
456
+ name: agent.name,
457
+ description: agent.description,
458
+ filename: agent.filename,
459
+ version: agent.version,
460
+ },
461
+ };
462
+ }
463
+ return ctx.json(schemas);
464
+ }
465
+ catch (error) {
466
+ return ctx.json({
467
+ error: 'Failed to read metadata file',
468
+ message: error instanceof Error ? error.message : String(error),
469
+ }, { status: 500 });
470
+ }
471
+ };
472
+ };
473
+ // Store WebSocket connections to notify them on app restart
474
+ const workbenchWebSockets = new Set();
475
+ export const createWorkbenchWebsocketHandler = () => {
476
+ return (_c, ws) => {
477
+ ws.onOpen(() => {
478
+ workbenchWebSockets.add(ws);
479
+ ws.send('alive');
480
+ });
481
+ ws.onMessage((event) => {
482
+ const message = event.data;
483
+ // If a client sends a message (CLI), broadcast to all other clients
484
+ if (message === 'restarting' || message === 'alive') {
485
+ // Broadcast the message to all other clients (excluding this CLI connection)
486
+ for (const clientWs of workbenchWebSockets) {
487
+ if (clientWs !== ws) {
488
+ try {
489
+ clientWs.send(message);
490
+ }
491
+ catch (_error) {
492
+ workbenchWebSockets.delete(clientWs);
493
+ }
494
+ }
495
+ }
496
+ }
497
+ });
498
+ ws.onClose(() => {
499
+ workbenchWebSockets.delete(ws);
500
+ });
501
+ };
502
+ };
503
+ /**
504
+ * @deprecated Use createWorkbenchWebsocketHandler instead
505
+ */
506
+ export const createWorkbenchWebsocketRoute = createWorkbenchWebsocketHandler;
507
+ //# sourceMappingURL=workbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -19,18 +19,18 @@
19
19
  "dist"
20
20
  ],
21
21
  "scripts": {
22
- "clean": "rm -rf dist",
22
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
23
23
  "build": "bunx tsc --build",
24
24
  "typecheck": "bunx tsc --noEmit",
25
25
  "typecheck:tests": "bunx tsc --noEmit --project tsconfig.test.json",
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/auth": "0.1.14",
30
- "@agentuity/core": "0.1.14",
31
- "@agentuity/frontend": "0.1.14",
32
- "@agentuity/schema": "0.1.14",
33
- "@agentuity/server": "0.1.14",
29
+ "@agentuity/auth": "0.1.16",
30
+ "@agentuity/core": "0.1.16",
31
+ "@agentuity/frontend": "0.1.16",
32
+ "@agentuity/schema": "0.1.16",
33
+ "@agentuity/server": "0.1.16",
34
34
  "@opentelemetry/api": "^1.9.0",
35
35
  "@opentelemetry/api-logs": "^0.207.0",
36
36
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -52,7 +52,7 @@
52
52
  "zod": "^4.3.5"
53
53
  },
54
54
  "devDependencies": {
55
- "@agentuity/test-utils": "0.1.14",
55
+ "@agentuity/test-utils": "0.1.16",
56
56
  "@types/bun": "latest",
57
57
  "@types/react": "^19.2.2",
58
58
  "@types/react-dom": "^19.2.2",