@elizaos/agent 2.0.0-alpha.98 → 2.0.0-beta.2

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 (1227) hide show
  1. package/package.json +78 -923
  2. package/packages/agent/src/actions/connector-resolver.d.ts +74 -0
  3. package/packages/agent/src/actions/connector-resolver.d.ts.map +1 -0
  4. package/packages/agent/src/actions/connector-resolver.js +253 -0
  5. package/packages/agent/src/actions/contact.d.ts +35 -0
  6. package/packages/agent/src/actions/contact.d.ts.map +1 -0
  7. package/packages/agent/src/actions/contact.js +1698 -0
  8. package/packages/agent/src/actions/context-signal-lexicon.d.ts +17 -0
  9. package/packages/agent/src/actions/context-signal-lexicon.d.ts.map +1 -0
  10. package/packages/agent/src/actions/context-signal-lexicon.js +206 -0
  11. package/packages/agent/src/actions/context-signal.d.ts +48 -0
  12. package/packages/agent/src/actions/context-signal.d.ts.map +1 -0
  13. package/packages/agent/src/actions/context-signal.js +153 -0
  14. package/packages/agent/src/actions/database.d.ts +20 -0
  15. package/packages/agent/src/actions/database.d.ts.map +1 -0
  16. package/packages/agent/src/actions/database.js +671 -0
  17. package/packages/agent/src/actions/extract-page.d.ts +3 -0
  18. package/packages/agent/src/actions/extract-page.d.ts.map +1 -0
  19. package/packages/agent/src/actions/extract-page.js +153 -0
  20. package/packages/agent/src/actions/extract-params.d.ts +87 -0
  21. package/packages/agent/src/actions/extract-params.d.ts.map +1 -0
  22. package/packages/agent/src/actions/extract-params.js +187 -0
  23. package/packages/agent/src/actions/grounded-action-reply.d.ts +22 -0
  24. package/packages/agent/src/actions/grounded-action-reply.d.ts.map +1 -0
  25. package/packages/agent/src/actions/grounded-action-reply.js +287 -0
  26. package/packages/agent/src/actions/index.d.ts +22 -0
  27. package/packages/agent/src/actions/index.d.ts.map +1 -0
  28. package/packages/agent/src/actions/index.js +21 -0
  29. package/packages/agent/src/actions/logs.d.ts +11 -0
  30. package/packages/agent/src/actions/logs.d.ts.map +1 -0
  31. package/packages/agent/src/actions/logs.js +300 -0
  32. package/packages/agent/src/actions/media.d.ts +9 -0
  33. package/packages/agent/src/actions/media.d.ts.map +1 -0
  34. package/packages/agent/src/actions/media.js +135 -0
  35. package/packages/agent/src/actions/memories.d.ts +9 -0
  36. package/packages/agent/src/actions/memories.d.ts.map +1 -0
  37. package/packages/agent/src/actions/memories.js +369 -0
  38. package/packages/agent/src/actions/page-action-groups.d.ts +17 -0
  39. package/packages/agent/src/actions/page-action-groups.d.ts.map +1 -0
  40. package/packages/agent/src/actions/page-action-groups.js +413 -0
  41. package/packages/agent/src/actions/plugin.d.ts +32 -0
  42. package/packages/agent/src/actions/plugin.d.ts.map +1 -0
  43. package/packages/agent/src/actions/plugin.js +780 -0
  44. package/packages/agent/src/actions/recent-conversation-texts.d.ts +9 -0
  45. package/packages/agent/src/actions/recent-conversation-texts.d.ts.map +1 -0
  46. package/packages/agent/src/actions/recent-conversation-texts.js +76 -0
  47. package/packages/agent/src/actions/runtime.d.ts +19 -0
  48. package/packages/agent/src/actions/runtime.d.ts.map +1 -0
  49. package/packages/agent/src/actions/runtime.js +517 -0
  50. package/packages/agent/src/actions/settings-actions.d.ts +19 -0
  51. package/packages/agent/src/actions/settings-actions.d.ts.map +1 -0
  52. package/packages/agent/src/actions/settings-actions.js +478 -0
  53. package/packages/agent/src/actions/skill-command.d.ts +20 -0
  54. package/packages/agent/src/actions/skill-command.d.ts.map +1 -0
  55. package/packages/agent/src/actions/skill-command.js +170 -0
  56. package/packages/agent/src/actions/stream-control.d.ts +13 -8
  57. package/packages/agent/src/actions/stream-control.d.ts.map +1 -1
  58. package/packages/agent/src/actions/stream-control.js +127 -318
  59. package/packages/agent/src/actions/terminal.d.ts +4 -3
  60. package/packages/agent/src/actions/terminal.d.ts.map +1 -1
  61. package/packages/agent/src/actions/terminal.js +247 -96
  62. package/packages/agent/src/actions/trajectories.d.ts +8 -0
  63. package/packages/agent/src/actions/trajectories.d.ts.map +1 -0
  64. package/packages/agent/src/actions/trajectories.js +135 -0
  65. package/packages/agent/src/actions/trigger.d.ts +5 -0
  66. package/packages/agent/src/actions/trigger.d.ts.map +1 -0
  67. package/packages/agent/src/actions/trigger.js +514 -0
  68. package/packages/agent/src/api/accounts-routes.d.ts +38 -0
  69. package/packages/agent/src/api/accounts-routes.d.ts.map +1 -0
  70. package/packages/agent/src/api/accounts-routes.js +927 -0
  71. package/packages/agent/src/api/agent-admin-routes.d.ts +6 -5
  72. package/packages/agent/src/api/agent-admin-routes.d.ts.map +1 -1
  73. package/packages/agent/src/api/agent-admin-routes.js +106 -9
  74. package/packages/agent/src/api/agent-lifecycle-routes.d.ts +2 -2
  75. package/packages/agent/src/api/agent-lifecycle-routes.d.ts.map +1 -1
  76. package/packages/agent/src/api/agent-lifecycle-routes.js +22 -1
  77. package/packages/agent/src/api/agent-model.d.ts +2 -9
  78. package/packages/agent/src/api/agent-model.d.ts.map +1 -1
  79. package/packages/agent/src/api/agent-model.js +50 -3
  80. package/packages/agent/src/api/agent-status-routes.d.ts +75 -0
  81. package/packages/agent/src/api/agent-status-routes.d.ts.map +1 -0
  82. package/packages/agent/src/api/agent-status-routes.js +264 -0
  83. package/packages/agent/src/api/agent-transfer-routes.d.ts +1 -1
  84. package/packages/agent/src/api/agent-transfer-routes.js +1 -1
  85. package/packages/agent/src/api/app-package-routes.d.ts +7 -0
  86. package/packages/agent/src/api/app-package-routes.d.ts.map +1 -0
  87. package/packages/agent/src/api/app-package-routes.js +59 -0
  88. package/packages/agent/src/api/apps-routes.d.ts +16 -3
  89. package/packages/agent/src/api/apps-routes.d.ts.map +1 -1
  90. package/packages/agent/src/api/apps-routes.js +885 -15
  91. package/packages/agent/src/api/auth-routes.d.ts +1 -1
  92. package/packages/agent/src/api/auth-routes.d.ts.map +1 -1
  93. package/packages/agent/src/api/auth-routes.js +67 -2
  94. package/packages/agent/src/api/avatar-routes.d.ts +11 -0
  95. package/packages/agent/src/api/avatar-routes.d.ts.map +1 -0
  96. package/packages/agent/src/api/avatar-routes.js +205 -0
  97. package/packages/agent/src/api/binance-skill-helpers.d.ts +21 -0
  98. package/packages/agent/src/api/binance-skill-helpers.d.ts.map +1 -0
  99. package/packages/agent/src/api/binance-skill-helpers.js +745 -0
  100. package/packages/agent/src/api/bug-report-routes.d.ts +5 -2
  101. package/packages/agent/src/api/bug-report-routes.d.ts.map +1 -1
  102. package/packages/agent/src/api/bug-report-routes.js +155 -8
  103. package/packages/agent/src/api/build-variant-routes.d.ts +27 -0
  104. package/packages/agent/src/api/build-variant-routes.d.ts.map +1 -0
  105. package/packages/agent/src/api/build-variant-routes.js +27 -0
  106. package/packages/agent/src/api/character-routes.d.ts +7 -5
  107. package/packages/agent/src/api/character-routes.d.ts.map +1 -1
  108. package/packages/agent/src/api/character-routes.js +100 -49
  109. package/packages/agent/src/api/chat-augmentation.d.ts +70 -0
  110. package/packages/agent/src/api/chat-augmentation.d.ts.map +1 -0
  111. package/packages/agent/src/api/chat-augmentation.js +464 -0
  112. package/packages/agent/src/api/chat-routes.d.ts +124 -0
  113. package/packages/agent/src/api/chat-routes.d.ts.map +1 -0
  114. package/packages/agent/src/api/chat-routes.js +1841 -0
  115. package/packages/agent/src/api/chat-text-helpers.d.ts +11 -0
  116. package/packages/agent/src/api/chat-text-helpers.d.ts.map +1 -0
  117. package/packages/agent/src/api/chat-text-helpers.js +184 -0
  118. package/packages/agent/src/api/client-chat-admin.d.ts +19 -0
  119. package/packages/agent/src/api/client-chat-admin.d.ts.map +1 -0
  120. package/packages/agent/src/api/client-chat-admin.js +27 -0
  121. package/packages/agent/src/api/cloud-route-registry.d.ts +22 -0
  122. package/packages/agent/src/api/cloud-route-registry.d.ts.map +1 -0
  123. package/packages/agent/src/api/cloud-route-registry.js +20 -0
  124. package/packages/agent/src/api/compat-utils.d.ts.map +1 -1
  125. package/packages/agent/src/api/compat-utils.js +1 -5
  126. package/packages/agent/src/api/config-env.d.ts +43 -0
  127. package/packages/agent/src/api/config-env.d.ts.map +1 -0
  128. package/packages/agent/src/api/config-env.js +284 -0
  129. package/packages/agent/src/api/config-routes.d.ts +40 -0
  130. package/packages/agent/src/api/config-routes.d.ts.map +1 -0
  131. package/packages/agent/src/api/config-routes.js +429 -0
  132. package/packages/agent/src/api/connector-account-routes.d.ts +25 -0
  133. package/packages/agent/src/api/connector-account-routes.d.ts.map +1 -0
  134. package/packages/agent/src/api/connector-account-routes.js +740 -0
  135. package/packages/agent/src/api/connector-health.d.ts +9 -1
  136. package/packages/agent/src/api/connector-health.d.ts.map +1 -1
  137. package/packages/agent/src/api/connector-health.js +33 -10
  138. package/packages/agent/src/api/connector-oauth-callback-auth.d.ts +2 -0
  139. package/packages/agent/src/api/connector-oauth-callback-auth.d.ts.map +1 -0
  140. package/packages/agent/src/api/connector-oauth-callback-auth.js +4 -0
  141. package/packages/agent/src/api/connector-routes.d.ts +36 -0
  142. package/packages/agent/src/api/connector-routes.d.ts.map +1 -0
  143. package/packages/agent/src/api/connector-routes.js +184 -0
  144. package/packages/agent/src/api/conversation-metadata.d.ts +10 -0
  145. package/packages/agent/src/api/conversation-metadata.d.ts.map +1 -0
  146. package/packages/agent/src/api/conversation-metadata.js +107 -0
  147. package/packages/agent/src/api/conversation-routes.d.ts +43 -0
  148. package/packages/agent/src/api/conversation-routes.d.ts.map +1 -0
  149. package/packages/agent/src/api/conversation-routes.js +1208 -0
  150. package/packages/agent/src/api/coordinator-wiring.d.ts +4 -4
  151. package/packages/agent/src/api/coordinator-wiring.d.ts.map +1 -1
  152. package/packages/agent/src/api/coordinator-wiring.js +13 -6
  153. package/packages/agent/src/api/credit-detection.d.ts.map +1 -1
  154. package/packages/agent/src/api/credit-detection.js +12 -6
  155. package/packages/agent/src/api/curated-skills-routes.d.ts +22 -0
  156. package/packages/agent/src/api/curated-skills-routes.d.ts.map +1 -0
  157. package/packages/agent/src/api/curated-skills-routes.js +295 -0
  158. package/packages/agent/src/api/database.d.ts +2 -0
  159. package/packages/agent/src/api/database.d.ts.map +1 -1
  160. package/packages/agent/src/api/database.js +129 -8
  161. package/packages/agent/src/api/diagnostics-routes.d.ts +15 -2
  162. package/packages/agent/src/api/diagnostics-routes.d.ts.map +1 -1
  163. package/packages/agent/src/api/diagnostics-routes.js +145 -21
  164. package/packages/agent/src/api/documents-routes.d.ts +9 -0
  165. package/packages/agent/src/api/documents-routes.d.ts.map +1 -0
  166. package/packages/agent/src/api/documents-routes.js +26 -0
  167. package/packages/agent/src/api/documents-service-loader.d.ts +76 -0
  168. package/packages/agent/src/api/documents-service-loader.d.ts.map +1 -0
  169. package/packages/agent/src/api/{knowledge-service-loader.js → documents-service-loader.js} +10 -8
  170. package/packages/agent/src/api/health-routes.d.ts +46 -0
  171. package/packages/agent/src/api/health-routes.d.ts.map +1 -0
  172. package/packages/agent/src/api/health-routes.js +450 -0
  173. package/packages/agent/src/api/inbox-routes.d.ts +47 -0
  174. package/packages/agent/src/api/inbox-routes.d.ts.map +1 -0
  175. package/packages/agent/src/api/inbox-routes.js +1579 -0
  176. package/packages/agent/src/api/index.d.ts +45 -60
  177. package/packages/agent/src/api/index.d.ts.map +1 -1
  178. package/packages/agent/src/api/index.js +49 -59
  179. package/packages/agent/src/api/memory-routes.d.ts +1 -1
  180. package/packages/agent/src/api/memory-routes.d.ts.map +1 -1
  181. package/packages/agent/src/api/memory-routes.js +274 -41
  182. package/packages/agent/src/api/misc-routes.d.ts +64 -0
  183. package/packages/agent/src/api/misc-routes.d.ts.map +1 -0
  184. package/packages/agent/src/api/misc-routes.js +569 -0
  185. package/packages/agent/src/api/mobile-optional-routes.d.ts +3 -0
  186. package/packages/agent/src/api/mobile-optional-routes.d.ts.map +1 -0
  187. package/packages/agent/src/api/mobile-optional-routes.js +91 -0
  188. package/packages/agent/src/api/model-provider-helpers.d.ts +68 -0
  189. package/packages/agent/src/api/model-provider-helpers.d.ts.map +1 -0
  190. package/packages/agent/src/api/model-provider-helpers.js +623 -0
  191. package/packages/agent/src/api/models-routes.d.ts +1 -1
  192. package/packages/agent/src/api/models-routes.d.ts.map +1 -1
  193. package/packages/agent/src/api/music-player-route-fallback.d.ts +16 -0
  194. package/packages/agent/src/api/music-player-route-fallback.d.ts.map +1 -0
  195. package/packages/agent/src/api/music-player-route-fallback.js +65 -0
  196. package/packages/agent/src/api/nfa-routes.d.ts +2 -1
  197. package/packages/agent/src/api/nfa-routes.d.ts.map +1 -1
  198. package/packages/agent/src/api/nfa-routes.js +10 -10
  199. package/packages/agent/src/api/onboarding-routes.d.ts +50 -0
  200. package/packages/agent/src/api/onboarding-routes.d.ts.map +1 -0
  201. package/packages/agent/src/api/onboarding-routes.js +588 -0
  202. package/packages/agent/src/api/owner-contact-helpers.d.ts +39 -0
  203. package/packages/agent/src/api/owner-contact-helpers.d.ts.map +1 -0
  204. package/packages/agent/src/api/owner-contact-helpers.js +47 -0
  205. package/packages/agent/src/api/parse-action-block.d.ts +20 -3
  206. package/packages/agent/src/api/parse-action-block.d.ts.map +1 -1
  207. package/packages/agent/src/api/parse-action-block.js +77 -6
  208. package/packages/agent/src/api/permission-request-prompt.d.ts +19 -0
  209. package/packages/agent/src/api/permission-request-prompt.d.ts.map +1 -0
  210. package/packages/agent/src/api/permission-request-prompt.js +53 -0
  211. package/packages/agent/src/api/permissions-routes-extra.d.ts +30 -0
  212. package/packages/agent/src/api/permissions-routes-extra.d.ts.map +1 -0
  213. package/packages/agent/src/api/permissions-routes-extra.js +78 -0
  214. package/packages/agent/src/api/permissions-routes.d.ts +6 -11
  215. package/packages/agent/src/api/permissions-routes.d.ts.map +1 -1
  216. package/packages/agent/src/api/permissions-routes.js +230 -27
  217. package/packages/agent/src/api/plugin-discovery-helpers.d.ts +147 -0
  218. package/packages/agent/src/api/plugin-discovery-helpers.d.ts.map +1 -0
  219. package/packages/agent/src/api/plugin-discovery-helpers.js +1118 -0
  220. package/packages/agent/src/api/plugin-routes.d.ts +144 -0
  221. package/packages/agent/src/api/plugin-routes.d.ts.map +1 -0
  222. package/packages/agent/src/api/plugin-routes.js +1285 -0
  223. package/packages/agent/src/api/plugin-runtime-apply.d.ts +31 -0
  224. package/packages/agent/src/api/plugin-runtime-apply.d.ts.map +1 -0
  225. package/packages/agent/src/api/plugin-runtime-apply.js +217 -0
  226. package/packages/agent/src/api/plugin-validation.d.ts.map +1 -1
  227. package/packages/agent/src/api/plugin-validation.js +4 -2
  228. package/packages/agent/src/api/provider-switch-config.d.ts +32 -7
  229. package/packages/agent/src/api/provider-switch-config.d.ts.map +1 -1
  230. package/packages/agent/src/api/provider-switch-config.js +627 -225
  231. package/packages/agent/src/api/provider-switch-routes.d.ts +29 -0
  232. package/packages/agent/src/api/provider-switch-routes.d.ts.map +1 -0
  233. package/packages/agent/src/api/provider-switch-routes.js +142 -0
  234. package/packages/agent/src/api/rate-limiter.d.ts +29 -0
  235. package/packages/agent/src/api/rate-limiter.d.ts.map +1 -0
  236. package/packages/agent/src/api/rate-limiter.js +57 -0
  237. package/packages/agent/src/api/registry-routes.d.ts +5 -2
  238. package/packages/agent/src/api/registry-routes.d.ts.map +1 -1
  239. package/packages/agent/src/api/registry-routes.js +13 -5
  240. package/packages/agent/src/api/registry-service.d.ts +1 -1
  241. package/packages/agent/src/api/registry-service.d.ts.map +1 -1
  242. package/packages/agent/src/api/relationships-routes.d.ts +7 -0
  243. package/packages/agent/src/api/relationships-routes.d.ts.map +1 -0
  244. package/packages/agent/src/api/relationships-routes.js +287 -0
  245. package/packages/agent/src/api/runtime-plugin-routes.d.ts +27 -0
  246. package/packages/agent/src/api/runtime-plugin-routes.d.ts.map +1 -0
  247. package/packages/agent/src/api/runtime-plugin-routes.js +203 -0
  248. package/packages/agent/src/api/server-auth.d.ts +46 -0
  249. package/packages/agent/src/api/server-auth.d.ts.map +1 -0
  250. package/packages/agent/src/api/server-auth.js +507 -0
  251. package/packages/agent/src/api/server-autonomy-helpers.d.ts +5 -0
  252. package/packages/agent/src/api/server-autonomy-helpers.d.ts.map +1 -0
  253. package/packages/agent/src/api/server-autonomy-helpers.js +28 -0
  254. package/packages/agent/src/api/server-helpers-auth.d.ts +41 -0
  255. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -0
  256. package/packages/agent/src/api/server-helpers-auth.js +627 -0
  257. package/packages/agent/src/api/server-helpers-config.d.ts +37 -0
  258. package/packages/agent/src/api/server-helpers-config.d.ts.map +1 -0
  259. package/packages/agent/src/api/server-helpers-config.js +293 -0
  260. package/packages/agent/src/api/server-helpers-fetch.d.ts +15 -0
  261. package/packages/agent/src/api/server-helpers-fetch.d.ts.map +1 -0
  262. package/packages/agent/src/api/server-helpers-fetch.js +149 -0
  263. package/packages/agent/src/api/server-helpers-mcp.d.ts +12 -0
  264. package/packages/agent/src/api/server-helpers-mcp.d.ts.map +1 -0
  265. package/packages/agent/src/api/server-helpers-mcp.js +315 -0
  266. package/packages/agent/src/api/server-helpers-plugin.d.ts +13 -0
  267. package/packages/agent/src/api/server-helpers-plugin.d.ts.map +1 -0
  268. package/packages/agent/src/api/server-helpers-plugin.js +160 -0
  269. package/packages/agent/src/api/server-helpers-swarm.d.ts +101 -0
  270. package/packages/agent/src/api/server-helpers-swarm.d.ts.map +1 -0
  271. package/packages/agent/src/api/server-helpers-swarm.js +646 -0
  272. package/packages/agent/src/api/server-helpers-wallet.d.ts +18 -0
  273. package/packages/agent/src/api/server-helpers-wallet.d.ts.map +1 -0
  274. package/packages/agent/src/api/server-helpers-wallet.js +177 -0
  275. package/packages/agent/src/api/server-helpers.d.ts +96 -0
  276. package/packages/agent/src/api/server-helpers.d.ts.map +1 -0
  277. package/packages/agent/src/api/server-helpers.js +595 -0
  278. package/packages/agent/src/api/server-route-dispatch.d.ts +30 -0
  279. package/packages/agent/src/api/server-route-dispatch.d.ts.map +1 -0
  280. package/packages/agent/src/api/server-route-dispatch.js +103 -0
  281. package/packages/agent/src/api/server-startup.d.ts +16 -0
  282. package/packages/agent/src/api/server-startup.d.ts.map +1 -0
  283. package/packages/agent/src/api/server-startup.js +14 -0
  284. package/packages/agent/src/api/server-types.d.ts +232 -0
  285. package/packages/agent/src/api/server-types.d.ts.map +1 -0
  286. package/packages/agent/src/api/server-types.js +6 -0
  287. package/packages/agent/src/api/server.d.ts +26 -383
  288. package/packages/agent/src/api/server.d.ts.map +1 -1
  289. package/packages/agent/src/api/server.js +2022 -12484
  290. package/packages/agent/src/api/skill-discovery-helpers.d.ts +80 -0
  291. package/packages/agent/src/api/skill-discovery-helpers.d.ts.map +1 -0
  292. package/packages/agent/src/api/skill-discovery-helpers.js +385 -0
  293. package/packages/agent/src/api/skills-routes.d.ts +32 -0
  294. package/packages/agent/src/api/skills-routes.d.ts.map +1 -0
  295. package/packages/agent/src/api/skills-routes.js +978 -0
  296. package/packages/agent/src/api/static-file-server.d.ts +19 -0
  297. package/packages/agent/src/api/static-file-server.d.ts.map +1 -0
  298. package/packages/agent/src/api/static-file-server.js +234 -0
  299. package/packages/agent/src/api/subscription-routes.d.ts +6 -6
  300. package/packages/agent/src/api/subscription-routes.d.ts.map +1 -1
  301. package/packages/agent/src/api/subscription-routes.js +84 -14
  302. package/packages/agent/src/api/task-agent-message-routing.d.ts +10 -0
  303. package/packages/agent/src/api/task-agent-message-routing.d.ts.map +1 -0
  304. package/packages/agent/src/api/task-agent-message-routing.js +62 -0
  305. package/packages/agent/src/api/terminal-execution-routing.d.ts +14 -0
  306. package/packages/agent/src/api/terminal-execution-routing.d.ts.map +1 -0
  307. package/packages/agent/src/api/terminal-execution-routing.js +23 -0
  308. package/packages/agent/src/api/terminal-run-limits.d.ts.map +1 -1
  309. package/packages/agent/src/api/terminal-run-limits.js +3 -5
  310. package/packages/agent/src/api/trade-safety.d.ts +35 -0
  311. package/packages/agent/src/api/trade-safety.d.ts.map +1 -0
  312. package/packages/agent/src/api/trade-safety.js +62 -0
  313. package/packages/agent/src/api/training-service-like.d.ts +3 -2
  314. package/packages/agent/src/api/training-service-like.d.ts.map +1 -1
  315. package/packages/agent/src/api/travel-provider-relay-routes.d.ts +9 -0
  316. package/packages/agent/src/api/travel-provider-relay-routes.d.ts.map +1 -0
  317. package/packages/agent/src/api/travel-provider-relay-routes.js +143 -0
  318. package/packages/agent/src/api/tx-service.d.ts +6 -0
  319. package/packages/agent/src/api/tx-service.d.ts.map +1 -1
  320. package/packages/agent/src/api/tx-service.js +64 -3
  321. package/packages/agent/src/api/update-routes.d.ts +19 -0
  322. package/packages/agent/src/api/update-routes.d.ts.map +1 -0
  323. package/packages/agent/src/api/update-routes.js +54 -0
  324. package/packages/agent/src/api/wallet-capability.d.ts +33 -0
  325. package/packages/agent/src/api/wallet-capability.d.ts.map +1 -0
  326. package/packages/agent/src/api/wallet-capability.js +193 -0
  327. package/packages/agent/src/api/wallet-dex-prices.d.ts +0 -18
  328. package/packages/agent/src/api/wallet-dex-prices.d.ts.map +1 -1
  329. package/packages/agent/src/api/wallet-dex-prices.js +14 -38
  330. package/packages/agent/src/api/wallet-env-sync.d.ts +2 -0
  331. package/packages/agent/src/api/wallet-env-sync.d.ts.map +1 -0
  332. package/packages/agent/src/api/wallet-env-sync.js +108 -0
  333. package/packages/agent/src/api/wallet-evm-balance.d.ts +8 -1
  334. package/packages/agent/src/api/wallet-evm-balance.d.ts.map +1 -1
  335. package/packages/agent/src/api/wallet-evm-balance.js +5 -5
  336. package/packages/agent/src/api/wallet-routes.d.ts +20 -12
  337. package/packages/agent/src/api/wallet-routes.d.ts.map +1 -1
  338. package/packages/agent/src/api/wallet-routes.js +593 -37
  339. package/packages/agent/src/api/wallet-rpc.d.ts +14 -11
  340. package/packages/agent/src/api/wallet-rpc.d.ts.map +1 -1
  341. package/packages/agent/src/api/wallet-rpc.js +108 -38
  342. package/packages/agent/src/api/wallet-trading-profile.d.ts +2 -22
  343. package/packages/agent/src/api/wallet-trading-profile.d.ts.map +1 -1
  344. package/packages/agent/src/api/wallet-trading-profile.js +27 -30
  345. package/packages/agent/src/api/wallet.d.ts +38 -5
  346. package/packages/agent/src/api/wallet.d.ts.map +1 -1
  347. package/packages/agent/src/api/wallet.js +469 -202
  348. package/packages/agent/src/api/workbench-helpers.d.ts +39 -0
  349. package/packages/agent/src/api/workbench-helpers.d.ts.map +1 -0
  350. package/packages/agent/src/api/workbench-helpers.js +137 -0
  351. package/packages/agent/src/api/workbench-routes.d.ts +43 -0
  352. package/packages/agent/src/api/workbench-routes.d.ts.map +1 -0
  353. package/packages/agent/src/api/workbench-routes.js +265 -0
  354. package/packages/agent/src/api/x-relay-routes.d.ts +27 -0
  355. package/packages/agent/src/api/x-relay-routes.d.ts.map +1 -0
  356. package/packages/agent/src/api/x-relay-routes.js +134 -0
  357. package/packages/agent/src/auth/account-storage.d.ts +48 -0
  358. package/packages/agent/src/auth/account-storage.d.ts.map +1 -0
  359. package/packages/agent/src/auth/account-storage.js +229 -0
  360. package/packages/agent/src/auth/anthropic.d.ts +3 -4
  361. package/packages/agent/src/auth/anthropic.d.ts.map +1 -1
  362. package/packages/agent/src/auth/anthropic.js +5 -7
  363. package/packages/agent/src/auth/claude-code-stealth-preload.d.ts +2 -0
  364. package/packages/agent/src/auth/claude-code-stealth-preload.d.ts.map +1 -0
  365. package/packages/agent/src/auth/claude-code-stealth-preload.js +2 -0
  366. package/packages/agent/src/auth/claude-code-stealth.d.ts.map +1 -1
  367. package/packages/agent/src/auth/claude-code-stealth.js +21 -9
  368. package/packages/agent/src/auth/credentials.d.ts +62 -17
  369. package/packages/agent/src/auth/credentials.d.ts.map +1 -1
  370. package/packages/agent/src/auth/credentials.js +492 -121
  371. package/packages/agent/src/auth/index.d.ts +7 -6
  372. package/packages/agent/src/auth/index.d.ts.map +1 -1
  373. package/packages/agent/src/auth/index.js +7 -3
  374. package/packages/agent/src/auth/oauth-flow.d.ts +106 -0
  375. package/packages/agent/src/auth/oauth-flow.d.ts.map +1 -0
  376. package/packages/agent/src/auth/oauth-flow.js +349 -0
  377. package/packages/agent/src/auth/openai-codex.d.ts +2 -2
  378. package/packages/agent/src/auth/openai-codex.d.ts.map +1 -1
  379. package/packages/agent/src/auth/openai-codex.js +17 -13
  380. package/packages/agent/src/auth/refresh-mutex.d.ts +19 -0
  381. package/packages/agent/src/auth/refresh-mutex.d.ts.map +1 -0
  382. package/packages/agent/src/auth/refresh-mutex.js +33 -0
  383. package/packages/agent/src/auth/types.d.ts +42 -2
  384. package/packages/agent/src/auth/types.d.ts.map +1 -1
  385. package/packages/agent/src/auth/types.js +142 -1
  386. package/packages/agent/src/auth/vendor/pi-oauth/anthropic-login.d.ts +48 -0
  387. package/packages/agent/src/auth/vendor/pi-oauth/anthropic-login.d.ts.map +1 -0
  388. package/packages/agent/src/auth/vendor/pi-oauth/anthropic-login.js +113 -0
  389. package/packages/agent/src/auth/vendor/pi-oauth/openai-codex-login.d.ts +26 -0
  390. package/packages/agent/src/auth/vendor/pi-oauth/openai-codex-login.d.ts.map +1 -0
  391. package/packages/agent/src/auth/vendor/pi-oauth/openai-codex-login.js +343 -0
  392. package/packages/agent/src/auth/vendor/pi-oauth/pkce.d.ts +9 -0
  393. package/packages/agent/src/auth/vendor/pi-oauth/pkce.d.ts.map +1 -0
  394. package/packages/agent/src/auth/vendor/pi-oauth/pkce.js +21 -0
  395. package/packages/agent/src/autonomy/index.d.ts +48 -0
  396. package/packages/agent/src/autonomy/index.d.ts.map +1 -0
  397. package/packages/agent/src/autonomy/index.js +344 -0
  398. package/packages/agent/src/awareness/index.d.ts +2 -0
  399. package/packages/agent/src/awareness/index.d.ts.map +1 -0
  400. package/packages/agent/src/awareness/index.js +1 -0
  401. package/packages/agent/src/awareness/registry.d.ts +1 -26
  402. package/packages/agent/src/awareness/registry.d.ts.map +1 -1
  403. package/packages/agent/src/awareness/registry.js +1 -161
  404. package/packages/agent/src/bin.js +46 -1
  405. package/packages/agent/src/cli/benchmark.d.ts +10 -0
  406. package/packages/agent/src/cli/benchmark.d.ts.map +1 -0
  407. package/packages/agent/src/cli/benchmark.js +293 -0
  408. package/packages/agent/src/cli/index.d.ts.map +1 -1
  409. package/packages/agent/src/cli/index.js +58 -4
  410. package/packages/agent/src/config/config.d.ts +2 -2
  411. package/packages/agent/src/config/config.d.ts.map +1 -1
  412. package/packages/agent/src/config/config.js +185 -18
  413. package/packages/agent/src/config/env-vars.d.ts +7 -1
  414. package/packages/agent/src/config/env-vars.d.ts.map +1 -1
  415. package/packages/agent/src/config/env-vars.js +205 -0
  416. package/packages/agent/src/config/feature-flags.d.ts +17 -0
  417. package/packages/agent/src/config/feature-flags.d.ts.map +1 -0
  418. package/packages/agent/src/config/feature-flags.js +37 -0
  419. package/packages/agent/src/config/includes.d.ts.map +1 -1
  420. package/packages/agent/src/config/includes.js +6 -5
  421. package/packages/agent/src/config/index.d.ts +10 -15
  422. package/packages/agent/src/config/index.d.ts.map +1 -1
  423. package/packages/agent/src/config/index.js +9 -15
  424. package/packages/agent/src/config/model-metadata.d.ts +20 -0
  425. package/packages/agent/src/config/model-metadata.d.ts.map +1 -0
  426. package/packages/agent/src/config/model-metadata.js +133 -0
  427. package/packages/agent/src/config/owner-contacts.d.ts +42 -0
  428. package/packages/agent/src/config/owner-contacts.d.ts.map +1 -0
  429. package/packages/agent/src/config/owner-contacts.js +238 -0
  430. package/packages/agent/src/config/paths.d.ts +10 -6
  431. package/packages/agent/src/config/paths.d.ts.map +1 -1
  432. package/packages/agent/src/config/paths.js +43 -45
  433. package/packages/agent/src/config/plugin-auto-enable.d.ts +12 -15
  434. package/packages/agent/src/config/plugin-auto-enable.d.ts.map +1 -1
  435. package/packages/agent/src/config/plugin-auto-enable.js +12 -384
  436. package/packages/agent/src/config/plugin-widgets.d.ts +29 -0
  437. package/packages/agent/src/config/plugin-widgets.d.ts.map +1 -0
  438. package/packages/agent/src/config/plugin-widgets.js +104 -0
  439. package/packages/agent/src/config/schema.d.ts +2 -2
  440. package/packages/agent/src/config/schema.d.ts.map +1 -1
  441. package/packages/agent/src/config/schema.js +24 -24
  442. package/packages/agent/src/config/types.agent-defaults.d.ts +1 -330
  443. package/packages/agent/src/config/types.agent-defaults.d.ts.map +1 -1
  444. package/packages/agent/src/config/types.agent-defaults.js +1 -1
  445. package/packages/agent/src/config/types.agents.d.ts +1 -109
  446. package/packages/agent/src/config/types.agents.d.ts.map +1 -1
  447. package/packages/agent/src/config/types.agents.js +1 -1
  448. package/packages/agent/src/config/types.d.ts +1 -7
  449. package/packages/agent/src/config/types.d.ts.map +1 -1
  450. package/packages/agent/src/config/types.eliza.d.ts +1 -635
  451. package/packages/agent/src/config/types.eliza.d.ts.map +1 -1
  452. package/packages/agent/src/config/types.eliza.js +1 -1
  453. package/packages/agent/src/config/types.gateway.d.ts +1 -215
  454. package/packages/agent/src/config/types.gateway.d.ts.map +1 -1
  455. package/packages/agent/src/config/types.gateway.js +1 -1
  456. package/packages/agent/src/config/types.hooks.d.ts +1 -106
  457. package/packages/agent/src/config/types.hooks.d.ts.map +1 -1
  458. package/packages/agent/src/config/types.hooks.js +1 -1
  459. package/packages/agent/src/config/types.js +1 -7
  460. package/packages/agent/src/config/types.messages.d.ts +1 -175
  461. package/packages/agent/src/config/types.messages.d.ts.map +1 -1
  462. package/packages/agent/src/config/types.messages.js +1 -1
  463. package/packages/agent/src/config/types.tools.d.ts +1 -399
  464. package/packages/agent/src/config/types.tools.d.ts.map +1 -1
  465. package/packages/agent/src/config/types.tools.js +1 -1
  466. package/packages/agent/src/config/zod-schema.agent-runtime.d.ts +111 -9
  467. package/packages/agent/src/config/zod-schema.agent-runtime.d.ts.map +1 -1
  468. package/packages/agent/src/config/zod-schema.agent-runtime.js +89 -2
  469. package/packages/agent/src/config/zod-schema.core.d.ts +308 -50
  470. package/packages/agent/src/config/zod-schema.core.d.ts.map +1 -1
  471. package/packages/agent/src/config/zod-schema.core.js +81 -14
  472. package/packages/agent/src/config/zod-schema.d.ts +500 -1913
  473. package/packages/agent/src/config/zod-schema.d.ts.map +1 -1
  474. package/packages/agent/src/config/zod-schema.js +84 -16
  475. package/packages/agent/src/config/zod-schema.providers-core.d.ts +135 -359
  476. package/packages/agent/src/config/zod-schema.providers-core.d.ts.map +1 -1
  477. package/packages/agent/src/config/zod-schema.providers-core.js +51 -88
  478. package/packages/agent/src/config/zod-schema.session.d.ts +1 -1
  479. package/packages/agent/src/config/zod-schema.session.js +1 -1
  480. package/packages/agent/src/contracts/awareness.d.ts +1 -1
  481. package/packages/agent/src/contracts/index.d.ts +1 -8
  482. package/packages/agent/src/contracts/index.d.ts.map +1 -1
  483. package/packages/agent/src/contracts/index.js +1 -8
  484. package/packages/agent/src/contracts/onboarding-provider-defaults.d.ts +177 -0
  485. package/packages/agent/src/contracts/onboarding-provider-defaults.d.ts.map +1 -0
  486. package/packages/agent/src/contracts/{onboarding.js → onboarding-provider-defaults.js} +21 -109
  487. package/packages/agent/src/diagnostics/index.d.ts +2 -0
  488. package/packages/agent/src/diagnostics/index.d.ts.map +1 -0
  489. package/packages/agent/src/diagnostics/index.js +1 -0
  490. package/packages/agent/src/diagnostics/integration-observability.d.ts +1 -1
  491. package/packages/agent/src/diagnostics/integration-observability.d.ts.map +1 -1
  492. package/packages/agent/src/diagnostics/integration-observability.js +13 -3
  493. package/packages/agent/src/hooks/discovery.d.ts +1 -1
  494. package/packages/agent/src/hooks/discovery.d.ts.map +1 -1
  495. package/packages/agent/src/hooks/discovery.js +10 -3
  496. package/packages/agent/src/hooks/eligibility.d.ts +2 -2
  497. package/packages/agent/src/hooks/eligibility.d.ts.map +1 -1
  498. package/packages/agent/src/hooks/eligibility.js +7 -2
  499. package/packages/agent/src/hooks/index.d.ts +2 -2
  500. package/packages/agent/src/hooks/index.d.ts.map +1 -1
  501. package/packages/agent/src/hooks/index.js +2 -2
  502. package/packages/agent/src/hooks/loader.d.ts +2 -2
  503. package/packages/agent/src/hooks/loader.d.ts.map +1 -1
  504. package/packages/agent/src/hooks/loader.js +50 -12
  505. package/packages/agent/src/hooks/registry.d.ts +1 -1
  506. package/packages/agent/src/hooks/registry.d.ts.map +1 -1
  507. package/packages/agent/src/index.d.ts +72 -19
  508. package/packages/agent/src/index.d.ts.map +1 -1
  509. package/packages/agent/src/index.js +104 -19
  510. package/packages/agent/src/providers/admin-panel.d.ts +4 -0
  511. package/packages/agent/src/providers/admin-panel.d.ts.map +1 -0
  512. package/packages/agent/src/providers/admin-panel.js +89 -0
  513. package/packages/agent/src/providers/admin-trust.d.ts.map +1 -1
  514. package/packages/agent/src/providers/admin-trust.js +20 -33
  515. package/packages/agent/src/providers/automation-terminal-bridge.d.ts +3 -0
  516. package/packages/agent/src/providers/automation-terminal-bridge.d.ts.map +1 -0
  517. package/packages/agent/src/providers/automation-terminal-bridge.js +77 -0
  518. package/packages/agent/src/providers/conversation-proximity.d.ts +3 -0
  519. package/packages/agent/src/providers/conversation-proximity.d.ts.map +1 -0
  520. package/packages/agent/src/providers/conversation-proximity.js +62 -0
  521. package/packages/agent/src/providers/escalation-trigger.d.ts +15 -0
  522. package/packages/agent/src/providers/escalation-trigger.d.ts.map +1 -0
  523. package/packages/agent/src/providers/escalation-trigger.js +171 -0
  524. package/packages/agent/src/providers/index.d.ts +19 -0
  525. package/packages/agent/src/providers/index.d.ts.map +1 -0
  526. package/packages/agent/src/providers/index.js +18 -0
  527. package/packages/agent/src/providers/local-models.d.ts +118 -0
  528. package/packages/agent/src/providers/local-models.d.ts.map +1 -0
  529. package/packages/agent/src/providers/local-models.js +418 -0
  530. package/packages/agent/src/providers/media-provider.d.ts +233 -0
  531. package/packages/agent/src/providers/media-provider.d.ts.map +1 -0
  532. package/packages/agent/src/providers/media-provider.js +1474 -0
  533. package/packages/agent/src/providers/page-scoped-context.d.ts +3 -0
  534. package/packages/agent/src/providers/page-scoped-context.d.ts.map +1 -0
  535. package/packages/agent/src/providers/page-scoped-context.js +551 -0
  536. package/packages/agent/src/providers/pending-permissions-provider.d.ts +19 -0
  537. package/packages/agent/src/providers/pending-permissions-provider.d.ts.map +1 -0
  538. package/packages/agent/src/providers/pending-permissions-provider.js +104 -0
  539. package/packages/agent/src/providers/recent-conversations.d.ts +3 -0
  540. package/packages/agent/src/providers/recent-conversations.d.ts.map +1 -0
  541. package/packages/agent/src/providers/recent-conversations.js +100 -0
  542. package/packages/agent/src/providers/relevant-conversations.d.ts +3 -0
  543. package/packages/agent/src/providers/relevant-conversations.d.ts.map +1 -0
  544. package/packages/agent/src/providers/relevant-conversations.js +99 -0
  545. package/packages/agent/src/providers/role-backfill.d.ts +18 -0
  546. package/packages/agent/src/providers/role-backfill.d.ts.map +1 -0
  547. package/packages/agent/src/providers/role-backfill.js +86 -0
  548. package/packages/agent/src/providers/rolodex.d.ts +3 -0
  549. package/packages/agent/src/providers/rolodex.d.ts.map +1 -0
  550. package/packages/agent/src/providers/rolodex.js +83 -0
  551. package/packages/agent/src/providers/self-status.d.ts +4 -0
  552. package/packages/agent/src/providers/self-status.d.ts.map +1 -0
  553. package/packages/agent/src/providers/self-status.js +22 -0
  554. package/packages/agent/src/providers/session-bridge.d.ts.map +1 -1
  555. package/packages/agent/src/providers/session-bridge.js +6 -1
  556. package/packages/agent/src/providers/session-utils.d.ts +1 -1
  557. package/packages/agent/src/providers/session-utils.d.ts.map +1 -1
  558. package/packages/agent/src/providers/session-utils.js +2 -3
  559. package/packages/agent/src/providers/simple-mode.d.ts.map +1 -1
  560. package/packages/agent/src/providers/simple-mode.js +18 -54
  561. package/packages/agent/src/providers/skill-provider.d.ts +16 -0
  562. package/packages/agent/src/providers/skill-provider.d.ts.map +1 -0
  563. package/packages/agent/src/providers/skill-provider.js +353 -0
  564. package/packages/agent/src/providers/tasks.d.ts +9 -0
  565. package/packages/agent/src/providers/tasks.d.ts.map +1 -0
  566. package/packages/agent/src/providers/tasks.js +118 -0
  567. package/packages/agent/src/providers/ui-catalog.d.ts.map +1 -1
  568. package/packages/agent/src/providers/ui-catalog.js +15 -38
  569. package/packages/agent/src/providers/user-name.d.ts +11 -0
  570. package/packages/agent/src/providers/user-name.d.ts.map +1 -0
  571. package/packages/agent/src/providers/user-name.js +46 -0
  572. package/packages/agent/src/providers/workspace-provider.d.ts +3 -11
  573. package/packages/agent/src/providers/workspace-provider.d.ts.map +1 -1
  574. package/packages/agent/src/providers/workspace-provider.js +27 -11
  575. package/packages/agent/src/providers/workspace.d.ts +2 -3
  576. package/packages/agent/src/providers/workspace.d.ts.map +1 -1
  577. package/packages/agent/src/providers/workspace.js +81 -68
  578. package/packages/agent/src/runtime/advanced-capabilities-config.d.ts +8 -0
  579. package/packages/agent/src/runtime/advanced-capabilities-config.d.ts.map +1 -0
  580. package/packages/agent/src/runtime/advanced-capabilities-config.js +41 -0
  581. package/packages/agent/src/runtime/agent-wallets.d.ts +138 -0
  582. package/packages/agent/src/runtime/agent-wallets.d.ts.map +1 -0
  583. package/packages/agent/src/runtime/agent-wallets.js +308 -0
  584. package/packages/agent/src/runtime/analysis-mode-flag.d.ts +93 -0
  585. package/packages/agent/src/runtime/analysis-mode-flag.d.ts.map +1 -0
  586. package/packages/agent/src/runtime/analysis-mode-flag.js +131 -0
  587. package/packages/agent/src/runtime/android-app-plugins.d.ts +13 -0
  588. package/packages/agent/src/runtime/android-app-plugins.d.ts.map +1 -0
  589. package/packages/agent/src/runtime/android-app-plugins.js +48 -0
  590. package/packages/agent/src/runtime/aosp-dflash-adapter.d.ts +99 -0
  591. package/packages/agent/src/runtime/aosp-dflash-adapter.d.ts.map +1 -0
  592. package/packages/agent/src/runtime/aosp-dflash-adapter.js +332 -0
  593. package/packages/agent/src/runtime/build-character-config.d.ts +2 -0
  594. package/packages/agent/src/runtime/build-character-config.d.ts.map +1 -0
  595. package/packages/agent/src/runtime/build-character-config.js +176 -0
  596. package/packages/agent/src/runtime/conversation-compactor-runtime.d.ts +141 -0
  597. package/packages/agent/src/runtime/conversation-compactor-runtime.d.ts.map +1 -0
  598. package/packages/agent/src/runtime/conversation-compactor-runtime.js +460 -0
  599. package/packages/agent/src/runtime/conversation-compactor.d.ts +38 -0
  600. package/packages/agent/src/runtime/conversation-compactor.d.ts.map +1 -0
  601. package/packages/agent/src/runtime/conversation-compactor.js +1121 -0
  602. package/packages/agent/src/runtime/conversation-compactor.types.d.ts +102 -0
  603. package/packages/agent/src/runtime/conversation-compactor.types.d.ts.map +1 -0
  604. package/packages/agent/src/runtime/conversation-compactor.types.js +30 -0
  605. package/packages/agent/src/runtime/core-plugins.d.ts +50 -0
  606. package/packages/agent/src/runtime/core-plugins.d.ts.map +1 -1
  607. package/packages/agent/src/runtime/core-plugins.js +85 -16
  608. package/packages/agent/src/runtime/custom-actions.d.ts +5 -2
  609. package/packages/agent/src/runtime/custom-actions.d.ts.map +1 -1
  610. package/packages/agent/src/runtime/custom-actions.js +93 -14
  611. package/packages/agent/src/runtime/default-documents.d.ts +21 -0
  612. package/packages/agent/src/runtime/default-documents.d.ts.map +1 -0
  613. package/packages/agent/src/runtime/default-documents.js +283 -0
  614. package/packages/agent/src/runtime/eliza-plugin.d.ts +1 -1
  615. package/packages/agent/src/runtime/eliza-plugin.d.ts.map +1 -1
  616. package/packages/agent/src/runtime/eliza-plugin.js +142 -67
  617. package/packages/agent/src/runtime/eliza.d.ts +23 -119
  618. package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
  619. package/packages/agent/src/runtime/eliza.js +1512 -2085
  620. package/packages/agent/src/runtime/embedding-presets.d.ts.map +1 -1
  621. package/packages/agent/src/runtime/embedding-presets.js +27 -20
  622. package/packages/agent/src/runtime/first-time-setup.d.ts +47 -0
  623. package/packages/agent/src/runtime/first-time-setup.d.ts.map +1 -0
  624. package/packages/agent/src/runtime/first-time-setup.js +704 -0
  625. package/packages/agent/src/runtime/index.d.ts +19 -8
  626. package/packages/agent/src/runtime/index.d.ts.map +1 -1
  627. package/packages/agent/src/runtime/index.js +19 -8
  628. package/packages/agent/src/runtime/load-plugin-from-vfs.d.ts +54 -0
  629. package/packages/agent/src/runtime/load-plugin-from-vfs.d.ts.map +1 -0
  630. package/packages/agent/src/runtime/load-plugin-from-vfs.js +86 -0
  631. package/packages/agent/src/runtime/local-execution-mode.d.ts +11 -0
  632. package/packages/agent/src/runtime/local-execution-mode.d.ts.map +1 -0
  633. package/packages/agent/src/runtime/local-execution-mode.js +10 -0
  634. package/packages/agent/src/runtime/model-resolution.d.ts +2 -0
  635. package/packages/agent/src/runtime/model-resolution.d.ts.map +1 -0
  636. package/packages/agent/src/runtime/model-resolution.js +55 -0
  637. package/packages/agent/src/runtime/native-runtime-features.d.ts +4 -0
  638. package/packages/agent/src/runtime/native-runtime-features.d.ts.map +1 -0
  639. package/packages/agent/src/runtime/native-runtime-features.js +10 -0
  640. package/packages/agent/src/runtime/onboarding-names.d.ts +3 -3
  641. package/packages/agent/src/runtime/onboarding-names.d.ts.map +1 -1
  642. package/packages/agent/src/runtime/onboarding-names.js +14 -7
  643. package/packages/agent/src/runtime/operations/classifier.d.ts +36 -0
  644. package/packages/agent/src/runtime/operations/classifier.d.ts.map +1 -0
  645. package/packages/agent/src/runtime/operations/classifier.js +72 -0
  646. package/packages/agent/src/runtime/operations/cold-strategy.d.ts +19 -0
  647. package/packages/agent/src/runtime/operations/cold-strategy.d.ts.map +1 -0
  648. package/packages/agent/src/runtime/operations/cold-strategy.js +50 -0
  649. package/packages/agent/src/runtime/operations/health-checks.d.ts +25 -0
  650. package/packages/agent/src/runtime/operations/health-checks.d.ts.map +1 -0
  651. package/packages/agent/src/runtime/operations/health-checks.js +186 -0
  652. package/packages/agent/src/runtime/operations/health.d.ts +32 -0
  653. package/packages/agent/src/runtime/operations/health.d.ts.map +1 -0
  654. package/packages/agent/src/runtime/operations/health.js +139 -0
  655. package/packages/agent/src/runtime/operations/index.d.ts +17 -0
  656. package/packages/agent/src/runtime/operations/index.d.ts.map +1 -0
  657. package/packages/agent/src/runtime/operations/index.js +15 -0
  658. package/packages/agent/src/runtime/operations/manager.d.ts +70 -0
  659. package/packages/agent/src/runtime/operations/manager.d.ts.map +1 -0
  660. package/packages/agent/src/runtime/operations/manager.js +202 -0
  661. package/packages/agent/src/runtime/operations/reload-hot.d.ts +43 -0
  662. package/packages/agent/src/runtime/operations/reload-hot.d.ts.map +1 -0
  663. package/packages/agent/src/runtime/operations/reload-hot.js +181 -0
  664. package/packages/agent/src/runtime/operations/repository.d.ts +66 -0
  665. package/packages/agent/src/runtime/operations/repository.d.ts.map +1 -0
  666. package/packages/agent/src/runtime/operations/repository.js +319 -0
  667. package/packages/agent/src/runtime/operations/types.d.ts +203 -0
  668. package/packages/agent/src/runtime/operations/types.d.ts.map +1 -0
  669. package/packages/agent/src/runtime/operations/types.js +18 -0
  670. package/packages/agent/src/runtime/operations/vault-bridge.d.ts +81 -0
  671. package/packages/agent/src/runtime/operations/vault-bridge.d.ts.map +1 -0
  672. package/packages/agent/src/runtime/operations/vault-bridge.js +133 -0
  673. package/packages/agent/src/runtime/owner-entity.d.ts +4 -0
  674. package/packages/agent/src/runtime/owner-entity.d.ts.map +1 -0
  675. package/packages/agent/src/runtime/owner-entity.js +30 -0
  676. package/packages/agent/src/runtime/pglite-error-compat.d.ts +28 -0
  677. package/packages/agent/src/runtime/pglite-error-compat.d.ts.map +1 -0
  678. package/packages/agent/src/runtime/pglite-error-compat.js +54 -0
  679. package/packages/agent/src/runtime/plugin-collector.d.ts +22 -0
  680. package/packages/agent/src/runtime/plugin-collector.d.ts.map +1 -0
  681. package/packages/agent/src/runtime/plugin-collector.js +503 -0
  682. package/packages/agent/src/runtime/plugin-lifecycle.d.ts +45 -0
  683. package/packages/agent/src/runtime/plugin-lifecycle.d.ts.map +1 -0
  684. package/packages/agent/src/runtime/plugin-lifecycle.js +602 -0
  685. package/packages/agent/src/runtime/plugin-resolver.d.ts +46 -0
  686. package/packages/agent/src/runtime/plugin-resolver.d.ts.map +1 -0
  687. package/packages/agent/src/runtime/plugin-resolver.js +1375 -0
  688. package/packages/agent/src/runtime/plugin-role-gating.d.ts +24 -0
  689. package/packages/agent/src/runtime/plugin-role-gating.d.ts.map +1 -0
  690. package/packages/agent/src/runtime/plugin-role-gating.js +106 -0
  691. package/packages/agent/src/runtime/plugin-types.d.ts +64 -0
  692. package/packages/agent/src/runtime/plugin-types.d.ts.map +1 -0
  693. package/packages/agent/src/runtime/plugin-types.js +306 -0
  694. package/packages/agent/src/runtime/prompt-compaction.d.ts +98 -0
  695. package/packages/agent/src/runtime/prompt-compaction.d.ts.map +1 -0
  696. package/packages/agent/src/runtime/prompt-compaction.js +362 -0
  697. package/packages/agent/src/runtime/prompt-optimization.d.ts +47 -0
  698. package/packages/agent/src/runtime/prompt-optimization.d.ts.map +1 -0
  699. package/packages/agent/src/runtime/prompt-optimization.js +1123 -0
  700. package/packages/agent/src/runtime/release-plugin-policy.d.ts.map +1 -1
  701. package/packages/agent/src/runtime/release-plugin-policy.js +2 -4
  702. package/packages/agent/src/runtime/restart.d.ts +5 -41
  703. package/packages/agent/src/runtime/restart.d.ts.map +1 -1
  704. package/packages/agent/src/runtime/restart.js +5 -42
  705. package/packages/agent/src/runtime/roles/src/index.d.ts +24 -0
  706. package/packages/agent/src/runtime/roles/src/index.d.ts.map +1 -0
  707. package/packages/agent/src/runtime/roles/src/index.js +255 -0
  708. package/packages/agent/src/runtime/roles/src/provider.d.ts +7 -0
  709. package/packages/agent/src/runtime/roles/src/provider.d.ts.map +1 -0
  710. package/packages/agent/src/runtime/roles/src/provider.js +138 -0
  711. package/packages/agent/src/runtime/roles/src/types.d.ts +3 -0
  712. package/packages/agent/src/runtime/roles/src/types.d.ts.map +1 -0
  713. package/packages/agent/src/runtime/roles/src/types.js +1 -0
  714. package/packages/agent/src/runtime/roles/src/utils.d.ts +2 -0
  715. package/packages/agent/src/runtime/roles/src/utils.d.ts.map +1 -0
  716. package/packages/agent/src/runtime/roles/src/utils.js +1 -0
  717. package/packages/agent/src/runtime/roles.d.ts +3 -0
  718. package/packages/agent/src/runtime/roles.d.ts.map +1 -0
  719. package/packages/agent/src/runtime/roles.js +5 -0
  720. package/packages/agent/src/runtime/subagent-output.d.ts +51 -0
  721. package/packages/agent/src/runtime/subagent-output.d.ts.map +1 -0
  722. package/packages/agent/src/runtime/subagent-output.js +173 -0
  723. package/packages/agent/src/runtime/task-heartbeat.d.ts +22 -0
  724. package/packages/agent/src/runtime/task-heartbeat.d.ts.map +1 -0
  725. package/packages/agent/src/runtime/task-heartbeat.js +84 -0
  726. package/packages/agent/src/runtime/tool-call-cache/cache.d.ts +62 -0
  727. package/packages/agent/src/runtime/tool-call-cache/cache.d.ts.map +1 -0
  728. package/packages/agent/src/runtime/tool-call-cache/cache.js +123 -0
  729. package/packages/agent/src/runtime/tool-call-cache/disk-store.d.ts +23 -0
  730. package/packages/agent/src/runtime/tool-call-cache/disk-store.d.ts.map +1 -0
  731. package/packages/agent/src/runtime/tool-call-cache/disk-store.js +55 -0
  732. package/packages/agent/src/runtime/tool-call-cache/index.d.ts +7 -0
  733. package/packages/agent/src/runtime/tool-call-cache/index.d.ts.map +1 -0
  734. package/packages/agent/src/runtime/tool-call-cache/index.js +4 -0
  735. package/packages/agent/src/runtime/tool-call-cache/key.d.ts +11 -0
  736. package/packages/agent/src/runtime/tool-call-cache/key.d.ts.map +1 -0
  737. package/packages/agent/src/runtime/tool-call-cache/key.js +31 -0
  738. package/packages/agent/src/runtime/tool-call-cache/lru.d.ts +17 -0
  739. package/packages/agent/src/runtime/tool-call-cache/lru.d.ts.map +1 -0
  740. package/packages/agent/src/runtime/tool-call-cache/lru.js +46 -0
  741. package/packages/agent/src/runtime/tool-call-cache/redact.d.ts +17 -0
  742. package/packages/agent/src/runtime/tool-call-cache/redact.d.ts.map +1 -0
  743. package/packages/agent/src/runtime/tool-call-cache/redact.js +77 -0
  744. package/packages/agent/src/runtime/tool-call-cache/registry.d.ts +18 -0
  745. package/packages/agent/src/runtime/tool-call-cache/registry.d.ts.map +1 -0
  746. package/packages/agent/src/runtime/tool-call-cache/registry.js +66 -0
  747. package/packages/agent/src/runtime/tool-call-cache/types.d.ts +50 -0
  748. package/packages/agent/src/runtime/tool-call-cache/types.d.ts.map +1 -0
  749. package/packages/agent/src/runtime/tool-call-cache/types.js +10 -0
  750. package/packages/agent/src/runtime/tool-call-cache-wrapper.d.ts +39 -0
  751. package/packages/agent/src/runtime/tool-call-cache-wrapper.d.ts.map +1 -0
  752. package/packages/agent/src/runtime/tool-call-cache-wrapper.js +72 -0
  753. package/packages/agent/src/runtime/trajectory-export.d.ts +18 -0
  754. package/packages/agent/src/runtime/trajectory-export.d.ts.map +1 -0
  755. package/packages/agent/src/runtime/trajectory-export.js +109 -0
  756. package/packages/agent/src/runtime/trajectory-internals.d.ts +242 -0
  757. package/packages/agent/src/runtime/trajectory-internals.d.ts.map +1 -0
  758. package/packages/agent/src/runtime/trajectory-internals.js +1281 -0
  759. package/packages/agent/src/runtime/trajectory-persistence.d.ts +13 -212
  760. package/packages/agent/src/runtime/trajectory-persistence.d.ts.map +1 -1
  761. package/packages/agent/src/runtime/trajectory-persistence.js +25 -1952
  762. package/packages/agent/src/runtime/trajectory-query.d.ts +8 -0
  763. package/packages/agent/src/runtime/trajectory-query.d.ts.map +1 -0
  764. package/packages/agent/src/runtime/trajectory-query.js +27 -0
  765. package/packages/agent/src/runtime/trajectory-storage.d.ts +91 -0
  766. package/packages/agent/src/runtime/trajectory-storage.d.ts.map +1 -0
  767. package/packages/agent/src/runtime/trajectory-storage.js +1093 -0
  768. package/packages/agent/src/runtime/vault-profile-resolver.d.ts +37 -0
  769. package/packages/agent/src/runtime/vault-profile-resolver.d.ts.map +1 -0
  770. package/packages/agent/src/runtime/vault-profile-resolver.js +79 -0
  771. package/packages/agent/src/runtime/version.js +1 -1
  772. package/packages/agent/src/runtime/web-search-tools.d.ts +22 -0
  773. package/packages/agent/src/runtime/web-search-tools.d.ts.map +1 -0
  774. package/packages/agent/src/runtime/web-search-tools.js +151 -0
  775. package/packages/agent/src/security/access.d.ts +17 -0
  776. package/packages/agent/src/security/access.d.ts.map +1 -0
  777. package/packages/agent/src/security/access.js +54 -0
  778. package/packages/agent/src/security/audit-log.d.ts +0 -2
  779. package/packages/agent/src/security/audit-log.d.ts.map +1 -1
  780. package/packages/agent/src/security/index.d.ts +4 -0
  781. package/packages/agent/src/security/index.d.ts.map +1 -0
  782. package/packages/agent/src/security/index.js +3 -0
  783. package/packages/agent/src/services/agent-export.d.ts.map +1 -1
  784. package/packages/agent/src/services/agent-export.js +58 -23
  785. package/packages/agent/src/services/app-manager-agents-list-guard.d.ts +4 -0
  786. package/packages/agent/src/services/app-manager-agents-list-guard.d.ts.map +1 -0
  787. package/packages/agent/src/services/app-manager-agents-list-guard.js +15 -0
  788. package/packages/agent/src/services/app-manager.d.ts +78 -4
  789. package/packages/agent/src/services/app-manager.d.ts.map +1 -1
  790. package/packages/agent/src/services/app-manager.js +1429 -176
  791. package/packages/agent/src/services/app-package-modules.d.ts +22 -0
  792. package/packages/agent/src/services/app-package-modules.d.ts.map +1 -0
  793. package/packages/agent/src/services/app-package-modules.js +397 -0
  794. package/packages/agent/src/services/app-run-store.d.ts +6 -0
  795. package/packages/agent/src/services/app-run-store.d.ts.map +1 -0
  796. package/packages/agent/src/services/app-run-store.js +547 -0
  797. package/packages/agent/src/services/app-session-gate.d.ts +15 -0
  798. package/packages/agent/src/services/app-session-gate.d.ts.map +1 -0
  799. package/packages/agent/src/services/app-session-gate.js +71 -0
  800. package/packages/agent/src/services/capability-broker.d.ts +89 -0
  801. package/packages/agent/src/services/capability-broker.d.ts.map +1 -0
  802. package/packages/agent/src/services/capability-broker.js +339 -0
  803. package/packages/agent/src/services/character-history.d.ts +69 -0
  804. package/packages/agent/src/services/character-history.d.ts.map +1 -0
  805. package/packages/agent/src/services/character-history.js +280 -0
  806. package/packages/agent/src/services/character-persistence.d.ts +25 -0
  807. package/packages/agent/src/services/character-persistence.d.ts.map +1 -0
  808. package/packages/agent/src/services/character-persistence.js +167 -0
  809. package/packages/agent/src/services/client-chat-sender.d.ts +19 -0
  810. package/packages/agent/src/services/client-chat-sender.d.ts.map +1 -0
  811. package/packages/agent/src/services/client-chat-sender.js +88 -0
  812. package/packages/agent/src/services/config-plugin-manager.d.ts +6 -0
  813. package/packages/agent/src/services/config-plugin-manager.d.ts.map +1 -0
  814. package/packages/agent/src/services/config-plugin-manager.js +53 -0
  815. package/packages/agent/src/services/connector-setup-service.d.ts +48 -0
  816. package/packages/agent/src/services/connector-setup-service.d.ts.map +1 -0
  817. package/packages/agent/src/services/connector-setup-service.js +60 -0
  818. package/packages/agent/src/services/escalation.d.ts +35 -0
  819. package/packages/agent/src/services/escalation.d.ts.map +1 -0
  820. package/packages/agent/src/services/escalation.js +376 -0
  821. package/packages/agent/src/services/evm-signing-capability.d.ts +33 -0
  822. package/packages/agent/src/services/evm-signing-capability.d.ts.map +1 -0
  823. package/packages/agent/src/services/evm-signing-capability.js +52 -0
  824. package/packages/agent/src/services/external-bridge-state.d.ts +10 -0
  825. package/packages/agent/src/services/external-bridge-state.d.ts.map +1 -0
  826. package/packages/agent/src/services/external-bridge-state.js +14 -0
  827. package/packages/agent/src/services/hosted-tools.d.ts +70 -0
  828. package/packages/agent/src/services/hosted-tools.d.ts.map +1 -0
  829. package/packages/agent/src/services/hosted-tools.js +87 -0
  830. package/packages/agent/src/services/index.d.ts +26 -17
  831. package/packages/agent/src/services/index.d.ts.map +1 -1
  832. package/packages/agent/src/services/index.js +32 -17
  833. package/packages/agent/src/services/js-runtime-bridge.d.ts +105 -0
  834. package/packages/agent/src/services/js-runtime-bridge.d.ts.map +1 -0
  835. package/packages/agent/src/services/js-runtime-bridge.js +217 -0
  836. package/packages/agent/src/services/mcp-marketplace.js +1 -1
  837. package/packages/agent/src/services/media-generation.d.ts +10 -0
  838. package/packages/agent/src/services/media-generation.d.ts.map +1 -0
  839. package/packages/agent/src/services/media-generation.js +102 -0
  840. package/packages/agent/src/services/overlay-app-presence.d.ts +9 -0
  841. package/packages/agent/src/services/overlay-app-presence.d.ts.map +1 -0
  842. package/packages/agent/src/services/overlay-app-presence.js +18 -0
  843. package/packages/agent/src/services/owner-name.d.ts +4 -0
  844. package/packages/agent/src/services/owner-name.d.ts.map +1 -0
  845. package/packages/agent/src/services/owner-name.js +46 -0
  846. package/packages/agent/src/services/permissions/contracts.d.ts +9 -0
  847. package/packages/agent/src/services/permissions/contracts.d.ts.map +1 -0
  848. package/packages/agent/src/services/permissions/contracts.js +8 -0
  849. package/packages/agent/src/services/permissions/probers/_bridge.d.ts +77 -0
  850. package/packages/agent/src/services/permissions/probers/_bridge.d.ts.map +1 -0
  851. package/packages/agent/src/services/permissions/probers/_bridge.js +224 -0
  852. package/packages/agent/src/services/permissions/probers/accessibility.d.ts +16 -0
  853. package/packages/agent/src/services/permissions/probers/accessibility.d.ts.map +1 -0
  854. package/packages/agent/src/services/permissions/probers/accessibility.js +45 -0
  855. package/packages/agent/src/services/permissions/probers/automation.d.ts +17 -0
  856. package/packages/agent/src/services/permissions/probers/automation.d.ts.map +1 -0
  857. package/packages/agent/src/services/permissions/probers/automation.js +46 -0
  858. package/packages/agent/src/services/permissions/probers/calendar.d.ts +14 -0
  859. package/packages/agent/src/services/permissions/probers/calendar.d.ts.map +1 -0
  860. package/packages/agent/src/services/permissions/probers/calendar.js +33 -0
  861. package/packages/agent/src/services/permissions/probers/camera.d.ts +14 -0
  862. package/packages/agent/src/services/permissions/probers/camera.d.ts.map +1 -0
  863. package/packages/agent/src/services/permissions/probers/camera.js +39 -0
  864. package/packages/agent/src/services/permissions/probers/contacts.d.ts +13 -0
  865. package/packages/agent/src/services/permissions/probers/contacts.d.ts.map +1 -0
  866. package/packages/agent/src/services/permissions/probers/contacts.js +32 -0
  867. package/packages/agent/src/services/permissions/probers/full-disk.d.ts +22 -0
  868. package/packages/agent/src/services/permissions/probers/full-disk.d.ts.map +1 -0
  869. package/packages/agent/src/services/permissions/probers/full-disk.js +78 -0
  870. package/packages/agent/src/services/permissions/probers/health.d.ts +23 -0
  871. package/packages/agent/src/services/permissions/probers/health.d.ts.map +1 -0
  872. package/packages/agent/src/services/permissions/probers/health.js +82 -0
  873. package/packages/agent/src/services/permissions/probers/index.d.ts +27 -0
  874. package/packages/agent/src/services/permissions/probers/index.d.ts.map +1 -0
  875. package/packages/agent/src/services/permissions/probers/index.js +42 -0
  876. package/packages/agent/src/services/permissions/probers/location.d.ts +21 -0
  877. package/packages/agent/src/services/permissions/probers/location.d.ts.map +1 -0
  878. package/packages/agent/src/services/permissions/probers/location.js +47 -0
  879. package/packages/agent/src/services/permissions/probers/microphone.d.ts +14 -0
  880. package/packages/agent/src/services/permissions/probers/microphone.d.ts.map +1 -0
  881. package/packages/agent/src/services/permissions/probers/microphone.js +41 -0
  882. package/packages/agent/src/services/permissions/probers/notes.d.ts +19 -0
  883. package/packages/agent/src/services/permissions/probers/notes.d.ts.map +1 -0
  884. package/packages/agent/src/services/permissions/probers/notes.js +55 -0
  885. package/packages/agent/src/services/permissions/probers/notifications.d.ts +24 -0
  886. package/packages/agent/src/services/permissions/probers/notifications.d.ts.map +1 -0
  887. package/packages/agent/src/services/permissions/probers/notifications.js +47 -0
  888. package/packages/agent/src/services/permissions/probers/reminders.d.ts +22 -0
  889. package/packages/agent/src/services/permissions/probers/reminders.d.ts.map +1 -0
  890. package/packages/agent/src/services/permissions/probers/reminders.js +44 -0
  891. package/packages/agent/src/services/permissions/probers/screen-recording.d.ts +15 -0
  892. package/packages/agent/src/services/permissions/probers/screen-recording.d.ts.map +1 -0
  893. package/packages/agent/src/services/permissions/probers/screen-recording.js +39 -0
  894. package/packages/agent/src/services/permissions/probers/screentime.d.ts +21 -0
  895. package/packages/agent/src/services/permissions/probers/screentime.d.ts.map +1 -0
  896. package/packages/agent/src/services/permissions/probers/screentime.js +67 -0
  897. package/packages/agent/src/services/permissions/probers/shell.d.ts +19 -0
  898. package/packages/agent/src/services/permissions/probers/shell.d.ts.map +1 -0
  899. package/packages/agent/src/services/permissions/probers/shell.js +31 -0
  900. package/packages/agent/src/services/permissions/probers/website-blocking.d.ts +16 -0
  901. package/packages/agent/src/services/permissions/probers/website-blocking.d.ts.map +1 -0
  902. package/packages/agent/src/services/permissions/probers/website-blocking.js +27 -0
  903. package/packages/agent/src/services/permissions/register-probers.d.ts +29 -0
  904. package/packages/agent/src/services/permissions/register-probers.d.ts.map +1 -0
  905. package/packages/agent/src/services/permissions/register-probers.js +31 -0
  906. package/packages/agent/src/services/permissions-registry.d.ts +62 -0
  907. package/packages/agent/src/services/permissions-registry.d.ts.map +1 -0
  908. package/packages/agent/src/services/permissions-registry.js +213 -0
  909. package/packages/agent/src/services/plugin-compiler.d.ts +51 -0
  910. package/packages/agent/src/services/plugin-compiler.d.ts.map +1 -0
  911. package/packages/agent/src/services/plugin-compiler.js +90 -0
  912. package/packages/agent/src/services/plugin-installer.d.ts +93 -0
  913. package/packages/agent/src/services/plugin-installer.d.ts.map +1 -0
  914. package/packages/agent/src/services/plugin-installer.js +623 -0
  915. package/packages/agent/src/services/plugin-manager-types.d.ts +30 -55
  916. package/packages/agent/src/services/plugin-manager-types.d.ts.map +1 -1
  917. package/packages/agent/src/services/registry-client-app-meta.d.ts +1 -1
  918. package/packages/agent/src/services/registry-client-app-meta.d.ts.map +1 -1
  919. package/packages/agent/src/services/registry-client-app-meta.js +53 -32
  920. package/packages/agent/src/services/registry-client-endpoints.d.ts +2 -2
  921. package/packages/agent/src/services/registry-client-endpoints.d.ts.map +1 -1
  922. package/packages/agent/src/services/registry-client-endpoints.js +11 -4
  923. package/packages/agent/src/services/registry-client-local.d.ts +1 -1
  924. package/packages/agent/src/services/registry-client-local.d.ts.map +1 -1
  925. package/packages/agent/src/services/registry-client-local.js +239 -61
  926. package/packages/agent/src/services/registry-client-network.d.ts +6 -1
  927. package/packages/agent/src/services/registry-client-network.d.ts.map +1 -1
  928. package/packages/agent/src/services/registry-client-network.js +43 -5
  929. package/packages/agent/src/services/registry-client-queries.d.ts +16 -5
  930. package/packages/agent/src/services/registry-client-queries.d.ts.map +1 -1
  931. package/packages/agent/src/services/registry-client-queries.js +50 -3
  932. package/packages/agent/src/services/registry-client-types.d.ts +39 -40
  933. package/packages/agent/src/services/registry-client-types.d.ts.map +1 -1
  934. package/packages/agent/src/services/registry-client.d.ts +3 -3
  935. package/packages/agent/src/services/registry-client.d.ts.map +1 -1
  936. package/packages/agent/src/services/registry-client.js +116 -16
  937. package/packages/agent/src/services/relationships-graph.d.ts +13 -0
  938. package/packages/agent/src/services/relationships-graph.d.ts.map +1 -0
  939. package/packages/agent/src/services/relationships-graph.js +38 -0
  940. package/packages/agent/src/services/remote-signing-service.d.ts +2 -2
  941. package/packages/agent/src/services/remote-signing-service.d.ts.map +1 -1
  942. package/packages/agent/src/services/remote-signing-service.js +2 -2
  943. package/packages/agent/src/services/research-task-executor.d.ts +14 -0
  944. package/packages/agent/src/services/research-task-executor.d.ts.map +1 -0
  945. package/packages/agent/src/services/research-task-executor.js +138 -0
  946. package/packages/agent/src/services/sandbox-manager.d.ts +24 -1
  947. package/packages/agent/src/services/sandbox-manager.d.ts.map +1 -1
  948. package/packages/agent/src/services/sandbox-manager.js +174 -109
  949. package/packages/agent/src/services/self-updater.d.ts +1 -1
  950. package/packages/agent/src/services/self-updater.d.ts.map +1 -1
  951. package/packages/agent/src/services/self-updater.js +1 -1
  952. package/packages/agent/src/services/send-handler-availability.d.ts +5 -0
  953. package/packages/agent/src/services/send-handler-availability.d.ts.map +1 -0
  954. package/packages/agent/src/services/send-handler-availability.js +20 -0
  955. package/packages/agent/src/services/shell-execution-router.d.ts +67 -0
  956. package/packages/agent/src/services/shell-execution-router.d.ts.map +1 -0
  957. package/packages/agent/src/services/shell-execution-router.js +201 -0
  958. package/packages/agent/src/services/skill-marketplace.d.ts.map +1 -1
  959. package/packages/agent/src/services/skill-marketplace.js +36 -25
  960. package/packages/agent/src/services/task-executor.d.ts +47 -0
  961. package/packages/agent/src/services/task-executor.d.ts.map +1 -0
  962. package/packages/agent/src/services/task-executor.js +31 -0
  963. package/packages/agent/src/services/update-checker.d.ts +1 -1
  964. package/packages/agent/src/services/update-checker.d.ts.map +1 -1
  965. package/packages/agent/src/services/update-checker.js +4 -4
  966. package/packages/agent/src/services/version-compat.d.ts +4 -4
  967. package/packages/agent/src/services/version-compat.d.ts.map +1 -1
  968. package/packages/agent/src/services/version-compat.js +23 -7
  969. package/packages/agent/src/services/virtual-filesystem.d.ts +88 -0
  970. package/packages/agent/src/services/virtual-filesystem.d.ts.map +1 -0
  971. package/packages/agent/src/services/virtual-filesystem.js +410 -0
  972. package/packages/agent/src/shared/conversation-format.d.ts +11 -0
  973. package/packages/agent/src/shared/conversation-format.d.ts.map +1 -0
  974. package/packages/agent/src/shared/conversation-format.js +69 -0
  975. package/packages/agent/src/shared/index.d.ts +4 -0
  976. package/packages/agent/src/shared/index.d.ts.map +1 -0
  977. package/packages/agent/src/shared/index.js +3 -0
  978. package/packages/agent/src/shared/ui-catalog-prompt.d.ts +60 -18
  979. package/packages/agent/src/shared/ui-catalog-prompt.d.ts.map +1 -1
  980. package/packages/agent/src/shared/ui-catalog-prompt.js +116 -99
  981. package/packages/agent/src/shared/workspace-resolution.d.ts +5 -0
  982. package/packages/agent/src/shared/workspace-resolution.d.ts.map +1 -0
  983. package/packages/agent/src/shared/workspace-resolution.js +70 -0
  984. package/packages/agent/src/templates/skill-scaffold.d.ts +9 -0
  985. package/packages/agent/src/templates/skill-scaffold.d.ts.map +1 -0
  986. package/packages/agent/src/templates/skill-scaffold.js +26 -0
  987. package/packages/agent/src/test-support/index.d.ts +4 -0
  988. package/packages/agent/src/test-support/index.d.ts.map +1 -0
  989. package/packages/agent/src/test-support/index.js +3 -0
  990. package/packages/agent/src/test-support/route-test-helpers.d.ts +2 -2
  991. package/packages/agent/src/test-support/route-test-helpers.d.ts.map +1 -1
  992. package/packages/agent/src/test-support/route-test-helpers.js +1 -1
  993. package/packages/agent/src/test-support/test-helpers.d.ts +3 -3
  994. package/packages/agent/src/test-support/test-helpers.d.ts.map +1 -1
  995. package/packages/agent/src/test-support/test-helpers.js +35 -24
  996. package/packages/agent/src/test-utils/sqlite-compat.d.ts +23 -0
  997. package/packages/agent/src/test-utils/sqlite-compat.d.ts.map +1 -0
  998. package/packages/agent/src/test-utils/sqlite-compat.js +214 -0
  999. package/packages/agent/src/testing/index.d.ts +3 -3
  1000. package/packages/agent/src/testing/index.d.ts.map +1 -1
  1001. package/packages/agent/src/testing/index.js +3 -3
  1002. package/packages/agent/src/triggers/index.d.ts +5 -0
  1003. package/packages/agent/src/triggers/index.d.ts.map +1 -0
  1004. package/packages/agent/src/triggers/index.js +4 -0
  1005. package/packages/agent/src/triggers/runtime.d.ts +8 -2
  1006. package/packages/agent/src/triggers/runtime.d.ts.map +1 -1
  1007. package/packages/agent/src/triggers/runtime.js +197 -72
  1008. package/packages/agent/src/triggers/scheduling.d.ts +9 -1
  1009. package/packages/agent/src/triggers/scheduling.d.ts.map +1 -1
  1010. package/packages/agent/src/triggers/scheduling.js +103 -22
  1011. package/packages/agent/src/triggers/text-to-workflow.d.ts +58 -0
  1012. package/packages/agent/src/triggers/text-to-workflow.d.ts.map +1 -0
  1013. package/packages/agent/src/triggers/text-to-workflow.js +44 -0
  1014. package/packages/agent/src/triggers/types.d.ts +18 -37
  1015. package/packages/agent/src/triggers/types.d.ts.map +1 -1
  1016. package/packages/agent/src/triggers/types.js +1 -1
  1017. package/packages/agent/src/types/agent-skills.d.ts +19 -0
  1018. package/packages/agent/src/types/agent-skills.d.ts.map +1 -0
  1019. package/packages/agent/src/types/agent-skills.js +7 -0
  1020. package/packages/agent/src/types/config-like.d.ts +17 -0
  1021. package/packages/agent/src/types/config-like.d.ts.map +1 -0
  1022. package/packages/agent/src/types/config-like.js +7 -0
  1023. package/packages/agent/src/types/index.d.ts +4 -0
  1024. package/packages/agent/src/types/index.d.ts.map +1 -0
  1025. package/packages/agent/src/types/index.js +3 -0
  1026. package/packages/agent/src/types/trajectory.d.ts +20 -0
  1027. package/packages/agent/src/types/trajectory.d.ts.map +1 -0
  1028. package/packages/agent/src/types/trajectory.js +2 -0
  1029. package/packages/agent/src/utils/atomic-json.d.ts +37 -0
  1030. package/packages/agent/src/utils/atomic-json.d.ts.map +1 -0
  1031. package/packages/agent/src/utils/atomic-json.js +98 -0
  1032. package/packages/agent/src/utils/index.d.ts +2 -0
  1033. package/packages/agent/src/utils/index.d.ts.map +1 -0
  1034. package/packages/agent/src/utils/index.js +1 -0
  1035. package/packages/agent/src/utils/number-parsing.d.ts.map +1 -1
  1036. package/packages/agent/src/utils/number-parsing.js +1 -2
  1037. package/packages/agent/src/version-resolver.d.ts +0 -1
  1038. package/packages/agent/src/version-resolver.d.ts.map +1 -1
  1039. package/packages/agent/src/version-resolver.js +0 -1
  1040. package/LICENSE +0 -21
  1041. package/packages/agent/src/actions/emote.d.ts +0 -14
  1042. package/packages/agent/src/actions/emote.d.ts.map +0 -1
  1043. package/packages/agent/src/actions/emote.js +0 -91
  1044. package/packages/agent/src/actions/restart.d.ts +0 -19
  1045. package/packages/agent/src/actions/restart.d.ts.map +0 -1
  1046. package/packages/agent/src/actions/restart.js +0 -86
  1047. package/packages/agent/src/actions/send-message.d.ts +0 -3
  1048. package/packages/agent/src/actions/send-message.d.ts.map +0 -1
  1049. package/packages/agent/src/actions/send-message.js +0 -144
  1050. package/packages/agent/src/actions/switch-stream-source.d.ts +0 -16
  1051. package/packages/agent/src/actions/switch-stream-source.d.ts.map +0 -1
  1052. package/packages/agent/src/actions/switch-stream-source.js +0 -94
  1053. package/packages/agent/src/api/bsc-trade.d.ts +0 -34
  1054. package/packages/agent/src/api/bsc-trade.d.ts.map +0 -1
  1055. package/packages/agent/src/api/bsc-trade.js +0 -567
  1056. package/packages/agent/src/api/cloud-billing-routes.d.ts +0 -14
  1057. package/packages/agent/src/api/cloud-billing-routes.d.ts.map +0 -1
  1058. package/packages/agent/src/api/cloud-billing-routes.js +0 -400
  1059. package/packages/agent/src/api/cloud-compat-routes.d.ts +0 -15
  1060. package/packages/agent/src/api/cloud-compat-routes.d.ts.map +0 -1
  1061. package/packages/agent/src/api/cloud-compat-routes.js +0 -131
  1062. package/packages/agent/src/api/cloud-routes.d.ts +0 -62
  1063. package/packages/agent/src/api/cloud-routes.d.ts.map +0 -1
  1064. package/packages/agent/src/api/cloud-routes.js +0 -339
  1065. package/packages/agent/src/api/cloud-status-routes.d.ts +0 -15
  1066. package/packages/agent/src/api/cloud-status-routes.d.ts.map +0 -1
  1067. package/packages/agent/src/api/cloud-status-routes.js +0 -165
  1068. package/packages/agent/src/api/drop-service.d.ts +0 -26
  1069. package/packages/agent/src/api/drop-service.d.ts.map +0 -1
  1070. package/packages/agent/src/api/drop-service.js +0 -134
  1071. package/packages/agent/src/api/http-helpers.d.ts +0 -50
  1072. package/packages/agent/src/api/http-helpers.d.ts.map +0 -1
  1073. package/packages/agent/src/api/http-helpers.js +0 -145
  1074. package/packages/agent/src/api/knowledge-routes.d.ts +0 -23
  1075. package/packages/agent/src/api/knowledge-routes.d.ts.map +0 -1
  1076. package/packages/agent/src/api/knowledge-routes.js +0 -931
  1077. package/packages/agent/src/api/knowledge-service-loader.d.ts +0 -51
  1078. package/packages/agent/src/api/knowledge-service-loader.d.ts.map +0 -1
  1079. package/packages/agent/src/api/merkle-tree.d.ts +0 -90
  1080. package/packages/agent/src/api/merkle-tree.d.ts.map +0 -1
  1081. package/packages/agent/src/api/merkle-tree.js +0 -174
  1082. package/packages/agent/src/api/og-tracker.d.ts +0 -28
  1083. package/packages/agent/src/api/og-tracker.d.ts.map +0 -1
  1084. package/packages/agent/src/api/og-tracker.js +0 -60
  1085. package/packages/agent/src/api/route-helpers.d.ts +0 -16
  1086. package/packages/agent/src/api/route-helpers.d.ts.map +0 -1
  1087. package/packages/agent/src/api/route-helpers.js +0 -1
  1088. package/packages/agent/src/api/sandbox-routes.d.ts +0 -12
  1089. package/packages/agent/src/api/sandbox-routes.d.ts.map +0 -1
  1090. package/packages/agent/src/api/sandbox-routes.js +0 -1334
  1091. package/packages/agent/src/api/signal-routes.d.ts +0 -39
  1092. package/packages/agent/src/api/signal-routes.d.ts.map +0 -1
  1093. package/packages/agent/src/api/signal-routes.js +0 -168
  1094. package/packages/agent/src/api/stream-persistence.d.ts +0 -64
  1095. package/packages/agent/src/api/stream-persistence.d.ts.map +0 -1
  1096. package/packages/agent/src/api/stream-persistence.js +0 -231
  1097. package/packages/agent/src/api/stream-route-state.d.ts +0 -50
  1098. package/packages/agent/src/api/stream-route-state.d.ts.map +0 -1
  1099. package/packages/agent/src/api/stream-route-state.js +0 -1
  1100. package/packages/agent/src/api/stream-routes.d.ts +0 -45
  1101. package/packages/agent/src/api/stream-routes.d.ts.map +0 -1
  1102. package/packages/agent/src/api/stream-routes.js +0 -809
  1103. package/packages/agent/src/api/stream-voice-routes.d.ts +0 -36
  1104. package/packages/agent/src/api/stream-voice-routes.d.ts.map +0 -1
  1105. package/packages/agent/src/api/stream-voice-routes.js +0 -133
  1106. package/packages/agent/src/api/streaming-text.d.ts +0 -9
  1107. package/packages/agent/src/api/streaming-text.d.ts.map +0 -1
  1108. package/packages/agent/src/api/streaming-text.js +0 -85
  1109. package/packages/agent/src/api/streaming-types.d.ts +0 -30
  1110. package/packages/agent/src/api/streaming-types.d.ts.map +0 -1
  1111. package/packages/agent/src/api/streaming-types.js +0 -1
  1112. package/packages/agent/src/api/training-routes.d.ts +0 -44
  1113. package/packages/agent/src/api/training-routes.d.ts.map +0 -1
  1114. package/packages/agent/src/api/training-routes.js +0 -195
  1115. package/packages/agent/src/api/trajectory-routes.d.ts +0 -17
  1116. package/packages/agent/src/api/trajectory-routes.d.ts.map +0 -1
  1117. package/packages/agent/src/api/trajectory-routes.js +0 -405
  1118. package/packages/agent/src/api/trigger-routes.d.ts +0 -72
  1119. package/packages/agent/src/api/trigger-routes.d.ts.map +0 -1
  1120. package/packages/agent/src/api/trigger-routes.js +0 -268
  1121. package/packages/agent/src/api/twitter-verify.d.ts +0 -25
  1122. package/packages/agent/src/api/twitter-verify.d.ts.map +0 -1
  1123. package/packages/agent/src/api/twitter-verify.js +0 -168
  1124. package/packages/agent/src/api/whatsapp-routes.d.ts +0 -39
  1125. package/packages/agent/src/api/whatsapp-routes.d.ts.map +0 -1
  1126. package/packages/agent/src/api/whatsapp-routes.js +0 -182
  1127. package/packages/agent/src/auth/apply-stealth.d.ts +0 -8
  1128. package/packages/agent/src/auth/apply-stealth.d.ts.map +0 -1
  1129. package/packages/agent/src/auth/apply-stealth.js +0 -35
  1130. package/packages/agent/src/benchmark-server.d.ts +0 -2
  1131. package/packages/agent/src/benchmark-server.d.ts.map +0 -1
  1132. package/packages/agent/src/benchmark-server.js +0 -773
  1133. package/packages/agent/src/cloud/auth.d.ts +0 -19
  1134. package/packages/agent/src/cloud/auth.d.ts.map +0 -1
  1135. package/packages/agent/src/cloud/auth.js +0 -107
  1136. package/packages/agent/src/cloud/backup.d.ts +0 -18
  1137. package/packages/agent/src/cloud/backup.d.ts.map +0 -1
  1138. package/packages/agent/src/cloud/backup.js +0 -42
  1139. package/packages/agent/src/cloud/base-url.d.ts +0 -3
  1140. package/packages/agent/src/cloud/base-url.d.ts.map +0 -1
  1141. package/packages/agent/src/cloud/base-url.js +0 -40
  1142. package/packages/agent/src/cloud/bridge-client.d.ts +0 -56
  1143. package/packages/agent/src/cloud/bridge-client.d.ts.map +0 -1
  1144. package/packages/agent/src/cloud/bridge-client.js +0 -190
  1145. package/packages/agent/src/cloud/cloud-manager.d.ts +0 -32
  1146. package/packages/agent/src/cloud/cloud-manager.d.ts.map +0 -1
  1147. package/packages/agent/src/cloud/cloud-manager.js +0 -119
  1148. package/packages/agent/src/cloud/cloud-proxy.d.ts +0 -20
  1149. package/packages/agent/src/cloud/cloud-proxy.d.ts.map +0 -1
  1150. package/packages/agent/src/cloud/cloud-proxy.js +0 -34
  1151. package/packages/agent/src/cloud/index.d.ts +0 -7
  1152. package/packages/agent/src/cloud/index.d.ts.map +0 -1
  1153. package/packages/agent/src/cloud/index.js +0 -6
  1154. package/packages/agent/src/cloud/reconnect.d.ts +0 -26
  1155. package/packages/agent/src/cloud/reconnect.d.ts.map +0 -1
  1156. package/packages/agent/src/cloud/reconnect.js +0 -86
  1157. package/packages/agent/src/cloud/validate-url.d.ts +0 -2
  1158. package/packages/agent/src/cloud/validate-url.d.ts.map +0 -1
  1159. package/packages/agent/src/cloud/validate-url.js +0 -162
  1160. package/packages/agent/src/config/object-utils.d.ts +0 -2
  1161. package/packages/agent/src/config/object-utils.d.ts.map +0 -1
  1162. package/packages/agent/src/config/object-utils.js +0 -6
  1163. package/packages/agent/src/contracts/apps.d.ts +0 -42
  1164. package/packages/agent/src/contracts/apps.d.ts.map +0 -1
  1165. package/packages/agent/src/contracts/apps.js +0 -4
  1166. package/packages/agent/src/contracts/config.d.ts +0 -146
  1167. package/packages/agent/src/contracts/config.d.ts.map +0 -1
  1168. package/packages/agent/src/contracts/config.js +0 -4
  1169. package/packages/agent/src/contracts/drop.d.ts +0 -20
  1170. package/packages/agent/src/contracts/drop.d.ts.map +0 -1
  1171. package/packages/agent/src/contracts/drop.js +0 -4
  1172. package/packages/agent/src/contracts/onboarding.d.ts +0 -384
  1173. package/packages/agent/src/contracts/onboarding.d.ts.map +0 -1
  1174. package/packages/agent/src/contracts/permissions.d.ts +0 -35
  1175. package/packages/agent/src/contracts/permissions.d.ts.map +0 -1
  1176. package/packages/agent/src/contracts/permissions.js +0 -4
  1177. package/packages/agent/src/contracts/verification.d.ts +0 -9
  1178. package/packages/agent/src/contracts/verification.d.ts.map +0 -1
  1179. package/packages/agent/src/contracts/verification.js +0 -4
  1180. package/packages/agent/src/contracts/wallet.d.ts +0 -409
  1181. package/packages/agent/src/contracts/wallet.d.ts.map +0 -1
  1182. package/packages/agent/src/contracts/wallet.js +0 -60
  1183. package/packages/agent/src/emotes/catalog.d.ts +0 -31
  1184. package/packages/agent/src/emotes/catalog.d.ts.map +0 -1
  1185. package/packages/agent/src/emotes/catalog.js +0 -402
  1186. package/packages/agent/src/onboarding-presets.d.ts +0 -59
  1187. package/packages/agent/src/onboarding-presets.d.ts.map +0 -1
  1188. package/packages/agent/src/onboarding-presets.js +0 -1470
  1189. package/packages/agent/src/plugins/custom-rtmp/index.d.ts +0 -12
  1190. package/packages/agent/src/plugins/custom-rtmp/index.d.ts.map +0 -1
  1191. package/packages/agent/src/plugins/custom-rtmp/index.js +0 -26
  1192. package/packages/agent/src/runtime/cloud-onboarding.d.ts +0 -55
  1193. package/packages/agent/src/runtime/cloud-onboarding.d.ts.map +0 -1
  1194. package/packages/agent/src/runtime/cloud-onboarding.js +0 -279
  1195. package/packages/agent/src/server/index.d.ts +0 -3
  1196. package/packages/agent/src/server/index.d.ts.map +0 -1
  1197. package/packages/agent/src/server/index.js +0 -1
  1198. package/packages/agent/src/services/browser-capture.d.ts +0 -39
  1199. package/packages/agent/src/services/browser-capture.d.ts.map +0 -1
  1200. package/packages/agent/src/services/browser-capture.js +0 -162
  1201. package/packages/agent/src/services/coding-agent-context.d.ts +0 -310
  1202. package/packages/agent/src/services/coding-agent-context.d.ts.map +0 -1
  1203. package/packages/agent/src/services/coding-agent-context.js +0 -281
  1204. package/packages/agent/src/services/fallback-training-service.d.ts +0 -78
  1205. package/packages/agent/src/services/fallback-training-service.d.ts.map +0 -1
  1206. package/packages/agent/src/services/fallback-training-service.js +0 -126
  1207. package/packages/agent/src/services/privy-wallets.d.ts +0 -18
  1208. package/packages/agent/src/services/privy-wallets.d.ts.map +0 -1
  1209. package/packages/agent/src/services/privy-wallets.js +0 -225
  1210. package/packages/agent/src/services/signal-pairing.d.ts +0 -37
  1211. package/packages/agent/src/services/signal-pairing.d.ts.map +0 -1
  1212. package/packages/agent/src/services/signal-pairing.js +0 -124
  1213. package/packages/agent/src/services/stream-manager.d.ts +0 -121
  1214. package/packages/agent/src/services/stream-manager.d.ts.map +0 -1
  1215. package/packages/agent/src/services/stream-manager.js +0 -604
  1216. package/packages/agent/src/services/tts-stream-bridge.d.ts +0 -83
  1217. package/packages/agent/src/services/tts-stream-bridge.d.ts.map +0 -1
  1218. package/packages/agent/src/services/tts-stream-bridge.js +0 -349
  1219. package/packages/agent/src/services/whatsapp-pairing.d.ts +0 -41
  1220. package/packages/agent/src/services/whatsapp-pairing.d.ts.map +0 -1
  1221. package/packages/agent/src/services/whatsapp-pairing.js +0 -209
  1222. package/packages/agent/src/triggers/action.d.ts +0 -3
  1223. package/packages/agent/src/triggers/action.d.ts.map +0 -1
  1224. package/packages/agent/src/triggers/action.js +0 -267
  1225. package/packages/agent/src/utils/spoken-text.d.ts +0 -2
  1226. package/packages/agent/src/utils/spoken-text.d.ts.map +0 -1
  1227. package/packages/agent/src/utils/spoken-text.js +0 -56
