@elizaos/agent 2.0.3-beta.2 → 2.0.3-beta.4

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 (381) hide show
  1. package/__tests__/view-user-journeys.d.ts.map +1 -1
  2. package/__tests__/view-user-journeys.js +52 -41
  3. package/actions/context-signal.d.ts +2 -2
  4. package/actions/files.d.ts +9 -0
  5. package/actions/files.d.ts.map +1 -0
  6. package/actions/files.js +183 -0
  7. package/actions/index.d.ts +17 -17
  8. package/api/accounts-routes.d.ts +1 -1
  9. package/api/accounts-routes.js +1 -1
  10. package/api/agent-admin-routes.d.ts +1 -1
  11. package/api/agent-admin-routes.js +2 -2
  12. package/api/agent-model.d.ts +1 -1
  13. package/api/agent-status-routes.d.ts +1 -3
  14. package/api/agent-status-routes.d.ts.map +1 -1
  15. package/api/agent-status-routes.js +0 -2
  16. package/api/approval-routes.d.ts +38 -0
  17. package/api/approval-routes.d.ts.map +1 -0
  18. package/api/approval-routes.js +223 -0
  19. package/api/background-routes.d.ts +13 -0
  20. package/api/background-routes.d.ts.map +1 -0
  21. package/api/background-routes.js +91 -0
  22. package/api/binance-skill-helpers.d.ts +2 -2
  23. package/api/binance-skill-helpers.js +2 -2
  24. package/api/builtin-views.d.ts.map +1 -1
  25. package/api/builtin-views.js +44 -4
  26. package/api/character-routes.d.ts +1 -1
  27. package/api/chat-augmentation.d.ts.map +1 -1
  28. package/api/chat-augmentation.js +17 -0
  29. package/api/chat-routes.d.ts +29 -2
  30. package/api/chat-routes.d.ts.map +1 -1
  31. package/api/chat-routes.js +76 -1
  32. package/api/commands-routes.d.ts +10 -8
  33. package/api/commands-routes.d.ts.map +1 -1
  34. package/api/commands-routes.js +17 -59
  35. package/api/config-routes.d.ts +1 -1
  36. package/api/config-routes.d.ts.map +1 -1
  37. package/api/config-routes.js +0 -2
  38. package/api/connector-routes.d.ts +1 -1
  39. package/api/conversation-metadata.d.ts +1 -1
  40. package/api/conversation-metadata.d.ts.map +1 -1
  41. package/api/conversation-metadata.js +0 -1
  42. package/api/conversation-routes.d.ts +4 -3
  43. package/api/conversation-routes.d.ts.map +1 -1
  44. package/api/conversation-routes.js +34 -1
  45. package/api/documents-service-loader.d.ts +0 -4
  46. package/api/documents-service-loader.d.ts.map +1 -1
  47. package/api/documents-service-loader.js +0 -2
  48. package/api/files-routes.d.ts +14 -0
  49. package/api/files-routes.d.ts.map +1 -0
  50. package/api/files-routes.js +47 -0
  51. package/api/first-run-routes.d.ts +1 -1
  52. package/api/health-routes.d.ts +2 -2
  53. package/api/index.d.ts +40 -39
  54. package/api/index.d.ts.map +1 -1
  55. package/api/index.js +1 -0
  56. package/api/interactions-routes.d.ts +33 -0
  57. package/api/interactions-routes.d.ts.map +1 -0
  58. package/api/interactions-routes.js +63 -0
  59. package/api/media-runtime.d.ts +2 -1
  60. package/api/media-runtime.d.ts.map +1 -1
  61. package/api/media-runtime.js +64 -7
  62. package/api/media-store.d.ts +36 -0
  63. package/api/media-store.d.ts.map +1 -1
  64. package/api/media-store.js +141 -2
  65. package/api/memory-bounds.d.ts +0 -1
  66. package/api/memory-bounds.d.ts.map +1 -1
  67. package/api/memory-bounds.js +0 -1
  68. package/api/misc-routes.d.ts +1 -1
  69. package/api/model-provider-helpers.d.ts +2 -2
  70. package/api/model-provider-helpers.js +2 -2
  71. package/api/permissions-routes-extra.d.ts +1 -1
  72. package/api/permissions-routes.d.ts +1 -1
  73. package/api/permissions-routes.d.ts.map +1 -1
  74. package/api/permissions-routes.js +8 -7
  75. package/api/plugin-discovery-helpers.d.ts +5 -6
  76. package/api/plugin-discovery-helpers.d.ts.map +1 -1
  77. package/api/plugin-discovery-helpers.js +3 -4
  78. package/api/plugin-runtime-apply.d.ts +2 -2
  79. package/api/plugin-runtime-apply.d.ts.map +1 -1
  80. package/api/plugin-runtime-apply.js +74 -0
  81. package/api/provider-switch-config.d.ts +1 -1
  82. package/api/provider-switch-routes.d.ts +2 -2
  83. package/api/registry-routes.d.ts +1 -1
  84. package/api/registry-service.d.ts +1 -1
  85. package/api/remote-capability-routes.d.ts +2 -2
  86. package/api/remote-capability-routes.d.ts.map +1 -1
  87. package/api/remote-capability-routes.js +19 -0
  88. package/api/server-autonomy-helpers.d.ts +2 -2
  89. package/api/server-helpers-auth.d.ts +10 -0
  90. package/api/server-helpers-auth.d.ts.map +1 -1
  91. package/api/server-helpers-auth.js +16 -210
  92. package/api/server-helpers-config.d.ts +1 -1
  93. package/api/server-helpers-mcp.d.ts +2 -2
  94. package/api/server-helpers-plugin.d.ts +1 -1
  95. package/api/server-helpers-swarm.d.ts +3 -3
  96. package/api/server-helpers-swarm.d.ts.map +1 -1
  97. package/api/server-helpers-swarm.js +15 -5
  98. package/api/server-helpers-wallet.d.ts +1 -1
  99. package/api/server-helpers.d.ts +4 -4
  100. package/api/server-lazy-routes.d.ts +40 -38
  101. package/api/server-lazy-routes.d.ts.map +1 -1
  102. package/api/server-lazy-routes.js +7 -0
  103. package/api/server-route-dispatch.d.ts +2 -2
  104. package/api/server-route-dispatch.d.ts.map +1 -1
  105. package/api/server-route-dispatch.js +7 -0
  106. package/api/server-types.d.ts +9 -7
  107. package/api/server-types.d.ts.map +1 -1
  108. package/api/server.d.ts +19 -19
  109. package/api/server.d.ts.map +1 -1
  110. package/api/server.js +111 -17
  111. package/api/static-file-server.d.ts +2 -2
  112. package/api/static-file-server.js +2 -2
  113. package/api/subscription-routes.d.ts +4 -4
  114. package/api/subscription-routes.js +3 -4
  115. package/api/suggestions-routes.d.ts +1 -1
  116. package/api/suggestions-routes.d.ts.map +1 -1
  117. package/api/suggestions-routes.js +2 -3
  118. package/api/terminal-execution-routing.d.ts +1 -1
  119. package/api/training-service-like.d.ts +1 -1
  120. package/api/trajectory-fallback-routes.d.ts.map +1 -1
  121. package/api/trajectory-fallback-routes.js +21 -1
  122. package/api/update-routes.d.ts +1 -1
  123. package/api/view-registry-types.d.ts +1 -1
  124. package/api/views-registry.d.ts +14 -4
  125. package/api/views-registry.d.ts.map +1 -1
  126. package/api/views-registry.js +107 -72
  127. package/api/views-routes.d.ts +1 -1
  128. package/api/views-routes.d.ts.map +1 -1
  129. package/api/views-routes.js +131 -14
  130. package/api/views-search-index.d.ts +1 -1
  131. package/api/wallet-capability.d.ts +3 -3
  132. package/api/wallet-rpc.d.ts +1 -1
  133. package/api/wallet.d.ts +3 -3
  134. package/api/wallet.d.ts.map +1 -1
  135. package/api/wallet.js +4 -3
  136. package/api/workbench-context.d.ts +1 -1
  137. package/api/workbench-helpers.d.ts +3 -3
  138. package/api/workbench-helpers.js +3 -3
  139. package/api/workbench-routes.d.ts +2 -2
  140. package/api/workbench-vfs-routes.d.ts +1 -1
  141. package/api/ws-event-replay.d.ts +1 -2
  142. package/api/ws-event-replay.d.ts.map +1 -1
  143. package/api/ws-event-replay.js +1 -2
  144. package/api/x-relay-routes.d.ts +2 -2
  145. package/api/x402-route-validation.d.ts +4 -0
  146. package/api/x402-route-validation.d.ts.map +1 -0
  147. package/api/x402-route-validation.js +6 -0
  148. package/assets/view-heroes/background.png +0 -0
  149. package/auth/account-storage.d.ts +1 -1
  150. package/auth/anthropic.d.ts +1 -1
  151. package/auth/credentials.d.ts +2 -2
  152. package/auth/index.d.ts +7 -7
  153. package/auth/oauth-flow.d.ts +2 -2
  154. package/auth/openai-codex.d.ts +1 -1
  155. package/awareness/index.d.ts +1 -1
  156. package/config/config.js +0 -1
  157. package/config/env-vars.d.ts +1 -1
  158. package/config/env-vars.d.ts.map +1 -1
  159. package/config/env-vars.js +0 -1
  160. package/config/index.d.ts +10 -10
  161. package/config/model-metadata.d.ts +1 -1
  162. package/config/owner-contacts.d.ts +1 -1
  163. package/config/schema.d.ts +1 -1
  164. package/hooks/discovery.d.ts +1 -1
  165. package/hooks/eligibility.d.ts +2 -2
  166. package/hooks/index.d.ts +2 -2
  167. package/hooks/loader.d.ts +2 -2
  168. package/hooks/registry.d.ts +1 -1
  169. package/index.d.ts +87 -85
  170. package/index.d.ts.map +1 -1
  171. package/index.js +11 -3
  172. package/package.json +54 -44
  173. package/providers/media-provider.d.ts +1 -1
  174. package/providers/page-scoped-context.d.ts.map +1 -1
  175. package/providers/page-scoped-context.js +1 -70
  176. package/providers/relevant-conversations.d.ts.map +1 -1
  177. package/providers/relevant-conversations.js +8 -9
  178. package/providers/workspace.d.ts +1 -1
  179. package/runtime/actions/web-fetch.d.ts.map +1 -1
  180. package/runtime/actions/web-fetch.js +23 -3
  181. package/runtime/actions/web-search.d.ts +32 -0
  182. package/runtime/actions/web-search.d.ts.map +1 -0
  183. package/runtime/actions/web-search.js +245 -0
  184. package/runtime/advanced-capabilities-config.d.ts +1 -1
  185. package/runtime/boot-telemetry.d.ts +1 -1
  186. package/runtime/conversation-compactor-runtime.d.ts +1 -1
  187. package/runtime/conversation-compactor-runtime.js +1 -1
  188. package/runtime/conversation-compactor.d.ts +1 -1
  189. package/runtime/core-plugins.d.ts.map +1 -1
  190. package/runtime/core-plugins.js +9 -0
  191. package/runtime/custom-actions.d.ts +18 -9
  192. package/runtime/custom-actions.d.ts.map +1 -1
  193. package/runtime/custom-actions.js +85 -23
  194. package/runtime/eliza-plugin.d.ts.map +1 -1
  195. package/runtime/eliza-plugin.js +15 -1
  196. package/runtime/eliza.d.ts +9 -7
  197. package/runtime/eliza.d.ts.map +1 -1
  198. package/runtime/eliza.js +86 -23
  199. package/runtime/first-time-setup.d.ts +1 -3
  200. package/runtime/first-time-setup.d.ts.map +1 -1
  201. package/runtime/first-time-setup.js +0 -2
  202. package/runtime/index.d.ts +18 -18
  203. package/runtime/load-plugin-from-vfs.d.ts +2 -2
  204. package/runtime/mobile-dns.d.ts.map +1 -1
  205. package/runtime/mobile-dns.js +2 -5
  206. package/runtime/operations/classifier.d.ts +1 -1
  207. package/runtime/operations/cold-strategy.d.ts +1 -1
  208. package/runtime/operations/health-checks.d.ts +1 -1
  209. package/runtime/operations/health.d.ts +1 -1
  210. package/runtime/operations/index.d.ts +10 -10
  211. package/runtime/operations/manager.d.ts +3 -3
  212. package/runtime/operations/reload-hot.d.ts +1 -1
  213. package/runtime/operations/repository.d.ts +1 -1
  214. package/runtime/operations/vault-bridge.d.ts +1 -1
  215. package/runtime/plugin-collector.d.ts +6 -1
  216. package/runtime/plugin-collector.d.ts.map +1 -1
  217. package/runtime/plugin-collector.js +11 -28
  218. package/runtime/plugin-lifecycle.d.ts.map +1 -1
  219. package/runtime/plugin-lifecycle.js +1 -0
  220. package/runtime/plugin-resolver.d.ts +2 -2
  221. package/runtime/plugin-resolver.d.ts.map +1 -1
  222. package/runtime/plugin-resolver.js +113 -65
  223. package/runtime/plugin-types.d.ts +1 -1
  224. package/runtime/prompt-optimization.d.ts +4 -4
  225. package/runtime/remote-coding-runner-gate.d.ts +7 -0
  226. package/runtime/remote-coding-runner-gate.d.ts.map +1 -0
  227. package/runtime/remote-coding-runner-gate.js +36 -0
  228. package/runtime/roles/src/index.d.ts +4 -4
  229. package/runtime/roles.d.ts +2 -2
  230. package/runtime/sandbox-character.d.ts +1 -1
  231. package/runtime/tool-call-cache/cache.d.ts +1 -1
  232. package/runtime/tool-call-cache/disk-store.d.ts +1 -1
  233. package/runtime/tool-call-cache/index.d.ts +6 -6
  234. package/runtime/tool-call-cache/key.d.ts +1 -1
  235. package/runtime/tool-call-cache/redact.d.ts +1 -1
  236. package/runtime/tool-call-cache/registry.d.ts +1 -1
  237. package/runtime/tool-call-cache-wrapper.d.ts +7 -9
  238. package/runtime/tool-call-cache-wrapper.d.ts.map +1 -1
  239. package/runtime/tool-call-cache-wrapper.js +6 -11
  240. package/runtime/trajectory-export.d.ts +3 -3
  241. package/runtime/trajectory-internals.d.ts +2 -1
  242. package/runtime/trajectory-internals.d.ts.map +1 -1
  243. package/runtime/trajectory-persistence.d.ts +5 -5
  244. package/runtime/trajectory-steps-reader.d.ts +1 -1
  245. package/runtime/trajectory-steps-writer.d.ts +1 -1
  246. package/runtime/trajectory-storage.d.ts +4 -4
  247. package/runtime/view-action-affinity.d.ts +18 -15
  248. package/runtime/view-action-affinity.d.ts.map +1 -1
  249. package/runtime/view-action-affinity.js +26 -29
  250. package/runtime/web-search-tools.d.ts +4 -1
  251. package/runtime/web-search-tools.d.ts.map +1 -1
  252. package/runtime/web-search-tools.js +37 -9
  253. package/security/index.d.ts +3 -3
  254. package/services/approval/index.d.ts +9 -0
  255. package/services/approval/index.d.ts.map +1 -0
  256. package/services/approval/index.js +8 -0
  257. package/services/approval/service.d.ts +35 -0
  258. package/services/approval/service.d.ts.map +1 -0
  259. package/services/approval/service.js +40 -0
  260. package/services/approval/sql.d.ts +18 -0
  261. package/services/approval/sql.d.ts.map +1 -0
  262. package/services/approval/sql.js +104 -0
  263. package/services/approval/store.d.ts +39 -0
  264. package/services/approval/store.d.ts.map +1 -0
  265. package/services/approval/store.js +534 -0
  266. package/services/approval/types.d.ts +207 -0
  267. package/services/approval/types.d.ts.map +1 -0
  268. package/services/approval/types.js +34 -0
  269. package/services/character-persistence.d.ts +2 -2
  270. package/services/client-chat-sender.d.ts +1 -1
  271. package/services/config-plugin-manager.d.ts +2 -2
  272. package/services/connector-setup-service.d.ts +1 -1
  273. package/services/cove-quote-x509.d.ts +1 -1
  274. package/services/cove-quote.d.ts +2 -2
  275. package/services/dstack-tee-provider.d.ts +1 -1
  276. package/services/file-storage.d.ts +20 -0
  277. package/services/file-storage.d.ts.map +1 -0
  278. package/services/file-storage.js +70 -0
  279. package/services/global-pause/index.d.ts +8 -0
  280. package/services/global-pause/index.d.ts.map +1 -0
  281. package/services/global-pause/index.js +7 -0
  282. package/services/global-pause/service.d.ts +29 -0
  283. package/services/global-pause/service.d.ts.map +1 -0
  284. package/services/global-pause/service.js +34 -0
  285. package/services/global-pause/store.d.ts +31 -0
  286. package/services/global-pause/store.d.ts.map +1 -0
  287. package/services/global-pause/store.js +83 -0
  288. package/services/handoff/index.d.ts +8 -0
  289. package/services/handoff/index.d.ts.map +1 -0
  290. package/services/handoff/index.js +7 -0
  291. package/services/handoff/service.d.ts +29 -0
  292. package/services/handoff/service.d.ts.map +1 -0
  293. package/services/handoff/service.js +34 -0
  294. package/services/handoff/store.d.ts +76 -0
  295. package/services/handoff/store.d.ts.map +1 -0
  296. package/services/handoff/store.js +148 -0
  297. package/services/index.d.ts +30 -31
  298. package/services/index.d.ts.map +1 -1
  299. package/services/index.js +0 -6
  300. package/services/js-runtime-bridge.d.ts.map +1 -1
  301. package/services/js-runtime-bridge.js +8 -2
  302. package/services/knowledge-graph/index.d.ts +4 -4
  303. package/services/knowledge-graph/service.d.ts +2 -2
  304. package/services/pending-prompts/index.d.ts +8 -0
  305. package/services/pending-prompts/index.d.ts.map +1 -0
  306. package/services/pending-prompts/index.js +7 -0
  307. package/services/pending-prompts/service.d.ts +34 -0
  308. package/services/pending-prompts/service.d.ts.map +1 -0
  309. package/services/pending-prompts/service.js +68 -0
  310. package/services/pending-prompts/store.d.ts +70 -0
  311. package/services/pending-prompts/store.d.ts.map +1 -0
  312. package/services/pending-prompts/store.js +191 -0
  313. package/services/plugin-compiler.d.ts +1 -1
  314. package/services/plugin-installer.d.ts.map +1 -1
  315. package/services/plugin-installer.js +21 -11
  316. package/services/plugin-manager-types.d.ts +1 -1
  317. package/services/proactive-interaction-decider.d.ts +62 -11
  318. package/services/proactive-interaction-decider.d.ts.map +1 -1
  319. package/services/proactive-interaction-decider.js +223 -35
  320. package/services/push/apns-provider.d.ts +1 -1
  321. package/services/push/fcm-provider.d.ts +1 -1
  322. package/services/push/notification-push-service.d.ts +2 -2
  323. package/services/registry-client-app-meta.d.ts +1 -1
  324. package/services/registry-client-endpoints.d.ts +2 -2
  325. package/services/registry-client-local.d.ts +1 -1
  326. package/services/registry-client-network.d.ts +1 -1
  327. package/services/registry-client-queries.d.ts +1 -1
  328. package/services/registry-client.d.ts +3 -3
  329. package/services/relationships-graph.d.ts +1 -1
  330. package/services/remote-capability-cloud-sandbox.d.ts +3 -3
  331. package/services/remote-capability-endpoint-conformance.d.ts +1 -1
  332. package/services/remote-capability-endpoint-provider.d.ts +4 -4
  333. package/services/remote-capability-url-endpoint-providers.d.ts +1 -1
  334. package/services/remote-plugin-adapter.d.ts.map +1 -1
  335. package/services/remote-plugin-adapter.js +3 -0
  336. package/services/remote-plugin-bridge.d.ts.map +1 -1
  337. package/services/remote-plugin-bridge.js +97 -26
  338. package/services/remote-signing-service.d.ts +4 -4
  339. package/services/research-task-executor.d.ts +1 -1
  340. package/services/sandbox-manager.d.ts +1 -1
  341. package/services/self-updater.d.ts +1 -1
  342. package/services/self-updater.d.ts.map +1 -1
  343. package/services/self-updater.js +23 -9
  344. package/services/shell-execution-router.d.ts +1 -1
  345. package/services/shell-execution-router.d.ts.map +1 -1
  346. package/services/shell-execution-router.js +19 -2
  347. package/services/tee-boot-gate-state.d.ts +1 -1
  348. package/services/tee-boot-gate.d.ts +4 -4
  349. package/services/tee-confidential-inference.d.ts +3 -3
  350. package/services/tee-key-release.d.ts +2 -2
  351. package/services/tee-model-key-boot.d.ts +4 -4
  352. package/services/tee-policy.d.ts +1 -1
  353. package/services/tee-production-profile.d.ts +1 -1
  354. package/services/tee-release-policy.d.ts +1 -1
  355. package/services/tee-revocation.d.ts +2 -2
  356. package/services/tee-runtime-config.d.ts +1 -1
  357. package/services/tee-sealed-volume.d.ts +3 -3
  358. package/services/tee-signer-backend.d.ts +3 -3
  359. package/services/update-checker.d.ts +1 -1
  360. package/services/vault-signer-backend.d.ts +1 -1
  361. package/services/vfs-git.d.ts +1 -1
  362. package/test-support/index.d.ts +3 -3
  363. package/triggers/runtime.d.ts +1 -1
  364. package/triggers/scheduling.d.ts +3 -22
  365. package/triggers/scheduling.d.ts.map +1 -1
  366. package/triggers/scheduling.js +2 -214
  367. package/tui/agent-terminal-tui.d.ts.map +1 -1
  368. package/tui/agent-terminal-tui.js +174 -72
  369. package/types/index.d.ts +3 -3
  370. package/api/nfa-routes.d.ts +0 -6
  371. package/api/nfa-routes.d.ts.map +0 -1
  372. package/api/nfa-routes.js +0 -125
  373. package/api/server-auth.d.ts +0 -46
  374. package/api/server-auth.d.ts.map +0 -1
  375. package/api/server-auth.js +0 -504
  376. package/runtime/restart.d.ts +0 -9
  377. package/runtime/restart.d.ts.map +0 -1
  378. package/runtime/restart.js +0 -8
  379. package/test-utils/sqlite-compat.d.ts +0 -23
  380. package/test-utils/sqlite-compat.d.ts.map +0 -1
  381. package/test-utils/sqlite-compat.js +0 -214
