@elizaos/agent 0.25.8 → 2.0.0-alpha.83

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 (607) hide show
  1. package/LICENSE +1 -1
  2. package/package.json +994 -34
  3. package/packages/agent/src/actions/emote.d.ts +14 -0
  4. package/packages/agent/src/actions/emote.d.ts.map +1 -0
  5. package/packages/agent/src/actions/emote.js +91 -0
  6. package/packages/agent/src/actions/restart.d.ts +19 -0
  7. package/packages/agent/src/actions/restart.d.ts.map +1 -0
  8. package/packages/agent/src/actions/restart.js +86 -0
  9. package/packages/agent/src/actions/send-message.d.ts +3 -0
  10. package/packages/agent/src/actions/send-message.d.ts.map +1 -0
  11. package/packages/agent/src/actions/send-message.js +144 -0
  12. package/packages/agent/src/actions/stream-control.d.ts +15 -0
  13. package/packages/agent/src/actions/stream-control.d.ts.map +1 -0
  14. package/packages/agent/src/actions/stream-control.js +357 -0
  15. package/packages/agent/src/actions/switch-stream-source.d.ts +16 -0
  16. package/packages/agent/src/actions/switch-stream-source.d.ts.map +1 -0
  17. package/packages/agent/src/actions/switch-stream-source.js +94 -0
  18. package/packages/agent/src/actions/terminal.d.ts +14 -0
  19. package/packages/agent/src/actions/terminal.d.ts.map +1 -0
  20. package/packages/agent/src/actions/terminal.js +154 -0
  21. package/packages/agent/src/api/agent-admin-routes.d.ts +38 -0
  22. package/packages/agent/src/api/agent-admin-routes.d.ts.map +1 -0
  23. package/packages/agent/src/api/agent-admin-routes.js +93 -0
  24. package/packages/agent/src/api/agent-lifecycle-routes.d.ts +16 -0
  25. package/packages/agent/src/api/agent-lifecycle-routes.d.ts.map +1 -0
  26. package/packages/agent/src/api/agent-lifecycle-routes.js +80 -0
  27. package/packages/agent/src/api/agent-model.d.ts +12 -0
  28. package/packages/agent/src/api/agent-model.d.ts.map +1 -0
  29. package/packages/agent/src/api/agent-model.js +123 -0
  30. package/packages/agent/src/api/agent-transfer-routes.d.ts +16 -0
  31. package/packages/agent/src/api/agent-transfer-routes.d.ts.map +1 -0
  32. package/packages/agent/src/api/agent-transfer-routes.js +124 -0
  33. package/packages/agent/src/api/apps-routes.d.ts +19 -0
  34. package/packages/agent/src/api/apps-routes.d.ts.map +1 -0
  35. package/packages/agent/src/api/apps-routes.js +128 -0
  36. package/packages/agent/src/api/auth-routes.d.ts +11 -0
  37. package/packages/agent/src/api/auth-routes.d.ts.map +1 -0
  38. package/packages/agent/src/api/auth-routes.js +54 -0
  39. package/packages/agent/src/api/bsc-trade.d.ts +34 -0
  40. package/packages/agent/src/api/bsc-trade.d.ts.map +1 -0
  41. package/packages/agent/src/api/bsc-trade.js +567 -0
  42. package/packages/agent/src/api/bug-report-routes.d.ts +7 -0
  43. package/packages/agent/src/api/bug-report-routes.d.ts.map +1 -0
  44. package/packages/agent/src/api/bug-report-routes.js +124 -0
  45. package/packages/agent/src/api/character-routes.d.ts +50 -0
  46. package/packages/agent/src/api/character-routes.d.ts.map +1 -0
  47. package/packages/agent/src/api/character-routes.js +302 -0
  48. package/packages/agent/src/api/cloud-billing-routes.d.ts +14 -0
  49. package/packages/agent/src/api/cloud-billing-routes.d.ts.map +1 -0
  50. package/packages/agent/src/api/cloud-billing-routes.js +400 -0
  51. package/packages/agent/src/api/cloud-compat-routes.d.ts +15 -0
  52. package/packages/agent/src/api/cloud-compat-routes.d.ts.map +1 -0
  53. package/packages/agent/src/api/cloud-compat-routes.js +131 -0
  54. package/packages/agent/src/api/cloud-routes.d.ts +62 -0
  55. package/packages/agent/src/api/cloud-routes.d.ts.map +1 -0
  56. package/packages/agent/src/api/cloud-routes.js +339 -0
  57. package/packages/agent/src/api/cloud-status-routes.d.ts +15 -0
  58. package/packages/agent/src/api/cloud-status-routes.d.ts.map +1 -0
  59. package/packages/agent/src/api/cloud-status-routes.js +165 -0
  60. package/packages/agent/src/api/compat-utils.d.ts +49 -0
  61. package/packages/agent/src/api/compat-utils.d.ts.map +1 -0
  62. package/packages/agent/src/api/compat-utils.js +126 -0
  63. package/packages/agent/src/api/connector-health.d.ts +34 -0
  64. package/packages/agent/src/api/connector-health.d.ts.map +1 -0
  65. package/packages/agent/src/api/connector-health.js +109 -0
  66. package/packages/agent/src/api/coordinator-wiring.d.ts +46 -0
  67. package/packages/agent/src/api/coordinator-wiring.d.ts.map +1 -0
  68. package/packages/agent/src/api/coordinator-wiring.js +101 -0
  69. package/packages/agent/src/api/credit-detection.d.ts +9 -0
  70. package/packages/agent/src/api/credit-detection.d.ts.map +1 -0
  71. package/packages/agent/src/api/credit-detection.js +41 -0
  72. package/packages/agent/src/api/database.d.ts +33 -0
  73. package/packages/agent/src/api/database.d.ts.map +1 -0
  74. package/packages/agent/src/api/database.js +1019 -0
  75. package/packages/agent/src/api/diagnostics-routes.d.ts +46 -0
  76. package/packages/agent/src/api/diagnostics-routes.d.ts.map +1 -0
  77. package/packages/agent/src/api/diagnostics-routes.js +241 -0
  78. package/packages/agent/src/api/drop-service.d.ts +26 -0
  79. package/packages/agent/src/api/drop-service.d.ts.map +1 -0
  80. package/packages/agent/src/api/drop-service.js +134 -0
  81. package/packages/agent/src/api/early-logs.d.ts +29 -0
  82. package/packages/agent/src/api/early-logs.d.ts.map +1 -0
  83. package/packages/agent/src/api/early-logs.js +96 -0
  84. package/packages/agent/src/api/http-helpers.d.ts +50 -0
  85. package/packages/agent/src/api/http-helpers.d.ts.map +1 -0
  86. package/packages/agent/src/api/http-helpers.js +145 -0
  87. package/packages/agent/src/api/index.d.ts +61 -0
  88. package/packages/agent/src/api/index.d.ts.map +1 -0
  89. package/packages/agent/src/api/index.js +59 -0
  90. package/packages/agent/src/api/knowledge-routes.d.ts +23 -0
  91. package/packages/agent/src/api/knowledge-routes.d.ts.map +1 -0
  92. package/packages/agent/src/api/knowledge-routes.js +931 -0
  93. package/packages/agent/src/api/knowledge-service-loader.d.ts +51 -0
  94. package/packages/agent/src/api/knowledge-service-loader.d.ts.map +1 -0
  95. package/packages/agent/src/api/knowledge-service-loader.js +34 -0
  96. package/packages/agent/src/api/memory-bounds.d.ts +51 -0
  97. package/packages/agent/src/api/memory-bounds.d.ts.map +1 -0
  98. package/packages/agent/src/api/memory-bounds.js +81 -0
  99. package/packages/agent/src/api/memory-routes.d.ts +9 -0
  100. package/packages/agent/src/api/memory-routes.d.ts.map +1 -0
  101. package/packages/agent/src/api/memory-routes.js +241 -0
  102. package/packages/agent/src/api/merkle-tree.d.ts +90 -0
  103. package/packages/agent/src/api/merkle-tree.d.ts.map +1 -0
  104. package/packages/agent/src/api/merkle-tree.js +174 -0
  105. package/packages/agent/src/api/models-routes.d.ts +14 -0
  106. package/packages/agent/src/api/models-routes.d.ts.map +1 -0
  107. package/packages/agent/src/api/models-routes.js +37 -0
  108. package/packages/agent/src/api/nfa-routes.d.ts +5 -0
  109. package/packages/agent/src/api/nfa-routes.d.ts.map +1 -0
  110. package/packages/agent/src/api/nfa-routes.js +125 -0
  111. package/packages/agent/src/api/og-tracker.d.ts +28 -0
  112. package/packages/agent/src/api/og-tracker.d.ts.map +1 -0
  113. package/packages/agent/src/api/og-tracker.js +60 -0
  114. package/packages/agent/src/api/parse-action-block.d.ts +36 -0
  115. package/packages/agent/src/api/parse-action-block.d.ts.map +1 -0
  116. package/packages/agent/src/api/parse-action-block.js +110 -0
  117. package/packages/agent/src/api/permissions-routes.d.ts +32 -0
  118. package/packages/agent/src/api/permissions-routes.d.ts.map +1 -0
  119. package/packages/agent/src/api/permissions-routes.js +149 -0
  120. package/packages/agent/src/api/plugin-validation.d.ts +86 -0
  121. package/packages/agent/src/api/plugin-validation.d.ts.map +1 -0
  122. package/packages/agent/src/api/plugin-validation.js +259 -0
  123. package/packages/agent/src/api/provider-switch-config.d.ts +37 -0
  124. package/packages/agent/src/api/provider-switch-config.d.ts.map +1 -0
  125. package/packages/agent/src/api/provider-switch-config.js +317 -0
  126. package/packages/agent/src/api/registry-routes.d.ts +26 -0
  127. package/packages/agent/src/api/registry-routes.d.ts.map +1 -0
  128. package/packages/agent/src/api/registry-routes.js +90 -0
  129. package/packages/agent/src/api/registry-service.d.ts +77 -0
  130. package/packages/agent/src/api/registry-service.d.ts.map +1 -0
  131. package/packages/agent/src/api/registry-service.js +190 -0
  132. package/packages/agent/src/api/route-helpers.d.ts +16 -0
  133. package/packages/agent/src/api/route-helpers.d.ts.map +1 -0
  134. package/packages/agent/src/api/route-helpers.js +1 -0
  135. package/packages/agent/src/api/sandbox-routes.d.ts +12 -0
  136. package/packages/agent/src/api/sandbox-routes.d.ts.map +1 -0
  137. package/packages/agent/src/api/sandbox-routes.js +1334 -0
  138. package/packages/agent/src/api/server.d.ts +418 -0
  139. package/packages/agent/src/api/server.d.ts.map +1 -0
  140. package/packages/agent/src/api/server.js +13614 -0
  141. package/packages/agent/src/api/signal-routes.d.ts +39 -0
  142. package/packages/agent/src/api/signal-routes.d.ts.map +1 -0
  143. package/packages/agent/src/api/signal-routes.js +168 -0
  144. package/packages/agent/src/api/stream-persistence.d.ts +64 -0
  145. package/packages/agent/src/api/stream-persistence.d.ts.map +1 -0
  146. package/packages/agent/src/api/stream-persistence.js +231 -0
  147. package/packages/agent/src/api/stream-route-state.d.ts +50 -0
  148. package/packages/agent/src/api/stream-route-state.d.ts.map +1 -0
  149. package/packages/agent/src/api/stream-route-state.js +1 -0
  150. package/packages/agent/src/api/stream-routes.d.ts +45 -0
  151. package/packages/agent/src/api/stream-routes.d.ts.map +1 -0
  152. package/packages/agent/src/api/stream-routes.js +809 -0
  153. package/packages/agent/src/api/stream-voice-routes.d.ts +36 -0
  154. package/packages/agent/src/api/stream-voice-routes.d.ts.map +1 -0
  155. package/packages/agent/src/api/stream-voice-routes.js +133 -0
  156. package/packages/agent/src/api/streaming-text.d.ts +9 -0
  157. package/packages/agent/src/api/streaming-text.d.ts.map +1 -0
  158. package/packages/agent/src/api/streaming-text.js +85 -0
  159. package/packages/agent/src/api/streaming-types.d.ts +30 -0
  160. package/packages/agent/src/api/streaming-types.d.ts.map +1 -0
  161. package/packages/agent/src/api/streaming-types.js +1 -0
  162. package/packages/agent/src/api/subscription-routes.d.ts +20 -0
  163. package/packages/agent/src/api/subscription-routes.d.ts.map +1 -0
  164. package/packages/agent/src/api/subscription-routes.js +191 -0
  165. package/packages/agent/src/api/terminal-run-limits.d.ts +5 -0
  166. package/packages/agent/src/api/terminal-run-limits.d.ts.map +1 -0
  167. package/packages/agent/src/api/terminal-run-limits.js +22 -0
  168. package/packages/agent/src/api/training-backend-check.d.ts +8 -0
  169. package/packages/agent/src/api/training-backend-check.d.ts.map +1 -0
  170. package/packages/agent/src/api/training-backend-check.js +28 -0
  171. package/packages/agent/src/api/training-routes.d.ts +44 -0
  172. package/packages/agent/src/api/training-routes.d.ts.map +1 -0
  173. package/packages/agent/src/api/training-routes.js +195 -0
  174. package/packages/agent/src/api/training-service-like.d.ts +38 -0
  175. package/packages/agent/src/api/training-service-like.d.ts.map +1 -0
  176. package/packages/agent/src/api/training-service-like.js +1 -0
  177. package/packages/agent/src/api/trajectory-routes.d.ts +17 -0
  178. package/packages/agent/src/api/trajectory-routes.d.ts.map +1 -0
  179. package/packages/agent/src/api/trajectory-routes.js +405 -0
  180. package/packages/agent/src/api/trigger-routes.d.ts +72 -0
  181. package/packages/agent/src/api/trigger-routes.d.ts.map +1 -0
  182. package/packages/agent/src/api/trigger-routes.js +268 -0
  183. package/packages/agent/src/api/twitter-verify.d.ts +25 -0
  184. package/packages/agent/src/api/twitter-verify.d.ts.map +1 -0
  185. package/packages/agent/src/api/twitter-verify.js +168 -0
  186. package/packages/agent/src/api/tx-service.d.ts +47 -0
  187. package/packages/agent/src/api/tx-service.d.ts.map +1 -0
  188. package/packages/agent/src/api/tx-service.js +156 -0
  189. package/packages/agent/src/api/wallet-dex-prices.d.ts +43 -0
  190. package/packages/agent/src/api/wallet-dex-prices.d.ts.map +1 -0
  191. package/packages/agent/src/api/wallet-dex-prices.js +149 -0
  192. package/packages/agent/src/api/wallet-evm-balance.d.ts +65 -0
  193. package/packages/agent/src/api/wallet-evm-balance.d.ts.map +1 -0
  194. package/packages/agent/src/api/wallet-evm-balance.js +663 -0
  195. package/packages/agent/src/api/wallet-routes.d.ts +33 -0
  196. package/packages/agent/src/api/wallet-routes.d.ts.map +1 -0
  197. package/packages/agent/src/api/wallet-routes.js +292 -0
  198. package/packages/agent/src/api/wallet-rpc.d.ts +61 -0
  199. package/packages/agent/src/api/wallet-rpc.d.ts.map +1 -0
  200. package/packages/agent/src/api/wallet-rpc.js +367 -0
  201. package/packages/agent/src/api/wallet-trading-profile.d.ts +51 -0
  202. package/packages/agent/src/api/wallet-trading-profile.d.ts.map +1 -0
  203. package/packages/agent/src/api/wallet-trading-profile.js +547 -0
  204. package/packages/agent/src/api/wallet.d.ts +31 -0
  205. package/packages/agent/src/api/wallet.d.ts.map +1 -0
  206. package/packages/agent/src/api/wallet.js +513 -0
  207. package/packages/agent/src/api/whatsapp-routes.d.ts +39 -0
  208. package/packages/agent/src/api/whatsapp-routes.d.ts.map +1 -0
  209. package/packages/agent/src/api/whatsapp-routes.js +182 -0
  210. package/packages/agent/src/api/zip-utils.d.ts +8 -0
  211. package/packages/agent/src/api/zip-utils.d.ts.map +1 -0
  212. package/packages/agent/src/api/zip-utils.js +115 -0
  213. package/packages/agent/src/auth/anthropic.d.ts +25 -0
  214. package/packages/agent/src/auth/anthropic.d.ts.map +1 -0
  215. package/packages/agent/src/auth/anthropic.js +40 -0
  216. package/packages/agent/src/auth/apply-stealth.d.ts +8 -0
  217. package/packages/agent/src/auth/apply-stealth.d.ts.map +1 -0
  218. package/packages/agent/src/auth/apply-stealth.js +35 -0
  219. package/packages/agent/src/auth/claude-code-stealth.d.ts +2 -0
  220. package/packages/agent/src/auth/claude-code-stealth.d.ts.map +1 -0
  221. package/packages/agent/src/auth/claude-code-stealth.js +104 -0
  222. package/packages/agent/src/auth/credentials.d.ts +55 -0
  223. package/packages/agent/src/auth/credentials.d.ts.map +1 -0
  224. package/packages/agent/src/auth/credentials.js +182 -0
  225. package/packages/agent/src/auth/index.d.ts +7 -0
  226. package/packages/agent/src/auth/index.d.ts.map +1 -0
  227. package/packages/agent/src/auth/index.js +3 -0
  228. package/packages/agent/src/auth/openai-codex.d.ts +27 -0
  229. package/packages/agent/src/auth/openai-codex.d.ts.map +1 -0
  230. package/packages/agent/src/auth/openai-codex.js +72 -0
  231. package/packages/agent/src/auth/types.d.ts +18 -0
  232. package/packages/agent/src/auth/types.d.ts.map +1 -0
  233. package/packages/agent/src/auth/types.js +8 -0
  234. package/packages/agent/src/awareness/registry.d.ts +27 -0
  235. package/packages/agent/src/awareness/registry.d.ts.map +1 -0
  236. package/packages/agent/src/awareness/registry.js +161 -0
  237. package/packages/agent/src/benchmark-server.d.ts +2 -0
  238. package/packages/agent/src/benchmark-server.d.ts.map +1 -0
  239. package/packages/agent/src/benchmark-server.js +773 -0
  240. package/packages/agent/src/bin.d.ts +3 -0
  241. package/packages/agent/src/bin.d.ts.map +1 -0
  242. package/packages/agent/src/bin.js +6 -0
  243. package/packages/agent/src/cli/index.d.ts +2 -0
  244. package/packages/agent/src/cli/index.d.ts.map +1 -0
  245. package/packages/agent/src/cli/index.js +40 -0
  246. package/packages/agent/src/cli/parse-duration.d.ts +5 -0
  247. package/packages/agent/src/cli/parse-duration.d.ts.map +1 -0
  248. package/packages/agent/src/cli/parse-duration.js +27 -0
  249. package/packages/agent/src/cloud/auth.d.ts +19 -0
  250. package/packages/agent/src/cloud/auth.d.ts.map +1 -0
  251. package/packages/agent/src/cloud/auth.js +107 -0
  252. package/packages/agent/src/cloud/backup.d.ts +18 -0
  253. package/packages/agent/src/cloud/backup.d.ts.map +1 -0
  254. package/packages/agent/src/cloud/backup.js +42 -0
  255. package/packages/agent/src/cloud/base-url.d.ts +3 -0
  256. package/packages/agent/src/cloud/base-url.d.ts.map +1 -0
  257. package/packages/agent/src/cloud/base-url.js +40 -0
  258. package/packages/agent/src/cloud/bridge-client.d.ts +56 -0
  259. package/packages/agent/src/cloud/bridge-client.d.ts.map +1 -0
  260. package/packages/agent/src/cloud/bridge-client.js +190 -0
  261. package/packages/agent/src/cloud/cloud-manager.d.ts +32 -0
  262. package/packages/agent/src/cloud/cloud-manager.d.ts.map +1 -0
  263. package/packages/agent/src/cloud/cloud-manager.js +119 -0
  264. package/packages/agent/src/cloud/cloud-proxy.d.ts +20 -0
  265. package/packages/agent/src/cloud/cloud-proxy.d.ts.map +1 -0
  266. package/packages/agent/src/cloud/cloud-proxy.js +34 -0
  267. package/packages/agent/src/cloud/index.d.ts +7 -0
  268. package/packages/agent/src/cloud/index.d.ts.map +1 -0
  269. package/packages/agent/src/cloud/index.js +6 -0
  270. package/packages/agent/src/cloud/reconnect.d.ts +26 -0
  271. package/packages/agent/src/cloud/reconnect.d.ts.map +1 -0
  272. package/packages/agent/src/cloud/reconnect.js +86 -0
  273. package/packages/agent/src/cloud/validate-url.d.ts +2 -0
  274. package/packages/agent/src/cloud/validate-url.d.ts.map +1 -0
  275. package/packages/agent/src/cloud/validate-url.js +162 -0
  276. package/packages/agent/src/config/character-schema.d.ts +25 -0
  277. package/packages/agent/src/config/character-schema.d.ts.map +1 -0
  278. package/packages/agent/src/config/character-schema.js +39 -0
  279. package/packages/agent/src/config/config.d.ts +6 -0
  280. package/packages/agent/src/config/config.d.ts.map +1 -0
  281. package/packages/agent/src/config/config.js +118 -0
  282. package/packages/agent/src/config/env-vars.d.ts +3 -0
  283. package/packages/agent/src/config/env-vars.d.ts.map +1 -0
  284. package/packages/agent/src/config/env-vars.js +76 -0
  285. package/packages/agent/src/config/includes.d.ts +26 -0
  286. package/packages/agent/src/config/includes.d.ts.map +1 -0
  287. package/packages/agent/src/config/includes.js +148 -0
  288. package/packages/agent/src/config/index.d.ts +16 -0
  289. package/packages/agent/src/config/index.d.ts.map +1 -0
  290. package/packages/agent/src/config/index.js +15 -0
  291. package/packages/agent/src/config/object-utils.d.ts +2 -0
  292. package/packages/agent/src/config/object-utils.d.ts.map +1 -0
  293. package/packages/agent/src/config/object-utils.js +6 -0
  294. package/packages/agent/src/config/paths.d.ts +13 -0
  295. package/packages/agent/src/config/paths.d.ts.map +1 -0
  296. package/packages/agent/src/config/paths.js +67 -0
  297. package/packages/agent/src/config/plugin-auto-enable.d.ts +16 -0
  298. package/packages/agent/src/config/plugin-auto-enable.d.ts.map +1 -0
  299. package/packages/agent/src/config/plugin-auto-enable.js +384 -0
  300. package/packages/agent/src/config/schema.d.ts +87 -0
  301. package/packages/agent/src/config/schema.d.ts.map +1 -0
  302. package/packages/agent/src/config/schema.js +928 -0
  303. package/packages/agent/src/config/telegram-custom-commands.d.ts +25 -0
  304. package/packages/agent/src/config/telegram-custom-commands.d.ts.map +1 -0
  305. package/packages/agent/src/config/telegram-custom-commands.js +71 -0
  306. package/packages/agent/src/config/types.agent-defaults.d.ts +331 -0
  307. package/packages/agent/src/config/types.agent-defaults.d.ts.map +1 -0
  308. package/packages/agent/src/config/types.agent-defaults.js +1 -0
  309. package/packages/agent/src/config/types.agents.d.ts +110 -0
  310. package/packages/agent/src/config/types.agents.d.ts.map +1 -0
  311. package/packages/agent/src/config/types.agents.js +1 -0
  312. package/packages/agent/src/config/types.d.ts +8 -0
  313. package/packages/agent/src/config/types.d.ts.map +1 -0
  314. package/packages/agent/src/config/types.eliza.d.ts +636 -0
  315. package/packages/agent/src/config/types.eliza.d.ts.map +1 -0
  316. package/packages/agent/src/config/types.eliza.js +1 -0
  317. package/packages/agent/src/config/types.gateway.d.ts +216 -0
  318. package/packages/agent/src/config/types.gateway.d.ts.map +1 -0
  319. package/packages/agent/src/config/types.gateway.js +1 -0
  320. package/packages/agent/src/config/types.hooks.d.ts +107 -0
  321. package/packages/agent/src/config/types.hooks.d.ts.map +1 -0
  322. package/packages/agent/src/config/types.hooks.js +1 -0
  323. package/packages/agent/src/config/types.js +7 -0
  324. package/packages/agent/src/config/types.messages.d.ts +176 -0
  325. package/packages/agent/src/config/types.messages.d.ts.map +1 -0
  326. package/packages/agent/src/config/types.messages.js +1 -0
  327. package/packages/agent/src/config/types.tools.d.ts +400 -0
  328. package/packages/agent/src/config/types.tools.d.ts.map +1 -0
  329. package/packages/agent/src/config/types.tools.js +1 -0
  330. package/packages/agent/src/config/zod-schema.agent-runtime.d.ts +1062 -0
  331. package/packages/agent/src/config/zod-schema.agent-runtime.d.ts.map +1 -0
  332. package/packages/agent/src/config/zod-schema.agent-runtime.js +721 -0
  333. package/packages/agent/src/config/zod-schema.core.d.ts +1021 -0
  334. package/packages/agent/src/config/zod-schema.core.d.ts.map +1 -0
  335. package/packages/agent/src/config/zod-schema.core.js +694 -0
  336. package/packages/agent/src/config/zod-schema.d.ts +4817 -0
  337. package/packages/agent/src/config/zod-schema.d.ts.map +1 -0
  338. package/packages/agent/src/config/zod-schema.hooks.d.ts +88 -0
  339. package/packages/agent/src/config/zod-schema.hooks.d.ts.map +1 -0
  340. package/packages/agent/src/config/zod-schema.hooks.js +133 -0
  341. package/packages/agent/src/config/zod-schema.js +778 -0
  342. package/packages/agent/src/config/zod-schema.providers-core.d.ts +2976 -0
  343. package/packages/agent/src/config/zod-schema.providers-core.d.ts.map +1 -0
  344. package/packages/agent/src/config/zod-schema.providers-core.js +1006 -0
  345. package/packages/agent/src/config/zod-schema.session.d.ts +183 -0
  346. package/packages/agent/src/config/zod-schema.session.d.ts.map +1 -0
  347. package/packages/agent/src/config/zod-schema.session.js +86 -0
  348. package/packages/agent/src/contracts/apps.d.ts +42 -0
  349. package/packages/agent/src/contracts/apps.d.ts.map +1 -0
  350. package/packages/agent/src/contracts/apps.js +4 -0
  351. package/packages/agent/src/contracts/awareness.d.ts +38 -0
  352. package/packages/agent/src/contracts/awareness.d.ts.map +1 -0
  353. package/packages/agent/src/contracts/awareness.js +7 -0
  354. package/packages/agent/src/contracts/config.d.ts +146 -0
  355. package/packages/agent/src/contracts/config.d.ts.map +1 -0
  356. package/packages/agent/src/contracts/config.js +4 -0
  357. package/packages/agent/src/contracts/drop.d.ts +20 -0
  358. package/packages/agent/src/contracts/drop.d.ts.map +1 -0
  359. package/packages/agent/src/contracts/drop.js +4 -0
  360. package/packages/agent/src/contracts/index.d.ts +9 -0
  361. package/packages/agent/src/contracts/index.d.ts.map +1 -0
  362. package/packages/agent/src/contracts/index.js +8 -0
  363. package/packages/agent/src/contracts/onboarding.d.ts +379 -0
  364. package/packages/agent/src/contracts/onboarding.d.ts.map +1 -0
  365. package/packages/agent/src/contracts/onboarding.js +290 -0
  366. package/packages/agent/src/contracts/permissions.d.ts +35 -0
  367. package/packages/agent/src/contracts/permissions.d.ts.map +1 -0
  368. package/packages/agent/src/contracts/permissions.js +4 -0
  369. package/packages/agent/src/contracts/verification.d.ts +9 -0
  370. package/packages/agent/src/contracts/verification.d.ts.map +1 -0
  371. package/packages/agent/src/contracts/verification.js +4 -0
  372. package/packages/agent/src/contracts/wallet.d.ts +409 -0
  373. package/packages/agent/src/contracts/wallet.d.ts.map +1 -0
  374. package/packages/agent/src/contracts/wallet.js +60 -0
  375. package/packages/agent/src/diagnostics/integration-observability.d.ts +40 -0
  376. package/packages/agent/src/diagnostics/integration-observability.d.ts.map +1 -0
  377. package/packages/agent/src/diagnostics/integration-observability.js +68 -0
  378. package/packages/agent/src/emotes/catalog.d.ts +31 -0
  379. package/packages/agent/src/emotes/catalog.d.ts.map +1 -0
  380. package/packages/agent/src/emotes/catalog.js +618 -0
  381. package/packages/agent/src/hooks/discovery.d.ts +13 -0
  382. package/packages/agent/src/hooks/discovery.d.ts.map +1 -0
  383. package/packages/agent/src/hooks/discovery.js +184 -0
  384. package/packages/agent/src/hooks/eligibility.d.ts +12 -0
  385. package/packages/agent/src/hooks/eligibility.d.ts.map +1 -0
  386. package/packages/agent/src/hooks/eligibility.js +100 -0
  387. package/packages/agent/src/hooks/index.d.ts +3 -0
  388. package/packages/agent/src/hooks/index.d.ts.map +1 -0
  389. package/packages/agent/src/hooks/index.js +2 -0
  390. package/packages/agent/src/hooks/loader.d.ts +34 -0
  391. package/packages/agent/src/hooks/loader.d.ts.map +1 -0
  392. package/packages/agent/src/hooks/loader.js +176 -0
  393. package/packages/agent/src/hooks/registry.d.ts +11 -0
  394. package/packages/agent/src/hooks/registry.d.ts.map +1 -0
  395. package/packages/agent/src/hooks/registry.js +58 -0
  396. package/packages/agent/src/hooks/types.d.ts +104 -0
  397. package/packages/agent/src/hooks/types.d.ts.map +1 -0
  398. package/packages/agent/src/hooks/types.js +8 -0
  399. package/packages/agent/src/index.d.ts +20 -0
  400. package/packages/agent/src/index.d.ts.map +1 -0
  401. package/packages/agent/src/index.js +19 -0
  402. package/packages/agent/src/onboarding-presets.d.ts +78 -0
  403. package/packages/agent/src/onboarding-presets.d.ts.map +1 -0
  404. package/packages/agent/src/onboarding-presets.js +1352 -0
  405. package/packages/agent/src/plugins/custom-rtmp/index.d.ts +12 -0
  406. package/packages/agent/src/plugins/custom-rtmp/index.d.ts.map +1 -0
  407. package/packages/agent/src/plugins/custom-rtmp/index.js +26 -0
  408. package/packages/agent/src/providers/admin-trust.d.ts +4 -0
  409. package/packages/agent/src/providers/admin-trust.d.ts.map +1 -0
  410. package/packages/agent/src/providers/admin-trust.js +53 -0
  411. package/packages/agent/src/providers/session-bridge.d.ts +24 -0
  412. package/packages/agent/src/providers/session-bridge.d.ts.map +1 -0
  413. package/packages/agent/src/providers/session-bridge.js +85 -0
  414. package/packages/agent/src/providers/session-utils.d.ts +20 -0
  415. package/packages/agent/src/providers/session-utils.d.ts.map +1 -0
  416. package/packages/agent/src/providers/session-utils.js +33 -0
  417. package/packages/agent/src/providers/simple-mode.d.ts +4 -0
  418. package/packages/agent/src/providers/simple-mode.d.ts.map +1 -0
  419. package/packages/agent/src/providers/simple-mode.js +85 -0
  420. package/packages/agent/src/providers/ui-catalog.d.ts +3 -0
  421. package/packages/agent/src/providers/ui-catalog.d.ts.map +1 -0
  422. package/packages/agent/src/providers/ui-catalog.js +123 -0
  423. package/packages/agent/src/providers/workspace-provider.d.ts +22 -0
  424. package/packages/agent/src/providers/workspace-provider.d.ts.map +1 -0
  425. package/packages/agent/src/providers/workspace-provider.js +167 -0
  426. package/packages/agent/src/providers/workspace.d.ts +54 -0
  427. package/packages/agent/src/providers/workspace.d.ts.map +1 -0
  428. package/packages/agent/src/providers/workspace.js +405 -0
  429. package/packages/agent/src/runtime/agent-event-service.d.ts +35 -0
  430. package/packages/agent/src/runtime/agent-event-service.d.ts.map +1 -0
  431. package/packages/agent/src/runtime/agent-event-service.js +16 -0
  432. package/packages/agent/src/runtime/cloud-onboarding.d.ts +55 -0
  433. package/packages/agent/src/runtime/cloud-onboarding.d.ts.map +1 -0
  434. package/packages/agent/src/runtime/cloud-onboarding.js +279 -0
  435. package/packages/agent/src/runtime/core-plugins.d.ts +14 -0
  436. package/packages/agent/src/runtime/core-plugins.d.ts.map +1 -0
  437. package/packages/agent/src/runtime/core-plugins.js +51 -0
  438. package/packages/agent/src/runtime/custom-actions.d.ts +40 -0
  439. package/packages/agent/src/runtime/custom-actions.d.ts.map +1 -0
  440. package/packages/agent/src/runtime/custom-actions.js +454 -0
  441. package/packages/agent/src/runtime/eliza-plugin.d.ts +16 -0
  442. package/packages/agent/src/runtime/eliza-plugin.d.ts.map +1 -0
  443. package/packages/agent/src/runtime/eliza-plugin.js +108 -0
  444. package/packages/agent/src/runtime/eliza.d.ts +205 -0
  445. package/packages/agent/src/runtime/eliza.d.ts.map +1 -0
  446. package/packages/agent/src/runtime/eliza.js +3935 -0
  447. package/packages/agent/src/runtime/embedding-presets.d.ts +19 -0
  448. package/packages/agent/src/runtime/embedding-presets.d.ts.map +1 -0
  449. package/packages/agent/src/runtime/embedding-presets.js +53 -0
  450. package/packages/agent/src/runtime/index.d.ts +9 -0
  451. package/packages/agent/src/runtime/index.d.ts.map +1 -0
  452. package/packages/agent/src/runtime/index.js +8 -0
  453. package/packages/agent/src/runtime/onboarding-names.d.ts +11 -0
  454. package/packages/agent/src/runtime/onboarding-names.d.ts.map +1 -0
  455. package/packages/agent/src/runtime/onboarding-names.js +74 -0
  456. package/packages/agent/src/runtime/release-plugin-policy.d.ts +20 -0
  457. package/packages/agent/src/runtime/release-plugin-policy.d.ts.map +1 -0
  458. package/packages/agent/src/runtime/release-plugin-policy.js +87 -0
  459. package/packages/agent/src/runtime/restart.d.ts +45 -0
  460. package/packages/agent/src/runtime/restart.d.ts.map +1 -0
  461. package/packages/agent/src/runtime/restart.js +45 -0
  462. package/packages/agent/src/runtime/trajectory-persistence.d.ts +214 -0
  463. package/packages/agent/src/runtime/trajectory-persistence.d.ts.map +1 -0
  464. package/packages/agent/src/runtime/trajectory-persistence.js +1957 -0
  465. package/packages/agent/src/runtime/version.d.ts +2 -0
  466. package/packages/agent/src/runtime/version.d.ts.map +1 -0
  467. package/packages/agent/src/runtime/version.js +5 -0
  468. package/packages/agent/src/security/audit-log.d.ts +49 -0
  469. package/packages/agent/src/security/audit-log.d.ts.map +1 -0
  470. package/packages/agent/src/security/audit-log.js +161 -0
  471. package/packages/agent/src/security/network-policy.d.ts +6 -0
  472. package/packages/agent/src/security/network-policy.d.ts.map +1 -0
  473. package/packages/agent/src/security/network-policy.js +85 -0
  474. package/packages/agent/src/server/index.d.ts +3 -0
  475. package/packages/agent/src/server/index.d.ts.map +1 -0
  476. package/packages/agent/src/server/index.js +1 -0
  477. package/packages/agent/src/services/agent-export.d.ts +100 -0
  478. package/packages/agent/src/services/agent-export.d.ts.map +1 -0
  479. package/packages/agent/src/services/agent-export.js +729 -0
  480. package/packages/agent/src/services/app-manager.d.ts +34 -0
  481. package/packages/agent/src/services/app-manager.d.ts.map +1 -0
  482. package/packages/agent/src/services/app-manager.js +425 -0
  483. package/packages/agent/src/services/browser-capture.d.ts +39 -0
  484. package/packages/agent/src/services/browser-capture.d.ts.map +1 -0
  485. package/packages/agent/src/services/browser-capture.js +162 -0
  486. package/packages/agent/src/services/coding-agent-context.d.ts +310 -0
  487. package/packages/agent/src/services/coding-agent-context.d.ts.map +1 -0
  488. package/packages/agent/src/services/coding-agent-context.js +281 -0
  489. package/packages/agent/src/services/fallback-training-service.d.ts +78 -0
  490. package/packages/agent/src/services/fallback-training-service.d.ts.map +1 -0
  491. package/packages/agent/src/services/fallback-training-service.js +126 -0
  492. package/packages/agent/src/services/index.d.ts +18 -0
  493. package/packages/agent/src/services/index.d.ts.map +1 -0
  494. package/packages/agent/src/services/index.js +17 -0
  495. package/packages/agent/src/services/mcp-marketplace.d.ts +89 -0
  496. package/packages/agent/src/services/mcp-marketplace.d.ts.map +1 -0
  497. package/packages/agent/src/services/mcp-marketplace.js +200 -0
  498. package/packages/agent/src/services/plugin-manager-types.d.ts +139 -0
  499. package/packages/agent/src/services/plugin-manager-types.d.ts.map +1 -0
  500. package/packages/agent/src/services/plugin-manager-types.js +18 -0
  501. package/packages/agent/src/services/privy-wallets.d.ts +18 -0
  502. package/packages/agent/src/services/privy-wallets.d.ts.map +1 -0
  503. package/packages/agent/src/services/privy-wallets.js +225 -0
  504. package/packages/agent/src/services/registry-client-app-meta.d.ts +6 -0
  505. package/packages/agent/src/services/registry-client-app-meta.d.ts.map +1 -0
  506. package/packages/agent/src/services/registry-client-app-meta.js +147 -0
  507. package/packages/agent/src/services/registry-client-endpoints.d.ts +7 -0
  508. package/packages/agent/src/services/registry-client-endpoints.d.ts.map +1 -0
  509. package/packages/agent/src/services/registry-client-endpoints.js +183 -0
  510. package/packages/agent/src/services/registry-client-local.d.ts +4 -0
  511. package/packages/agent/src/services/registry-client-local.d.ts.map +1 -0
  512. package/packages/agent/src/services/registry-client-local.js +377 -0
  513. package/packages/agent/src/services/registry-client-network.d.ts +9 -0
  514. package/packages/agent/src/services/registry-client-network.d.ts.map +1 -0
  515. package/packages/agent/src/services/registry-client-network.js +109 -0
  516. package/packages/agent/src/services/registry-client-queries.d.ts +15 -0
  517. package/packages/agent/src/services/registry-client-queries.d.ts.map +1 -0
  518. package/packages/agent/src/services/registry-client-queries.js +150 -0
  519. package/packages/agent/src/services/registry-client-types.d.ts +115 -0
  520. package/packages/agent/src/services/registry-client-types.d.ts.map +1 -0
  521. package/packages/agent/src/services/registry-client-types.js +1 -0
  522. package/packages/agent/src/services/registry-client.d.ts +39 -0
  523. package/packages/agent/src/services/registry-client.d.ts.map +1 -0
  524. package/packages/agent/src/services/registry-client.js +249 -0
  525. package/packages/agent/src/services/remote-signing-service.d.ts +58 -0
  526. package/packages/agent/src/services/remote-signing-service.d.ts.map +1 -0
  527. package/packages/agent/src/services/remote-signing-service.js +185 -0
  528. package/packages/agent/src/services/sandbox-engine.d.ts +96 -0
  529. package/packages/agent/src/services/sandbox-engine.d.ts.map +1 -0
  530. package/packages/agent/src/services/sandbox-engine.js +604 -0
  531. package/packages/agent/src/services/sandbox-manager.d.ts +104 -0
  532. package/packages/agent/src/services/sandbox-manager.d.ts.map +1 -0
  533. package/packages/agent/src/services/sandbox-manager.js +353 -0
  534. package/packages/agent/src/services/self-updater.d.ts +21 -0
  535. package/packages/agent/src/services/self-updater.d.ts.map +1 -0
  536. package/packages/agent/src/services/self-updater.js +162 -0
  537. package/packages/agent/src/services/signal-pairing.d.ts +37 -0
  538. package/packages/agent/src/services/signal-pairing.d.ts.map +1 -0
  539. package/packages/agent/src/services/signal-pairing.js +124 -0
  540. package/packages/agent/src/services/signing-policy.d.ts +44 -0
  541. package/packages/agent/src/services/signing-policy.d.ts.map +1 -0
  542. package/packages/agent/src/services/signing-policy.js +165 -0
  543. package/packages/agent/src/services/skill-catalog-client.d.ts +47 -0
  544. package/packages/agent/src/services/skill-catalog-client.d.ts.map +1 -0
  545. package/packages/agent/src/services/skill-catalog-client.js +130 -0
  546. package/packages/agent/src/services/skill-marketplace.d.ts +42 -0
  547. package/packages/agent/src/services/skill-marketplace.d.ts.map +1 -0
  548. package/packages/agent/src/services/skill-marketplace.js +680 -0
  549. package/packages/agent/src/services/stream-manager.d.ts +121 -0
  550. package/packages/agent/src/services/stream-manager.d.ts.map +1 -0
  551. package/packages/agent/src/services/stream-manager.js +604 -0
  552. package/packages/agent/src/services/tts-stream-bridge.d.ts +83 -0
  553. package/packages/agent/src/services/tts-stream-bridge.d.ts.map +1 -0
  554. package/packages/agent/src/services/tts-stream-bridge.js +349 -0
  555. package/packages/agent/src/services/update-checker.d.ts +29 -0
  556. package/packages/agent/src/services/update-checker.d.ts.map +1 -0
  557. package/packages/agent/src/services/update-checker.js +134 -0
  558. package/packages/agent/src/services/version-compat.d.ts +99 -0
  559. package/packages/agent/src/services/version-compat.d.ts.map +1 -0
  560. package/packages/agent/src/services/version-compat.js +195 -0
  561. package/packages/agent/src/services/whatsapp-pairing.d.ts +41 -0
  562. package/packages/agent/src/services/whatsapp-pairing.d.ts.map +1 -0
  563. package/packages/agent/src/services/whatsapp-pairing.js +209 -0
  564. package/packages/agent/src/shared/ui-catalog-prompt.d.ts +52 -0
  565. package/packages/agent/src/shared/ui-catalog-prompt.d.ts.map +1 -0
  566. package/packages/agent/src/shared/ui-catalog-prompt.js +1028 -0
  567. package/packages/agent/src/test-support/process-helpers.d.ts +13 -0
  568. package/packages/agent/src/test-support/process-helpers.d.ts.map +1 -0
  569. package/packages/agent/src/test-support/process-helpers.js +23 -0
  570. package/packages/agent/src/test-support/route-test-helpers.d.ts +37 -0
  571. package/packages/agent/src/test-support/route-test-helpers.d.ts.map +1 -0
  572. package/packages/agent/src/test-support/route-test-helpers.js +54 -0
  573. package/packages/agent/src/test-support/test-helpers.d.ts +77 -0
  574. package/packages/agent/src/test-support/test-helpers.d.ts.map +1 -0
  575. package/packages/agent/src/test-support/test-helpers.js +210 -0
  576. package/packages/agent/src/testing/index.d.ts +4 -0
  577. package/packages/agent/src/testing/index.d.ts.map +1 -0
  578. package/packages/agent/src/testing/index.js +3 -0
  579. package/packages/agent/src/triggers/action.d.ts +3 -0
  580. package/packages/agent/src/triggers/action.d.ts.map +1 -0
  581. package/packages/agent/src/triggers/action.js +267 -0
  582. package/packages/agent/src/triggers/runtime.d.ts +24 -0
  583. package/packages/agent/src/triggers/runtime.d.ts.map +1 -0
  584. package/packages/agent/src/triggers/runtime.js +322 -0
  585. package/packages/agent/src/triggers/scheduling.d.ts +70 -0
  586. package/packages/agent/src/triggers/scheduling.d.ts.map +1 -0
  587. package/packages/agent/src/triggers/scheduling.js +355 -0
  588. package/packages/agent/src/triggers/types.d.ts +115 -0
  589. package/packages/agent/src/triggers/types.d.ts.map +1 -0
  590. package/packages/agent/src/triggers/types.js +1 -0
  591. package/packages/agent/src/utils/exec-safety.d.ts +2 -0
  592. package/packages/agent/src/utils/exec-safety.d.ts.map +1 -0
  593. package/packages/agent/src/utils/exec-safety.js +21 -0
  594. package/packages/agent/src/utils/number-parsing.d.ts +26 -0
  595. package/packages/agent/src/utils/number-parsing.d.ts.map +1 -0
  596. package/packages/agent/src/utils/number-parsing.js +52 -0
  597. package/packages/agent/src/utils/spoken-text.d.ts +2 -0
  598. package/packages/agent/src/utils/spoken-text.d.ts.map +1 -0
  599. package/packages/agent/src/utils/spoken-text.js +56 -0
  600. package/packages/agent/src/version-resolver.d.ts +3 -0
  601. package/packages/agent/src/version-resolver.d.ts.map +1 -0
  602. package/packages/agent/src/version-resolver.js +51 -0
  603. package/jest.config.js +0 -17
  604. package/src/__tests__/client-type-identification.test.ts +0 -59
  605. package/src/defaultCharacter.ts +0 -530
  606. package/src/index.ts +0 -865
  607. package/tsconfig.json +0 -16
