@agentuity/runtime 2.0.11 → 3.0.0-alpha.1

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 (415) hide show
  1. package/dist/index.d.ts +37 -65
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +59 -61
  4. package/dist/index.js.map +1 -1
  5. package/package.json +9 -38
  6. package/src/index.ts +58 -259
  7. package/AGENTS.md +0 -116
  8. package/dist/_config.d.ts +0 -100
  9. package/dist/_config.d.ts.map +0 -1
  10. package/dist/_config.js +0 -147
  11. package/dist/_config.js.map +0 -1
  12. package/dist/_context.d.ts +0 -80
  13. package/dist/_context.d.ts.map +0 -1
  14. package/dist/_context.js +0 -160
  15. package/dist/_context.js.map +0 -1
  16. package/dist/_events.d.ts +0 -64
  17. package/dist/_events.d.ts.map +0 -1
  18. package/dist/_events.js +0 -92
  19. package/dist/_events.js.map +0 -1
  20. package/dist/_globals.d.ts +0 -58
  21. package/dist/_globals.d.ts.map +0 -1
  22. package/dist/_globals.js +0 -71
  23. package/dist/_globals.js.map +0 -1
  24. package/dist/_idle.d.ts +0 -7
  25. package/dist/_idle.d.ts.map +0 -1
  26. package/dist/_idle.js +0 -10
  27. package/dist/_idle.js.map +0 -1
  28. package/dist/_metadata.d.ts +0 -117
  29. package/dist/_metadata.d.ts.map +0 -1
  30. package/dist/_metadata.js +0 -268
  31. package/dist/_metadata.js.map +0 -1
  32. package/dist/_process-protection.d.ts +0 -27
  33. package/dist/_process-protection.d.ts.map +0 -1
  34. package/dist/_process-protection.js +0 -56
  35. package/dist/_process-protection.js.map +0 -1
  36. package/dist/_server.d.ts +0 -50
  37. package/dist/_server.d.ts.map +0 -1
  38. package/dist/_server.js +0 -89
  39. package/dist/_server.js.map +0 -1
  40. package/dist/_services.d.ts +0 -25
  41. package/dist/_services.d.ts.map +0 -1
  42. package/dist/_services.js +0 -286
  43. package/dist/_services.js.map +0 -1
  44. package/dist/_standalone.d.ts +0 -212
  45. package/dist/_standalone.d.ts.map +0 -1
  46. package/dist/_standalone.js +0 -556
  47. package/dist/_standalone.js.map +0 -1
  48. package/dist/_tokens.d.ts +0 -12
  49. package/dist/_tokens.d.ts.map +0 -1
  50. package/dist/_tokens.js +0 -97
  51. package/dist/_tokens.js.map +0 -1
  52. package/dist/_util.d.ts +0 -16
  53. package/dist/_util.d.ts.map +0 -1
  54. package/dist/_util.js +0 -54
  55. package/dist/_util.js.map +0 -1
  56. package/dist/_validation.d.ts +0 -89
  57. package/dist/_validation.d.ts.map +0 -1
  58. package/dist/_validation.js +0 -29
  59. package/dist/_validation.js.map +0 -1
  60. package/dist/_waituntil.d.ts +0 -32
  61. package/dist/_waituntil.d.ts.map +0 -1
  62. package/dist/_waituntil.js +0 -156
  63. package/dist/_waituntil.js.map +0 -1
  64. package/dist/agent.d.ts +0 -1262
  65. package/dist/agent.d.ts.map +0 -1
  66. package/dist/agent.js +0 -981
  67. package/dist/agent.js.map +0 -1
  68. package/dist/app.d.ts +0 -514
  69. package/dist/app.d.ts.map +0 -1
  70. package/dist/app.js +0 -228
  71. package/dist/app.js.map +0 -1
  72. package/dist/bootstrap.d.ts +0 -44
  73. package/dist/bootstrap.d.ts.map +0 -1
  74. package/dist/bootstrap.js +0 -259
  75. package/dist/bootstrap.js.map +0 -1
  76. package/dist/bun-s3-patch.d.ts +0 -37
  77. package/dist/bun-s3-patch.d.ts.map +0 -1
  78. package/dist/bun-s3-patch.js +0 -142
  79. package/dist/bun-s3-patch.js.map +0 -1
  80. package/dist/cors.d.ts +0 -42
  81. package/dist/cors.d.ts.map +0 -1
  82. package/dist/cors.js +0 -117
  83. package/dist/cors.js.map +0 -1
  84. package/dist/dev-patches/aisdk.d.ts +0 -17
  85. package/dist/dev-patches/aisdk.d.ts.map +0 -1
  86. package/dist/dev-patches/aisdk.js +0 -160
  87. package/dist/dev-patches/aisdk.js.map +0 -1
  88. package/dist/dev-patches/gateway.d.ts +0 -16
  89. package/dist/dev-patches/gateway.d.ts.map +0 -1
  90. package/dist/dev-patches/gateway.js +0 -54
  91. package/dist/dev-patches/gateway.js.map +0 -1
  92. package/dist/dev-patches/index.d.ts +0 -21
  93. package/dist/dev-patches/index.d.ts.map +0 -1
  94. package/dist/dev-patches/index.js +0 -33
  95. package/dist/dev-patches/index.js.map +0 -1
  96. package/dist/dev-patches/otel-llm.d.ts +0 -12
  97. package/dist/dev-patches/otel-llm.d.ts.map +0 -1
  98. package/dist/dev-patches/otel-llm.js +0 -352
  99. package/dist/dev-patches/otel-llm.js.map +0 -1
  100. package/dist/devmode.d.ts +0 -3
  101. package/dist/devmode.d.ts.map +0 -1
  102. package/dist/devmode.js +0 -167
  103. package/dist/devmode.js.map +0 -1
  104. package/dist/eval.d.ts +0 -91
  105. package/dist/eval.d.ts.map +0 -1
  106. package/dist/eval.js +0 -16
  107. package/dist/eval.js.map +0 -1
  108. package/dist/handlers/_route-meta.d.ts +0 -22
  109. package/dist/handlers/_route-meta.d.ts.map +0 -1
  110. package/dist/handlers/_route-meta.js +0 -25
  111. package/dist/handlers/_route-meta.js.map +0 -1
  112. package/dist/handlers/cron.d.ts +0 -73
  113. package/dist/handlers/cron.d.ts.map +0 -1
  114. package/dist/handlers/cron.js +0 -43
  115. package/dist/handlers/cron.js.map +0 -1
  116. package/dist/handlers/index.d.ts +0 -6
  117. package/dist/handlers/index.d.ts.map +0 -1
  118. package/dist/handlers/index.js +0 -6
  119. package/dist/handlers/index.js.map +0 -1
  120. package/dist/handlers/sse.d.ts +0 -163
  121. package/dist/handlers/sse.d.ts.map +0 -1
  122. package/dist/handlers/sse.js +0 -175
  123. package/dist/handlers/sse.js.map +0 -1
  124. package/dist/handlers/stream.d.ts +0 -52
  125. package/dist/handlers/stream.d.ts.map +0 -1
  126. package/dist/handlers/stream.js +0 -108
  127. package/dist/handlers/stream.js.map +0 -1
  128. package/dist/handlers/webrtc.d.ts +0 -49
  129. package/dist/handlers/webrtc.d.ts.map +0 -1
  130. package/dist/handlers/webrtc.js +0 -109
  131. package/dist/handlers/webrtc.js.map +0 -1
  132. package/dist/handlers/websocket.d.ts +0 -88
  133. package/dist/handlers/websocket.d.ts.map +0 -1
  134. package/dist/handlers/websocket.js +0 -161
  135. package/dist/handlers/websocket.js.map +0 -1
  136. package/dist/logger/console.d.ts +0 -70
  137. package/dist/logger/console.d.ts.map +0 -1
  138. package/dist/logger/console.js +0 -278
  139. package/dist/logger/console.js.map +0 -1
  140. package/dist/logger/index.d.ts +0 -3
  141. package/dist/logger/index.d.ts.map +0 -1
  142. package/dist/logger/index.js +0 -3
  143. package/dist/logger/index.js.map +0 -1
  144. package/dist/logger/internal.d.ts +0 -79
  145. package/dist/logger/internal.d.ts.map +0 -1
  146. package/dist/logger/internal.js +0 -133
  147. package/dist/logger/internal.js.map +0 -1
  148. package/dist/logger/logger.d.ts +0 -41
  149. package/dist/logger/logger.d.ts.map +0 -1
  150. package/dist/logger/logger.js +0 -2
  151. package/dist/logger/logger.js.map +0 -1
  152. package/dist/logger/user.d.ts +0 -8
  153. package/dist/logger/user.d.ts.map +0 -1
  154. package/dist/logger/user.js +0 -7
  155. package/dist/logger/user.js.map +0 -1
  156. package/dist/logger/util.d.ts +0 -11
  157. package/dist/logger/util.d.ts.map +0 -1
  158. package/dist/logger/util.js +0 -77
  159. package/dist/logger/util.js.map +0 -1
  160. package/dist/middleware.d.ts +0 -105
  161. package/dist/middleware.d.ts.map +0 -1
  162. package/dist/middleware.js +0 -763
  163. package/dist/middleware.js.map +0 -1
  164. package/dist/otel/config.d.ts +0 -19
  165. package/dist/otel/config.d.ts.map +0 -1
  166. package/dist/otel/config.js +0 -26
  167. package/dist/otel/config.js.map +0 -1
  168. package/dist/otel/console.d.ts +0 -33
  169. package/dist/otel/console.d.ts.map +0 -1
  170. package/dist/otel/console.js +0 -86
  171. package/dist/otel/console.js.map +0 -1
  172. package/dist/otel/exporters/index.d.ts +0 -4
  173. package/dist/otel/exporters/index.d.ts.map +0 -1
  174. package/dist/otel/exporters/index.js +0 -4
  175. package/dist/otel/exporters/index.js.map +0 -1
  176. package/dist/otel/exporters/jsonl-log-exporter.d.ts +0 -36
  177. package/dist/otel/exporters/jsonl-log-exporter.d.ts.map +0 -1
  178. package/dist/otel/exporters/jsonl-log-exporter.js +0 -103
  179. package/dist/otel/exporters/jsonl-log-exporter.js.map +0 -1
  180. package/dist/otel/exporters/jsonl-metric-exporter.d.ts +0 -40
  181. package/dist/otel/exporters/jsonl-metric-exporter.d.ts.map +0 -1
  182. package/dist/otel/exporters/jsonl-metric-exporter.js +0 -104
  183. package/dist/otel/exporters/jsonl-metric-exporter.js.map +0 -1
  184. package/dist/otel/exporters/jsonl-trace-exporter.d.ts +0 -36
  185. package/dist/otel/exporters/jsonl-trace-exporter.d.ts.map +0 -1
  186. package/dist/otel/exporters/jsonl-trace-exporter.js +0 -111
  187. package/dist/otel/exporters/jsonl-trace-exporter.js.map +0 -1
  188. package/dist/otel/fetch.d.ts +0 -12
  189. package/dist/otel/fetch.d.ts.map +0 -1
  190. package/dist/otel/fetch.js +0 -82
  191. package/dist/otel/fetch.js.map +0 -1
  192. package/dist/otel/http.d.ts +0 -16
  193. package/dist/otel/http.d.ts.map +0 -1
  194. package/dist/otel/http.js +0 -44
  195. package/dist/otel/http.js.map +0 -1
  196. package/dist/otel/logger.d.ts +0 -37
  197. package/dist/otel/logger.d.ts.map +0 -1
  198. package/dist/otel/logger.js +0 -265
  199. package/dist/otel/logger.js.map +0 -1
  200. package/dist/otel/otel.d.ts +0 -68
  201. package/dist/otel/otel.d.ts.map +0 -1
  202. package/dist/otel/otel.js +0 -245
  203. package/dist/otel/otel.js.map +0 -1
  204. package/dist/otel/tracestate.d.ts +0 -44
  205. package/dist/otel/tracestate.d.ts.map +0 -1
  206. package/dist/otel/tracestate.js +0 -84
  207. package/dist/otel/tracestate.js.map +0 -1
  208. package/dist/router.d.ts +0 -66
  209. package/dist/router.d.ts.map +0 -1
  210. package/dist/router.js +0 -44
  211. package/dist/router.js.map +0 -1
  212. package/dist/services/evalrun/composite.d.ts +0 -21
  213. package/dist/services/evalrun/composite.d.ts.map +0 -1
  214. package/dist/services/evalrun/composite.js +0 -26
  215. package/dist/services/evalrun/composite.js.map +0 -1
  216. package/dist/services/evalrun/http.d.ts +0 -24
  217. package/dist/services/evalrun/http.d.ts.map +0 -1
  218. package/dist/services/evalrun/http.js +0 -115
  219. package/dist/services/evalrun/http.js.map +0 -1
  220. package/dist/services/evalrun/index.d.ts +0 -5
  221. package/dist/services/evalrun/index.d.ts.map +0 -1
  222. package/dist/services/evalrun/index.js +0 -5
  223. package/dist/services/evalrun/index.js.map +0 -1
  224. package/dist/services/evalrun/json.d.ts +0 -21
  225. package/dist/services/evalrun/json.d.ts.map +0 -1
  226. package/dist/services/evalrun/json.js +0 -38
  227. package/dist/services/evalrun/json.js.map +0 -1
  228. package/dist/services/evalrun/local.d.ts +0 -19
  229. package/dist/services/evalrun/local.d.ts.map +0 -1
  230. package/dist/services/evalrun/local.js +0 -22
  231. package/dist/services/evalrun/local.js.map +0 -1
  232. package/dist/services/local/_db.d.ts +0 -4
  233. package/dist/services/local/_db.d.ts.map +0 -1
  234. package/dist/services/local/_db.js +0 -281
  235. package/dist/services/local/_db.js.map +0 -1
  236. package/dist/services/local/_router.d.ts +0 -3
  237. package/dist/services/local/_router.d.ts.map +0 -1
  238. package/dist/services/local/_router.js +0 -28
  239. package/dist/services/local/_router.js.map +0 -1
  240. package/dist/services/local/_util.d.ts +0 -18
  241. package/dist/services/local/_util.d.ts.map +0 -1
  242. package/dist/services/local/_util.js +0 -44
  243. package/dist/services/local/_util.js.map +0 -1
  244. package/dist/services/local/email.d.ts +0 -24
  245. package/dist/services/local/email.d.ts.map +0 -1
  246. package/dist/services/local/email.js +0 -58
  247. package/dist/services/local/email.js.map +0 -1
  248. package/dist/services/local/index.d.ts +0 -10
  249. package/dist/services/local/index.d.ts.map +0 -1
  250. package/dist/services/local/index.js +0 -10
  251. package/dist/services/local/index.js.map +0 -1
  252. package/dist/services/local/keyvalue.d.ts +0 -17
  253. package/dist/services/local/keyvalue.d.ts.map +0 -1
  254. package/dist/services/local/keyvalue.js +0 -133
  255. package/dist/services/local/keyvalue.js.map +0 -1
  256. package/dist/services/local/queue.d.ts +0 -10
  257. package/dist/services/local/queue.d.ts.map +0 -1
  258. package/dist/services/local/queue.js +0 -96
  259. package/dist/services/local/queue.js.map +0 -1
  260. package/dist/services/local/stream.d.ts +0 -12
  261. package/dist/services/local/stream.d.ts.map +0 -1
  262. package/dist/services/local/stream.js +0 -266
  263. package/dist/services/local/stream.js.map +0 -1
  264. package/dist/services/local/task.d.ts +0 -55
  265. package/dist/services/local/task.d.ts.map +0 -1
  266. package/dist/services/local/task.js +0 -1248
  267. package/dist/services/local/task.js.map +0 -1
  268. package/dist/services/local/vector.d.ts +0 -17
  269. package/dist/services/local/vector.d.ts.map +0 -1
  270. package/dist/services/local/vector.js +0 -303
  271. package/dist/services/local/vector.js.map +0 -1
  272. package/dist/services/sandbox/http.d.ts +0 -23
  273. package/dist/services/sandbox/http.d.ts.map +0 -1
  274. package/dist/services/sandbox/http.js +0 -327
  275. package/dist/services/sandbox/http.js.map +0 -1
  276. package/dist/services/sandbox/index.d.ts +0 -2
  277. package/dist/services/sandbox/index.d.ts.map +0 -1
  278. package/dist/services/sandbox/index.js +0 -2
  279. package/dist/services/sandbox/index.js.map +0 -1
  280. package/dist/services/session/composite.d.ts +0 -21
  281. package/dist/services/session/composite.d.ts.map +0 -1
  282. package/dist/services/session/composite.js +0 -26
  283. package/dist/services/session/composite.js.map +0 -1
  284. package/dist/services/session/http.d.ts +0 -34
  285. package/dist/services/session/http.d.ts.map +0 -1
  286. package/dist/services/session/http.js +0 -124
  287. package/dist/services/session/http.js.map +0 -1
  288. package/dist/services/session/index.d.ts +0 -5
  289. package/dist/services/session/index.d.ts.map +0 -1
  290. package/dist/services/session/index.js +0 -5
  291. package/dist/services/session/index.js.map +0 -1
  292. package/dist/services/session/json.d.ts +0 -22
  293. package/dist/services/session/json.d.ts.map +0 -1
  294. package/dist/services/session/json.js +0 -35
  295. package/dist/services/session/json.js.map +0 -1
  296. package/dist/services/session/local.d.ts +0 -19
  297. package/dist/services/session/local.d.ts.map +0 -1
  298. package/dist/services/session/local.js +0 -23
  299. package/dist/services/session/local.js.map +0 -1
  300. package/dist/services/thread/local.d.ts +0 -20
  301. package/dist/services/thread/local.d.ts.map +0 -1
  302. package/dist/services/thread/local.js +0 -158
  303. package/dist/services/thread/local.js.map +0 -1
  304. package/dist/session.d.ts +0 -734
  305. package/dist/session.d.ts.map +0 -1
  306. package/dist/session.js +0 -1140
  307. package/dist/session.js.map +0 -1
  308. package/dist/signature.d.ts +0 -22
  309. package/dist/signature.d.ts.map +0 -1
  310. package/dist/signature.js +0 -63
  311. package/dist/signature.js.map +0 -1
  312. package/dist/validator.d.ts +0 -142
  313. package/dist/validator.d.ts.map +0 -1
  314. package/dist/validator.js +0 -149
  315. package/dist/validator.js.map +0 -1
  316. package/dist/version-check.d.ts +0 -20
  317. package/dist/version-check.d.ts.map +0 -1
  318. package/dist/version-check.js +0 -157
  319. package/dist/version-check.js.map +0 -1
  320. package/dist/web.d.ts +0 -8
  321. package/dist/web.d.ts.map +0 -1
  322. package/dist/web.js +0 -67
  323. package/dist/web.js.map +0 -1
  324. package/dist/webrtc-signaling.d.ts +0 -80
  325. package/dist/webrtc-signaling.d.ts.map +0 -1
  326. package/dist/webrtc-signaling.js +0 -237
  327. package/dist/webrtc-signaling.js.map +0 -1
  328. package/dist/workbench.d.ts +0 -17
  329. package/dist/workbench.d.ts.map +0 -1
  330. package/dist/workbench.js +0 -605
  331. package/dist/workbench.js.map +0 -1
  332. package/src/_config.ts +0 -163
  333. package/src/_context.ts +0 -240
  334. package/src/_events.ts +0 -142
  335. package/src/_globals.ts +0 -92
  336. package/src/_idle.ts +0 -10
  337. package/src/_metadata.ts +0 -407
  338. package/src/_process-protection.ts +0 -71
  339. package/src/_server.ts +0 -109
  340. package/src/_services.ts +0 -379
  341. package/src/_standalone.ts +0 -710
  342. package/src/_tokens.ts +0 -114
  343. package/src/_util.ts +0 -62
  344. package/src/_validation.ts +0 -119
  345. package/src/_waituntil.ts +0 -188
  346. package/src/agent.ts +0 -2739
  347. package/src/app.ts +0 -769
  348. package/src/bootstrap.ts +0 -321
  349. package/src/bun-s3-patch.ts +0 -224
  350. package/src/cors.ts +0 -137
  351. package/src/dev-patches/aisdk.ts +0 -169
  352. package/src/dev-patches/gateway.ts +0 -68
  353. package/src/dev-patches/index.ts +0 -37
  354. package/src/dev-patches/otel-llm.ts +0 -405
  355. package/src/devmode.ts +0 -171
  356. package/src/eval.ts +0 -109
  357. package/src/globals.d.ts +0 -28
  358. package/src/handlers/_route-meta.ts +0 -33
  359. package/src/handlers/cron.ts +0 -141
  360. package/src/handlers/index.ts +0 -18
  361. package/src/handlers/sse.ts +0 -358
  362. package/src/handlers/stream.ts +0 -121
  363. package/src/handlers/webrtc.ts +0 -125
  364. package/src/handlers/websocket.ts +0 -203
  365. package/src/logger/console.ts +0 -323
  366. package/src/logger/index.ts +0 -2
  367. package/src/logger/internal.ts +0 -165
  368. package/src/logger/logger.ts +0 -44
  369. package/src/logger/user.ts +0 -15
  370. package/src/logger/util.ts +0 -80
  371. package/src/middleware.ts +0 -1095
  372. package/src/otel/config.ts +0 -47
  373. package/src/otel/console.ts +0 -91
  374. package/src/otel/exporters/README.md +0 -217
  375. package/src/otel/exporters/index.ts +0 -3
  376. package/src/otel/exporters/jsonl-log-exporter.ts +0 -113
  377. package/src/otel/exporters/jsonl-metric-exporter.ts +0 -120
  378. package/src/otel/exporters/jsonl-trace-exporter.ts +0 -121
  379. package/src/otel/fetch.ts +0 -105
  380. package/src/otel/http.ts +0 -53
  381. package/src/otel/logger.ts +0 -293
  382. package/src/otel/otel.ts +0 -354
  383. package/src/otel/tracestate.ts +0 -108
  384. package/src/router.ts +0 -75
  385. package/src/services/evalrun/composite.ts +0 -34
  386. package/src/services/evalrun/http.ts +0 -167
  387. package/src/services/evalrun/index.ts +0 -4
  388. package/src/services/evalrun/json.ts +0 -46
  389. package/src/services/evalrun/local.ts +0 -28
  390. package/src/services/local/README.md +0 -1576
  391. package/src/services/local/_db.ts +0 -353
  392. package/src/services/local/_router.ts +0 -40
  393. package/src/services/local/_util.ts +0 -55
  394. package/src/services/local/email.ts +0 -91
  395. package/src/services/local/index.ts +0 -9
  396. package/src/services/local/keyvalue.ts +0 -174
  397. package/src/services/local/queue.ts +0 -145
  398. package/src/services/local/stream.ts +0 -358
  399. package/src/services/local/task.ts +0 -1711
  400. package/src/services/local/vector.ts +0 -438
  401. package/src/services/sandbox/http.ts +0 -522
  402. package/src/services/sandbox/index.ts +0 -1
  403. package/src/services/session/composite.ts +0 -33
  404. package/src/services/session/http.ts +0 -167
  405. package/src/services/session/index.ts +0 -4
  406. package/src/services/session/json.ts +0 -42
  407. package/src/services/session/local.ts +0 -33
  408. package/src/services/thread/local.ts +0 -199
  409. package/src/session.ts +0 -1960
  410. package/src/signature.ts +0 -82
  411. package/src/validator.ts +0 -283
  412. package/src/version-check.ts +0 -184
  413. package/src/web.ts +0 -76
  414. package/src/webrtc-signaling.ts +0 -288
  415. package/src/workbench.ts +0 -725