@@ -18,15 +18,29 @@
18
18
  * OpenAI, which is what makes the `openai.responses` branch fire.
19
19
  *
20
20
  * Controlled by:
21
- * ELIZA_WEB_SEARCH=0|false|off — disable (default: enabled)
21
+ * ELIZA_WEB_SEARCH=0|false|off — disable every web-search surface
22
+ * ELIZA_SERVER_WEB_SEARCH=1|true|on — enable provider-native injection
22
23
  */
23
24
  import { createRequire } from "node:module";
24
25
  import { logger } from "@elizaos/core";
25
26
  const require = createRequire(import.meta.url);
26
- const ENABLED = (() => {
27
- const raw = process.env.ELIZA_WEB_SEARCH?.toLowerCase();
28
- return !(raw === "0" || raw === "false" || raw === "off");
29
- })();
27
+ function readBooleanEnv(name) {
28
+ const raw = process.env[name]?.trim().toLowerCase();
29
+ if (raw === undefined || raw.length === 0)
30
+ return undefined;
31
+ if (raw === "0" || raw === "false" || raw === "off" || raw === "no") {
32
+ return false;
33
+ }
34
+ if (raw === "1" || raw === "true" || raw === "on" || raw === "yes") {
35
+ return true;
36
+ }
37
+ return undefined;
38
+ }
39
+ export function isServerSideWebSearchEnabled() {
40
+ if (readBooleanEnv("ELIZA_WEB_SEARCH") === false)
41
+ return false;
42
+ return readBooleanEnv("ELIZA_SERVER_WEB_SEARCH") === true;
43
+ }
30
44
  const PROVIDERS = [
31
45
  {
32
46
  label: "anthropic",
@@ -102,6 +116,9 @@ function shouldSkip(params) {
102
116
  return true;
103
117
  return false;
104
118
  }
119
+ export function __shouldSkipServerSideWebSearchForTests(params) {
120
+ return shouldSkip(params);
121
+ }
105
122
  function wrapFn(original, name) {
106
123
  const wrapped = function patchedAiFn(...args) {
107
124
  if (args.length > 0 && args[0] && typeof args[0] === "object") {
@@ -143,12 +160,23 @@ function patchAiSdk() {
143
160
  logger.warn("[web-search] Could not require('ai') — skipping patch");
144
161
  return;
145
162
  }
146
- patched = true;
163
+ let patchedAny = false;
147
164
  for (const name of ["generateText", "streamText"]) {
148
165
  if (typeof aiModule[name] === "function") {
149
- aiModule[name] = wrapFn(aiModule[name], name);
166
+ try {
167
+ aiModule[name] = wrapFn(aiModule[name], name);
168
+ patchedAny = true;
169
+ }
170
+ catch (err) {
171
+ logger.warn(`[web-search] Could not patch ai.${name}: ${err instanceof Error ? err.message : String(err)}`);
172
+ }
150
173
  }
151
174
  }
175
+ if (!patchedAny) {
176
+ logger.warn("[web-search] No AI SDK text functions were patched");
177
+ return;
178
+ }
179
+ patched = true;
152
180
  logger.info("[web-search] Patched ai.generateText/streamText for server-side web search auto-injection");
153
181
  }
154
182
  // ---------------------------------------------------------------------------
@@ -162,8 +190,8 @@ function patchAiSdk() {
162
190
  * and every provider on the runtime. Call after plugins are registered.
163
191
  */
164
192
  export function installServerSideWebSearch() {
165
- if (!ENABLED) {
166
- logger.info("[web-search] Disabled via ELIZA_WEB_SEARCH env var");
193
+ if (!isServerSideWebSearchEnabled()) {
194
+ logger.info("[web-search] Provider-native server search disabled; set ELIZA_SERVER_WEB_SEARCH=1 to enable");
167
195
  return;
168
196
  }
169
197
  patchAiSdk();
@@ -1,4 +1,4 @@
1
- export * from "./access.ts";
2
- export * from "./audit-log.ts";
3
- export * from "./network-policy.ts";
1
+ export * from "./access.js";
2
+ export * from "./audit-log.js";
3
+ export * from "./network-policy.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Runtime owner-approval queue: enqueue/list/resolve outbound-action approvals
3
+ * over the `approval_requests` table (owned by `@elizaos/plugin-sql`, public
4
+ * schema), surfaced through the registered {@link ApprovalService}.
5
+ */
6
+ export { APPROVAL_SERVICE, ApprovalService, resolveApprovalService, } from "./service.js";
7
+ export { createApprovalQueue, PgApprovalQueue } from "./store.js";
8
+ export { type ApprovalAction, type ApprovalChannel, type ApprovalEnqueueInput, type ApprovalListFilter, ApprovalNotFoundError, type ApprovalPayload, type ApprovalQueue, type ApprovalQueueOptions, type ApprovalRequest, type ApprovalRequestState, type ApprovalResolution, ApprovalStateTransitionError, type ApprovalTravelCalendarSync, type ApprovalTravelPassenger, } from "./types.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/approval/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Runtime owner-approval queue: enqueue/list/resolve outbound-action approvals
3
+ * over the `approval_requests` table (owned by `@elizaos/plugin-sql`, public
4
+ * schema), surfaced through the registered {@link ApprovalService}.
5
+ */
6
+ export { APPROVAL_SERVICE, ApprovalService, resolveApprovalService, } from "./service.js";
7
+ export { createApprovalQueue, PgApprovalQueue } from "./store.js";
8
+ export { ApprovalNotFoundError, ApprovalStateTransitionError, } from "./types.js";
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ApprovalService — the runtime-owned owner-approval queue, exposed as a
3
+ * registered runtime service.
4
+ *
5
+ * The approval queue is a runtime primitive: any plugin (LifeOps outbound
6
+ * sends, document signatures, travel booking, …) consumes it via
7
+ * `runtime.getService(...)` rather than constructing the DB-backed queue
8
+ * itself. The service is a thin factory over {@link PgApprovalQueue}, backed by
9
+ * the `approval_requests` table owned by `@elizaos/plugin-sql` (public schema);
10
+ * the `agentId` is the multi-tenant partition key and defaults to
11
+ * `runtime.agentId`.
12
+ *
13
+ * Mirrors `KnowledgeGraphService` (lifecycle + getService accessor).
14
+ */
15
+ import { type IAgentRuntime, Service } from "@elizaos/core";
16
+ import type { ApprovalQueue } from "./types.js";
17
+ export declare const APPROVAL_SERVICE = "eliza_approval";
18
+ export declare class ApprovalService extends Service {
19
+ static serviceType: string;
20
+ capabilityDescription: string;
21
+ static start(runtime: IAgentRuntime): Promise<ApprovalService>;
22
+ stop(): Promise<void>;
23
+ /**
24
+ * Per-agent approval queue. `agentId` partitions the queue; it defaults to
25
+ * the runtime's agent id and may be overridden for admin/multi-tenant
26
+ * access.
27
+ */
28
+ getQueue(agentId?: string): ApprovalQueue;
29
+ }
30
+ /**
31
+ * Resolve the registered {@link ApprovalService}. Returns `null` when the
32
+ * runtime has not registered it (e.g. the "eliza" plugin is absent).
33
+ */
34
+ export declare function resolveApprovalService(runtime: IAgentRuntime): ApprovalService | null;
35
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/approval/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,OAAgB,WAAW,SAAoB;IAEtC,qBAAqB,SAC+F;WAEhH,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,GAAE,MAA6B,GAAG,aAAa;CAGhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,GACrB,eAAe,GAAG,IAAI,CAExB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ApprovalService — the runtime-owned owner-approval queue, exposed as a
3
+ * registered runtime service.
4
+ *
5
+ * The approval queue is a runtime primitive: any plugin (LifeOps outbound
6
+ * sends, document signatures, travel booking, …) consumes it via
7
+ * `runtime.getService(...)` rather than constructing the DB-backed queue
8
+ * itself. The service is a thin factory over {@link PgApprovalQueue}, backed by
9
+ * the `approval_requests` table owned by `@elizaos/plugin-sql` (public schema);
10
+ * the `agentId` is the multi-tenant partition key and defaults to
11
+ * `runtime.agentId`.
12
+ *
13
+ * Mirrors `KnowledgeGraphService` (lifecycle + getService accessor).
14
+ */
15
+ import { Service } from "@elizaos/core";
16
+ import { createApprovalQueue } from "./store.js";
17
+ export const APPROVAL_SERVICE = "eliza_approval";
18
+ export class ApprovalService extends Service {
19
+ static serviceType = APPROVAL_SERVICE;
20
+ capabilityDescription = "Runtime owner-approval queue: enqueue/list/resolve outbound-action approvals over the plugin-sql approval_requests table";
21
+ static async start(runtime) {
22
+ return new ApprovalService(runtime);
23
+ }
24
+ async stop() { }
25
+ /**
26
+ * Per-agent approval queue. `agentId` partitions the queue; it defaults to
27
+ * the runtime's agent id and may be overridden for admin/multi-tenant
28
+ * access.
29
+ */
30
+ getQueue(agentId = this.runtime.agentId) {
31
+ return createApprovalQueue(this.runtime, { agentId });
32
+ }
33
+ }
34
+ /**
35
+ * Resolve the registered {@link ApprovalService}. Returns `null` when the
36
+ * runtime has not registered it (e.g. the "eliza" plugin is absent).
37
+ */
38
+ export function resolveApprovalService(runtime) {
39
+ return runtime.getService(APPROVAL_SERVICE);
40
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Self-contained raw-SQL helpers for the runtime approval queue.
3
+ *
4
+ * The approval store issues raw SQL against the agent's database adapter over
5
+ * the `approval_requests` table owned by `@elizaos/plugin-sql` (public schema).
6
+ * This is the minimal subset of encoders/parsers/runners the store needs; it is
7
+ * intentionally local to `@elizaos/agent` so the runtime approval queue carries
8
+ * no dependency on plugin-side SQL glue. Mirrors `knowledge-graph/sql.ts`.
9
+ */
10
+ import type { IAgentRuntime } from "@elizaos/core";
11
+ export declare function toText(value: unknown, fallback?: string): string;
12
+ export declare function parseJsonRecord(value: unknown): Record<string, unknown>;
13
+ export declare function executeRawSql(runtime: IAgentRuntime, sqlText: string): Promise<Array<Record<string, unknown>>>;
14
+ export declare function sqlQuote(value: string): string;
15
+ export declare function sqlText(value: string | null | undefined): string;
16
+ export declare function sqlInteger(value: number | null | undefined): string;
17
+ export declare function sqlJson(value: unknown): string;
18
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/services/approval/sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiBnD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAK,GAAG,MAAM,CAI5D;AAsBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMvE;AAkCD,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAKzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGhE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAInE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Self-contained raw-SQL helpers for the runtime approval queue.
3
+ *
4
+ * The approval store issues raw SQL against the agent's database adapter over
5
+ * the `approval_requests` table owned by `@elizaos/plugin-sql` (public schema).
6
+ * This is the minimal subset of encoders/parsers/runners the store needs; it is
7
+ * intentionally local to `@elizaos/agent` so the runtime approval queue carries
8
+ * no dependency on plugin-side SQL glue. Mirrors `knowledge-graph/sql.ts`.
9
+ */
10
+ let cachedSqlRaw = null;
11
+ function asObject(value) {
12
+ if (!value || typeof value !== "object" || Array.isArray(value))
13
+ return null;
14
+ return value;
15
+ }
16
+ export function toText(value, fallback = "") {
17
+ if (typeof value === "string")
18
+ return value;
19
+ if (value === null || value === undefined)
20
+ return fallback;
21
+ return String(value);
22
+ }
23
+ function isMissingJsonValue(value) {
24
+ return value === null || value === undefined || value === "";
25
+ }
26
+ function parseJsonValue(value, fallback) {
27
+ if (isMissingJsonValue(value))
28
+ return fallback;
29
+ if (typeof value !== "string") {
30
+ if (typeof value === "object")
31
+ return value;
32
+ throw new Error(`[ApprovalSql] Expected JSON string or object, received ${typeof value}`);
33
+ }
34
+ try {
35
+ return JSON.parse(value);
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ throw new Error(`[ApprovalSql] Invalid JSON value: ${message}`);
40
+ }
41
+ }
42
+ export function parseJsonRecord(value) {
43
+ if (isMissingJsonValue(value))
44
+ return {};
45
+ const parsed = parseJsonValue(value, null);
46
+ const object = asObject(parsed);
47
+ if (object)
48
+ return object;
49
+ throw new Error("[ApprovalSql] Expected JSON object");
50
+ }
51
+ function extractRows(result) {
52
+ if (Array.isArray(result)) {
53
+ return result
54
+ .map((row) => asObject(row))
55
+ .filter((row) => row !== null);
56
+ }
57
+ const object = asObject(result);
58
+ if (!object)
59
+ return [];
60
+ const rows = object.rows;
61
+ if (!Array.isArray(rows))
62
+ return [];
63
+ return rows
64
+ .map((row) => asObject(row))
65
+ .filter((row) => row !== null);
66
+ }
67
+ async function getSqlRaw() {
68
+ if (cachedSqlRaw)
69
+ return cachedSqlRaw;
70
+ const drizzle = (await import("drizzle-orm"));
71
+ cachedSqlRaw = drizzle.sql.raw;
72
+ return cachedSqlRaw;
73
+ }
74
+ function getRuntimeDb(runtime) {
75
+ const db = runtime.adapter.db;
76
+ if (!db || typeof db.execute !== "function") {
77
+ throw new Error("runtime database adapter unavailable");
78
+ }
79
+ return db;
80
+ }
81
+ export async function executeRawSql(runtime, sqlText) {
82
+ const raw = await getSqlRaw();
83
+ const db = getRuntimeDb(runtime);
84
+ const result = await db.execute(raw(sqlText));
85
+ return extractRows(result);
86
+ }
87
+ export function sqlQuote(value) {
88
+ return `'${value.replace(/'/g, "''")}'`;
89
+ }
90
+ export function sqlText(value) {
91
+ if (value === null || value === undefined)
92
+ return "NULL";
93
+ return sqlQuote(value);
94
+ }
95
+ export function sqlInteger(value) {
96
+ if (value === null || value === undefined)
97
+ return "NULL";
98
+ if (!Number.isFinite(value))
99
+ throw new Error("invalid numeric SQL literal");
100
+ return String(Math.trunc(value));
101
+ }
102
+ export function sqlJson(value) {
103
+ return sqlQuote(JSON.stringify(value ?? null));
104
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * `PgApprovalQueue` — concrete approval queue backed by the `approval_requests`
3
+ * table from `@elizaos/plugin-sql` (public schema, no schema prefix).
4
+ *
5
+ * Promoted from `@elizaos/plugin-personal-assistant`'s `lifeops/approval-queue.ts`
6
+ * into a first-class `@elizaos/agent` runtime store (LifeOps Slice 4). The raw
7
+ * SQL is unchanged — it has no schema prefix, so it targets plugin-sql's public
8
+ * `approval_requests` table exactly as before. There is no data migration.
9
+ *
10
+ * Design notes:
11
+ * - The state-transition table below is the single source of truth for
12
+ * legal moves. Anything not enumerated throws
13
+ * `ApprovalStateTransitionError` — there is no fallback, no auto-retry,
14
+ * no silent normalization (Commandment 8).
15
+ * - All logging goes through the structured logger only (Commandment 9).
16
+ * - Each row is scoped to an agent via `agentId`. Cross-agent access is
17
+ * not supported.
18
+ */
19
+ import { type IAgentRuntime } from "@elizaos/core";
20
+ import { type ApprovalEnqueueInput, type ApprovalListFilter, type ApprovalQueue, type ApprovalQueueOptions, type ApprovalRequest, type ApprovalResolution } from "./types.js";
21
+ export declare class PgApprovalQueue implements ApprovalQueue {
22
+ private readonly runtime;
23
+ private readonly agentId;
24
+ constructor(runtime: IAgentRuntime, options: ApprovalQueueOptions);
25
+ enqueue(input: ApprovalEnqueueInput): Promise<ApprovalRequest>;
26
+ list(filter: ApprovalListFilter): Promise<ReadonlyArray<ApprovalRequest>>;
27
+ byId(id: string): Promise<ApprovalRequest | null>;
28
+ approve(id: string, resolution: ApprovalResolution): Promise<ApprovalRequest>;
29
+ reject(id: string, resolution: ApprovalResolution): Promise<ApprovalRequest>;
30
+ markExecuting(id: string): Promise<ApprovalRequest>;
31
+ markDone(id: string): Promise<ApprovalRequest>;
32
+ markExpired(id: string): Promise<ApprovalRequest>;
33
+ purgeExpired(now: Date): Promise<ReadonlyArray<string>>;
34
+ private fetchById;
35
+ private transitionWithResolution;
36
+ private transitionWithoutResolution;
37
+ }
38
+ export declare function createApprovalQueue(runtime: IAgentRuntime, options: ApprovalQueueOptions): ApprovalQueue;
39
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/services/approval/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AASxE,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAGvB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAExB,MAAM,YAAY,CAAC;AA8gBpB,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB;IAK3D,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAqD9D,IAAI,CACR,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAmBpC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAKjD,OAAO,CACX,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAIrB,MAAM,CACV,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAIrB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAInD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIjD,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAe/C,SAAS;YAST,wBAAwB;YA2BxB,2BAA2B;CAoB1C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAEf"}