@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/src/app.ts DELETED
@@ -1,769 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { type Env as HonoEnv } from 'hono';
3
- import type { cors } from 'hono/cors';
4
- import type { compress } from 'hono/compress';
5
- import type { Logger } from './logger';
6
- import type { Meter, Tracer } from '@opentelemetry/api';
7
- import type {
8
- KeyValueStorage,
9
- SessionEventProvider,
10
- EvalRunEventProvider,
11
- StreamStorage,
12
- VectorStorage,
13
- SandboxService,
14
- QueueService,
15
- EmailService,
16
- ScheduleService,
17
- TaskStorage,
18
- SessionStartEvent,
19
- } from '@agentuity/core';
20
-
21
- import type { ThreadProvider, SessionProvider, Session, Thread } from './session';
22
- import type WaitUntilHandler from './_waituntil';
23
- import type { Context } from 'hono';
24
-
25
- type HonoCorsOptions = NonNullable<Parameters<typeof cors>[0]>;
26
- type HonoCompressOptions = Parameters<typeof compress>[0];
27
-
28
- /**
29
- * Agentuity-specific CORS options for same-origin restriction.
30
- */
31
- export interface AgentuityCorsSameOriginOptions {
32
- /**
33
- * Enable same-origin restriction for CORS.
34
- *
35
- * When true, only allows origins from:
36
- * - AGENTUITY_BASE_URL environment variable
37
- * - AGENTUITY_CLOUD_DOMAINS environment variable (comma-separated)
38
- * - AUTH_TRUSTED_DOMAINS environment variable (comma-separated)
39
- * - The same-origin of the incoming request URL
40
- * - Any additional origins specified in `allowedOrigins`
41
- *
42
- * When false or omitted, the default behavior is to reflect any origin
43
- * (backwards compatible).
44
- *
45
- * @default false
46
- */
47
- sameOrigin?: boolean;
48
-
49
- /**
50
- * Additional origins to allow when `sameOrigin` is true.
51
- * Can be full URLs (https://example.com) or bare domains (example.com).
52
- *
53
- * These are merged with the origins derived from environment variables.
54
- */
55
- allowedOrigins?: string[];
56
- }
57
-
58
- /**
59
- * Extended CORS configuration options.
60
- *
61
- * Combines Hono's CORS options with Agentuity-specific settings for
62
- * easy same-origin restriction.
63
- *
64
- * @example
65
- * ```typescript
66
- * // Simple opt-in to trusted origins only
67
- * const app = await createApp({
68
- * cors: { sameOrigin: true }
69
- * });
70
- *
71
- * // With additional allowed origins
72
- * const app = await createApp({
73
- * cors: {
74
- * sameOrigin: true,
75
- * allowedOrigins: ['https://admin.myapp.com'],
76
- * }
77
- * });
78
- * ```
79
- */
80
- export type CorsConfig = HonoCorsOptions & AgentuityCorsSameOriginOptions;
81
-
82
- /**
83
- * Configuration options for response compression middleware.
84
- *
85
- * @example
86
- * ```typescript
87
- * const app = await createApp({
88
- * compression: {
89
- * enabled: true,
90
- * threshold: 1024,
91
- * }
92
- * });
93
- * ```
94
- */
95
- export interface CompressionConfig {
96
- /**
97
- * Enable or disable compression globally.
98
- * @default true
99
- */
100
- enabled?: boolean;
101
-
102
- /**
103
- * Minimum response body size in bytes before compression is attempted.
104
- * Responses smaller than this threshold will not be compressed.
105
- * @default 1024
106
- */
107
- threshold?: number;
108
-
109
- /**
110
- * Optional filter function to skip compression for specific requests.
111
- * Return false to skip compression for the request.
112
- *
113
- * @example
114
- * ```typescript
115
- * filter: (c) => !c.req.path.startsWith('/internal')
116
- * ```
117
- */
118
- filter?: (c: Context) => boolean;
119
-
120
- /**
121
- * Raw options passed through to Hono's compress middleware.
122
- * These are merged with Agentuity's defaults.
123
- */
124
- honoOptions?: HonoCompressOptions;
125
- }
126
-
127
- /**
128
- * Web analytics configuration options.
129
- */
130
- export interface AnalyticsOptions {
131
- /** Enable/disable analytics @default true */
132
- enabled?: boolean;
133
- /** Require explicit user consent before tracking @default false */
134
- requireConsent?: boolean;
135
- /** Track click events on elements with data-analytics attribute @default true */
136
- trackClicks?: boolean;
137
- /** Track scroll depth @default true */
138
- trackScroll?: boolean;
139
- /** Track outbound link clicks @default true */
140
- trackOutboundLinks?: boolean;
141
- /** Track form submissions @default false */
142
- trackForms?: boolean;
143
- /** Track Core Web Vitals (LCP, FID, CLS) @default true */
144
- trackWebVitals?: boolean;
145
- /** Track JavaScript errors @default true */
146
- trackErrors?: boolean;
147
- /** Track SPA navigation changes @default true */
148
- trackSPANavigation?: boolean;
149
- /** Sampling rate (0-1) @default 1 */
150
- sampleRate?: number;
151
- /** URL patterns to exclude from tracking */
152
- excludePatterns?: string[];
153
- /** Global properties attached to every event */
154
- globalProperties?: Record<string, unknown>;
155
- }
156
-
157
- /**
158
- * Workbench UI configuration options.
159
- */
160
- export interface WorkbenchOptions {
161
- /** Route path for the workbench UI @default '/workbench' */
162
- route?: string;
163
- /** Custom headers to include in workbench responses */
164
- headers?: Record<string, string>;
165
- }
166
-
167
- export interface AppConfig {
168
- /**
169
- * Configure CORS (Cross-Origin Resource Sharing) settings.
170
- *
171
- * By default, CORS reflects any origin (backwards compatible).
172
- * Use `sameOrigin: true` to restrict to trusted origins only.
173
- *
174
- * @example
175
- * ```typescript
176
- * // Restrict to trusted origins (recommended for production)
177
- * const app = await createApp({
178
- * cors: { sameOrigin: true }
179
- * });
180
- *
181
- * // Add additional allowed origins
182
- * const app = await createApp({
183
- * cors: {
184
- * sameOrigin: true,
185
- * allowedOrigins: ['https://admin.myapp.com'],
186
- * }
187
- * });
188
- * ```
189
- */
190
- cors?: CorsConfig;
191
- /**
192
- * Configure response compression.
193
- * Set to `false` to disable compression entirely.
194
- *
195
- * @example
196
- * ```typescript
197
- * const app = await createApp({
198
- * compression: {
199
- * threshold: 2048,
200
- * }
201
- * });
202
- *
203
- * // Or disable compression:
204
- * const app = await createApp({ compression: false });
205
- * ```
206
- */
207
- compression?: CompressionConfig | false;
208
- /**
209
- * Override the default services
210
- */
211
- services?: {
212
- /**
213
- * if true (default false), will use local services and override any others
214
- */
215
- useLocal?: boolean;
216
- /**
217
- * the KeyValueStorage to override instead of the default
218
- */
219
- keyvalue?: KeyValueStorage;
220
- /**
221
- * the StreamStorage to override instead of the default
222
- */
223
- stream?: StreamStorage;
224
- /**
225
- * the VectorStorage to override instead of the default
226
- */
227
- vector?: VectorStorage;
228
- /**
229
- * the TaskStorage to override instead of the default
230
- */
231
- task?: TaskStorage;
232
- /**
233
- * the ThreadProvider to override instead of the default
234
- */
235
- thread?: ThreadProvider;
236
- /**
237
- * the SessionProvider to override instead of the default
238
- */
239
- session?: SessionProvider;
240
- /**
241
- * the SessionEventProvider to override instead of the default
242
- */
243
- sessionEvent?: SessionEventProvider;
244
- /**
245
- * the EvalRunEventProvider to override instead of the default
246
- */
247
- evalRunEvent?: EvalRunEventProvider;
248
- /**
249
- * the EmailService to override instead of the default
250
- */
251
- email?: EmailService;
252
- };
253
- /**
254
- * Optional request timeout in seconds. If not provided, will default
255
- * to zero which will cause the request to wait indefinitely.
256
- */
257
- requestTimeout?: number;
258
-
259
- /**
260
- * Configure web analytics for frontend tracking.
261
- *
262
- * Set to `true` to enable with defaults, `false` to disable, or provide
263
- * a configuration object to customize tracking behavior.
264
- *
265
- * @default true
266
- *
267
- * @example
268
- * ```typescript
269
- * // Enable with defaults
270
- * const app = await createApp({ analytics: true });
271
- *
272
- * // Disable analytics
273
- * const app = await createApp({ analytics: false });
274
- *
275
- * // Custom configuration
276
- * const app = await createApp({
277
- * analytics: {
278
- * trackClicks: false,
279
- * sampleRate: 0.5,
280
- * }
281
- * });
282
- * ```
283
- */
284
- analytics?: boolean | AnalyticsOptions;
285
-
286
- /**
287
- * Configure the workbench UI for agent testing.
288
- *
289
- * Set to `true` to enable at `/workbench`, a string to set a custom route,
290
- * or an object for full configuration. Only active in development mode.
291
- *
292
- * @example
293
- * ```typescript
294
- * // Enable at default route (/workbench)
295
- * const app = await createApp({ workbench: true });
296
- *
297
- * // Custom route
298
- * const app = await createApp({ workbench: '/debug' });
299
- *
300
- * // Full configuration
301
- * const app = await createApp({
302
- * workbench: {
303
- * route: '/debug',
304
- * headers: { 'X-Custom': 'value' },
305
- * }
306
- * });
307
- * ```
308
- */
309
- workbench?: boolean | string | WorkbenchOptions;
310
-
311
- /**
312
- * **Experimental** — Optional user-provided router(s) to use instead of file-based routing.
313
- *
314
- * When provided, the CLI's generated entry file mounts these routers instead
315
- * of auto-discovering individual route files from `src/api/`. All Agentuity
316
- * middleware (CORS, OTel, agent context) is applied to each mount path.
317
- *
318
- * Accepts three forms:
319
- * - A plain `Hono` instance → mounted at `/api` (default)
320
- * - A `{ path, router }` object → mounted at the specified path
321
- * - An array of `{ path, router }` objects → each mounted at its path
322
- *
323
- * Use `createRouter()` to get typed access to Agentuity context variables
324
- * (`c.var.logger`, `c.var.thread`, `c.var.session`, etc.), or use
325
- * `new Hono<Env>()` for the same types with a plain Hono instance.
326
- *
327
- * @experimental This API may change in future releases.
328
- *
329
- * @example Single router (mounted at /api)
330
- * ```typescript
331
- * const router = createRouter();
332
- * router.route('/users', usersRouter);
333
- * export const app = await createApp({ router });
334
- * ```
335
- *
336
- * @example Single router at custom path
337
- * ```typescript
338
- * const router = createRouter();
339
- * router.route('/users', usersRouter);
340
- * export const app = await createApp({
341
- * router: { path: '/v1', router },
342
- * });
343
- * ```
344
- *
345
- * @example Multiple routers at different paths
346
- * ```typescript
347
- * export const app = await createApp({
348
- * router: [
349
- * { path: '/api/v1', router: v1Router },
350
- * { path: '/api/v2', router: v2Router },
351
- * ],
352
- * });
353
- * ```
354
- */
355
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
356
- router?: import('hono').Hono<any, any, any> | RouteMount | RouteMount[];
357
-
358
- /**
359
- * Agents to register with this application.
360
- *
361
- * Each agent is a value returned by `createAgent()`. Importing the agent
362
- * module triggers self-registration; listing them here ensures they are
363
- * included in the build and available for workbench metadata, setup/shutdown
364
- * lifecycle, and agent-to-agent calls via `ctx.invoke()`.
365
- *
366
- * Type safety for agent calls comes from direct imports — use
367
- * `ctx.invoke(() => myAgent.run(input))` for fully typed invocations.
368
- *
369
- * @example
370
- * ```typescript
371
- * import greeting from './agent/greeting/agent';
372
- * import session from './agent/session/agent';
373
- *
374
- * export default await createApp({
375
- * agents: [greeting, session],
376
- * router,
377
- * });
378
- * ```
379
- */
380
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
381
- agents?: import('./agent').AgentRunner<any, any, any>[];
382
- }
383
-
384
- /**
385
- * A user-provided router with its mount path.
386
- *
387
- * @experimental This API may change in future releases.
388
- */
389
- export interface RouteMount {
390
- /**
391
- * The base path to mount the router at (e.g. `/api`, `/api/v1`).
392
- * Agentuity middleware (CORS, OTel, agent context) is applied to `{path}/*`.
393
- */
394
- path: string;
395
- /**
396
- * The Hono router to mount.
397
- */
398
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
399
- router: import('hono').Hono<any, any, any>;
400
- }
401
-
402
- export interface Variables<TAppState = Record<string, never>> {
403
- logger: Logger;
404
- meter: Meter;
405
- tracer: Tracer;
406
- sessionId: string;
407
- thread: Thread;
408
- session: Session;
409
- kv: KeyValueStorage;
410
- stream: StreamStorage;
411
- vector: VectorStorage;
412
- sandbox: SandboxService;
413
- queue: QueueService;
414
- email: EmailService;
415
- schedule: ScheduleService;
416
- task: TaskStorage;
417
- app: TAppState;
418
- // Web analytics context (set by createWebSessionMiddleware, thread-only tracking)
419
- _webThreadId?: string;
420
- }
421
-
422
- export type TriggerType = SessionStartEvent['trigger'];
423
-
424
- export interface PrivateVariables {
425
- waitUntilHandler: WaitUntilHandler;
426
- routeId?: string;
427
- agentIds: Set<string>;
428
- trigger: TriggerType;
429
- agentRunSpanId?: string;
430
- }
431
-
432
- export interface Env<TAppState = Record<string, never>> extends HonoEnv {
433
- Variables: Variables<TAppState>;
434
- }
435
-
436
- /**
437
- * Get the global app instance (stub for backwards compatibility)
438
- * Returns null in Vite-native architecture
439
- */
440
- export function getApp(): null {
441
- return null;
442
- }
443
-
444
- // Re-export event functions from _events
445
- export { fireEvent } from './_events';
446
-
447
- import type { Hono } from 'hono';
448
-
449
- // ============================================================================
450
- // Vite-native createApp implementation
451
- // ============================================================================
452
-
453
- /**
454
- * Simple server interface for backwards compatibility
455
- */
456
- export interface Server {
457
- /**
458
- * The server URL (e.g., "http://localhost:3500")
459
- */
460
- url: string;
461
- }
462
-
463
- export interface AppResult {
464
- /**
465
- * App configuration
466
- */
467
- config?: AppConfig;
468
- /**
469
- * The Hono router instance
470
- */
471
- router: import('hono').Hono<Env>;
472
- /**
473
- * Server information
474
- */
475
- server: Server;
476
- /**
477
- * Logger instance
478
- */
479
- logger: Logger;
480
- /**
481
- * Fetch handler for the application.
482
- * Bun --hot uses this on the default export to hot-swap the running server's
483
- * request handler without restarting the process.
484
- */
485
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
486
- fetch: (req: Request, ...args: any[]) => Response | Promise<Response>;
487
- /**
488
- * Port the server listens on.
489
- * Used by Bun --hot alongside `fetch` to configure the server.
490
- */
491
- port: number;
492
- /**
493
- * Hostname the server binds to.
494
- */
495
- hostname: string;
496
- /**
497
- * WebSocket handler for Bun.serve().
498
- * Required by Bun --hot to enable WebSocket upgrade support.
499
- */
500
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
501
- websocket?: any;
502
- }
503
-
504
- /**
505
- * Create and start an Agentuity application.
506
- *
507
- * This is the single entry point for the entire server lifecycle:
508
- * OTel, middleware, route mounting, services, and Bun.serve().
509
- *
510
- * @example
511
- * ```typescript
512
- * import { createApp } from '@agentuity/runtime';
513
- * import router from './src/api/router';
514
- * import agents from './src/agent';
515
- *
516
- * export default await createApp({
517
- * router: { path: '/api', router },
518
- * agents,
519
- * });
520
- * ```
521
- */
522
- export async function createApp(config?: AppConfig): Promise<AppResult> {
523
- // --- Imports (lazy to avoid circular deps) ---
524
- const { bootstrapRuntimeEnv } = await import('@agentuity/server');
525
- const { register } = await import('./otel/config');
526
- const { setGlobalLogger, setGlobalTracer, setGlobalRouter, getSpanProcessors } = await import(
527
- './_server'
528
- );
529
- const { createServices, getThreadProvider, getSessionProvider } = await import('./_services');
530
- const {
531
- createBaseMiddleware,
532
- createCorsMiddleware,
533
- createOtelMiddleware,
534
- createCompressionMiddleware,
535
- } = await import('./middleware');
536
- const { runAgentSetups, createAgentMiddleware } = await import('./agent');
537
- const { loadBuildMetadata } = await import('./_metadata');
538
- const { patchBunS3ForStorageDev } = await import('./bun-s3-patch');
539
- const { createWorkbenchRouter } = await import('./workbench');
540
- const {
541
- isDevelopment,
542
- resolveAnalyticsConfig,
543
- resolveWorkbenchConfig,
544
- registerHealthRoutes,
545
- registerAnalyticsRoutes,
546
- registerWebRoutes,
547
- registerWorkbenchUI,
548
- startServer,
549
- } = await import('./bootstrap');
550
- const { websocket } = await import('hono/bun');
551
-
552
- // --- Step 0: Environment ---
553
- if (isDevelopment()) {
554
- bootstrapRuntimeEnv();
555
- }
556
- if (isDevelopment() && process.env.AGENTUITY_NO_BUNDLE === 'true') {
557
- const { applyDevPatches } = await import('./dev-patches');
558
- await applyDevPatches();
559
- }
560
- loadBuildMetadata();
561
- patchBunS3ForStorageDev();
562
-
563
- // --- Step 1: Telemetry ---
564
- const otel = register({
565
- processors: getSpanProcessors(),
566
- logLevel: (process.env.AGENTUITY_LOG_LEVEL || 'info') as import('@agentuity/core').LogLevel,
567
- });
568
- setGlobalLogger(otel.logger);
569
- setGlobalTracer(otel.tracer);
570
-
571
- // --- Step 1b: Version consistency check ---
572
- const { checkVersionConsistency } = await import('./version-check');
573
- checkVersionConsistency(otel.logger);
574
-
575
- // --- Step 2: Router + middleware ---
576
- const { createRouter } = await import('./router');
577
- const app = createRouter();
578
- setGlobalRouter(app);
579
-
580
- app.use('*', createCompressionMiddleware(config?.compression));
581
- app.use(
582
- '*',
583
- createBaseMiddleware({
584
- logger: otel.logger,
585
- tracer: otel.tracer,
586
- meter: otel.meter,
587
- })
588
- );
589
- app.use('/_agentuity/workbench/*', createOtelMiddleware());
590
-
591
- // --- Step 3: Services ---
592
- const port = process.env.PORT || '3500';
593
- const serverUrl = `http://127.0.0.1:${port}`;
594
- createServices(otel.logger, config, serverUrl);
595
-
596
- const threadProvider = getThreadProvider();
597
- const sessionProvider = getSessionProvider();
598
- await threadProvider.initialize({});
599
- await sessionProvider.initialize({});
600
-
601
- // --- Step 4: Routes ---
602
- const analyticsConfig = resolveAnalyticsConfig(config?.analytics);
603
- const workbenchConfig = resolveWorkbenchConfig(config?.workbench);
604
-
605
- registerHealthRoutes(app);
606
-
607
- if (analyticsConfig.enabled) {
608
- registerAnalyticsRoutes(app, analyticsConfig);
609
- }
610
-
611
- // Mount user routers
612
- if (config?.router) {
613
- const mounts = normalizeRouterConfig(config.router);
614
- for (const mount of mounts) {
615
- const prefix = mount.path.endsWith('/') ? mount.path + '*' : mount.path + '/*';
616
- app.use(prefix, createCorsMiddleware(config?.cors));
617
- app.use(prefix, createOtelMiddleware());
618
- app.use(prefix, createAgentMiddleware(''));
619
- app.route(mount.path, mount.router);
620
- }
621
- }
622
-
623
- // Workbench
624
- const workbenchRouter = createWorkbenchRouter();
625
- app.route('/', workbenchRouter);
626
- registerWorkbenchUI(app, workbenchConfig);
627
-
628
- // Web (production static serving)
629
- registerWebRoutes(app, analyticsConfig);
630
-
631
- // --- Step 5: Agent lifecycle + server ---
632
- await runAgentSetups({});
633
-
634
- // In dev mode with --hot, Bun manages the server via the default export's
635
- // `fetch` property. In production, we start Bun.serve() explicitly.
636
- if (!isDevelopment()) {
637
- startServer(app, { requestTimeout: config?.requestTimeout });
638
- }
639
-
640
- // Only log on first startup, not on --hot reloads
641
- const { serverStarted } = await import('./_globals');
642
- if (!serverStarted.get()) {
643
- serverStarted.set(true);
644
- otel.logger.debug('Server listening on %s', serverUrl);
645
- }
646
-
647
- const portNumber = parseInt(port, 10);
648
-
649
- const result: AppResult = {
650
- config,
651
- router: app as Hono<Env>,
652
- server: { url: serverUrl },
653
- logger: otel.logger,
654
- // Bun --hot picks up `fetch` and `port` on the default export to
655
- // hot-swap the running server's request handler without restarting.
656
- fetch: app.fetch,
657
- port: portNumber,
658
- hostname: '127.0.0.1',
659
- websocket,
660
- };
661
-
662
- // In production, startServer() already called Bun.serve(). If we leave
663
- // `fetch` + `port` on the default export, Bun v1.2+ auto-serves from it
664
- // too — causing EADDRINUSE. Strip those properties so only the explicit
665
- // Bun.serve() is active.
666
- if (!isDevelopment()) {
667
- delete (result as unknown as Record<string, unknown>).fetch;
668
- delete (result as unknown as Record<string, unknown>).port;
669
- delete (result as unknown as Record<string, unknown>).hostname;
670
- delete (result as unknown as Record<string, unknown>).websocket;
671
- }
672
-
673
- return result;
674
- }
675
-
676
- /**
677
- * Normalize the router config into a consistent RouteMount[] form.
678
- * - Plain Hono → [{ path: '/api', router }]
679
- * - { path, router } → [{ path, router }]
680
- * - [{ path, router }, ...] → as-is
681
- * @internal
682
- */
683
- export function normalizeRouterConfig(
684
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
685
- router: import('hono').Hono<any, any, any> | RouteMount | RouteMount[]
686
- ): RouteMount[] {
687
- if (Array.isArray(router)) {
688
- return router;
689
- }
690
- if ('router' in router && 'path' in router) {
691
- return [router as RouteMount];
692
- }
693
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
694
- return [{ path: '/api', router: router as import('hono').Hono<any, any, any> }];
695
- }
696
-
697
- /**
698
- * A shutdown hook function.
699
- */
700
- export type ShutdownHook = () => Promise<void> | void;
701
-
702
- /**
703
- * Gets the global shutdown hooks registry.
704
- */
705
- function getShutdownHooks(): ShutdownHook[] {
706
- const key = Symbol.for('@agentuity/runtime:shutdown-hooks');
707
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
708
- const g = globalThis as any;
709
- if (!g[key]) {
710
- g[key] = [];
711
- }
712
- return g[key];
713
- }
714
-
715
- /**
716
- * Registers a shutdown hook to be called during graceful shutdown.
717
- *
718
- * Hooks are called in reverse order of registration (LIFO) after the
719
- * app's shutdown callback and agent shutdowns have completed.
720
- *
721
- * This is useful for packages like @agentuity/postgres to register
722
- * their own cleanup logic without requiring explicit wiring in each app.
723
- *
724
- * @param hook - The function to call during shutdown
725
- * @returns A function to unregister the hook
726
- *
727
- * @example
728
- * ```typescript
729
- * import { registerShutdownHook } from '@agentuity/runtime';
730
- *
731
- * // Register a cleanup function
732
- * const unregister = registerShutdownHook(async () => {
733
- * await myResource.close();
734
- * });
735
- *
736
- * // Later, if needed, unregister it
737
- * unregister();
738
- * ```
739
- */
740
- export function registerShutdownHook(hook: ShutdownHook): () => void {
741
- const hooks = getShutdownHooks();
742
- hooks.push(hook);
743
-
744
- return () => {
745
- const index = hooks.indexOf(hook);
746
- if (index !== -1) {
747
- hooks.splice(index, 1);
748
- }
749
- };
750
- }
751
-
752
- /**
753
- * Run all registered shutdown hooks.
754
- * Called during graceful shutdown (SIGTERM/SIGINT).
755
- *
756
- * Hooks are called in reverse order of registration (LIFO).
757
- */
758
- export async function runShutdown(): Promise<void> {
759
- const hooks = getShutdownHooks();
760
- for (let i = hooks.length - 1; i >= 0; i--) {
761
- const hook = hooks[i];
762
- if (!hook) continue;
763
- try {
764
- await hook();
765
- } catch {
766
- // Ignore errors during shutdown hooks
767
- }
768
- }
769
- }