@@ -0,0 +1,1375 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ /**
10
+ * Plugin discovery and resolution logic.
11
+ *
12
+ * Resolves Eliza plugins from config and auto-enable logic, loading them
13
+ * from static imports, npm packages, workspace overrides, or drop-in
14
+ * directories. Each plugin is wrapped in an error boundary so a single
15
+ * failing plugin cannot crash the agent startup.
16
+ *
17
+ * Extracted from eliza.ts to reduce file size.
18
+ *
19
+ * @module plugin-resolver
20
+ */
21
+ import crypto from "node:crypto";
22
+ import { existsSync } from "node:fs";
23
+ import fs from "node:fs/promises";
24
+ import path from "node:path";
25
+ import { pathToFileURL } from "node:url";
26
+ import { logger } from "@elizaos/core";
27
+ import { applyAppManifestDefaults, applyPluginManifestVerdicts, evaluatePluginManifests, filterCandidatesByAppManifest, formatError, isMobilePlatform, readAppManifest, } from "@elizaos/shared";
28
+ import { saveElizaConfig } from "../config/config.js";
29
+ import { resolveStateDir, resolveUserPath } from "../config/paths.js";
30
+ import { diagnoseNoAIProvider } from "../services/version-compat.js";
31
+ import { CORE_PLUGINS, OPTIONAL_CORE_PLUGINS } from "./core-plugins.js";
32
+ import { CHANNEL_PLUGIN_MAP, collectPluginNames, OPTIONAL_PLUGIN_MAP, resolvePluginPackageAlias, } from "./plugin-collector.js";
33
+ import { CUSTOM_PLUGINS_DIRNAME, EJECTED_PLUGINS_DIRNAME, ensureBrowserServerLink, findRuntimePluginExport, mergeDropInPlugins, repairBrokenInstallRecord, resolveElizaPluginImportSpecifier, resolvePackageEntry, STATIC_ELIZA_PLUGINS, scanDropInPlugins, } from "./plugin-types.js";
34
+ const LAST_FAILED_PLUGIN_NAMES = Symbol.for("@elizaos/plugin-resolver/last-failed-plugin-names");
35
+ const RUNTIME_APP_PLUGIN_SUBPATHS = new Set([
36
+ "@elizaos/app-companion",
37
+ "@elizaos/app-contacts",
38
+ "@elizaos/app-elizamaker",
39
+ "@elizaos/app-lifeops",
40
+ "@elizaos/app-phone",
41
+ "@elizaos/app-polymarket",
42
+ "@elizaos/app-shopify",
43
+ "@elizaos/app-steward",
44
+ "@elizaos/app-vincent",
45
+ "@elizaos/app-wifi",
46
+ ]);
47
+ // ---------------------------------------------------------------------------
48
+ // Helpers (private)
49
+ // ---------------------------------------------------------------------------
50
+ /** Missing npm package, Bun resolve, or browser stagehand — expected when optional plugins are allow-listed but not installed. */
51
+ function isBenignOptionalPluginFailure(msg) {
52
+ return (msg.includes("Cannot find module") ||
53
+ msg.includes("MODULE_NOT_FOUND") ||
54
+ msg.includes("ResolveMessage") ||
55
+ msg === "browser server binary not found");
56
+ }
57
+ function redactUserSegments(filepath) {
58
+ // Replace /Users/<name>/ or /home/<name>/ with /Users/<redacted>/ etc.
59
+ return filepath.replace(/\/(Users|home)\/[^/]+\//g, "/$1/<redacted>/");
60
+ }
61
+ export function resolveRuntimePluginImportSpecifier(pluginName) {
62
+ if (pluginName.startsWith("@elizaos/plugin-")) {
63
+ return resolveElizaPluginImportSpecifier(pluginName);
64
+ }
65
+ return runtimePluginImportSpecifier(pluginName);
66
+ }
67
+ function sanitizePluginCacheSegment(value) {
68
+ return value.replace(/[^a-zA-Z0-9._-]+/g, "_");
69
+ }
70
+ const SOURCE_STAGED_WORKSPACE_DEPENDENCIES = new Set(["@elizaos/agent"]);
71
+ const SOURCE_STAGED_ROOT_ENTRYPOINTS = {
72
+ "@elizaos/agent": {
73
+ path: "./src/staged-runtime-index.ts",
74
+ source: `export { extractActionParamsViaLlm } from "./actions/extract-params.ts";
75
+ export { renderGroundedActionReply } from "./actions/grounded-action-reply.ts";
76
+ export { extractConversationMetadataFromRoom, isPageScopedConversationMetadata } from "./api/conversation-metadata.ts";
77
+ export { handleConnectorAccountRoutes } from "./api/connector-account-routes.ts";
78
+ export { checkRateLimit } from "./api/rate-limiter.ts";
79
+ export { loadElizaConfig, saveElizaConfig } from "./config/config.ts";
80
+ export { loadOwnerContactRoutingHints, loadOwnerContactsConfig, resolveOwnerContactWithFallback } from "./config/owner-contacts.ts";
81
+ export { resolveOAuthDir, resolveStateDir } from "./config/paths.ts";
82
+ export { createIntegrationTelemetrySpan } from "./diagnostics/integration-observability.ts";
83
+ export { getAgentEventService } from "./runtime/agent-event-service.ts";
84
+ export { resolveOwnerEntityId } from "./runtime/owner-entity.ts";
85
+ export { hasOwnerAccess } from "./security/access.ts";
86
+ export { gatePluginSessionForHostedApp } from "./services/app-session-gate.ts";
87
+ export { registerEscalationChannel } from "./services/escalation.ts";
88
+ export { buildTriggerConfig, buildTriggerMetadata, computeNextCronRunAtMs, normalizeTriggerDraft, parseCronExpression } from "./triggers/scheduling.ts";
89
+ export { getTriggerLimit, listTriggerTasks, readTriggerConfig, taskToTriggerSummary, triggersFeatureEnabled, TRIGGER_TASK_NAME, TRIGGER_TASK_TAGS } from "./triggers/runtime.ts";
90
+ `,
91
+ },
92
+ };
93
+ function packageNodeModulesEntryPath(nodeModulesDir, packageName) {
94
+ return path.join(nodeModulesDir, ...packageName.split("/"));
95
+ }
96
+ async function pathEntryExists(targetPath) {
97
+ try {
98
+ await fs.lstat(targetPath);
99
+ return true;
100
+ }
101
+ catch (error) {
102
+ if (error.code === "ENOENT") {
103
+ return false;
104
+ }
105
+ throw error;
106
+ }
107
+ }
108
+ async function readPluginPackageManifest(packageRoot) {
109
+ try {
110
+ return JSON.parse(await fs.readFile(path.join(packageRoot, "package.json"), "utf8"));
111
+ }
112
+ catch (error) {
113
+ if (error.code === "ENOENT") {
114
+ return null;
115
+ }
116
+ throw error;
117
+ }
118
+ }
119
+ function collectDeclaredPluginDependencies(manifest) {
120
+ const collected = new Map();
121
+ for (const name of Object.keys(manifest.dependencies ?? {})) {
122
+ collected.set(name, { name, optional: false });
123
+ }
124
+ for (const name of Object.keys(manifest.optionalDependencies ?? {})) {
125
+ if (!collected.has(name)) {
126
+ collected.set(name, { name, optional: true });
127
+ }
128
+ }
129
+ for (const name of Object.keys(manifest.peerDependencies ?? {})) {
130
+ if (collected.has(name)) {
131
+ continue;
132
+ }
133
+ const optional = manifest.peerDependenciesMeta?.[name]?.optional === true;
134
+ collected.set(name, { name, optional });
135
+ }
136
+ return [...collected.values()].sort((left, right) => left.name.localeCompare(right.name));
137
+ }
138
+ async function stageDependencyIntoNodeModules(params) {
139
+ const sourcePath = packageNodeModulesEntryPath(params.sourceNodeModulesDir, params.dependencyName);
140
+ if (!(await pathEntryExists(sourcePath))) {
141
+ return false;
142
+ }
143
+ const targetPath = packageNodeModulesEntryPath(params.targetNodeModulesDir, params.dependencyName);
144
+ if (await pathEntryExists(targetPath)) {
145
+ return true;
146
+ }
147
+ await fs.mkdir(path.dirname(targetPath), { recursive: true });
148
+ const stat = await fs.lstat(sourcePath);
149
+ if (stat.isSymbolicLink()) {
150
+ const linkTarget = await resolveSymlinkTargetIfPresent(sourcePath);
151
+ if (!linkTarget) {
152
+ return false;
153
+ }
154
+ await fs.symlink(linkTarget, targetPath);
155
+ return true;
156
+ }
157
+ if (!stat.isDirectory()) {
158
+ return false;
159
+ }
160
+ await fs.cp(sourcePath, targetPath, {
161
+ recursive: true,
162
+ force: true,
163
+ dereference: true,
164
+ });
165
+ return true;
166
+ }
167
+ function rewriteDistExportTargetToSource(value) {
168
+ if (typeof value === "string") {
169
+ return value.replace(/^\.(\/dist\/)/, "./src/").replace(/\.js$/, ".ts");
170
+ }
171
+ if (Array.isArray(value)) {
172
+ return value.map(rewriteDistExportTargetToSource);
173
+ }
174
+ if (!value || typeof value !== "object") {
175
+ return value;
176
+ }
177
+ return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
178
+ key,
179
+ rewriteDistExportTargetToSource(entry),
180
+ ]));
181
+ }
182
+ async function writeSourceStagedPackageManifest(params) {
183
+ const sourcePackageJsonPath = path.join(params.sourcePackageRoot, "package.json");
184
+ const targetPackageJsonPath = path.join(params.targetPackageRoot, "package.json");
185
+ const manifest = JSON.parse(await fs.readFile(sourcePackageJsonPath, "utf8"));
186
+ const rootEntrypoint = SOURCE_STAGED_ROOT_ENTRYPOINTS[params.dependencyName];
187
+ const rootExport = rootEntrypoint
188
+ ? {
189
+ types: rootEntrypoint.path,
190
+ import: rootEntrypoint.path,
191
+ default: rootEntrypoint.path,
192
+ }
193
+ : undefined;
194
+ const rewrittenExports = rewriteDistExportTargetToSource(manifest.exports);
195
+ const rewrittenManifest = {
196
+ ...manifest,
197
+ main: rootEntrypoint?.path ?? "./src/index.ts",
198
+ module: rootEntrypoint?.path ?? "./src/index.ts",
199
+ types: rootEntrypoint?.path ?? "./src/index.ts",
200
+ exports: rootExport && rewrittenExports && typeof rewrittenExports === "object"
201
+ ? { ...rewrittenExports, ".": rootExport }
202
+ : (rewrittenExports ?? rootEntrypoint?.path),
203
+ };
204
+ await fs.writeFile(targetPackageJsonPath, `${JSON.stringify(rewrittenManifest, null, 2)}\n`);
205
+ }
206
+ async function writeSourceStagedRootEntrypoint(params) {
207
+ const rootEntrypoint = SOURCE_STAGED_ROOT_ENTRYPOINTS[params.dependencyName];
208
+ if (!rootEntrypoint) {
209
+ return;
210
+ }
211
+ const relativeEntrypointPath = rootEntrypoint.path.replace(/^\.\//, "");
212
+ const targetPath = path.join(params.targetPackageRoot, relativeEntrypointPath);
213
+ await fs.mkdir(path.dirname(targetPath), { recursive: true });
214
+ await fs.writeFile(targetPath, rootEntrypoint.source);
215
+ }
216
+ async function stageWorkspaceSourceDependencyIntoNodeModules(params) {
217
+ const sourcePath = packageNodeModulesEntryPath(params.sourceNodeModulesDir, params.dependencyName);
218
+ if (!(await pathEntryExists(sourcePath))) {
219
+ return false;
220
+ }
221
+ const resolvedSourcePath = (await resolveSymlinkTargetIfPresent(sourcePath)) ?? sourcePath;
222
+ const sourceSrcPath = path.join(resolvedSourcePath, "src");
223
+ const sourcePackageJsonPath = path.join(resolvedSourcePath, "package.json");
224
+ if (!(await pathEntryExists(sourceSrcPath)) ||
225
+ !(await pathEntryExists(sourcePackageJsonPath))) {
226
+ return false;
227
+ }
228
+ const targetPath = packageNodeModulesEntryPath(params.targetNodeModulesDir, params.dependencyName);
229
+ if (await pathEntryExists(targetPath)) {
230
+ return true;
231
+ }
232
+ await fs.mkdir(path.dirname(targetPath), { recursive: true });
233
+ await fs.cp(resolvedSourcePath, targetPath, {
234
+ recursive: true,
235
+ force: true,
236
+ dereference: true,
237
+ filter: (src) => {
238
+ const relativePath = path.relative(resolvedSourcePath, src);
239
+ if (!relativePath)
240
+ return true;
241
+ const [topLevel] = relativePath.split(path.sep);
242
+ return (topLevel === "src" ||
243
+ relativePath === "package.json" ||
244
+ relativePath === "vite-env.d.ts");
245
+ },
246
+ });
247
+ await writeSourceStagedPackageManifest({
248
+ dependencyName: params.dependencyName,
249
+ sourcePackageRoot: resolvedSourcePath,
250
+ targetPackageRoot: targetPath,
251
+ });
252
+ await writeSourceStagedRootEntrypoint({
253
+ dependencyName: params.dependencyName,
254
+ targetPackageRoot: targetPath,
255
+ });
256
+ return true;
257
+ }
258
+ async function ensureStagedPackageDependencies(params) {
259
+ const stagedNodeModulesPath = path.join(params.stagedPackageRoot, "node_modules");
260
+ await fs.mkdir(stagedNodeModulesPath, { recursive: true });
261
+ const manifest = await readPluginPackageManifest(params.packageRoot);
262
+ if (!manifest) {
263
+ return;
264
+ }
265
+ const dependencies = collectDeclaredPluginDependencies(manifest);
266
+ if (dependencies.length === 0) {
267
+ return;
268
+ }
269
+ const sourceNodeModulesDirs = uniquePaths([
270
+ path.join(params.packageRoot, "node_modules"),
271
+ path.join(params.installRoot, "node_modules"),
272
+ ...(await findAncestorNodeModulesDirs(params.packageRoot)),
273
+ ]);
274
+ for (const dependency of dependencies) {
275
+ const stagedDependencyPath = packageNodeModulesEntryPath(stagedNodeModulesPath, dependency.name);
276
+ const shouldStageFromSource = SOURCE_STAGED_WORKSPACE_DEPENDENCIES.has(dependency.name);
277
+ if (await pathEntryExists(stagedDependencyPath)) {
278
+ if (!shouldStageFromSource) {
279
+ continue;
280
+ }
281
+ await fs.rm(stagedDependencyPath, { recursive: true, force: true });
282
+ }
283
+ let staged = false;
284
+ for (const sourceNodeModulesDir of sourceNodeModulesDirs) {
285
+ staged = shouldStageFromSource
286
+ ? await stageWorkspaceSourceDependencyIntoNodeModules({
287
+ dependencyName: dependency.name,
288
+ sourceNodeModulesDir,
289
+ targetNodeModulesDir: stagedNodeModulesPath,
290
+ })
291
+ : await stageDependencyIntoNodeModules({
292
+ dependencyName: dependency.name,
293
+ sourceNodeModulesDir,
294
+ targetNodeModulesDir: stagedNodeModulesPath,
295
+ });
296
+ if (staged) {
297
+ break;
298
+ }
299
+ }
300
+ if (!staged && !dependency.optional) {
301
+ logger.warn(`[eliza] Staged plugin ${params.packageName} is missing declared dependency ${dependency.name}`);
302
+ }
303
+ }
304
+ }
305
+ // ---------------------------------------------------------------------------
306
+ // Workspace plugin overrides
307
+ // ---------------------------------------------------------------------------
308
+ function uniquePaths(paths) {
309
+ const seen = new Set();
310
+ const ordered = [];
311
+ for (const candidate of paths) {
312
+ const resolved = path.resolve(candidate);
313
+ if (!seen.has(resolved)) {
314
+ seen.add(resolved);
315
+ ordered.push(resolved);
316
+ }
317
+ }
318
+ return ordered;
319
+ }
320
+ function resolveWorkspaceRoots() {
321
+ const envRoot = process.env.ELIZA_WORKSPACE_ROOT?.trim();
322
+ if (envRoot) {
323
+ return uniquePaths([envRoot]);
324
+ }
325
+ // Phase 3: only search cwd — parent-directory and module-relative fallbacks
326
+ // removed. Repo-local ./eliza submodule + setup:upstreams symlinks handle
327
+ // plugin resolution for development. Set ELIZA_WORKSPACE_ROOT explicitly
328
+ // for external override scenarios.
329
+ return uniquePaths([process.cwd()]);
330
+ }
331
+ function legacyAppsWorkspaceDiscoveryEnabled() {
332
+ const raw = process.env.ELIZA_ENABLE_LEGACY_APPS_WORKSPACE_DISCOVERY;
333
+ if (!raw)
334
+ return false;
335
+ const normalized = raw.trim().toLowerCase();
336
+ return normalized === "1" || normalized === "true" || normalized === "yes";
337
+ }
338
+ function getWorkspacePluginOverridePath(pluginName) {
339
+ if (process.env.ELIZA_DISABLE_WORKSPACE_PLUGIN_OVERRIDES === "1") {
340
+ return null;
341
+ }
342
+ const packageSegmentMatch = pluginName.match(/^@[^/]+\/((?:app|plugin)-[^/]+)$/);
343
+ const packageSegment = packageSegmentMatch?.[1];
344
+ if (!packageSegment)
345
+ return null;
346
+ for (const workspaceRoot of resolveWorkspaceRoots()) {
347
+ const candidates = [
348
+ path.join(workspaceRoot, "plugins", packageSegment, "typescript"),
349
+ path.join(workspaceRoot, "plugins", packageSegment),
350
+ path.join(workspaceRoot, "packages", packageSegment),
351
+ path.join(workspaceRoot, "eliza", "plugins", packageSegment, "typescript"),
352
+ path.join(workspaceRoot, "eliza", "plugins", packageSegment),
353
+ path.join(workspaceRoot, "eliza", "packages", packageSegment),
354
+ ];
355
+ if (legacyAppsWorkspaceDiscoveryEnabled()) {
356
+ // Temporary opt-in for older external workspaces that have not moved
357
+ // app plugins from apps/app-* to plugins/app-* yet. The Eliza repo no
358
+ // longer depends on or scans top-level apps/* by default.
359
+ candidates.push(path.join(workspaceRoot, "apps", packageSegment), path.join(workspaceRoot, "eliza", "apps", packageSegment));
360
+ }
361
+ for (const candidate of uniquePaths(candidates)) {
362
+ if (existsSync(path.join(candidate, "package.json"))) {
363
+ return candidate;
364
+ }
365
+ }
366
+ }
367
+ return null;
368
+ }
369
+ function runtimePluginExportSubpath(pluginName) {
370
+ return RUNTIME_APP_PLUGIN_SUBPATHS.has(pluginName) ? "./plugin" : ".";
371
+ }
372
+ function runtimePluginImportSpecifier(pluginName) {
373
+ return RUNTIME_APP_PLUGIN_SUBPATHS.has(pluginName)
374
+ ? `${pluginName}/plugin`
375
+ : pluginName;
376
+ }
377
+ async function hasNonSymlinkWorkspaceNodeModulesPackage(pluginName) {
378
+ for (const workspaceRoot of uniquePaths([
379
+ process.cwd(),
380
+ ...resolveWorkspaceRoots(),
381
+ ])) {
382
+ const candidate = path.join(workspaceRoot, "node_modules", ...pluginName.split("/"));
383
+ try {
384
+ const stat = await fs.lstat(candidate);
385
+ if (stat.isDirectory() && !stat.isSymbolicLink()) {
386
+ return true;
387
+ }
388
+ }
389
+ catch (error) {
390
+ if (error.code !== "ENOENT") {
391
+ throw error;
392
+ }
393
+ }
394
+ }
395
+ return false;
396
+ }
397
+ // ---------------------------------------------------------------------------
398
+ // Plugin error boundary wrapper
399
+ // ---------------------------------------------------------------------------
400
+ /**
401
+ * Wrap a plugin's `init` and `providers` with error boundaries so that a
402
+ * crash in any single plugin does not take down the entire agent or GUI.
403
+ *
404
+ * NOTE: Actions are NOT wrapped here because elizaOS's action dispatch
405
+ * already has its own error boundary. Only `init` (startup) and
406
+ * `providers` (called every turn) need protection at this layer.
407
+ *
408
+ * The wrapper catches errors, logs them with the plugin name for easy
409
+ * debugging, and continues execution.
410
+ */
411
+ function wrapPluginWithErrorBoundary(pluginName, plugin, _options) {
412
+ const wrapped = { ...plugin };
413
+ // Wrap init if present
414
+ if (plugin.init) {
415
+ const originalInit = plugin.init;
416
+ wrapped.init = async (...args) => {
417
+ try {
418
+ return await originalInit(...args);
419
+ }
420
+ catch (err) {
421
+ logger.error(`[eliza] Plugin "${pluginName}" crashed during init: ${formatError(err)}`);
422
+ throw err;
423
+ }
424
+ };
425
+ }
426
+ // Wrap providers with error boundaries
427
+ if (plugin.providers && plugin.providers.length > 0) {
428
+ wrapped.providers = plugin.providers.map((provider) => ({
429
+ ...provider,
430
+ get: async (...args) => {
431
+ try {
432
+ return await provider.get(...args);
433
+ }
434
+ catch (err) {
435
+ const msg = formatError(err);
436
+ logger.error(`[eliza] Provider "${provider.name}" (plugin: ${pluginName}) crashed: ${msg}`);
437
+ throw err;
438
+ }
439
+ },
440
+ }));
441
+ }
442
+ return wrapped;
443
+ }
444
+ // ---------------------------------------------------------------------------
445
+ // Import helpers
446
+ // ---------------------------------------------------------------------------
447
+ /**
448
+ * Import a plugin module from its install directory on disk.
449
+ *
450
+ * Handles two install layouts:
451
+ * 1. npm layout: <installPath>/node_modules/@scope/package/ (from `bun add`)
452
+ * 2. git layout: <installPath>/ is the package root directly (from `git clone`)
453
+ *
454
+ * @param installPath Root directory of the installation (e.g. ~/.eliza/plugins/installed/foo/).
455
+ * @param packageName The npm package name (e.g. "@elizaos/plugin-discord") — used
456
+ * to navigate directly into node_modules when present.
457
+ */
458
+ export async function importPluginModuleFromPath(installPath, packageName, exportSubpath = ".") {
459
+ const absPath = path.resolve(installPath);
460
+ // npm/bun layout: installPath/node_modules/@scope/name/
461
+ // git layout: installPath/ is the package itself
462
+ const nmCandidate = path.join(absPath, "node_modules", ...packageName.split("/"));
463
+ let pkgRoot = absPath;
464
+ try {
465
+ if ((await fs.stat(nmCandidate)).isDirectory())
466
+ pkgRoot = nmCandidate;
467
+ }
468
+ catch (err) {
469
+ if (err.code !== "ENOENT") {
470
+ throw err;
471
+ }
472
+ /* git layout — pkgRoot stays as absPath */
473
+ }
474
+ const packageRelativePath = pkgRoot === absPath ? [] : ["node_modules", ...packageName.split("/")];
475
+ const stagedPkgRoot = await stagePluginImportRoot({
476
+ installRoot: absPath,
477
+ packageRoot: pkgRoot,
478
+ packageRelativePath,
479
+ packageName,
480
+ });
481
+ // Resolve entry point from a staged filesystem snapshot so reloads pick up
482
+ // updated relative modules and bundled dependencies instead of reusing the
483
+ // previous ESM module graph from the original path.
484
+ const entryPoint = await resolvePackageEntry(stagedPkgRoot, exportSubpath);
485
+ return (await import(__rewriteRelativeImportExtension(pathToFileURL(entryPoint).href)));
486
+ }
487
+ async function findNearestNodeModulesDir(startDir) {
488
+ let currentDir = path.resolve(startDir);
489
+ while (true) {
490
+ const candidate = path.join(currentDir, "node_modules");
491
+ try {
492
+ if ((await fs.stat(candidate)).isDirectory()) {
493
+ return candidate;
494
+ }
495
+ }
496
+ catch (error) {
497
+ if (error.code !== "ENOENT") {
498
+ throw error;
499
+ }
500
+ }
501
+ const parentDir = path.dirname(currentDir);
502
+ if (parentDir === currentDir) {
503
+ return null;
504
+ }
505
+ currentDir = parentDir;
506
+ }
507
+ }
508
+ function setLastFailedPluginNames(pluginNames) {
509
+ globalThis[LAST_FAILED_PLUGIN_NAMES] = [
510
+ ...pluginNames,
511
+ ];
512
+ }
513
+ export function getLastFailedPluginNames() {
514
+ return [
515
+ ...(globalThis[LAST_FAILED_PLUGIN_NAMES] ?? []),
516
+ ];
517
+ }
518
+ async function findAncestorNodeModulesDirs(startDir) {
519
+ const dirs = [];
520
+ let currentDir = path.resolve(startDir);
521
+ while (true) {
522
+ const candidate = path.join(currentDir, "node_modules");
523
+ try {
524
+ if ((await fs.stat(candidate)).isDirectory()) {
525
+ dirs.push(candidate);
526
+ }
527
+ }
528
+ catch (error) {
529
+ if (error.code !== "ENOENT") {
530
+ throw error;
531
+ }
532
+ }
533
+ const parentDir = path.dirname(currentDir);
534
+ if (parentDir === currentDir) {
535
+ return dirs;
536
+ }
537
+ currentDir = parentDir;
538
+ }
539
+ }
540
+ async function linkAncestorNodeModulesIfNeeded(params) {
541
+ const stagedNodeModulesPath = path.join(params.stagedPackageRoot, "node_modules");
542
+ if (existsSync(stagedNodeModulesPath)) {
543
+ return;
544
+ }
545
+ const ancestorNodeModules = await findNearestNodeModulesDir(params.packageRoot);
546
+ if (!ancestorNodeModules) {
547
+ return;
548
+ }
549
+ const normalizedInstallRoot = path.resolve(params.installRoot);
550
+ const normalizedAncestorNodeModules = path.resolve(ancestorNodeModules);
551
+ if (normalizedAncestorNodeModules ===
552
+ path.join(normalizedInstallRoot, "node_modules") ||
553
+ normalizedAncestorNodeModules.startsWith(`${normalizedInstallRoot}${path.sep}`)) {
554
+ return;
555
+ }
556
+ await fs.mkdir(stagedNodeModulesPath, { recursive: true });
557
+ await linkMissingPackagesFromNodeModules({
558
+ sourceNodeModulesDir: ancestorNodeModules,
559
+ targetNodeModulesDir: stagedNodeModulesPath,
560
+ });
561
+ }
562
+ async function linkMissingPackagesFromNodeModules(params) {
563
+ const entries = await fs.readdir(params.sourceNodeModulesDir, {
564
+ withFileTypes: true,
565
+ });
566
+ for (const entry of entries) {
567
+ if (entry.name === ".bin" || entry.name.startsWith(".")) {
568
+ continue;
569
+ }
570
+ const sourcePath = path.join(params.sourceNodeModulesDir, entry.name);
571
+ const targetPath = path.join(params.targetNodeModulesDir, entry.name);
572
+ if (entry.isDirectory() && entry.name.startsWith("@")) {
573
+ await fs.mkdir(targetPath, { recursive: true });
574
+ const scopedEntries = await fs.readdir(sourcePath, {
575
+ withFileTypes: true,
576
+ });
577
+ for (const scopedEntry of scopedEntries) {
578
+ if (scopedEntry.name.startsWith(".")) {
579
+ continue;
580
+ }
581
+ const scopedSourcePath = path.join(sourcePath, scopedEntry.name);
582
+ const scopedTargetPath = path.join(targetPath, scopedEntry.name);
583
+ if (existsSync(scopedTargetPath)) {
584
+ continue;
585
+ }
586
+ if (!scopedEntry.isDirectory() && !scopedEntry.isSymbolicLink()) {
587
+ continue;
588
+ }
589
+ const linkTarget = scopedEntry.isSymbolicLink()
590
+ ? await resolveSymlinkTargetIfPresent(scopedSourcePath)
591
+ : scopedSourcePath;
592
+ if (!linkTarget) {
593
+ continue;
594
+ }
595
+ try {
596
+ await fs.symlink(linkTarget, scopedTargetPath, "dir");
597
+ }
598
+ catch (error) {
599
+ if (error.code !== "EEXIST") {
600
+ throw error;
601
+ }
602
+ }
603
+ }
604
+ continue;
605
+ }
606
+ if ((!entry.isDirectory() && !entry.isSymbolicLink()) ||
607
+ existsSync(targetPath)) {
608
+ continue;
609
+ }
610
+ const linkTarget = entry.isSymbolicLink()
611
+ ? await resolveSymlinkTargetIfPresent(sourcePath)
612
+ : sourcePath;
613
+ if (!linkTarget) {
614
+ continue;
615
+ }
616
+ try {
617
+ await fs.symlink(linkTarget, targetPath, "dir");
618
+ }
619
+ catch (error) {
620
+ if (error.code !== "EEXIST") {
621
+ throw error;
622
+ }
623
+ }
624
+ }
625
+ }
626
+ async function resolveSymlinkTargetIfPresent(sourcePath) {
627
+ try {
628
+ return await fs.realpath(sourcePath);
629
+ }
630
+ catch (error) {
631
+ if (error.code === "ENOENT") {
632
+ return null;
633
+ }
634
+ throw error;
635
+ }
636
+ }
637
+ async function stageNodeModulesEntries(params) {
638
+ const entries = await fs.readdir(params.sourceNodeModulesDir, {
639
+ withFileTypes: true,
640
+ });
641
+ for (const entry of entries) {
642
+ if (entry.name === ".bin" || entry.name.startsWith(".")) {
643
+ continue;
644
+ }
645
+ const sourcePath = path.join(params.sourceNodeModulesDir, entry.name);
646
+ const targetPath = path.join(params.targetNodeModulesDir, entry.name);
647
+ if (entry.isDirectory() && entry.name.startsWith("@")) {
648
+ await fs.mkdir(targetPath, { recursive: true });
649
+ const scopedEntries = await fs.readdir(sourcePath, {
650
+ withFileTypes: true,
651
+ });
652
+ for (const scopedEntry of scopedEntries) {
653
+ if (scopedEntry.name.startsWith(".")) {
654
+ continue;
655
+ }
656
+ const scopedSourcePath = path.join(sourcePath, scopedEntry.name);
657
+ const scopedTargetPath = path.join(targetPath, scopedEntry.name);
658
+ if (existsSync(scopedTargetPath)) {
659
+ continue;
660
+ }
661
+ if (scopedEntry.isSymbolicLink()) {
662
+ const linkTarget = await resolveSymlinkTargetIfPresent(scopedSourcePath);
663
+ if (!linkTarget)
664
+ continue;
665
+ await fs.symlink(linkTarget, scopedTargetPath);
666
+ continue;
667
+ }
668
+ if (!scopedEntry.isDirectory()) {
669
+ continue;
670
+ }
671
+ await fs.cp(scopedSourcePath, scopedTargetPath, {
672
+ recursive: true,
673
+ force: true,
674
+ dereference: true,
675
+ });
676
+ }
677
+ continue;
678
+ }
679
+ if (existsSync(targetPath)) {
680
+ continue;
681
+ }
682
+ if (entry.isSymbolicLink()) {
683
+ const linkTarget = await resolveSymlinkTargetIfPresent(sourcePath);
684
+ if (!linkTarget)
685
+ continue;
686
+ await fs.symlink(linkTarget, targetPath);
687
+ continue;
688
+ }
689
+ if (!entry.isDirectory()) {
690
+ continue;
691
+ }
692
+ await fs.cp(sourcePath, targetPath, {
693
+ recursive: true,
694
+ force: true,
695
+ dereference: true,
696
+ });
697
+ }
698
+ }
699
+ function stageAllHoistedNodeModulesEnabled() {
700
+ const raw = process.env.ELIZA_STAGE_ALL_HOISTED_NODE_MODULES;
701
+ if (!raw)
702
+ return false;
703
+ const normalized = raw.trim().toLowerCase();
704
+ return normalized === "1" || normalized === "true" || normalized === "yes";
705
+ }
706
+ function stageFullPluginPackageEnabled() {
707
+ const raw = process.env.ELIZA_STAGE_FULL_PLUGIN_PACKAGE;
708
+ if (!raw)
709
+ return false;
710
+ const normalized = raw.trim().toLowerCase();
711
+ return normalized === "1" || normalized === "true" || normalized === "yes";
712
+ }
713
+ const DEFAULT_PLUGIN_INSTANCE_KEEP = 3;
714
+ function pluginInstanceKeepCount() {
715
+ const raw = process.env.ELIZA_PLUGIN_INSTANCE_KEEP;
716
+ if (!raw)
717
+ return DEFAULT_PLUGIN_INSTANCE_KEEP;
718
+ const parsed = Number.parseInt(raw.trim(), 10);
719
+ if (!Number.isFinite(parsed) || parsed < 1) {
720
+ return DEFAULT_PLUGIN_INSTANCE_KEEP;
721
+ }
722
+ return parsed;
723
+ }
724
+ /**
725
+ * Prune sibling plugin staging directories under `stagingBaseDir`, keeping
726
+ * only the `keepCount` newest by mtime. Each call to `stagePluginImportRoot`
727
+ * mints a new `mkdtemp` directory and the previous ones are never reused, so
728
+ * without this cleanup the directory grows unbounded — on long-running dev
729
+ * boxes the same plugin can accumulate thousands of stale installs (each
730
+ * carrying its own `node_modules` copy) and consume hundreds of GB.
731
+ *
732
+ * Failures are logged but never thrown — staging the new install must not be
733
+ * blocked by failure to clean up old ones.
734
+ *
735
+ * Exported for unit testing.
736
+ */
737
+ export async function pruneStalePluginInstances(stagingBaseDir, keepCount) {
738
+ let entries;
739
+ try {
740
+ entries = await fs.readdir(stagingBaseDir, { withFileTypes: true });
741
+ }
742
+ catch {
743
+ return;
744
+ }
745
+ const candidates = [];
746
+ for (const entry of entries) {
747
+ if (!entry.isDirectory())
748
+ continue;
749
+ const fullPath = path.join(stagingBaseDir, entry.name);
750
+ try {
751
+ const stat = await fs.stat(fullPath);
752
+ candidates.push({ path: fullPath, mtimeMs: stat.mtimeMs });
753
+ }
754
+ catch {
755
+ // dir vanished concurrently — fine, skip it
756
+ }
757
+ }
758
+ if (candidates.length <= keepCount)
759
+ return;
760
+ candidates.sort((a, b) => b.mtimeMs - a.mtimeMs);
761
+ const toDelete = candidates.slice(keepCount);
762
+ let deleted = 0;
763
+ for (const victim of toDelete) {
764
+ try {
765
+ await fs.rm(victim.path, { recursive: true, force: true });
766
+ deleted += 1;
767
+ }
768
+ catch (error) {
769
+ logger.warn(`[eliza] Failed to prune stale plugin instance ${victim.path}: ${formatError(error)}`);
770
+ }
771
+ }
772
+ if (deleted > 0) {
773
+ logger.debug(`[eliza] Pruned ${deleted} stale plugin instance(s) under ${stagingBaseDir}, kept newest ${keepCount}`);
774
+ }
775
+ }
776
+ function createPluginPackageStageFilter(packageRoot) {
777
+ const distPath = path.join(packageRoot, "dist");
778
+ const stageBuiltPackageOnly = existsSync(distPath) && !stageFullPluginPackageEnabled();
779
+ return (src) => {
780
+ const relativePath = path.relative(packageRoot, src);
781
+ if (!relativePath)
782
+ return true;
783
+ const [topLevel] = relativePath.split(path.sep);
784
+ if (topLevel === "node_modules")
785
+ return false;
786
+ if (stageBuiltPackageOnly) {
787
+ return topLevel === "dist" || relativePath === "package.json";
788
+ }
789
+ return ![
790
+ ".turbo",
791
+ "coverage",
792
+ "docs",
793
+ "node_modules",
794
+ "public_src",
795
+ "test",
796
+ "__tests__",
797
+ ].includes(topLevel);
798
+ };
799
+ }
800
+ async function linkHoistedNodeModulesPackages(params) {
801
+ const stagedNodeModulesPath = path.join(params.stagedPackageRoot, "node_modules");
802
+ if (!existsSync(stagedNodeModulesPath)) {
803
+ return;
804
+ }
805
+ const stagedNodeModulesStat = await fs.lstat(stagedNodeModulesPath);
806
+ if (stagedNodeModulesStat.isSymbolicLink()) {
807
+ return;
808
+ }
809
+ const normalizedInstallRoot = path.resolve(params.installRoot);
810
+ const internalNodeModulesRoot = path.join(normalizedInstallRoot, "node_modules");
811
+ const ancestorNodeModulesDirs = await findAncestorNodeModulesDirs(path.dirname(params.packageRoot));
812
+ for (const ancestorNodeModules of ancestorNodeModulesDirs) {
813
+ const normalizedAncestorNodeModules = path.resolve(ancestorNodeModules);
814
+ if (normalizedAncestorNodeModules === internalNodeModulesRoot ||
815
+ normalizedAncestorNodeModules.startsWith(`${normalizedInstallRoot}${path.sep}`)) {
816
+ continue;
817
+ }
818
+ await linkMissingPackagesFromNodeModules({
819
+ sourceNodeModulesDir: ancestorNodeModules,
820
+ targetNodeModulesDir: stagedNodeModulesPath,
821
+ });
822
+ }
823
+ }
824
+ async function stagePluginImportRoot(params) {
825
+ const stagingBaseDir = path.join(resolveStateDir(), "plugins", ".runtime-imports", sanitizePluginCacheSegment(params.packageName));
826
+ await fs.mkdir(stagingBaseDir, { recursive: true });
827
+ // Prune BEFORE mkdtemp so concurrent stages of the same plugin can't have
828
+ // their just-minted (still-empty) sibling deleted by another process's pruner
829
+ // that ranks it as the oldest in the batch.
830
+ await pruneStalePluginInstances(stagingBaseDir, pluginInstanceKeepCount());
831
+ const stagingDir = await fs.mkdtemp(path.join(stagingBaseDir, `${Date.now()}-${crypto.randomUUID()}-`));
832
+ const stagedInstallRoot = path.join(stagingDir, "root");
833
+ const stagedPackageRoot = params.packageRelativePath.length > 0
834
+ ? path.join(stagedInstallRoot, ...params.packageRelativePath)
835
+ : stagedInstallRoot;
836
+ await fs.mkdir(path.dirname(stagedPackageRoot), { recursive: true });
837
+ await fs.cp(params.packageRoot, stagedPackageRoot, {
838
+ recursive: true,
839
+ force: true,
840
+ dereference: true,
841
+ filter: createPluginPackageStageFilter(params.packageRoot),
842
+ });
843
+ const installNodeModulesPath = path.join(params.installRoot, "node_modules");
844
+ try {
845
+ if ((await fs.stat(installNodeModulesPath)).isDirectory()) {
846
+ const stagedInstallNodeModulesPath = path.join(stagedInstallRoot, "node_modules");
847
+ await fs.mkdir(stagedInstallNodeModulesPath, { recursive: true });
848
+ await stageNodeModulesEntries({
849
+ sourceNodeModulesDir: installNodeModulesPath,
850
+ targetNodeModulesDir: stagedInstallNodeModulesPath,
851
+ });
852
+ }
853
+ }
854
+ catch (error) {
855
+ if (error.code !== "ENOENT") {
856
+ throw error;
857
+ }
858
+ }
859
+ if (params.packageRoot !== params.installRoot) {
860
+ const packageNodeModulesPath = path.join(params.packageRoot, "node_modules");
861
+ try {
862
+ if ((await fs.stat(packageNodeModulesPath)).isDirectory()) {
863
+ const stagedPackageNodeModulesPath = path.join(stagedPackageRoot, "node_modules");
864
+ await fs.mkdir(stagedPackageNodeModulesPath, { recursive: true });
865
+ await stageNodeModulesEntries({
866
+ sourceNodeModulesDir: packageNodeModulesPath,
867
+ targetNodeModulesDir: stagedPackageNodeModulesPath,
868
+ });
869
+ }
870
+ }
871
+ catch (error) {
872
+ if (error.code !== "ENOENT") {
873
+ throw error;
874
+ }
875
+ }
876
+ }
877
+ await ensureStagedPackageDependencies({
878
+ installRoot: params.installRoot,
879
+ packageName: params.packageName,
880
+ packageRoot: params.packageRoot,
881
+ stagedPackageRoot,
882
+ });
883
+ const shouldLinkHoistedWorkspaceDeps = stageAllHoistedNodeModulesEnabled() ||
884
+ params.packageName.startsWith("@elizaos/app-");
885
+ if (shouldLinkHoistedWorkspaceDeps) {
886
+ await linkAncestorNodeModulesIfNeeded({
887
+ installRoot: params.installRoot,
888
+ packageRoot: params.packageRoot,
889
+ stagedPackageRoot,
890
+ });
891
+ await linkHoistedNodeModulesPackages({
892
+ installRoot: params.installRoot,
893
+ packageRoot: params.packageRoot,
894
+ stagedPackageRoot,
895
+ });
896
+ }
897
+ return stagedPackageRoot;
898
+ }
899
+ /**
900
+ * Resolve a statically-imported @elizaos plugin by name.
901
+ * Returns the module if found in STATIC_ELIZA_PLUGINS, otherwise null.
902
+ */
903
+ function resolveStaticElizaPlugin(pluginName) {
904
+ return STATIC_ELIZA_PLUGINS[pluginName] ?? null;
905
+ }
906
+ /**
907
+ * Walk the @elizaos scope in node_modules + workspace `plugins/` dirs and
908
+ * return every package that has a `package.json`. The manifest evaluator
909
+ * filters these down to the ones that actually declare an `elizaos.plugin`
910
+ * block — this discovery step is intentionally cheap (a single readdir + stat
911
+ * per candidate, no module imports).
912
+ */
913
+ async function discoverPluginCandidates() {
914
+ const seen = new Set();
915
+ const candidates = [];
916
+ const tryAdd = async (pkgRoot, pkgName) => {
917
+ if (seen.has(pkgName))
918
+ return;
919
+ if (!(await pathEntryExists(path.join(pkgRoot, "package.json"))))
920
+ return;
921
+ seen.add(pkgName);
922
+ candidates.push({ packageName: pkgName, packageRoot: pkgRoot });
923
+ };
924
+ // 1. node_modules/@elizaos/* — covers npm-installed plugins and dev symlinks
925
+ // pointing at workspace packages.
926
+ for (const root of resolveWorkspaceRoots()) {
927
+ const elizaScope = path.join(root, "node_modules", "@elizaos");
928
+ let entries;
929
+ try {
930
+ entries = (await fs.readdir(elizaScope, {
931
+ withFileTypes: true,
932
+ }));
933
+ }
934
+ catch (err) {
935
+ if (err.code === "ENOENT")
936
+ continue;
937
+ throw err;
938
+ }
939
+ for (const entry of entries) {
940
+ if (!entry.isDirectory() && !entry.isSymbolicLink())
941
+ continue;
942
+ if (entry.name.startsWith("."))
943
+ continue;
944
+ // Only plugin/app packages — skip core, shared, agent, ui, etc. (those
945
+ // aren't auto-enable participants and reading their package.json is
946
+ // wasted work).
947
+ if (!entry.name.startsWith("plugin-") && !entry.name.startsWith("app-")) {
948
+ continue;
949
+ }
950
+ const pkgRoot = path.join(elizaScope, entry.name);
951
+ await tryAdd(pkgRoot, `@elizaos/${entry.name}`);
952
+ }
953
+ }
954
+ // 2. workspace `plugins/` dir — covers cases where the plugin is in the
955
+ // repo but not yet symlinked into node_modules. Cheap fall-through.
956
+ for (const root of resolveWorkspaceRoots()) {
957
+ const pluginsDir = path.join(root, "plugins");
958
+ let entries;
959
+ try {
960
+ entries = (await fs.readdir(pluginsDir, {
961
+ withFileTypes: true,
962
+ }));
963
+ }
964
+ catch (err) {
965
+ if (err.code === "ENOENT")
966
+ continue;
967
+ throw err;
968
+ }
969
+ for (const entry of entries) {
970
+ if (!entry.isDirectory())
971
+ continue;
972
+ if (!entry.name.startsWith("plugin-") && !entry.name.startsWith("app-")) {
973
+ continue;
974
+ }
975
+ // Some workspace plugins keep their package at `<name>/typescript`; try
976
+ // the typescript subdir first, fall back to the dir itself.
977
+ const tsRoot = path.join(pluginsDir, entry.name, "typescript");
978
+ const tsManifest = path.join(tsRoot, "package.json");
979
+ if (await pathEntryExists(tsManifest)) {
980
+ try {
981
+ const raw = await fs.readFile(tsManifest, "utf8");
982
+ const parsed = JSON.parse(raw);
983
+ if (parsed.name)
984
+ await tryAdd(tsRoot, parsed.name);
985
+ }
986
+ catch {
987
+ // ignore unreadable / malformed
988
+ }
989
+ continue;
990
+ }
991
+ const flatRoot = path.join(pluginsDir, entry.name);
992
+ const flatManifest = path.join(flatRoot, "package.json");
993
+ if (await pathEntryExists(flatManifest)) {
994
+ try {
995
+ const raw = await fs.readFile(flatManifest, "utf8");
996
+ const parsed = JSON.parse(raw);
997
+ if (parsed.name)
998
+ await tryAdd(flatRoot, parsed.name);
999
+ }
1000
+ catch {
1001
+ // ignore
1002
+ }
1003
+ }
1004
+ }
1005
+ }
1006
+ return candidates;
1007
+ }
1008
+ // ---------------------------------------------------------------------------
1009
+ // Main function
1010
+ // ---------------------------------------------------------------------------
1011
+ /**
1012
+ * Resolve Eliza plugins from config and auto-enable logic.
1013
+ * Returns an array of elizaOS Plugin instances ready for AgentRuntime.
1014
+ *
1015
+ * Handles three categories of plugins:
1016
+ * 1. Built-in/npm plugins — imported by package name
1017
+ * 2. User-installed plugins — from ~/.eliza/plugins/installed/
1018
+ * 3. Custom/drop-in plugins — from ~/.eliza/plugins/custom/ and plugins.load.paths
1019
+ *
1020
+ * Each plugin is loaded inside an error boundary so a single failing plugin
1021
+ * cannot crash the entire agent startup.
1022
+ */
1023
+ export async function resolvePlugins(config, opts) {
1024
+ const plugins = [];
1025
+ const failedPlugins = [];
1026
+ const repairedInstallRecords = new Set();
1027
+ // NOTE: Auto-enable runs before dependency validation intentionally.
1028
+ // It returns a new config object (structuredClone under the hood) with
1029
+ // `plugins.allow` populated based on env vars and connector configuration.
1030
+ // We have to USE the returned config for collectPluginNames — the previous
1031
+ // code discarded the return value and kept using the original `config`,
1032
+ // which meant every env-gated plugin (plugin-wallet, etc.) was
1033
+ // silently dropped. Capture the result and assign back so both the allow
1034
+ // list and any downstream config reads see the mutation.
1035
+ //
1036
+ // Auto-enable is sourced exclusively from per-plugin manifests: walk every
1037
+ // @elizaos/* package.json on disk and run each plugin's
1038
+ // autoEnableModule.shouldEnable(ctx). Each plugin owns its own enable
1039
+ // conditions in auto-enable.ts — no central map exists.
1040
+ //
1041
+ // App-level manifest (host app's package.json `elizaos.app` block) can:
1042
+ // - restrict the candidate list to a curated subset
1043
+ // - prepopulate config.plugins.entries with default { enabled } flags
1044
+ // (user config still wins; defaults only fill keys the user hasn't set)
1045
+ const changes = [];
1046
+ try {
1047
+ const appManifest = await readAppManifest(process.cwd()).catch(() => null);
1048
+ const defaultedEntries = applyAppManifestDefaults(config, appManifest);
1049
+ if (defaultedEntries.length > 0) {
1050
+ logger.info(`[eliza] App manifest defaults applied to entries: ${defaultedEntries.join(", ")}`);
1051
+ }
1052
+ const allCandidates = await discoverPluginCandidates();
1053
+ const candidates = filterCandidatesByAppManifest(allCandidates, appManifest);
1054
+ if (appManifest?.candidates && candidates.length < allCandidates.length) {
1055
+ logger.info(`[eliza] App manifest restricted candidate set: ${candidates.length}/${allCandidates.length} plugins considered`);
1056
+ }
1057
+ const verdicts = await evaluatePluginManifests(candidates, {
1058
+ env: process.env,
1059
+ config,
1060
+ isNativePlatform: isMobilePlatform(),
1061
+ });
1062
+ applyPluginManifestVerdicts(config, verdicts, changes);
1063
+ }
1064
+ catch (err) {
1065
+ logger.warn(`[eliza] Plugin manifest auto-enable failed: ${err instanceof Error ? err.message : String(err)}`);
1066
+ }
1067
+ if (changes.length > 0) {
1068
+ logger.info(`[eliza] Plugin auto-enable: ${changes.join("; ")}`);
1069
+ }
1070
+ // Provenance for "why is this package in the load set?" — surfaced when an
1071
+ // optional plugin fails to resolve so logs point at config/env, not "eliza broke".
1072
+ const loadReasons = new Map();
1073
+ const pluginsToLoad = collectPluginNames(config, loadReasons);
1074
+ const corePluginSet = new Set(CORE_PLUGINS);
1075
+ // Build a mutable map of install records so we can merge drop-in discoveries
1076
+ const installRecords = {
1077
+ ...(config.plugins?.installs ?? {}),
1078
+ };
1079
+ const denyList = new Set((config.plugins?.deny || []));
1080
+ const envSkipPlugins = (process.env.ELIZA_SKIP_PLUGINS ?? "")
1081
+ .split(",")
1082
+ .map((value) => value.trim())
1083
+ .filter(Boolean);
1084
+ for (const pluginName of envSkipPlugins) {
1085
+ denyList.add(pluginName);
1086
+ }
1087
+ if (envSkipPlugins.length > 0) {
1088
+ logger.info(`[eliza] Skipping ${envSkipPlugins.length} plugin(s) via ELIZA_SKIP_PLUGINS: ${envSkipPlugins.join(", ")}`);
1089
+ }
1090
+ for (const pluginName of denyList) {
1091
+ pluginsToLoad.delete(pluginName);
1092
+ const canonical = resolvePluginPackageAlias(pluginName);
1093
+ if (canonical !== pluginName) {
1094
+ pluginsToLoad.delete(canonical);
1095
+ }
1096
+ }
1097
+ // ── Auto-discover ejected plugins ───────────────────────────────────────
1098
+ // Ejected plugins override npm/core versions, so they are tracked
1099
+ // separately and consulted first at import time.
1100
+ const ejectedRecords = await scanDropInPlugins(path.join(resolveStateDir(), EJECTED_PLUGINS_DIRNAME));
1101
+ const ejectedPluginNames = [];
1102
+ for (const [name, _record] of Object.entries(ejectedRecords)) {
1103
+ if (denyList.has(name))
1104
+ continue;
1105
+ pluginsToLoad.add(name);
1106
+ if (!loadReasons.has(name))
1107
+ loadReasons.set(name, "ejected plugins dir");
1108
+ ejectedPluginNames.push(name);
1109
+ }
1110
+ if (ejectedPluginNames.length > 0) {
1111
+ logger.info(`[eliza] Discovered ${ejectedPluginNames.length} ejected plugin(s): ${ejectedPluginNames.join(", ")}`);
1112
+ }
1113
+ // ── Auto-discover drop-in custom plugins ────────────────────────────────
1114
+ // Scan well-known dir + any extra dirs from plugins.load.paths (first wins).
1115
+ const scanDirs = [
1116
+ path.join(resolveStateDir(), CUSTOM_PLUGINS_DIRNAME),
1117
+ ...(config.plugins?.load?.paths ?? []).map(resolveUserPath),
1118
+ ];
1119
+ const dropInRecords = {};
1120
+ for (const dir of scanDirs) {
1121
+ for (const [name, record] of Object.entries(await scanDropInPlugins(dir))) {
1122
+ if (!dropInRecords[name])
1123
+ dropInRecords[name] = record;
1124
+ }
1125
+ }
1126
+ // Merge into load set — deny list and core collisions are filtered out.
1127
+ const { accepted: customPluginNames, skipped } = mergeDropInPlugins({
1128
+ dropInRecords,
1129
+ installRecords,
1130
+ corePluginNames: corePluginSet,
1131
+ denyList,
1132
+ pluginsToLoad,
1133
+ });
1134
+ for (const msg of skipped)
1135
+ logger.warn(msg);
1136
+ if (customPluginNames.length > 0) {
1137
+ logger.info(`[eliza] Discovered ${customPluginNames.length} custom plugin(s): ${customPluginNames.join(", ")}`);
1138
+ }
1139
+ logger.info(`[eliza] Resolving ${pluginsToLoad.size} plugins...`);
1140
+ const loadStartTime = Date.now();
1141
+ // Built once so we don't rebuild on every optional plugin failure.
1142
+ const optionalPluginNames = new Set([
1143
+ ...Object.values(OPTIONAL_PLUGIN_MAP),
1144
+ ...Object.values(CHANNEL_PLUGIN_MAP),
1145
+ ...OPTIONAL_CORE_PLUGINS,
1146
+ ]);
1147
+ // Load a single plugin - returns result or null on skip/failure
1148
+ async function loadSinglePlugin(pluginName) {
1149
+ const isCore = corePluginSet.has(pluginName);
1150
+ const isOfficialElizaPlugin = pluginName.startsWith("@elizaos/plugin-");
1151
+ const ejectedRecord = ejectedRecords[pluginName];
1152
+ const installRecord = installRecords[pluginName];
1153
+ const workspaceOverridePath = getWorkspacePluginOverridePath(pluginName);
1154
+ const staticElizaPlugin = await resolveStaticElizaPlugin(pluginName);
1155
+ const exportSubpath = runtimePluginExportSubpath(pluginName);
1156
+ const importOfficialPluginFromNodeModules = async () => (await import(__rewriteRelativeImportExtension(resolveElizaPluginImportSpecifier(pluginName))));
1157
+ // Pre-flight: ensure native dependencies are available for special plugins.
1158
+ if (pluginName === "@elizaos/plugin-browser") {
1159
+ if (!ensureBrowserServerLink()) {
1160
+ failedPlugins.push({
1161
+ name: pluginName,
1162
+ error: "browser server binary not found",
1163
+ });
1164
+ // ensureBrowserServerLink() already logged one debug line with setup hints.
1165
+ return null;
1166
+ }
1167
+ }
1168
+ try {
1169
+ let mod;
1170
+ if (ejectedRecord?.installPath) {
1171
+ // Ejected plugin — always prefer local source over npm/core.
1172
+ logger.debug(`[eliza] Loading ejected plugin: ${pluginName} from ${ejectedRecord.installPath}`);
1173
+ mod = await importPluginModuleFromPath(ejectedRecord.installPath, pluginName, exportSubpath);
1174
+ }
1175
+ else if (staticElizaPlugin) {
1176
+ // Prefer statically imported official plugins over workspace staging.
1177
+ // This keeps local node_modules links working while avoiding staging
1178
+ // bugs in workspace packages with nested symlinked dependencies.
1179
+ mod = staticElizaPlugin;
1180
+ }
1181
+ else if (pluginName === "@elizaos/plugin-sql") {
1182
+ // Mobile bundles run without a node_modules tree. The static plugin
1183
+ // registry is the normal fast path, but use a literal import fallback
1184
+ // so Bun can still inline the required SQL plugin if module init order
1185
+ // leaves the registry empty.
1186
+ const sqlPluginModule = await import("@elizaos/plugin-sql");
1187
+ mod = Object.fromEntries(Object.entries(sqlPluginModule));
1188
+ }
1189
+ else if (workspaceOverridePath) {
1190
+ const shouldPreferRepoNodeModules = isOfficialElizaPlugin &&
1191
+ (await hasNonSymlinkWorkspaceNodeModulesPackage(pluginName));
1192
+ if (shouldPreferRepoNodeModules) {
1193
+ logger.debug(`[eliza] Loading repo node_modules plugin: ${pluginName}`);
1194
+ try {
1195
+ mod = await importOfficialPluginFromNodeModules();
1196
+ }
1197
+ catch (error) {
1198
+ logger.warn(`[eliza] Repo node_modules plugin import failed for ${pluginName}; falling back to workspace override: ${formatError(error)}`);
1199
+ mod = await importPluginModuleFromPath(workspaceOverridePath, pluginName, exportSubpath);
1200
+ }
1201
+ }
1202
+ else {
1203
+ logger.debug(`[eliza] Loading workspace plugin override: ${pluginName} from ${workspaceOverridePath}`);
1204
+ // Always stage workspace overrides instead of re-importing the bare
1205
+ // package specifier from node_modules. Bun can wedge a subsequent
1206
+ // restart when an earlier bare import of the same specifier failed
1207
+ // during module evaluation. Staging also guarantees local edits reload.
1208
+ mod = await importPluginModuleFromPath(workspaceOverridePath, pluginName, exportSubpath);
1209
+ }
1210
+ }
1211
+ else if (installRecord?.installPath) {
1212
+ // Prefer bundled/node_modules copies for official Eliza plugins.
1213
+ if (isOfficialElizaPlugin) {
1214
+ try {
1215
+ mod = await importOfficialPluginFromNodeModules();
1216
+ if (repairBrokenInstallRecord(config, pluginName)) {
1217
+ repairedInstallRecords.add(pluginName);
1218
+ }
1219
+ }
1220
+ catch (npmErr) {
1221
+ logger.warn(`[eliza] Node_modules resolution failed for ${pluginName} (${formatError(npmErr)}). Trying installed path at ${redactUserSegments(installRecord.installPath)}.`);
1222
+ mod = await importPluginModuleFromPath(installRecord.installPath, pluginName, exportSubpath);
1223
+ }
1224
+ }
1225
+ else {
1226
+ // User-installed plugin — load from its install directory on disk.
1227
+ try {
1228
+ mod = await importPluginModuleFromPath(installRecord.installPath, pluginName, exportSubpath);
1229
+ }
1230
+ catch (installErr) {
1231
+ logger.warn(`[eliza] Installed plugin ${pluginName} failed at ${redactUserSegments(installRecord.installPath)} (${formatError(installErr)}). Falling back to node_modules resolution.`);
1232
+ const staticMod = await resolveStaticElizaPlugin(pluginName);
1233
+ mod = staticMod
1234
+ ? staticMod
1235
+ : (await import(__rewriteRelativeImportExtension(runtimePluginImportSpecifier(pluginName))));
1236
+ if (repairBrokenInstallRecord(config, pluginName)) {
1237
+ repairedInstallRecords.add(pluginName);
1238
+ }
1239
+ }
1240
+ }
1241
+ }
1242
+ else if (isOfficialElizaPlugin) {
1243
+ // Eliza plugins can resolve either from bundled local wrappers
1244
+ // under eliza-dist/plugins/* or from packaged node_modules.
1245
+ mod = await importOfficialPluginFromNodeModules();
1246
+ }
1247
+ else {
1248
+ // Built-in/npm plugin — prefer a bundled static import regardless of
1249
+ // naming convention (short-name plugins like "agent-orchestrator" are
1250
+ // registered in STATIC_ELIZA_PLUGINS and would otherwise fail a bare
1251
+ // node_modules resolution).
1252
+ mod = staticElizaPlugin
1253
+ ? staticElizaPlugin
1254
+ : (await import(__rewriteRelativeImportExtension(runtimePluginImportSpecifier(pluginName))));
1255
+ }
1256
+ const pluginInstance = findRuntimePluginExport(mod);
1257
+ if (pluginInstance) {
1258
+ // Wrap the plugin's init function with an error boundary.
1259
+ // Core plugins re-throw on init failure; optional plugins degrade gracefully.
1260
+ const wrappedPlugin = wrapPluginWithErrorBoundary(pluginName, pluginInstance, { isCore });
1261
+ logger.debug(`[eliza] ✓ Loaded plugin: ${pluginName}`);
1262
+ return { name: pluginName, plugin: wrappedPlugin };
1263
+ }
1264
+ else {
1265
+ const msg = `[eliza] Plugin ${pluginName} did not export a valid Plugin object`;
1266
+ failedPlugins.push({
1267
+ name: pluginName,
1268
+ error: "no valid Plugin export",
1269
+ });
1270
+ if (isCore) {
1271
+ logger.error(msg);
1272
+ }
1273
+ else {
1274
+ logger.warn(msg);
1275
+ }
1276
+ return null;
1277
+ }
1278
+ }
1279
+ catch (err) {
1280
+ const msg = formatError(err);
1281
+ failedPlugins.push({ name: pluginName, error: msg });
1282
+ if (isCore) {
1283
+ logger.error(`[eliza] Failed to load core plugin ${pluginName}: ${msg}`);
1284
+ }
1285
+ else {
1286
+ if (optionalPluginNames.has(pluginName)) {
1287
+ if (!isBenignOptionalPluginFailure(msg)) {
1288
+ logger.warn(`[eliza] Optional plugin ${pluginName} failed to load: ${msg}`);
1289
+ }
1290
+ }
1291
+ else {
1292
+ logger.info(`[eliza] Could not load plugin ${pluginName}: ${msg}`);
1293
+ }
1294
+ }
1295
+ return null;
1296
+ }
1297
+ }
1298
+ // Load all plugins in parallel for faster startup.
1299
+ // SECURITY NOTE: Plugins that modify process.env during import or init
1300
+ // may race with each other. This is an accepted trade-off for startup
1301
+ // performance. Critical env vars (database, AI provider keys) are set
1302
+ // before this point in buildCharacterFromConfig / resolveDbEnv.
1303
+ const serializePluginLoads = process.env.ELIZA_SERIALIZE_PLUGIN_LOADS === "1";
1304
+ logger.info(`[eliza] Loading ${pluginsToLoad.size} plugins${serializePluginLoads ? " sequentially" : ""}...`);
1305
+ const pluginResults = serializePluginLoads
1306
+ ? await (async () => {
1307
+ const results = [];
1308
+ let index = 0;
1309
+ for (const pluginName of pluginsToLoad) {
1310
+ index += 1;
1311
+ logger.info(`[eliza] Loading plugin ${index}/${pluginsToLoad.size}: ${pluginName}`);
1312
+ results.push(await loadSinglePlugin(pluginName));
1313
+ }
1314
+ return results;
1315
+ })()
1316
+ : await Promise.all(Array.from(pluginsToLoad).map(loadSinglePlugin));
1317
+ // Collect successful loads
1318
+ for (const result of pluginResults) {
1319
+ if (result) {
1320
+ plugins.push(result);
1321
+ }
1322
+ }
1323
+ const loadDuration = Date.now() - loadStartTime;
1324
+ logger.info(`[eliza] Plugin loading took ${loadDuration}ms`);
1325
+ // Summary logging — do not treat “optional + not installed” as top-level failures.
1326
+ const optionalFailed = failedPlugins.filter((f) => optionalPluginNames.has(f.name));
1327
+ const seriousFailed = failedPlugins.filter((f) => !optionalPluginNames.has(f.name));
1328
+ const benignOptionalFailed = optionalFailed.filter((f) => isBenignOptionalPluginFailure(f.error));
1329
+ const noisyOptionalFailed = optionalFailed.filter((f) => !isBenignOptionalPluginFailure(f.error));
1330
+ const detailFailures = [...seriousFailed, ...noisyOptionalFailed];
1331
+ let completeMsg = `[eliza] Plugin resolution complete: ${plugins.length}/${pluginsToLoad.size} loaded`;
1332
+ if (detailFailures.length > 0) {
1333
+ completeMsg += `, ${detailFailures.length} failed`;
1334
+ }
1335
+ if (benignOptionalFailed.length > 0) {
1336
+ completeMsg += ` (${benignOptionalFailed.length} optional unavailable)`;
1337
+ }
1338
+ logger.info(completeMsg);
1339
+ if (detailFailures.length > 0) {
1340
+ logger.info(`[eliza] Failed plugins: ${detailFailures.map((f) => `${f.name} (${f.error})`).join(", ")}`);
1341
+ }
1342
+ if (benignOptionalFailed.length > 0) {
1343
+ const withReasons = benignOptionalFailed.map((f) => {
1344
+ const reason = loadReasons.get(f.name);
1345
+ return reason ? `${f.name} (added by: ${reason})` : f.name;
1346
+ });
1347
+ logger.info(`[eliza] Optional plugins not installed: ${withReasons.join(", ")}`);
1348
+ }
1349
+ setLastFailedPluginNames(failedPlugins.map((plugin) => plugin.name));
1350
+ // Diagnose version-skew issues when AI providers failed to load (#10)
1351
+ const loadedNames = plugins.map((p) => p.name);
1352
+ const diagnostic = diagnoseNoAIProvider(loadedNames, failedPlugins);
1353
+ if (diagnostic) {
1354
+ if (opts?.quiet) {
1355
+ // In headless/GUI mode before onboarding, this is expected — the user
1356
+ // will configure a provider through the onboarding wizard and restart.
1357
+ logger.info(`[eliza] ${diagnostic}`);
1358
+ }
1359
+ else {
1360
+ logger.error(`[eliza] ${diagnostic}`);
1361
+ }
1362
+ }
1363
+ // Persist repaired install records so future startups do not keep trying
1364
+ // to import from stale install directories.
1365
+ if (repairedInstallRecords.size > 0) {
1366
+ try {
1367
+ saveElizaConfig(config);
1368
+ logger.info(`[eliza] Repaired ${repairedInstallRecords.size} plugin install record(s): ${Array.from(repairedInstallRecords).join(", ")}`);
1369
+ }
1370
+ catch (err) {
1371
+ logger.warn(`[eliza] Failed to persist plugin install repairs: ${formatError(err)}`);
1372
+ }
1373
+ }
1374
+ return plugins;
1375
+ }