@@ -0,0 +1,773 @@
1
+ import http from "node:http";
2
+ import path from "node:path";
3
+ import { AgentRuntime, ChannelType, elizaLogger, InMemoryDatabaseAdapter, ModelType, stringToUuid, } from "@elizaos/core";
4
+ import dotenv from "dotenv";
5
+ import { createElizaPlugin } from "./runtime/eliza-plugin.js";
6
+ // Load environment variables BEFORE anything else
7
+ // This ensures API keys are available when plugins initialize
8
+ dotenv.config({ path: path.resolve(process.cwd(), ".env") });
9
+ const DEFAULT_PORT = 3939;
10
+ const BENCHMARK_WORLD_ID = stringToUuid("autonomous-benchmark-world");
11
+ const BENCHMARK_MESSAGE_SERVER_ID = stringToUuid("autonomous-benchmark-message-server");
12
+ function formatUnknownError(error) {
13
+ if (error instanceof Error) {
14
+ return `${error.name}: ${error.message}`;
15
+ }
16
+ return String(error);
17
+ }
18
+ function toPlugin(candidate, source) {
19
+ if (!candidate || typeof candidate !== "object") {
20
+ throw new Error(`Plugin from ${source} was not an object`);
21
+ }
22
+ const pluginLike = candidate;
23
+ if (typeof pluginLike.name !== "string" || pluginLike.name.length === 0) {
24
+ throw new Error(`Plugin from ${source} was missing a valid name`);
25
+ }
26
+ return candidate;
27
+ }
28
+ function resolvePort() {
29
+ const raw = process.env.AUTONOMOUS_BENCH_PORT;
30
+ if (!raw)
31
+ return DEFAULT_PORT;
32
+ const parsed = Number(raw);
33
+ if (!Number.isFinite(parsed) || parsed < 1 || parsed > 65535) {
34
+ elizaLogger.warn(`[bench] Invalid AUTONOMOUS_BENCH_PORT="${raw}"; using ${DEFAULT_PORT}`);
35
+ return DEFAULT_PORT;
36
+ }
37
+ return Math.floor(parsed);
38
+ }
39
+ function extractRecord(value) {
40
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
41
+ return undefined;
42
+ }
43
+ return value;
44
+ }
45
+ function extractTaskId(context) {
46
+ const bySnake = context?.task_id;
47
+ if (typeof bySnake === "string" && bySnake.trim())
48
+ return bySnake.trim();
49
+ const byCamel = context?.taskId;
50
+ if (typeof byCamel === "string" && byCamel.trim())
51
+ return byCamel.trim();
52
+ return "default-task";
53
+ }
54
+ function extractBenchmarkName(context) {
55
+ const benchmark = context?.benchmark;
56
+ if (typeof benchmark === "string" && benchmark.trim()) {
57
+ return benchmark.trim();
58
+ }
59
+ return "unknown";
60
+ }
61
+ function composeBenchmarkPrompt(params) {
62
+ const segments = [params.text.trim()];
63
+ if (params.context && Object.keys(params.context).length > 0) {
64
+ segments.push([
65
+ "BENCHMARK CONTEXT (authoritative):",
66
+ JSON.stringify(params.context, null, 2),
67
+ ].join("\n"));
68
+ }
69
+ if (params.image !== undefined) {
70
+ segments.push(["IMAGE PAYLOAD:", JSON.stringify(params.image, null, 2)].join("\n"));
71
+ }
72
+ if (params.mode === "message-service") {
73
+ segments.push("Respond using normal Eliza action output so actions/params can be executed and evaluated.");
74
+ }
75
+ else {
76
+ segments.push("Reply directly to the benchmark prompt. If it asks for JSON, return JSON only with no extra narration.");
77
+ }
78
+ return segments.join("\n\n");
79
+ }
80
+ function resolveBenchmarkMessageMode() {
81
+ const raw = process.env.AUTONOMOUS_BENCH_MESSAGE_MODE?.trim().toLowerCase();
82
+ if (raw === "message-service")
83
+ return "message-service";
84
+ return "direct-model";
85
+ }
86
+ function coerceActions(value) {
87
+ if (!Array.isArray(value))
88
+ return [];
89
+ return value.filter((entry) => typeof entry === "string");
90
+ }
91
+ function coerceParams(value) {
92
+ if (value && typeof value === "object" && !Array.isArray(value)) {
93
+ return value;
94
+ }
95
+ if (typeof value === "string") {
96
+ try {
97
+ const parsed = JSON.parse(value);
98
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
99
+ return parsed;
100
+ }
101
+ }
102
+ catch {
103
+ // ignore malformed param strings
104
+ }
105
+ }
106
+ return {};
107
+ }
108
+ function sessionKey(session) {
109
+ return `${session.benchmark}:${session.taskId}`;
110
+ }
111
+ async function ensureBenchmarkSessionContext(runtime, session) {
112
+ await runtime.ensureWorldExists({
113
+ id: BENCHMARK_WORLD_ID,
114
+ name: "Autonomous Benchmark World",
115
+ agentId: runtime.agentId,
116
+ messageServerId: BENCHMARK_MESSAGE_SERVER_ID,
117
+ metadata: {
118
+ type: "benchmark",
119
+ description: "World used for benchmark sessions",
120
+ extra: {
121
+ benchmark: session.benchmark,
122
+ },
123
+ },
124
+ });
125
+ // Use ChannelType.API to ensure the agent always responds to benchmark messages
126
+ // (API channel type bypasses shouldRespond evaluation)
127
+ await runtime.ensureRoomExists({
128
+ id: session.roomId,
129
+ name: `benchmark:${session.taskId}`,
130
+ source: "benchmark",
131
+ type: ChannelType.API,
132
+ channelId: `bench-${session.taskId}`,
133
+ messageServerId: BENCHMARK_MESSAGE_SERVER_ID,
134
+ worldId: BENCHMARK_WORLD_ID,
135
+ metadata: {
136
+ benchmark: session.benchmark,
137
+ taskId: session.taskId,
138
+ },
139
+ });
140
+ await runtime.ensureRoomExists({
141
+ id: session.relayRoomId,
142
+ name: "relay-room",
143
+ source: "benchmark",
144
+ type: ChannelType.API,
145
+ channelId: `relay-${session.taskId}`,
146
+ messageServerId: BENCHMARK_MESSAGE_SERVER_ID,
147
+ worldId: BENCHMARK_WORLD_ID,
148
+ metadata: {
149
+ benchmark: session.benchmark,
150
+ taskId: session.taskId,
151
+ role: "relay-room",
152
+ },
153
+ });
154
+ await runtime.ensureConnection({
155
+ entityId: session.userEntityId,
156
+ roomId: session.roomId,
157
+ worldId: BENCHMARK_WORLD_ID,
158
+ userName: "Benchmark User",
159
+ source: "benchmark",
160
+ channelId: `bench-${session.taskId}`,
161
+ type: ChannelType.API,
162
+ messageServerId: BENCHMARK_MESSAGE_SERVER_ID,
163
+ metadata: {
164
+ benchmark: session.benchmark,
165
+ taskId: session.taskId,
166
+ role: "benchmark-room",
167
+ },
168
+ });
169
+ // The benchmark transport only needs the relay room to exist so room-targeted
170
+ // emissions can be attributed back to the active session. In benchmark mode
171
+ // some runtime/database combinations do not expose the agent entity through
172
+ // getEntitiesByIds(), which makes an explicit ensureParticipantInRoom() call
173
+ // fail even though the primary benchmark room is already fully connected via
174
+ // ensureConnection() above.
175
+ }
176
+ function createSession(taskId, benchmark) {
177
+ const normalizedTaskId = taskId.trim() || "default-task";
178
+ const normalizedBenchmark = benchmark.trim() || "unknown";
179
+ const seed = `${normalizedBenchmark}:${normalizedTaskId}:${Date.now()}:${Math.random()}`;
180
+ return {
181
+ benchmark: normalizedBenchmark,
182
+ taskId: normalizedTaskId,
183
+ roomId: stringToUuid(`benchmark-room:${seed}`),
184
+ relayRoomId: stringToUuid(`benchmark-relay:${seed}`),
185
+ userEntityId: stringToUuid(`benchmark-user:${seed}`),
186
+ };
187
+ }
188
+ // Proper robust server implementation
189
+ export async function startBenchmarkServer() {
190
+ const port = resolvePort();
191
+ const messageMode = resolveBenchmarkMessageMode();
192
+ elizaLogger.info(`[bench] Initializing autonomous benchmark runtime on port ${port} (message_mode=${messageMode})...`);
193
+ // Benchmark mode prefers a stable, comparable runtime over full production
194
+ // plugin parity. A smaller allowlist avoids startup-only side effects from
195
+ // plugins that are useful in the full app but unnecessary for benchmark I/O.
196
+ const benchmarkCorePlugins = [
197
+ "@elizaos/plugin-sql",
198
+ "@elizaos/plugin-local-embedding",
199
+ "@elizaos/plugin-secrets-manager",
200
+ "@elizaos/plugin-rolodex",
201
+ "@elizaos/plugin-trust",
202
+ "@elizaos/plugin-todo",
203
+ "@elizaos/plugin-experience",
204
+ ];
205
+ const plugins = [];
206
+ const loadedPlugins = [];
207
+ const failedPlugins = [];
208
+ // Plugins to skip in benchmark context — these require external auth or
209
+ // interfere with benchmark operation
210
+ const skipPlugins = new Set([
211
+ "@elizaos/plugin-elizacloud", // Requires ElizaOS cloud auth, conflicts with local LLM
212
+ "@elizaos/plugin-trajectory-logger", // Bench server records trajectories itself
213
+ "@elizaos/plugin-cron", // Scheduled services are noise in one-shot benchmark mode
214
+ "@elizaos/plugin-agent-skills", // Expects skill-catalog services that benchmark mode does not wire up
215
+ ]);
216
+ for (const pluginName of benchmarkCorePlugins) {
217
+ if (skipPlugins.has(pluginName)) {
218
+ elizaLogger.debug(`[bench] Skipping plugin (benchmark mode): ${pluginName}`);
219
+ continue;
220
+ }
221
+ try {
222
+ const pluginModule = await import(pluginName);
223
+ const plugin = pluginModule.default ?? pluginModule[Object.keys(pluginModule)[0]];
224
+ if (plugin) {
225
+ plugins.push(toPlugin(plugin, pluginName));
226
+ loadedPlugins.push(pluginName);
227
+ }
228
+ }
229
+ catch (error) {
230
+ // Some plugins may not be available in all environments — that's OK
231
+ failedPlugins.push(pluginName);
232
+ elizaLogger.debug(`[bench] Plugin not available: ${pluginName} (${formatUnknownError(error)})`);
233
+ }
234
+ }
235
+ elizaLogger.info(`[bench] Loaded ${loadedPlugins.length}/${benchmarkCorePlugins.length} benchmark plugins`);
236
+ if (failedPlugins.length > 0) {
237
+ elizaLogger.debug(`[bench] Unavailable plugins: ${failedPlugins.join(", ")}`);
238
+ }
239
+ // Load the autonomous orchestration plugin — provides workspace context,
240
+ // session keys, autonomous state, custom actions, and lifecycle actions.
241
+ try {
242
+ const workspaceDir = process.env.AUTONOMOUS_WORKSPACE_DIR ?? process.cwd();
243
+ const autonomousPlugin = createElizaPlugin({
244
+ workspaceDir,
245
+ agentId: "benchmark",
246
+ });
247
+ plugins.push(toPlugin(autonomousPlugin, "autonomous-plugin"));
248
+ elizaLogger.info(`[bench] Loaded autonomous plugin with workspace: ${workspaceDir}`);
249
+ }
250
+ catch (error) {
251
+ elizaLogger.error(`[bench] Failed to load autonomous plugin: ${formatUnknownError(error)}`);
252
+ }
253
+ // Load trust plugin — provides trust engine, security module, and permission system
254
+ // (may already be in CORE_PLUGINS but we want to ensure it's loaded)
255
+ if (!loadedPlugins.includes("@elizaos/plugin-trust")) {
256
+ try {
257
+ const { default: trustPlugin } = await import("@elizaos/plugin-trust");
258
+ plugins.push(toPlugin(trustPlugin, "@elizaos/plugin-trust"));
259
+ elizaLogger.info("[bench] Loaded plugin: @elizaos/plugin-trust");
260
+ }
261
+ catch (error) {
262
+ elizaLogger.debug(`[bench] Trust plugin not available: ${formatUnknownError(error)}`);
263
+ }
264
+ }
265
+ // Load LLM provider plugins based on environment
266
+ const groqApiKey = process.env.GROQ_API_KEY?.trim();
267
+ if (groqApiKey) {
268
+ process.env.GROQ_API_KEY = groqApiKey;
269
+ try {
270
+ const { default: groqPlugin } = await import("@elizaos/plugin-groq");
271
+ plugins.push(toPlugin(groqPlugin, "@elizaos/plugin-groq"));
272
+ elizaLogger.info("[bench] Loaded LLM plugin: @elizaos/plugin-groq");
273
+ }
274
+ catch (error) {
275
+ elizaLogger.warn(`[bench] Groq plugin not available: ${formatUnknownError(error)}`);
276
+ }
277
+ }
278
+ // const rawOllamaBaseUrl =
279
+ // process.env.OLLAMA_BASE_URL?.trim() ??
280
+ // process.env.OLLAMA_API_ENDPOINT?.trim();
281
+ // if (rawOllamaBaseUrl) {
282
+ // const normalizedOllamaBaseUrl = rawOllamaBaseUrl.replace(/\/api\/?$/, "");
283
+ // process.env.OLLAMA_BASE_URL = normalizedOllamaBaseUrl;
284
+ // process.env.OLLAMA_API_ENDPOINT =
285
+ // process.env.OLLAMA_API_ENDPOINT ??
286
+ // `${normalizedOllamaBaseUrl.replace(/\/$/, "")}/api`;
287
+ // try {
288
+ // const { default: ollamaPlugin } = await import("@elizaos/plugin-ollama");
289
+ // plugins.push(toPlugin(ollamaPlugin, "@elizaos/plugin-ollama"));
290
+ // elizaLogger.info("[bench] Loaded LLM plugin: @elizaos/plugin-ollama");
291
+ // } catch (error: unknown) {
292
+ // elizaLogger.warn(
293
+ // `[bench] Ollama plugin not available: ${formatUnknownError(error)}`,
294
+ // );
295
+ // }
296
+ // }
297
+ const openAiApiKey = process.env.OPENAI_API_KEY?.trim();
298
+ if (openAiApiKey &&
299
+ !openAiApiKey.startsWith("gsk_")
300
+ // && !rawOllamaBaseUrl
301
+ ) {
302
+ process.env.OPENAI_API_KEY = openAiApiKey;
303
+ try {
304
+ const { default: openaiPlugin } = await import("@elizaos/plugin-openai");
305
+ plugins.push(toPlugin(openaiPlugin, "@elizaos/plugin-openai"));
306
+ elizaLogger.info("[bench] Loaded LLM plugin: @elizaos/plugin-openai");
307
+ }
308
+ catch (error) {
309
+ elizaLogger.debug(`[bench] OpenAI plugin not available: ${formatUnknownError(error)}`);
310
+ }
311
+ }
312
+ // Load computer use plugin if enabled
313
+ if (process.env.AUTONOMOUS_ENABLE_COMPUTERUSE) {
314
+ try {
315
+ process.env.COMPUTERUSE_ENABLED ??= "true";
316
+ process.env.COMPUTERUSE_MODE ??= "local";
317
+ const localComputerusePath = "../../../plugins/plugin-computeruse/typescript/src/index.ts";
318
+ const computeruseModule = (await import(localComputerusePath));
319
+ const computerusePlugin = computeruseModule.computerusePlugin ??
320
+ computeruseModule.computerUsePlugin ??
321
+ computeruseModule.default;
322
+ if (computerusePlugin) {
323
+ plugins.push(toPlugin(computerusePlugin, localComputerusePath));
324
+ elizaLogger.info("[bench] Loaded local plugin: @elizaos/plugin-computeruse");
325
+ }
326
+ }
327
+ catch (error) {
328
+ elizaLogger.debug(`[bench] Computer use plugin not available: ${formatUnknownError(error)}`);
329
+ }
330
+ }
331
+ // Load mock plugin for testing (file is gitignored for local-only use)
332
+ if (process.env.AUTONOMOUS_BENCH_MOCK === "true") {
333
+ try {
334
+ // @ts-ignore - mock-plugin.ts is gitignored, only exists for local benchmarking
335
+ const { mockPlugin } = await import("./mock-plugin.ts");
336
+ plugins.push(toPlugin(mockPlugin, "./mock-plugin.ts"));
337
+ elizaLogger.info("[bench] Loaded mock benchmark plugin");
338
+ }
339
+ catch (error) {
340
+ elizaLogger.error(`[bench] Failed to load mock benchmark plugin: ${formatUnknownError(error)}`);
341
+ }
342
+ }
343
+ // Build settings object from environment variables
344
+ // These are needed by plugins like Groq that use runtime.getSetting()
345
+ const settings = {
346
+ // Use in-memory database for benchmarks to avoid pglite corruption issues
347
+ // and ensure a clean state for each benchmark run
348
+ PGLITE_DATA_DIR: "memory://",
349
+ };
350
+ const envKeys = [
351
+ "GROQ_API_KEY",
352
+ "OPENAI_API_KEY",
353
+ "ANTHROPIC_API_KEY",
354
+ "OPENROUTER_API_KEY",
355
+ "GOOGLE_GENERATIVE_AI_API_KEY",
356
+ ];
357
+ for (const key of envKeys) {
358
+ const value = process.env[key]?.trim();
359
+ if (value) {
360
+ settings[key] = value;
361
+ }
362
+ }
363
+ // Pre-register the SQL and local-embedding plugins before initialize().
364
+ // AgentRuntime initializes character plugins in parallel, which can race
365
+ // plugin startup against SQL adapter setup and leave runtime.db unset.
366
+ const preregisterPluginNames = new Set([
367
+ "@elizaos/plugin-sql",
368
+ "@elizaos/plugin-local-embedding",
369
+ ]);
370
+ const preregisterPlugins = plugins.filter((plugin) => preregisterPluginNames.has(plugin.name));
371
+ const deferredPlugins = plugins.filter((plugin) => !preregisterPluginNames.has(plugin.name));
372
+ const runtime = new AgentRuntime({
373
+ character: {
374
+ name: "Kira",
375
+ bio: ["A benchmark execution agent."],
376
+ messageExamples: [],
377
+ topics: [],
378
+ adjectives: [],
379
+ plugins: [],
380
+ settings: {
381
+ secrets: settings,
382
+ },
383
+ },
384
+ adapter: new InMemoryDatabaseAdapter(),
385
+ plugins: deferredPlugins,
386
+ });
387
+ let databaseAdapterMode = "plugin-sql";
388
+ const runtimeWithAdapter = runtime;
389
+ const sqlPlugin = preregisterPlugins.find((candidate) => candidate.name === "@elizaos/plugin-sql");
390
+ if (sqlPlugin) {
391
+ try {
392
+ await runtime.registerPlugin(sqlPlugin);
393
+ elizaLogger.info(`[bench] Pre-registered plugin: ${sqlPlugin.name}`);
394
+ if (runtimeWithAdapter.adapter &&
395
+ !(await runtimeWithAdapter.adapter.isReady())) {
396
+ await runtimeWithAdapter.adapter.init();
397
+ elizaLogger.info("[bench] Database adapter initialized before runtime init");
398
+ }
399
+ }
400
+ catch (error) {
401
+ databaseAdapterMode = "in-memory-fallback";
402
+ runtime.adapter = new InMemoryDatabaseAdapter();
403
+ elizaLogger.warn(`[bench] Falling back to in-memory database adapter: ${formatUnknownError(error)}`);
404
+ }
405
+ }
406
+ else {
407
+ databaseAdapterMode = "in-memory-fallback";
408
+ runtime.adapter = new InMemoryDatabaseAdapter();
409
+ elizaLogger.warn("[bench] SQL plugin unavailable; using in-memory database adapter for benchmark mode");
410
+ }
411
+ const localEmbeddingPlugin = preregisterPlugins.find((candidate) => candidate.name === "@elizaos/plugin-local-embedding");
412
+ if (localEmbeddingPlugin) {
413
+ await runtime.registerPlugin(localEmbeddingPlugin);
414
+ elizaLogger.info(`[bench] Pre-registered plugin: ${localEmbeddingPlugin.name}`);
415
+ }
416
+ await runtime.initialize();
417
+ const modelHandlers = runtime.models;
418
+ const modelHandlerSummary = Object.fromEntries([...(modelHandlers?.entries() ?? [])].map(([modelType, handlers]) => [
419
+ modelType,
420
+ handlers.map((handler) => ({
421
+ provider: handler.provider ?? "unknown",
422
+ priority: handler.priority ?? 0,
423
+ })),
424
+ ]));
425
+ elizaLogger.info(`[bench] Model handlers: ${JSON.stringify(modelHandlerSummary)}`);
426
+ const textGenerationModelTypes = new Set([
427
+ "TEXT_SMALL",
428
+ "TEXT_LARGE",
429
+ "REASONING_SMALL",
430
+ "REASONING_LARGE",
431
+ "TEXT_COMPLETION",
432
+ ]);
433
+ const hasTextGenerationModel = [...(modelHandlers?.entries() ?? [])].some(([modelType, handlers]) => textGenerationModelTypes.has(String(modelType)) &&
434
+ Array.isArray(handlers) &&
435
+ handlers.length > 0);
436
+ elizaLogger.info(`[bench] Database adapter mode: ${databaseAdapterMode}`);
437
+ elizaLogger.info(`[bench] Runtime initialized — agent=${runtime.character.name}, plugins=${plugins.length}`);
438
+ const roomToSession = new Map();
439
+ const entityToSession = new Map();
440
+ const trajectoriesBySession = new Map();
441
+ const outboxBySession = new Map();
442
+ const benchmarkTransport = {
443
+ sendDirectMessage: async (targetEntityId, content) => {
444
+ const key = entityToSession.get(targetEntityId);
445
+ const text = typeof content.text === "string" ? content.text : "";
446
+ const source = typeof content.source === "string" ? content.source : "benchmark";
447
+ if (!key)
448
+ return;
449
+ const current = outboxBySession.get(key) ?? [];
450
+ current.push({
451
+ kind: "direct",
452
+ targetId: targetEntityId,
453
+ text,
454
+ source,
455
+ ts: Date.now(),
456
+ });
457
+ outboxBySession.set(key, current);
458
+ },
459
+ sendRoomMessage: async (targetRoomId, content) => {
460
+ const key = roomToSession.get(targetRoomId);
461
+ const text = typeof content.text === "string" ? content.text : "";
462
+ const source = typeof content.source === "string" ? content.source : "benchmark";
463
+ if (!key)
464
+ return;
465
+ const current = outboxBySession.get(key) ?? [];
466
+ current.push({
467
+ kind: "room",
468
+ targetId: targetRoomId,
469
+ text,
470
+ source,
471
+ ts: Date.now(),
472
+ });
473
+ outboxBySession.set(key, current);
474
+ },
475
+ };
476
+ const runtimeWithServiceOverride = runtime;
477
+ const originalGetService = runtimeWithServiceOverride.getService.bind(runtime);
478
+ runtimeWithServiceOverride.getService = (serviceType) => {
479
+ if (serviceType === "benchmark") {
480
+ return benchmarkTransport;
481
+ }
482
+ return originalGetService(serviceType);
483
+ };
484
+ const sessions = new Map();
485
+ let activeSession = null;
486
+ const registerSessionRefs = (session) => {
487
+ const key = sessionKey(session);
488
+ roomToSession.set(session.roomId, key);
489
+ roomToSession.set(session.relayRoomId, key);
490
+ entityToSession.set(session.userEntityId, key);
491
+ };
492
+ const resolveSession = (taskId, benchmark, createIfMissing = true) => {
493
+ const key = `${benchmark}:${taskId}`;
494
+ const existing = sessions.get(key);
495
+ if (existing) {
496
+ activeSession = existing;
497
+ return existing;
498
+ }
499
+ if (!createIfMissing)
500
+ return null;
501
+ const created = createSession(taskId, benchmark);
502
+ sessions.set(key, created);
503
+ registerSessionRefs(created);
504
+ activeSession = created;
505
+ return created;
506
+ };
507
+ const server = http.createServer(async (req, res) => {
508
+ res.setHeader("Access-Control-Allow-Origin", "*");
509
+ res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
510
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
511
+ const requestUrl = new URL(req.url ?? "/", "http://localhost");
512
+ const pathname = requestUrl.pathname;
513
+ if (req.method === "OPTIONS") {
514
+ res.writeHead(200);
515
+ res.end();
516
+ return;
517
+ }
518
+ if (pathname === "/api/benchmark/health" && req.method === "GET") {
519
+ res.writeHead(200, { "Content-Type": "application/json" });
520
+ res.end(JSON.stringify({
521
+ status: "ready",
522
+ agent_name: runtime.character.name ?? "Autonomous",
523
+ plugins: plugins.length,
524
+ database_adapter: databaseAdapterMode,
525
+ has_text_model: hasTextGenerationModel,
526
+ message_mode: messageMode,
527
+ model_handlers: modelHandlerSummary,
528
+ active_session: activeSession
529
+ ? {
530
+ benchmark: activeSession.benchmark,
531
+ task_id: activeSession.taskId,
532
+ room_id: activeSession.roomId,
533
+ }
534
+ : null,
535
+ }));
536
+ return;
537
+ }
538
+ if (pathname === "/api/benchmark/reset" && req.method === "POST") {
539
+ let body = "";
540
+ req.on("data", (chunk) => (body += chunk));
541
+ req.on("end", async () => {
542
+ try {
543
+ const parsed = body.trim()
544
+ ? JSON.parse(body)
545
+ : {};
546
+ const taskId = typeof parsed.task_id === "string" &&
547
+ parsed.task_id.trim().length > 0
548
+ ? parsed.task_id
549
+ : "default-task";
550
+ const benchmark = typeof parsed.benchmark === "string" &&
551
+ parsed.benchmark.trim().length > 0
552
+ ? parsed.benchmark
553
+ : "unknown";
554
+ const session = resolveSession(taskId, benchmark, true);
555
+ if (!session) {
556
+ throw new Error("Failed to initialize benchmark session");
557
+ }
558
+ const key = sessionKey(session);
559
+ trajectoriesBySession.set(key, []);
560
+ outboxBySession.set(key, []);
561
+ await ensureBenchmarkSessionContext(runtime, session);
562
+ res.writeHead(200, { "Content-Type": "application/json" });
563
+ res.end(JSON.stringify({
564
+ status: "ok",
565
+ room_id: session.roomId,
566
+ task_id: session.taskId,
567
+ benchmark: session.benchmark,
568
+ }));
569
+ }
570
+ catch (err) {
571
+ const errorMessage = err instanceof Error ? err.message : String(err);
572
+ elizaLogger.error(`[bench] Reset error: ${formatUnknownError(err)}`);
573
+ res.writeHead(500, { "Content-Type": "application/json" });
574
+ res.end(JSON.stringify({ error: errorMessage }));
575
+ }
576
+ });
577
+ return;
578
+ }
579
+ if (pathname === "/api/benchmark/outbox" && req.method === "GET") {
580
+ const context = extractRecord({
581
+ benchmark: requestUrl.searchParams.get("benchmark") ?? undefined,
582
+ task_id: requestUrl.searchParams.get("task_id") ??
583
+ requestUrl.searchParams.get("taskId") ??
584
+ undefined,
585
+ });
586
+ const taskId = extractTaskId(context);
587
+ const benchmark = extractBenchmarkName(context);
588
+ const session = resolveSession(taskId, benchmark, false) ??
589
+ activeSession ??
590
+ resolveSession("default-task", "unknown", false);
591
+ if (!session) {
592
+ res.writeHead(200, { "Content-Type": "application/json" });
593
+ res.end(JSON.stringify({ status: "ok", outbox: [] }));
594
+ return;
595
+ }
596
+ const key = sessionKey(session);
597
+ res.writeHead(200, { "Content-Type": "application/json" });
598
+ res.end(JSON.stringify({
599
+ status: "ok",
600
+ benchmark: session.benchmark,
601
+ task_id: session.taskId,
602
+ room_id: session.roomId,
603
+ outbox: outboxBySession.get(key) ?? [],
604
+ }));
605
+ return;
606
+ }
607
+ if (pathname === "/api/benchmark/trajectory" && req.method === "GET") {
608
+ const context = extractRecord({
609
+ benchmark: requestUrl.searchParams.get("benchmark") ?? undefined,
610
+ task_id: requestUrl.searchParams.get("task_id") ??
611
+ requestUrl.searchParams.get("taskId") ??
612
+ undefined,
613
+ });
614
+ const taskId = extractTaskId(context);
615
+ const benchmark = extractBenchmarkName(context);
616
+ const session = resolveSession(taskId, benchmark, false) ??
617
+ activeSession ??
618
+ resolveSession("default-task", "unknown", false);
619
+ if (!session) {
620
+ res.writeHead(200, { "Content-Type": "application/json" });
621
+ res.end(JSON.stringify({
622
+ status: "ok",
623
+ steps: [],
624
+ outbox: [],
625
+ }));
626
+ return;
627
+ }
628
+ const key = sessionKey(session);
629
+ res.writeHead(200, { "Content-Type": "application/json" });
630
+ res.end(JSON.stringify({
631
+ status: "ok",
632
+ benchmark: session.benchmark,
633
+ task_id: session.taskId,
634
+ room_id: session.roomId,
635
+ relay_room_id: session.relayRoomId,
636
+ steps: trajectoriesBySession.get(key) ?? [],
637
+ outbox: outboxBySession.get(key) ?? [],
638
+ }));
639
+ return;
640
+ }
641
+ if (pathname === "/api/benchmark/message" && req.method === "POST") {
642
+ let body = "";
643
+ req.on("data", (chunk) => (body += chunk));
644
+ req.on("end", async () => {
645
+ try {
646
+ const parsed = JSON.parse(body);
647
+ const text = typeof parsed.text === "string" ? parsed.text.trim() : "";
648
+ if (!text) {
649
+ throw new Error("Request body must include non-empty string `text`");
650
+ }
651
+ const context = extractRecord(parsed.context);
652
+ const taskId = extractTaskId(context);
653
+ const benchmark = extractBenchmarkName(context);
654
+ const session = resolveSession(taskId, benchmark, true) ??
655
+ activeSession ??
656
+ resolveSession("default-task", "unknown", true);
657
+ if (!session) {
658
+ throw new Error("Failed to resolve benchmark session");
659
+ }
660
+ const key = sessionKey(session);
661
+ const trajectory = trajectoriesBySession.get(key) ?? [];
662
+ const startedAt = Date.now();
663
+ await ensureBenchmarkSessionContext(runtime, session);
664
+ const composedPrompt = composeBenchmarkPrompt({
665
+ text,
666
+ context,
667
+ image: parsed.image,
668
+ mode: messageMode,
669
+ });
670
+ const incomingMessage = {
671
+ id: stringToUuid(`benchmark-msg:${Date.now()}:${Math.random()}`),
672
+ content: {
673
+ text: composedPrompt,
674
+ source: "benchmark",
675
+ metadata: {
676
+ benchmark: session.benchmark,
677
+ taskId: session.taskId,
678
+ ...(context ? { contextJson: JSON.stringify(context) } : {}),
679
+ },
680
+ },
681
+ entityId: session.userEntityId,
682
+ agentId: runtime.agentId,
683
+ roomId: session.roomId,
684
+ createdAt: Date.now(),
685
+ };
686
+ if (!hasTextGenerationModel) {
687
+ throw new Error("No text generation model provider is configured for benchmark runtime");
688
+ }
689
+ let responseText = "";
690
+ let thought = null;
691
+ let actions = [];
692
+ let params = {};
693
+ if (messageMode === "direct-model") {
694
+ responseText = (await runtime.useModel(ModelType.TEXT_SMALL, {
695
+ prompt: composedPrompt,
696
+ maxTokens: 1024,
697
+ temperature: 0,
698
+ })).trim();
699
+ }
700
+ else {
701
+ const callbackTexts = [];
702
+ const callback = async (content) => {
703
+ if (typeof content.text === "string" &&
704
+ content.text.trim().length > 0) {
705
+ callbackTexts.push(content.text.trim());
706
+ }
707
+ return [];
708
+ };
709
+ if (!runtime.messageService) {
710
+ throw new Error("Runtime message service is not available");
711
+ }
712
+ const result = await runtime.messageService.handleMessage(runtime, incomingMessage, callback);
713
+ responseText =
714
+ typeof result.responseContent?.text === "string"
715
+ ? result.responseContent.text
716
+ : callbackTexts.join("\n\n");
717
+ thought =
718
+ typeof result.responseContent?.thought === "string"
719
+ ? result.responseContent.thought
720
+ : null;
721
+ actions = coerceActions(result.responseContent?.actions);
722
+ params = coerceParams(result.responseContent?.params);
723
+ }
724
+ const finishedAt = Date.now();
725
+ trajectory.push({
726
+ step: trajectory.length + 1,
727
+ startedAt,
728
+ finishedAt,
729
+ inputText: text,
730
+ promptText: composedPrompt,
731
+ context,
732
+ thought,
733
+ responseText,
734
+ actions,
735
+ params,
736
+ });
737
+ trajectoriesBySession.set(key, trajectory);
738
+ res.writeHead(200, { "Content-Type": "application/json" });
739
+ res.end(JSON.stringify({
740
+ text: responseText,
741
+ thought,
742
+ actions,
743
+ params,
744
+ benchmark: session.benchmark,
745
+ task_id: session.taskId,
746
+ room_id: session.roomId,
747
+ trajectory_step: trajectory.length,
748
+ }));
749
+ }
750
+ catch (err) {
751
+ const errorMessage = err instanceof Error ? err.message : String(err);
752
+ const errorDetail = err instanceof Error && err.stack
753
+ ? err.stack
754
+ : formatUnknownError(err);
755
+ elizaLogger.error(`[bench] Request error: ${errorDetail}`);
756
+ res.writeHead(500, { "Content-Type": "application/json" });
757
+ res.end(JSON.stringify({ error: errorMessage }));
758
+ }
759
+ });
760
+ return;
761
+ }
762
+ res.writeHead(404);
763
+ res.end("Not Found");
764
+ });
765
+ server.listen(port, () => {
766
+ elizaLogger.info(`[bench] Autonomous benchmark server listening on port ${port}`);
767
+ console.log(`AUTONOMOUS_BENCH_READY port=${port}`);
768
+ });
769
+ }
770
+ startBenchmarkServer().catch((err) => {
771
+ console.error("Failed to start benchmark server:", err);
772
+ process.exit(1);
773
+ });