package/dist/workbench.js DELETED
@@ -1,605 +0,0 @@
1
- import { toJSONSchema } from '@agentuity/server';
2
- import { getAgents, createAgentMiddleware } from './agent';
3
- import { createRouter } from './router';
4
- import { websocket } from './handlers/websocket';
5
- import { privateContext } from './_server';
6
- import { getThreadProvider } from './_services';
7
- import { loadBuildMetadata, getAgentMetadataByAgentId, hasMetadata, ensureAgentsImported, } from './_metadata';
8
- import { TOKENS_HEADER, DURATION_HEADER } from './_tokens';
9
- import { verifySignature } from './signature';
10
- import { isProduction } from './_config';
11
- import { createCorsMiddleware } from './middleware';
12
- /**
13
- * Trusted Agentuity domain suffixes for workbench CORS.
14
- * Any origin matching https://*.{suffix} is allowed.
15
- * In development, any origin is allowed.
16
- */
17
- const TRUSTED_WORKBENCH_DOMAIN_SUFFIXES = ['.agentuity.com', '.agentuity.dev', '.agentuity.io'];
18
- /**
19
- * Check if an origin is a trusted Agentuity app origin.
20
- * Matches any HTTPS subdomain of the trusted domain suffixes.
21
- */
22
- function isTrustedWorkbenchOrigin(origin) {
23
- try {
24
- const url = new URL(origin);
25
- if (url.protocol !== 'https:')
26
- return false;
27
- return TRUSTED_WORKBENCH_DOMAIN_SUFFIXES.some((suffix) => url.hostname.endsWith(suffix));
28
- }
29
- catch {
30
- return false;
31
- }
32
- }
33
- /**
34
- * Middleware that verifies workbench request signatures in production.
35
- * In development mode, all requests are allowed.
36
- * Supports both header-based auth (for HTTP) and query param auth (for WebSocket).
37
- */
38
- const createWorkbenchAuthMiddleware = () => {
39
- return async (c, next) => {
40
- // Allow CORS preflight requests through (they don't have auth headers)
41
- if (c.req.method === 'OPTIONS') {
42
- return next();
43
- }
44
- // Skip auth in dev mode
45
- if (!isProduction()) {
46
- return next();
47
- }
48
- // Check signature from headers or query params (for WebSocket)
49
- const signature = c.req.header('X-Agentuity-Workbench-Signature') || c.req.query('signature');
50
- const timestamp = c.req.header('X-Agentuity-Workbench-Timestamp') || c.req.query('timestamp');
51
- // For non-POST requests, body is empty
52
- let body = '';
53
- if (c.req.method === 'POST') {
54
- const clonedReq = c.req.raw.clone();
55
- body = await clonedReq.text();
56
- }
57
- const isValid = await verifySignature(signature, timestamp, body);
58
- if (!isValid) {
59
- return c.json({ error: 'Unauthorized' }, 401);
60
- }
61
- return next();
62
- };
63
- };
64
- /**
65
- * Middleware that captures execution metadata (tokens, duration, sessionId) after the handler completes
66
- * and saves it to thread state. Applied only to the /execute route.
67
- */
68
- const createWorkbenchExecutionMetadataMiddleware = () => {
69
- return async (ctx, next) => {
70
- const started = performance.now();
71
- await next();
72
- // After handler completes, tokens and duration headers are available
73
- const thread = ctx.var.thread;
74
- if (!thread) {
75
- return;
76
- }
77
- // Get execution context set by the handler
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
- const executionCtx = ctx.var.workbenchExecution;
80
- if (!executionCtx) {
81
- return;
82
- }
83
- const { agentId, input, result } = executionCtx;
84
- const agentMessagesKey = `messages_${agentId}`;
85
- const maxMessages = 50;
86
- // Read tokens and duration from response headers
87
- const tokens = ctx.res.headers.get(TOKENS_HEADER) ?? undefined;
88
- const duration = ctx.res.headers.get(DURATION_HEADER) ??
89
- `${((performance.now() - started) / 1000).toFixed(1)}s`;
90
- const sessionId = ctx.var.sessionId;
91
- // Store input with metadata
92
- await thread.state.push(agentMessagesKey, {
93
- type: 'input',
94
- data: input,
95
- sessionId,
96
- timestamp: Date.now(),
97
- }, maxMessages);
98
- // Store output with metadata (tokens, duration)
99
- if (result !== undefined && result !== null) {
100
- await thread.state.push(agentMessagesKey, {
101
- type: 'output',
102
- data: result,
103
- sessionId,
104
- tokens,
105
- duration,
106
- timestamp: Date.now(),
107
- }, maxMessages);
108
- }
109
- // Save thread state
110
- try {
111
- const threadProvider = getThreadProvider();
112
- await threadProvider.save(thread);
113
- }
114
- catch {
115
- ctx.var.logger?.warn('Failed to save thread state');
116
- }
117
- };
118
- };
119
- export const createWorkbenchExecutionRoute = () => {
120
- return async (ctx) => {
121
- // Content-type validation
122
- const contentType = ctx.req.header('Content-Type');
123
- if (!contentType || !contentType.includes('application/json')) {
124
- return ctx.json({ error: 'Content-Type must be application/json' }, { status: 400 });
125
- }
126
- try {
127
- let agentId;
128
- let input;
129
- try {
130
- const requestData = await ctx.req.json();
131
- agentId = requestData.agentId;
132
- input = requestData.input;
133
- }
134
- catch (_error) {
135
- return ctx.json({ error: 'Invalid JSON in request body' }, { status: 400 });
136
- }
137
- // Read metadata to find agent name by agentId
138
- const agentMeta = getAgentMetadataByAgentId(agentId);
139
- if (!agentMeta) {
140
- if (!hasMetadata()) {
141
- return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
142
- }
143
- return ctx.text('Agent not found', { status: 404 });
144
- }
145
- // Get runtime agent by name
146
- const allAgents = getAgents();
147
- const agentName = agentMeta.name;
148
- const agentObj = allAgents.get(agentName);
149
- if (!agentObj || !agentName) {
150
- return ctx.text('Agent not found', { status: 404 });
151
- }
152
- // Track agent ID for telemetry (otelMiddleware sets up agentIds)
153
- const _ctx = privateContext(ctx);
154
- if (agentObj.metadata?.id) {
155
- _ctx.var.agentIds.add(agentObj.metadata.id);
156
- }
157
- if (agentObj.metadata?.agentId) {
158
- _ctx.var.agentIds.add(agentObj.metadata.agentId);
159
- }
160
- // Execute the agent handler directly
161
- // The agentMiddleware has already set up the AsyncLocalStorage context
162
- // so the handler can access it via getAgentContext()
163
- let result;
164
- if (agentObj.inputSchema) {
165
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
166
- result = await agentObj.handler(input);
167
- }
168
- else {
169
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
- result = await agentObj.handler();
171
- }
172
- // Store execution context for the metadata middleware to save with tokens/duration
173
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
- ctx.set('workbenchExecution', { agentId, input, result });
175
- return ctx.json({ success: true, data: result ?? null });
176
- }
177
- catch (error) {
178
- const err = error instanceof Error ? error : new Error(String(error));
179
- // Return 200 with wrapped error so UI can display it properly
180
- return ctx.json({
181
- success: false,
182
- error: {
183
- message: err.message,
184
- stack: err.stack,
185
- code: 'code' in err && typeof err.code === 'string' ? err.code : 'EXECUTION_ERROR',
186
- cause: err.cause,
187
- },
188
- });
189
- }
190
- };
191
- };
192
- export const createWorkbenchClearStateRoute = () => {
193
- return async (ctx) => {
194
- const agentId = ctx.req.query('agentId');
195
- if (!agentId) {
196
- return ctx.json({ error: 'agentId query parameter is required' }, { status: 400 });
197
- }
198
- if (!ctx.var.thread) {
199
- return ctx.json({ error: 'Thread not available' }, { status: 404 });
200
- }
201
- // Clear state associated with this specific agent:
202
- // 1. messages_${agentId} - workbench message history
203
- // 2. Any keys starting with ${agentId}_ - agent-specific state
204
- const allKeys = await ctx.var.thread.state.keys();
205
- const agentPrefix = `${agentId}_`;
206
- const messagesKey = `messages_${agentId}`;
207
- for (const key of allKeys) {
208
- if (key === messagesKey || key.startsWith(agentPrefix)) {
209
- await ctx.var.thread.state.delete(key);
210
- }
211
- }
212
- // Save the thread to persist the cleared state
213
- try {
214
- const threadProvider = getThreadProvider();
215
- await threadProvider.save(ctx.var.thread);
216
- }
217
- catch {
218
- return ctx.json({ error: 'Failed to save thread state' }, { status: 500 });
219
- }
220
- return ctx.json({ success: true, message: `State cleared for agent ${agentId}` });
221
- };
222
- };
223
- export const createWorkbenchStateRoute = () => {
224
- return async (ctx) => {
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
- const router = createRouter();
246
- // Apply CORS middleware first so that even error responses get CORS headers
247
- // In production, restrict origins to known Agentuity app domains + same-origin
248
- // In development, allow any origin for local testing flexibility
249
- router.use('/_agentuity/workbench/*', createCorsMiddleware({
250
- origin: (origin, c) => {
251
- // In dev mode, allow any origin for local testing flexibility
252
- if (!isProduction()) {
253
- return origin;
254
- }
255
- // In production, allow any *.agentuity.{com,dev,io} origin
256
- if (isTrustedWorkbenchOrigin(origin)) {
257
- return origin;
258
- }
259
- // Allow same-origin requests (agent calling its own workbench)
260
- try {
261
- const requestOrigin = new URL(c.req.url).origin;
262
- if (origin === requestOrigin) {
263
- return origin;
264
- }
265
- }
266
- catch {
267
- // Invalid URL, reject
268
- }
269
- // Reject unknown origins — no Access-Control-Allow-Origin header
270
- return undefined;
271
- },
272
- allowHeaders: [
273
- 'Content-Type',
274
- 'Authorization',
275
- 'Accept',
276
- 'Origin',
277
- 'X-Requested-With',
278
- 'X-Agentuity-Workbench-Signature',
279
- 'X-Agentuity-Workbench-Timestamp',
280
- 'x-thread-id',
281
- ],
282
- exposeHeaders: [
283
- 'x-thread-id',
284
- 'x-session-id',
285
- 'x-agentuity-tokens',
286
- 'x-agentuity-duration',
287
- ],
288
- }));
289
- // Apply auth middleware (signature verification in production)
290
- router.use('/_agentuity/workbench/*', createWorkbenchAuthMiddleware());
291
- // Apply agent middleware to ensure proper context is available
292
- router.use('/_agentuity/workbench/*', createAgentMiddleware(''));
293
- // Add workbench routes
294
- router.get('/_agentuity/workbench/ws', websocket(createWorkbenchWebsocketHandler()));
295
- router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
296
- router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
297
- router.get('/_agentuity/workbench/state', createWorkbenchStateRoute());
298
- router.delete('/_agentuity/workbench/state', createWorkbenchClearStateRoute());
299
- router.post('/_agentuity/workbench/execute', createWorkbenchExecutionMetadataMiddleware(), createWorkbenchExecutionRoute());
300
- return router;
301
- };
302
- export const createWorkbenchSampleRoute = () => {
303
- return async (ctx) => {
304
- try {
305
- const agentId = ctx.req.query('agentId');
306
- if (!agentId) {
307
- return ctx.json({ error: 'Missing agentId query parameter' }, { status: 400 });
308
- }
309
- // Read metadata to find agent name by agentId
310
- const agentMeta = getAgentMetadataByAgentId(agentId);
311
- if (!agentMeta) {
312
- if (!hasMetadata()) {
313
- return ctx.json({ error: 'Metadata file not found' }, { status: 500 });
314
- }
315
- return ctx.text('Agent not found', { status: 404 });
316
- }
317
- // Get runtime agent by name
318
- const allAgents = getAgents();
319
- const agentObj = allAgents.get(agentMeta.name);
320
- if (!agentObj) {
321
- return ctx.text('Agent not found', { status: 404 });
322
- }
323
- // Check if agent has input schema
324
- if (!agentObj.inputSchema) {
325
- return ctx.json({ error: 'Agent has no input schema' }, { status: 400 });
326
- }
327
- // Convert schema to JSON Schema
328
- const jsonSchema = toJSONSchema(agentObj.inputSchema);
329
- // Get Agentuity SDK key and gateway URL
330
- const sdkKey = process.env.AGENTUITY_SDK_KEY;
331
- const gatewayUrl = process.env.AGENTUITY_AIGATEWAY_URL ||
332
- process.env.AGENTUITY_TRANSPORT_URL ||
333
- (sdkKey ? 'https://catalyst.agentuity.cloud' : '');
334
- if (!sdkKey || !gatewayUrl) {
335
- return ctx.json({
336
- error: 'AGENTUITY_SDK_KEY and gateway URL must be configured',
337
- message: 'Set AGENTUITY_SDK_KEY and either AGENTUITY_AIGATEWAY_URL or AGENTUITY_TRANSPORT_URL',
338
- }, { status: 500 });
339
- }
340
- // Generate sample using Groq via Agentuity Gateway
341
- const prompt = `Generate a realistic sample data object that matches this JSON schema. Return only valid JSON, no markdown code blocks or explanations.
342
-
343
- JSON Schema:
344
- ${JSON.stringify(jsonSchema, null, 2)}
345
-
346
- Return a JSON object that matches this schema with realistic values.`;
347
- const gatewayEndpoint = `${gatewayUrl}/gateway/groq/openai/v1/chat/completions`;
348
- const groqResponse = await fetch(gatewayEndpoint, {
349
- method: 'POST',
350
- headers: {
351
- Authorization: `Bearer ${sdkKey}`,
352
- 'Content-Type': 'application/json',
353
- },
354
- body: JSON.stringify({
355
- model: 'llama-3.3-70b-versatile',
356
- messages: [
357
- {
358
- role: 'user',
359
- content: prompt,
360
- },
361
- ],
362
- }),
363
- });
364
- if (!groqResponse.ok) {
365
- const errorText = await groqResponse.text();
366
- return ctx.json({
367
- error: 'Groq API request failed',
368
- message: `Status ${groqResponse.status}: ${errorText}`,
369
- }, { status: 500 });
370
- }
371
- const groqData = (await groqResponse.json());
372
- const text = groqData.choices?.[0]?.message?.content;
373
- if (!text) {
374
- return ctx.json({ error: 'Invalid response from Groq API', response: groqData }, { status: 500 });
375
- }
376
- // Parse the JSON response
377
- let sample;
378
- try {
379
- // Remove markdown code blocks if present
380
- const cleanedText = text
381
- .trim()
382
- .replace(/^```json\s*|\s*```$/g, '')
383
- .replace(/^```\s*|\s*```$/g, '');
384
- sample = JSON.parse(cleanedText);
385
- }
386
- catch (parseError) {
387
- return ctx.json({
388
- error: 'Failed to parse generated JSON',
389
- message: parseError instanceof Error ? parseError.message : String(parseError),
390
- generatedText: text,
391
- }, { status: 500 });
392
- }
393
- return ctx.json(sample);
394
- }
395
- catch (error) {
396
- return ctx.json({
397
- error: 'Internal server error',
398
- message: error instanceof Error ? error.message : String(error),
399
- }, { status: 500 });
400
- }
401
- };
402
- };
403
- export const createWorkbenchMetadataRoute = () => {
404
- return async (ctx) => {
405
- // Read metadata from agentuity.metadata.json file
406
- const metadata = loadBuildMetadata();
407
- if (!metadata) {
408
- return ctx.json({ error: 'Metadata file not found. Run build to generate metadata.' }, { status: 500 });
409
- }
410
- try {
411
- // Ensure all agents are imported so their schemas are available
412
- await ensureAgentsImported();
413
- // Get runtime agents for JSON schema generation
414
- const agents = getAgents();
415
- const agentsByName = new Map();
416
- for (const [name, agent] of agents) {
417
- agentsByName.set(name, agent);
418
- }
419
- // Transform metadata structure to workbench format
420
- const schemas = { agents: {} };
421
- for (const agent of metadata.agents || []) {
422
- // Try to find runtime agent by name to get JSON schemas
423
- const runtimeAgent = agentsByName.get(agent.name);
424
- const inputJsonSchema = runtimeAgent?.inputSchema
425
- ? toJSONSchema(runtimeAgent.inputSchema)
426
- : undefined;
427
- const outputJsonSchema = runtimeAgent?.outputSchema
428
- ? toJSONSchema(runtimeAgent.outputSchema)
429
- : undefined;
430
- schemas.agents[agent.id] = {
431
- schema: {
432
- input: inputJsonSchema
433
- ? {
434
- code: jsonSchemaToTypeScript(inputJsonSchema),
435
- json: inputJsonSchema,
436
- }
437
- : agent.schema?.input
438
- ? { code: agent.schema.input, json: undefined }
439
- : undefined,
440
- output: outputJsonSchema
441
- ? {
442
- code: jsonSchemaToTypeScript(outputJsonSchema),
443
- json: outputJsonSchema,
444
- }
445
- : agent.schema?.output
446
- ? { code: agent.schema.output, json: undefined }
447
- : undefined,
448
- },
449
- metadata: {
450
- id: agent.id,
451
- agentId: agent.agentId,
452
- name: agent.name,
453
- description: agent.description,
454
- filename: agent.filename,
455
- version: agent.version,
456
- },
457
- };
458
- }
459
- return ctx.json(schemas);
460
- }
461
- catch (error) {
462
- return ctx.json({
463
- error: 'Failed to read metadata file',
464
- message: error instanceof Error ? error.message : String(error),
465
- }, { status: 500 });
466
- }
467
- };
468
- };
469
- // Store WebSocket connections to notify them on app restart
470
- const workbenchWebSockets = new Set();
471
- export const createWorkbenchWebsocketHandler = () => {
472
- return (_c, ws) => {
473
- ws.onOpen(() => {
474
- workbenchWebSockets.add(ws);
475
- ws.send('alive');
476
- });
477
- ws.onMessage((event) => {
478
- const message = event.data;
479
- // If a client sends a message (CLI), broadcast to all other clients
480
- if (message === 'restarting' || message === 'alive') {
481
- // Broadcast the message to all other clients (excluding this CLI connection)
482
- for (const clientWs of workbenchWebSockets) {
483
- if (clientWs !== ws) {
484
- try {
485
- clientWs.send(message);
486
- }
487
- catch (_error) {
488
- workbenchWebSockets.delete(clientWs);
489
- }
490
- }
491
- }
492
- }
493
- });
494
- ws.onClose(() => {
495
- workbenchWebSockets.delete(ws);
496
- });
497
- };
498
- };
499
- /**
500
- * @deprecated Use createWorkbenchWebsocketHandler instead
501
- */
502
- export const createWorkbenchWebsocketRoute = createWorkbenchWebsocketHandler;
503
- /**
504
- * Convert a JSON Schema object to a TypeScript type string for display.
505
- * Produces clean, readable type notation for the workbench schema panel.
506
- *
507
- * @example
508
- * ```typescript
509
- * jsonSchemaToTypeScript({
510
- * type: 'object',
511
- * properties: { name: { type: 'string' }, age: { type: 'number' } },
512
- * required: ['name', 'age'],
513
- * });
514
- * // "{\n name: string;\n age: number;\n}"
515
- * ```
516
- */
517
- /** Escape a string for use inside a double-quoted TypeScript string literal. */
518
- function escapeString(s) {
519
- return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
520
- }
521
- /** Check if a property key is a valid unquoted TypeScript identifier. */
522
- function isValidIdentifier(key) {
523
- return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key);
524
- }
525
- function jsonSchemaToTypeScript(schema, indent = 0) {
526
- const pad = ' '.repeat(indent);
527
- const inner = ' '.repeat(indent + 1);
528
- // Handle const (literal type)
529
- if (schema.const !== undefined) {
530
- return typeof schema.const === 'string'
531
- ? `"${escapeString(schema.const)}"`
532
- : String(schema.const);
533
- }
534
- // Handle enum (union of literals)
535
- if (schema.enum) {
536
- return schema.enum
537
- .map((v) => (typeof v === 'string' ? `"${escapeString(String(v))}"` : String(v)))
538
- .join(' | ');
539
- }
540
- // Handle anyOf / oneOf (union types)
541
- const unionSchemas = schema.anyOf ?? schema.oneOf;
542
- if (unionSchemas) {
543
- // Nullable pattern: anyOf with one type and one null
544
- if (unionSchemas.length === 2) {
545
- const nullIdx = unionSchemas.findIndex((s) => s.type === 'null');
546
- if (nullIdx !== -1) {
547
- const other = unionSchemas[nullIdx === 0 ? 1 : 0];
548
- if (other) {
549
- return `${jsonSchemaToTypeScript(other, indent)} | null`;
550
- }
551
- }
552
- }
553
- return unionSchemas.map((s) => jsonSchemaToTypeScript(s, indent)).join(' | ');
554
- }
555
- // Handle allOf (intersection types)
556
- if (schema.allOf) {
557
- return schema.allOf.map((s) => jsonSchemaToTypeScript(s, indent)).join(' & ');
558
- }
559
- switch (schema.type) {
560
- case 'string':
561
- return 'string';
562
- case 'number':
563
- case 'integer':
564
- return 'number';
565
- case 'boolean':
566
- return 'boolean';
567
- case 'null':
568
- return 'null';
569
- case 'array': {
570
- if (!schema.items)
571
- return 'unknown[]';
572
- const itemType = jsonSchemaToTypeScript(schema.items, indent);
573
- // Wrap union types in parens: (A | B)[]
574
- return itemType.includes(' | ') ? `(${itemType})[]` : `${itemType}[]`;
575
- }
576
- case 'object': {
577
- if (!schema.properties || Object.keys(schema.properties).length === 0) {
578
- if (schema.additionalProperties && typeof schema.additionalProperties === 'object') {
579
- return `Record<string, ${jsonSchemaToTypeScript(schema.additionalProperties, indent)}>`;
580
- }
581
- return 'Record<string, unknown>';
582
- }
583
- const required = new Set(schema.required ?? []);
584
- const lines = ['{'];
585
- for (const [key, propSchema] of Object.entries(schema.properties)) {
586
- const optional = !required.has(key);
587
- const propType = jsonSchemaToTypeScript(propSchema, indent + 1);
588
- const desc = propSchema.description ? ` // ${propSchema.description}` : '';
589
- const quotedKey = isValidIdentifier(key) ? key : `"${escapeString(key)}"`;
590
- lines.push(`${inner}${quotedKey}${optional ? '?' : ''}: ${propType};${desc}`);
591
- }
592
- lines.push(`${pad}}`);
593
- return lines.join('\n');
594
- }
595
- default:
596
- if (schema.properties) {
597
- return jsonSchemaToTypeScript({ ...schema, type: 'object' }, indent);
598
- }
599
- if (schema.items) {
600
- return jsonSchemaToTypeScript({ ...schema, type: 'array' }, indent);
601
- }
602
- return 'unknown';
603
- }
604
- }
605
- //# sourceMappingURL=workbench.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"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"}