@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.
- package/__tests__/view-user-journeys.d.ts.map +1 -1
- package/__tests__/view-user-journeys.js +52 -41
- package/actions/context-signal.d.ts +2 -2
- package/actions/files.d.ts +9 -0
- package/actions/files.d.ts.map +1 -0
- package/actions/files.js +183 -0
- package/actions/index.d.ts +17 -17
- package/api/accounts-routes.d.ts +1 -1
- package/api/accounts-routes.js +1 -1
- package/api/agent-admin-routes.d.ts +1 -1
- package/api/agent-admin-routes.js +2 -2
- package/api/agent-model.d.ts +1 -1
- package/api/agent-status-routes.d.ts +1 -3
- package/api/agent-status-routes.d.ts.map +1 -1
- package/api/agent-status-routes.js +0 -2
- package/api/approval-routes.d.ts +38 -0
- package/api/approval-routes.d.ts.map +1 -0
- package/api/approval-routes.js +223 -0
- package/api/background-routes.d.ts +13 -0
- package/api/background-routes.d.ts.map +1 -0
- package/api/background-routes.js +91 -0
- package/api/binance-skill-helpers.d.ts +2 -2
- package/api/binance-skill-helpers.js +2 -2
- package/api/builtin-views.d.ts.map +1 -1
- package/api/builtin-views.js +44 -4
- package/api/character-routes.d.ts +1 -1
- package/api/chat-augmentation.d.ts.map +1 -1
- package/api/chat-augmentation.js +17 -0
- package/api/chat-routes.d.ts +29 -2
- package/api/chat-routes.d.ts.map +1 -1
- package/api/chat-routes.js +76 -1
- package/api/commands-routes.d.ts +10 -8
- package/api/commands-routes.d.ts.map +1 -1
- package/api/commands-routes.js +17 -59
- package/api/config-routes.d.ts +1 -1
- package/api/config-routes.d.ts.map +1 -1
- package/api/config-routes.js +0 -2
- package/api/connector-routes.d.ts +1 -1
- package/api/conversation-metadata.d.ts +1 -1
- package/api/conversation-metadata.d.ts.map +1 -1
- package/api/conversation-metadata.js +0 -1
- package/api/conversation-routes.d.ts +4 -3
- package/api/conversation-routes.d.ts.map +1 -1
- package/api/conversation-routes.js +34 -1
- package/api/documents-service-loader.d.ts +0 -4
- package/api/documents-service-loader.d.ts.map +1 -1
- package/api/documents-service-loader.js +0 -2
- package/api/files-routes.d.ts +14 -0
- package/api/files-routes.d.ts.map +1 -0
- package/api/files-routes.js +47 -0
- package/api/first-run-routes.d.ts +1 -1
- package/api/health-routes.d.ts +2 -2
- package/api/index.d.ts +40 -39
- package/api/index.d.ts.map +1 -1
- package/api/index.js +1 -0
- package/api/interactions-routes.d.ts +33 -0
- package/api/interactions-routes.d.ts.map +1 -0
- package/api/interactions-routes.js +63 -0
- package/api/media-runtime.d.ts +2 -1
- package/api/media-runtime.d.ts.map +1 -1
- package/api/media-runtime.js +64 -7
- package/api/media-store.d.ts +36 -0
- package/api/media-store.d.ts.map +1 -1
- package/api/media-store.js +141 -2
- package/api/memory-bounds.d.ts +0 -1
- package/api/memory-bounds.d.ts.map +1 -1
- package/api/memory-bounds.js +0 -1
- package/api/misc-routes.d.ts +1 -1
- package/api/model-provider-helpers.d.ts +2 -2
- package/api/model-provider-helpers.js +2 -2
- package/api/permissions-routes-extra.d.ts +1 -1
- package/api/permissions-routes.d.ts +1 -1
- package/api/permissions-routes.d.ts.map +1 -1
- package/api/permissions-routes.js +8 -7
- package/api/plugin-discovery-helpers.d.ts +5 -6
- package/api/plugin-discovery-helpers.d.ts.map +1 -1
- package/api/plugin-discovery-helpers.js +3 -4
- package/api/plugin-runtime-apply.d.ts +2 -2
- package/api/plugin-runtime-apply.d.ts.map +1 -1
- package/api/plugin-runtime-apply.js +74 -0
- package/api/provider-switch-config.d.ts +1 -1
- package/api/provider-switch-routes.d.ts +2 -2
- package/api/registry-routes.d.ts +1 -1
- package/api/registry-service.d.ts +1 -1
- package/api/remote-capability-routes.d.ts +2 -2
- package/api/remote-capability-routes.d.ts.map +1 -1
- package/api/remote-capability-routes.js +19 -0
- package/api/server-autonomy-helpers.d.ts +2 -2
- package/api/server-helpers-auth.d.ts +10 -0
- package/api/server-helpers-auth.d.ts.map +1 -1
- package/api/server-helpers-auth.js +16 -210
- package/api/server-helpers-config.d.ts +1 -1
- package/api/server-helpers-mcp.d.ts +2 -2
- package/api/server-helpers-plugin.d.ts +1 -1
- package/api/server-helpers-swarm.d.ts +3 -3
- package/api/server-helpers-swarm.d.ts.map +1 -1
- package/api/server-helpers-swarm.js +15 -5
- package/api/server-helpers-wallet.d.ts +1 -1
- package/api/server-helpers.d.ts +4 -4
- package/api/server-lazy-routes.d.ts +40 -38
- package/api/server-lazy-routes.d.ts.map +1 -1
- package/api/server-lazy-routes.js +7 -0
- package/api/server-route-dispatch.d.ts +2 -2
- package/api/server-route-dispatch.d.ts.map +1 -1
- package/api/server-route-dispatch.js +7 -0
- package/api/server-types.d.ts +9 -7
- package/api/server-types.d.ts.map +1 -1
- package/api/server.d.ts +19 -19
- package/api/server.d.ts.map +1 -1
- package/api/server.js +111 -17
- package/api/static-file-server.d.ts +2 -2
- package/api/static-file-server.js +2 -2
- package/api/subscription-routes.d.ts +4 -4
- package/api/subscription-routes.js +3 -4
- package/api/suggestions-routes.d.ts +1 -1
- package/api/suggestions-routes.d.ts.map +1 -1
- package/api/suggestions-routes.js +2 -3
- package/api/terminal-execution-routing.d.ts +1 -1
- package/api/training-service-like.d.ts +1 -1
- package/api/trajectory-fallback-routes.d.ts.map +1 -1
- package/api/trajectory-fallback-routes.js +21 -1
- package/api/update-routes.d.ts +1 -1
- package/api/view-registry-types.d.ts +1 -1
- package/api/views-registry.d.ts +14 -4
- package/api/views-registry.d.ts.map +1 -1
- package/api/views-registry.js +107 -72
- package/api/views-routes.d.ts +1 -1
- package/api/views-routes.d.ts.map +1 -1
- package/api/views-routes.js +131 -14
- package/api/views-search-index.d.ts +1 -1
- package/api/wallet-capability.d.ts +3 -3
- package/api/wallet-rpc.d.ts +1 -1
- package/api/wallet.d.ts +3 -3
- package/api/wallet.d.ts.map +1 -1
- package/api/wallet.js +4 -3
- package/api/workbench-context.d.ts +1 -1
- package/api/workbench-helpers.d.ts +3 -3
- package/api/workbench-helpers.js +3 -3
- package/api/workbench-routes.d.ts +2 -2
- package/api/workbench-vfs-routes.d.ts +1 -1
- package/api/ws-event-replay.d.ts +1 -2
- package/api/ws-event-replay.d.ts.map +1 -1
- package/api/ws-event-replay.js +1 -2
- package/api/x-relay-routes.d.ts +2 -2
- package/api/x402-route-validation.d.ts +4 -0
- package/api/x402-route-validation.d.ts.map +1 -0
- package/api/x402-route-validation.js +6 -0
- package/assets/view-heroes/background.png +0 -0
- package/auth/account-storage.d.ts +1 -1
- package/auth/anthropic.d.ts +1 -1
- package/auth/credentials.d.ts +2 -2
- package/auth/index.d.ts +7 -7
- package/auth/oauth-flow.d.ts +2 -2
- package/auth/openai-codex.d.ts +1 -1
- package/awareness/index.d.ts +1 -1
- package/config/config.js +0 -1
- package/config/env-vars.d.ts +1 -1
- package/config/env-vars.d.ts.map +1 -1
- package/config/env-vars.js +0 -1
- package/config/index.d.ts +10 -10
- package/config/model-metadata.d.ts +1 -1
- package/config/owner-contacts.d.ts +1 -1
- package/config/schema.d.ts +1 -1
- package/hooks/discovery.d.ts +1 -1
- package/hooks/eligibility.d.ts +2 -2
- package/hooks/index.d.ts +2 -2
- package/hooks/loader.d.ts +2 -2
- package/hooks/registry.d.ts +1 -1
- package/index.d.ts +87 -85
- package/index.d.ts.map +1 -1
- package/index.js +11 -3
- package/package.json +54 -44
- package/providers/media-provider.d.ts +1 -1
- package/providers/page-scoped-context.d.ts.map +1 -1
- package/providers/page-scoped-context.js +1 -70
- package/providers/relevant-conversations.d.ts.map +1 -1
- package/providers/relevant-conversations.js +8 -9
- package/providers/workspace.d.ts +1 -1
- package/runtime/actions/web-fetch.d.ts.map +1 -1
- package/runtime/actions/web-fetch.js +23 -3
- package/runtime/actions/web-search.d.ts +32 -0
- package/runtime/actions/web-search.d.ts.map +1 -0
- package/runtime/actions/web-search.js +245 -0
- package/runtime/advanced-capabilities-config.d.ts +1 -1
- package/runtime/boot-telemetry.d.ts +1 -1
- package/runtime/conversation-compactor-runtime.d.ts +1 -1
- package/runtime/conversation-compactor-runtime.js +1 -1
- package/runtime/conversation-compactor.d.ts +1 -1
- package/runtime/core-plugins.d.ts.map +1 -1
- package/runtime/core-plugins.js +9 -0
- package/runtime/custom-actions.d.ts +18 -9
- package/runtime/custom-actions.d.ts.map +1 -1
- package/runtime/custom-actions.js +85 -23
- package/runtime/eliza-plugin.d.ts.map +1 -1
- package/runtime/eliza-plugin.js +15 -1
- package/runtime/eliza.d.ts +9 -7
- package/runtime/eliza.d.ts.map +1 -1
- package/runtime/eliza.js +86 -23
- package/runtime/first-time-setup.d.ts +1 -3
- package/runtime/first-time-setup.d.ts.map +1 -1
- package/runtime/first-time-setup.js +0 -2
- package/runtime/index.d.ts +18 -18
- package/runtime/load-plugin-from-vfs.d.ts +2 -2
- package/runtime/mobile-dns.d.ts.map +1 -1
- package/runtime/mobile-dns.js +2 -5
- package/runtime/operations/classifier.d.ts +1 -1
- package/runtime/operations/cold-strategy.d.ts +1 -1
- package/runtime/operations/health-checks.d.ts +1 -1
- package/runtime/operations/health.d.ts +1 -1
- package/runtime/operations/index.d.ts +10 -10
- package/runtime/operations/manager.d.ts +3 -3
- package/runtime/operations/reload-hot.d.ts +1 -1
- package/runtime/operations/repository.d.ts +1 -1
- package/runtime/operations/vault-bridge.d.ts +1 -1
- package/runtime/plugin-collector.d.ts +6 -1
- package/runtime/plugin-collector.d.ts.map +1 -1
- package/runtime/plugin-collector.js +11 -28
- package/runtime/plugin-lifecycle.d.ts.map +1 -1
- package/runtime/plugin-lifecycle.js +1 -0
- package/runtime/plugin-resolver.d.ts +2 -2
- package/runtime/plugin-resolver.d.ts.map +1 -1
- package/runtime/plugin-resolver.js +113 -65
- package/runtime/plugin-types.d.ts +1 -1
- package/runtime/prompt-optimization.d.ts +4 -4
- package/runtime/remote-coding-runner-gate.d.ts +7 -0
- package/runtime/remote-coding-runner-gate.d.ts.map +1 -0
- package/runtime/remote-coding-runner-gate.js +36 -0
- package/runtime/roles/src/index.d.ts +4 -4
- package/runtime/roles.d.ts +2 -2
- package/runtime/sandbox-character.d.ts +1 -1
- package/runtime/tool-call-cache/cache.d.ts +1 -1
- package/runtime/tool-call-cache/disk-store.d.ts +1 -1
- package/runtime/tool-call-cache/index.d.ts +6 -6
- package/runtime/tool-call-cache/key.d.ts +1 -1
- package/runtime/tool-call-cache/redact.d.ts +1 -1
- package/runtime/tool-call-cache/registry.d.ts +1 -1
- package/runtime/tool-call-cache-wrapper.d.ts +7 -9
- package/runtime/tool-call-cache-wrapper.d.ts.map +1 -1
- package/runtime/tool-call-cache-wrapper.js +6 -11
- package/runtime/trajectory-export.d.ts +3 -3
- package/runtime/trajectory-internals.d.ts +2 -1
- package/runtime/trajectory-internals.d.ts.map +1 -1
- package/runtime/trajectory-persistence.d.ts +5 -5
- package/runtime/trajectory-steps-reader.d.ts +1 -1
- package/runtime/trajectory-steps-writer.d.ts +1 -1
- package/runtime/trajectory-storage.d.ts +4 -4
- package/runtime/view-action-affinity.d.ts +18 -15
- package/runtime/view-action-affinity.d.ts.map +1 -1
- package/runtime/view-action-affinity.js +26 -29
- package/runtime/web-search-tools.d.ts +4 -1
- package/runtime/web-search-tools.d.ts.map +1 -1
- package/runtime/web-search-tools.js +37 -9
- package/security/index.d.ts +3 -3
- package/services/approval/index.d.ts +9 -0
- package/services/approval/index.d.ts.map +1 -0
- package/services/approval/index.js +8 -0
- package/services/approval/service.d.ts +35 -0
- package/services/approval/service.d.ts.map +1 -0
- package/services/approval/service.js +40 -0
- package/services/approval/sql.d.ts +18 -0
- package/services/approval/sql.d.ts.map +1 -0
- package/services/approval/sql.js +104 -0
- package/services/approval/store.d.ts +39 -0
- package/services/approval/store.d.ts.map +1 -0
- package/services/approval/store.js +534 -0
- package/services/approval/types.d.ts +207 -0
- package/services/approval/types.d.ts.map +1 -0
- package/services/approval/types.js +34 -0
- package/services/character-persistence.d.ts +2 -2
- package/services/client-chat-sender.d.ts +1 -1
- package/services/config-plugin-manager.d.ts +2 -2
- package/services/connector-setup-service.d.ts +1 -1
- package/services/cove-quote-x509.d.ts +1 -1
- package/services/cove-quote.d.ts +2 -2
- package/services/dstack-tee-provider.d.ts +1 -1
- package/services/file-storage.d.ts +20 -0
- package/services/file-storage.d.ts.map +1 -0
- package/services/file-storage.js +70 -0
- package/services/global-pause/index.d.ts +8 -0
- package/services/global-pause/index.d.ts.map +1 -0
- package/services/global-pause/index.js +7 -0
- package/services/global-pause/service.d.ts +29 -0
- package/services/global-pause/service.d.ts.map +1 -0
- package/services/global-pause/service.js +34 -0
- package/services/global-pause/store.d.ts +31 -0
- package/services/global-pause/store.d.ts.map +1 -0
- package/services/global-pause/store.js +83 -0
- package/services/handoff/index.d.ts +8 -0
- package/services/handoff/index.d.ts.map +1 -0
- package/services/handoff/index.js +7 -0
- package/services/handoff/service.d.ts +29 -0
- package/services/handoff/service.d.ts.map +1 -0
- package/services/handoff/service.js +34 -0
- package/services/handoff/store.d.ts +76 -0
- package/services/handoff/store.d.ts.map +1 -0
- package/services/handoff/store.js +148 -0
- package/services/index.d.ts +30 -31
- package/services/index.d.ts.map +1 -1
- package/services/index.js +0 -6
- package/services/js-runtime-bridge.d.ts.map +1 -1
- package/services/js-runtime-bridge.js +8 -2
- package/services/knowledge-graph/index.d.ts +4 -4
- package/services/knowledge-graph/service.d.ts +2 -2
- package/services/pending-prompts/index.d.ts +8 -0
- package/services/pending-prompts/index.d.ts.map +1 -0
- package/services/pending-prompts/index.js +7 -0
- package/services/pending-prompts/service.d.ts +34 -0
- package/services/pending-prompts/service.d.ts.map +1 -0
- package/services/pending-prompts/service.js +68 -0
- package/services/pending-prompts/store.d.ts +70 -0
- package/services/pending-prompts/store.d.ts.map +1 -0
- package/services/pending-prompts/store.js +191 -0
- package/services/plugin-compiler.d.ts +1 -1
- package/services/plugin-installer.d.ts.map +1 -1
- package/services/plugin-installer.js +21 -11
- package/services/plugin-manager-types.d.ts +1 -1
- package/services/proactive-interaction-decider.d.ts +62 -11
- package/services/proactive-interaction-decider.d.ts.map +1 -1
- package/services/proactive-interaction-decider.js +223 -35
- package/services/push/apns-provider.d.ts +1 -1
- package/services/push/fcm-provider.d.ts +1 -1
- package/services/push/notification-push-service.d.ts +2 -2
- package/services/registry-client-app-meta.d.ts +1 -1
- package/services/registry-client-endpoints.d.ts +2 -2
- package/services/registry-client-local.d.ts +1 -1
- package/services/registry-client-network.d.ts +1 -1
- package/services/registry-client-queries.d.ts +1 -1
- package/services/registry-client.d.ts +3 -3
- package/services/relationships-graph.d.ts +1 -1
- package/services/remote-capability-cloud-sandbox.d.ts +3 -3
- package/services/remote-capability-endpoint-conformance.d.ts +1 -1
- package/services/remote-capability-endpoint-provider.d.ts +4 -4
- package/services/remote-capability-url-endpoint-providers.d.ts +1 -1
- package/services/remote-plugin-adapter.d.ts.map +1 -1
- package/services/remote-plugin-adapter.js +3 -0
- package/services/remote-plugin-bridge.d.ts.map +1 -1
- package/services/remote-plugin-bridge.js +97 -26
- package/services/remote-signing-service.d.ts +4 -4
- package/services/research-task-executor.d.ts +1 -1
- package/services/sandbox-manager.d.ts +1 -1
- package/services/self-updater.d.ts +1 -1
- package/services/self-updater.d.ts.map +1 -1
- package/services/self-updater.js +23 -9
- package/services/shell-execution-router.d.ts +1 -1
- package/services/shell-execution-router.d.ts.map +1 -1
- package/services/shell-execution-router.js +19 -2
- package/services/tee-boot-gate-state.d.ts +1 -1
- package/services/tee-boot-gate.d.ts +4 -4
- package/services/tee-confidential-inference.d.ts +3 -3
- package/services/tee-key-release.d.ts +2 -2
- package/services/tee-model-key-boot.d.ts +4 -4
- package/services/tee-policy.d.ts +1 -1
- package/services/tee-production-profile.d.ts +1 -1
- package/services/tee-release-policy.d.ts +1 -1
- package/services/tee-revocation.d.ts +2 -2
- package/services/tee-runtime-config.d.ts +1 -1
- package/services/tee-sealed-volume.d.ts +3 -3
- package/services/tee-signer-backend.d.ts +3 -3
- package/services/update-checker.d.ts +1 -1
- package/services/vault-signer-backend.d.ts +1 -1
- package/services/vfs-git.d.ts +1 -1
- package/test-support/index.d.ts +3 -3
- package/triggers/runtime.d.ts +1 -1
- package/triggers/scheduling.d.ts +3 -22
- package/triggers/scheduling.d.ts.map +1 -1
- package/triggers/scheduling.js +2 -214
- package/tui/agent-terminal-tui.d.ts.map +1 -1
- package/tui/agent-terminal-tui.js +174 -72
- package/types/index.d.ts +3 -3
- package/api/nfa-routes.d.ts +0 -6
- package/api/nfa-routes.d.ts.map +0 -1
- package/api/nfa-routes.js +0 -125
- package/api/server-auth.d.ts +0 -46
- package/api/server-auth.d.ts.map +0 -1
- package/api/server-auth.js +0 -504
- package/runtime/restart.d.ts +0 -9
- package/runtime/restart.d.ts.map +0 -1
- package/runtime/restart.js +0 -8
- package/test-utils/sqlite-compat.d.ts +0 -23
- package/test-utils/sqlite-compat.d.ts.map +0 -1
- package/test-utils/sqlite-compat.js +0 -214
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/agent",
|
|
3
|
-
"version": "2.0.3-beta.
|
|
3
|
+
"version": "2.0.3-beta.4",
|
|
4
4
|
"description": "Standalone elizaOS-based agent and backend server package.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -257,48 +257,50 @@
|
|
|
257
257
|
"@ai-sdk/google": "^3.0.75",
|
|
258
258
|
"@ai-sdk/openai": "^3.0.58",
|
|
259
259
|
"@clack/prompts": "^1.0.0",
|
|
260
|
-
"@elizaos/
|
|
261
|
-
"@elizaos/
|
|
262
|
-
"@elizaos/plugin-agent-
|
|
263
|
-
"@elizaos/plugin-
|
|
264
|
-
"@elizaos/plugin-
|
|
265
|
-
"@elizaos/plugin-
|
|
266
|
-
"@elizaos/plugin-app-
|
|
267
|
-
"@elizaos/plugin-
|
|
268
|
-
"@elizaos/plugin-
|
|
269
|
-
"@elizaos/plugin-
|
|
270
|
-
"@elizaos/plugin-
|
|
271
|
-
"@elizaos/plugin-
|
|
272
|
-
"@elizaos/plugin-
|
|
273
|
-
"@elizaos/plugin-
|
|
274
|
-
"@elizaos/plugin-
|
|
275
|
-
"@elizaos/plugin-
|
|
276
|
-
"@elizaos/plugin-
|
|
277
|
-
"@elizaos/plugin-
|
|
278
|
-
"@elizaos/plugin-
|
|
279
|
-
"@elizaos/plugin-
|
|
280
|
-
"@elizaos/plugin-
|
|
281
|
-
"@elizaos/plugin-
|
|
282
|
-
"@elizaos/plugin-
|
|
283
|
-
"@elizaos/plugin-
|
|
284
|
-
"@elizaos/plugin-
|
|
285
|
-
"@elizaos/plugin-
|
|
286
|
-
"@elizaos/plugin-
|
|
287
|
-
"@elizaos/plugin-
|
|
288
|
-
"@elizaos/plugin-
|
|
289
|
-
"@elizaos/plugin-
|
|
290
|
-
"@elizaos/plugin-video": "2.0.3-beta.
|
|
291
|
-
"@elizaos/plugin-
|
|
292
|
-
"@elizaos/plugin-
|
|
293
|
-
"@elizaos/plugin-
|
|
294
|
-
"@elizaos/plugin-
|
|
295
|
-
"@elizaos/plugin-
|
|
296
|
-
"@elizaos/plugin-
|
|
297
|
-
"@elizaos/
|
|
298
|
-
"@elizaos/
|
|
299
|
-
"@elizaos/
|
|
300
|
-
"@elizaos/
|
|
301
|
-
"@elizaos/
|
|
260
|
+
"@elizaos/core": "2.0.3-beta.4",
|
|
261
|
+
"@elizaos/plugin-agent-orchestrator": "2.0.3-beta.4",
|
|
262
|
+
"@elizaos/plugin-agent-skills": "2.0.3-beta.4",
|
|
263
|
+
"@elizaos/plugin-anthropic": "2.0.3-beta.4",
|
|
264
|
+
"@elizaos/plugin-aosp-local-inference": "2.0.3-beta.4",
|
|
265
|
+
"@elizaos/plugin-app-control": "2.0.3-beta.4",
|
|
266
|
+
"@elizaos/plugin-app-manager": "2.0.3-beta.4",
|
|
267
|
+
"@elizaos/plugin-background-runner": "2.0.3-beta.4",
|
|
268
|
+
"@elizaos/plugin-browser": "2.0.3-beta.4",
|
|
269
|
+
"@elizaos/plugin-capacitor-bridge": "2.0.3-beta.4",
|
|
270
|
+
"@elizaos/plugin-coding-tools": "2.0.3-beta.4",
|
|
271
|
+
"@elizaos/plugin-commands": "2.0.3-beta.4",
|
|
272
|
+
"@elizaos/plugin-computeruse": "2.0.3-beta.4",
|
|
273
|
+
"@elizaos/plugin-contacts": "2.0.3-beta.4",
|
|
274
|
+
"@elizaos/plugin-discord": "2.0.3-beta.4",
|
|
275
|
+
"@elizaos/plugin-elizacloud": "2.0.3-beta.4",
|
|
276
|
+
"@elizaos/plugin-gitpathologist": "2.0.3-beta.4",
|
|
277
|
+
"@elizaos/plugin-imessage": "2.0.3-beta.4",
|
|
278
|
+
"@elizaos/plugin-local-inference": "2.0.3-beta.4",
|
|
279
|
+
"@elizaos/plugin-mcp": "2.0.3-beta.4",
|
|
280
|
+
"@elizaos/plugin-ollama": "2.0.3-beta.4",
|
|
281
|
+
"@elizaos/plugin-openai": "2.0.3-beta.4",
|
|
282
|
+
"@elizaos/plugin-phone": "2.0.3-beta.4",
|
|
283
|
+
"@elizaos/plugin-registry": "2.0.3-beta.4",
|
|
284
|
+
"@elizaos/plugin-remote-manifest": "2.0.3-beta.4",
|
|
285
|
+
"@elizaos/plugin-shell": "2.0.3-beta.4",
|
|
286
|
+
"@elizaos/plugin-signal": "2.0.3-beta.4",
|
|
287
|
+
"@elizaos/plugin-sql": "2.0.3-beta.4",
|
|
288
|
+
"@elizaos/plugin-streaming": "2.0.3-beta.4",
|
|
289
|
+
"@elizaos/plugin-task-coordinator": "2.0.3-beta.4",
|
|
290
|
+
"@elizaos/plugin-video": "2.0.3-beta.4",
|
|
291
|
+
"@elizaos/plugin-vision": "2.0.3-beta.4",
|
|
292
|
+
"@elizaos/plugin-wallet": "2.0.3-beta.4",
|
|
293
|
+
"@elizaos/plugin-whatsapp": "2.0.3-beta.4",
|
|
294
|
+
"@elizaos/plugin-wifi": "2.0.3-beta.4",
|
|
295
|
+
"@elizaos/plugin-worker-runtime": "2.0.3-beta.4",
|
|
296
|
+
"@elizaos/plugin-workflow": "2.0.3-beta.4",
|
|
297
|
+
"@elizaos/plugin-x402": "2.0.3-beta.4",
|
|
298
|
+
"@elizaos/registry": "2.0.3-beta.4",
|
|
299
|
+
"@elizaos/security": "2.0.3-beta.4",
|
|
300
|
+
"@elizaos/shared": "2.0.3-beta.4",
|
|
301
|
+
"@elizaos/skills": "2.0.3-beta.4",
|
|
302
|
+
"@elizaos/tui": "2.0.3-beta.4",
|
|
303
|
+
"@elizaos/vault": "2.0.3-beta.4",
|
|
302
304
|
"@noble/curves": "2.2.0",
|
|
303
305
|
"@noble/hashes": "2.2.0",
|
|
304
306
|
"@solana/web3.js": "1.98.4",
|
|
@@ -328,6 +330,14 @@
|
|
|
328
330
|
"ws": "^8.19.0",
|
|
329
331
|
"zod": "^4.4.3"
|
|
330
332
|
},
|
|
331
|
-
"
|
|
333
|
+
"peerDependencies": {
|
|
334
|
+
"@elizaos/app-core": "2.0.3-beta.4"
|
|
335
|
+
},
|
|
336
|
+
"peerDependenciesMeta": {
|
|
337
|
+
"@elizaos/app-core": {
|
|
338
|
+
"optional": true
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"gitHead": "f76f55793a0fb8d6b869dd8ddce03970de061e34",
|
|
332
342
|
"types": "./index.d.ts"
|
|
333
343
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - "cloud" mode uses Eliza Cloud (no API key needed)
|
|
12
12
|
* - "own-key" mode uses the user's own API keys
|
|
13
13
|
*/
|
|
14
|
-
import type { AudioGenConfig, AudioKind, ImageConfig, MediaConfig, VideoConfig, VisionConfig } from "../config/types.eliza.
|
|
14
|
+
import type { AudioGenConfig, AudioKind, ImageConfig, MediaConfig, VideoConfig, VisionConfig } from "../config/types.eliza.js";
|
|
15
15
|
/** Fetch with an AbortController-based timeout (default 30s). */
|
|
16
16
|
export declare function fetchWithTimeout(url: string, init: RequestInit, timeoutMs?: number): Promise<Response>;
|
|
17
17
|
export interface MediaProviderResult<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-scoped-context.d.ts","sourceRoot":"","sources":["../../src/providers/page-scoped-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAGT,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"page-scoped-context.d.ts","sourceRoot":"","sources":["../../src/providers/page-scoped-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAGT,MAAM,eAAe,CAAC;AAgkBvB,eAAO,MAAM,yBAAyB,EAAE,QAmGvC,CAAC"}
|
|
@@ -14,7 +14,6 @@ const PAGE_SCOPE_BRIEF = {
|
|
|
14
14
|
"page-connectors": "The user is in the Connectors view. They can inspect connector availability, authentication state, setup requirements, webhook readiness, and integration health. Action vocabulary: LIST_CONNECTORS, TOGGLE_CONNECTOR, SAVE_CONNECTOR_CONFIG, DISCONNECT_CONNECTOR. When the user asks what to do, recommend the smallest connector setup or troubleshooting action that fits the visible state. Never invent connected accounts, permissions, webhook state, or delivery results.",
|
|
15
15
|
"page-phone": "The user is in the Android Phone view. They can place calls through Android Telecom, open the dialer, send SMS through Android SMS, review recent calls, browse contacts, import vCards, and save call transcripts or summaries. Action vocabulary may include MESSAGE with operation=send/read_channel/search, VOICE_CALL, ADD_CONTACT, UPDATE_CONTACT, GET_CONTACT, and SEARCH_CONTACTS when the relevant plugins are enabled. Confirm the target number/contact and message content before calls or SMS. Ground discussion in visible phone state when present and never invent call logs, contacts, message bodies, transcripts, or delivery results.",
|
|
16
16
|
"page-plugins": "The user is in the Plugins view. They can inspect installed plugins, registry plugins, configuration readiness, plugin health, and runtime capability gaps. Action vocabulary: PLUGIN with modes install, eject, sync, reinject, list, search, core_status, or create. When the user asks what to do, recommend the smallest plugin setup or troubleshooting action that fits the visible state. Never invent installed plugins, credentials, or enabled capabilities.",
|
|
17
|
-
"page-lifeops": "The user is in the LifeOps view. They can inspect the overview, goals, reminders, calendar, messages, mail, sleep, screen time, social context, connector setup, capability readiness, and LifeOps settings. The LifeOps app provider and actions are the authoritative execution path for creating or changing personal workflows, reminders, goals, schedules, inbox drafts, connector setup, and executive-assistant follow-through. When the user asks what to do, recommend capability readiness and overview review first, then suggest the smallest concrete LifeOps action. Reference only live LifeOps state below; never invent reminders, messages, calendar events, goals, or connector status.",
|
|
18
17
|
"page-settings": "The user is in the Settings view. They can tune models, providers, permissions, connectors, wallet RPC, cloud account state, appearance, updates, and feature toggles. Action vocabulary: UPDATE_IDENTITY, UPDATE_AI_PROVIDER, TOGGLE_CAPABILITY, and TOGGLE_AUTO_TRAINING. When the user asks what to do, recommend the smallest concrete settings change that fits the visible section. Ask before changes that affect security, spending, or external accounts. Never invent provider status, account state, or permission grants.",
|
|
19
18
|
"page-wallet": "The user is in the Wallet view. They can inspect token inventory, NFTs, LP position status, current balance, P&L, activity, EVM/Solana addresses, RPC/provider readiness, wallet/RPC settings, native Hyperliquid and Polymarket readiness, and Vincent delegated trading. There are no chain filters in this surface. When the user asks what to do, recommend the smallest concrete wallet action and confirm asset/market, amount, destination/outcome, slippage/risk limits, and execution path before invoking any available action. If the user asks about Hyperliquid or Polymarket, prefer native app surfaces for reads/status and only surface Vincent for delegated automated trading. Never invent balances, positions, fills, markets, odds, or execution support.",
|
|
20
19
|
"automation-draft": "This is an automation-creation room. The user wants to create exactly one automation. Decide the right shape based on their description and call the matching action exactly once:\n" +
|
|
@@ -230,72 +229,6 @@ async function renderAppsLiveState() {
|
|
|
230
229
|
}
|
|
231
230
|
return lines.join("\n");
|
|
232
231
|
}
|
|
233
|
-
function formatLifeOpsOverviewSection(label, overview) {
|
|
234
|
-
return `${label}: ${overview.summary.activeOccurrenceCount} active item${overview.summary.activeOccurrenceCount === 1 ? "" : "s"}, ${overview.summary.activeReminderCount} reminder${overview.summary.activeReminderCount === 1 ? "" : "s"}, ${overview.summary.activeGoalCount} goal${overview.summary.activeGoalCount === 1 ? "" : "s"}.`;
|
|
235
|
-
}
|
|
236
|
-
async function renderLifeOpsLiveState() {
|
|
237
|
-
const [overview, capabilities, inbox] = await Promise.all([
|
|
238
|
-
fetchLocalJson("/api/lifeops/overview"),
|
|
239
|
-
fetchLocalJson("/api/lifeops/capabilities"),
|
|
240
|
-
fetchLocalJson("/api/lifeops/inbox?limit=8"),
|
|
241
|
-
]);
|
|
242
|
-
if (!overview && !capabilities && !inbox) {
|
|
243
|
-
return "Live LifeOps state: unavailable from the LifeOps API.";
|
|
244
|
-
}
|
|
245
|
-
const lines = ["Live LifeOps state:"];
|
|
246
|
-
if (capabilities) {
|
|
247
|
-
lines.push(`- App enabled: ${capabilities.appEnabled ? "yes" : "no"}.`);
|
|
248
|
-
lines.push(`- Capabilities: ${capabilities.summary.workingCount} working, ${capabilities.summary.degradedCount} degraded, ${capabilities.summary.blockedCount} blocked, ${capabilities.summary.notConfiguredCount} not configured.`);
|
|
249
|
-
const attention = capabilities.capabilities.filter((capability) => capability.state === "blocked" ||
|
|
250
|
-
capability.state === "degraded" ||
|
|
251
|
-
capability.state === "not_configured");
|
|
252
|
-
for (const capability of attention.slice(0, 5)) {
|
|
253
|
-
lines.push(` - ${capability.label}: ${capability.state} — ${capability.summary}`);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
if (overview) {
|
|
257
|
-
lines.push(`- Overview: ${overview.summary.activeOccurrenceCount} active item${overview.summary.activeOccurrenceCount === 1 ? "" : "s"}, ${overview.summary.overdueOccurrenceCount} overdue, ${overview.summary.activeReminderCount} active reminder${overview.summary.activeReminderCount === 1 ? "" : "s"}, ${overview.summary.activeGoalCount} active goal${overview.summary.activeGoalCount === 1 ? "" : "s"}.`);
|
|
258
|
-
lines.push(`- ${formatLifeOpsOverviewSection("Owner", overview.owner)}`);
|
|
259
|
-
lines.push(`- ${formatLifeOpsOverviewSection("Agent ops", overview.agentOps)}`);
|
|
260
|
-
if (overview.schedule) {
|
|
261
|
-
const relative = overview.schedule.relativeTime;
|
|
262
|
-
const wake = relative.minutesSinceWake !== null
|
|
263
|
-
? `${Math.round(relative.minutesSinceWake)}m since wake`
|
|
264
|
-
: "wake time unknown";
|
|
265
|
-
const bedtime = relative.minutesUntilBedtimeTarget !== null
|
|
266
|
-
? `${Math.round(relative.minutesUntilBedtimeTarget)}m until bedtime target`
|
|
267
|
-
: "bedtime target unknown";
|
|
268
|
-
lines.push(`- Schedule: ${overview.schedule.circadianState} (${Math.round(overview.schedule.stateConfidence * 100)}% confidence), ${overview.schedule.sleepStatus}; ${wake}; ${bedtime}.`);
|
|
269
|
-
}
|
|
270
|
-
const activeReminders = [
|
|
271
|
-
...overview.owner.reminders,
|
|
272
|
-
...overview.agentOps.reminders,
|
|
273
|
-
];
|
|
274
|
-
if (activeReminders.length > 0) {
|
|
275
|
-
lines.push("Active reminders:");
|
|
276
|
-
for (const reminder of activeReminders.slice(0, 5)) {
|
|
277
|
-
lines.push(`- ${reminder.title} (${reminder.channel}, ${reminder.state}) scheduled ${reminder.scheduledFor}`);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
const activeGoals = [...overview.owner.goals, ...overview.agentOps.goals];
|
|
281
|
-
if (activeGoals.length > 0) {
|
|
282
|
-
lines.push("Active goals:");
|
|
283
|
-
for (const goal of activeGoals.slice(0, 5)) {
|
|
284
|
-
lines.push(`- ${goal.title} (${goal.status})`);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
if (inbox) {
|
|
289
|
-
const unreadCount = Object.values(inbox.channelCounts).reduce((sum, count) => sum + count.unread, 0);
|
|
290
|
-
lines.push(`- Inbox: ${inbox.messages.length} recent message${inbox.messages.length === 1 ? "" : "s"}, ${unreadCount} unread.`);
|
|
291
|
-
for (const message of inbox.messages.slice(0, 5)) {
|
|
292
|
-
const subject = message.subject ? `${message.subject}: ` : "";
|
|
293
|
-
const unread = message.unread ? " unread" : "";
|
|
294
|
-
lines.push(` - ${message.channel}${unread} from ${message.sender.displayName}: ${subject}${message.snippet.slice(0, 120)}`);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return lines.join("\n");
|
|
298
|
-
}
|
|
299
232
|
function shortAddress(address) {
|
|
300
233
|
if (!address)
|
|
301
234
|
return "(not configured)";
|
|
@@ -443,8 +376,6 @@ async function renderLiveStateForScope(runtime, scope) {
|
|
|
443
376
|
return renderAutomationsLiveState(runtime);
|
|
444
377
|
case "page-apps":
|
|
445
378
|
return renderAppsLiveState();
|
|
446
|
-
case "page-lifeops":
|
|
447
|
-
return renderLifeOpsLiveState();
|
|
448
379
|
case "page-connectors":
|
|
449
380
|
case "page-plugins":
|
|
450
381
|
case "page-settings":
|
|
@@ -464,7 +395,7 @@ function formatSourceTail(entries) {
|
|
|
464
395
|
}
|
|
465
396
|
export const pageScopedContextProvider = {
|
|
466
397
|
name: "page-scoped-context",
|
|
467
|
-
description: "Operational context for the current page-scoped chat (Browser, Character, Apps, Connectors, Plugins, Settings,
|
|
398
|
+
description: "Operational context for the current page-scoped chat (Browser, Character, Apps, Connectors, Plugins, Settings, Automations, Wallet).",
|
|
468
399
|
dynamic: false,
|
|
469
400
|
position: 5,
|
|
470
401
|
contexts: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relevant-conversations.d.ts","sourceRoot":"","sources":["../../src/providers/relevant-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAIT,MAAM,eAAe,CAAC;AAgBvB,eAAO,MAAM,6BAA6B,EAAE,
|
|
1
|
+
{"version":3,"file":"relevant-conversations.d.ts","sourceRoot":"","sources":["../../src/providers/relevant-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAIT,MAAM,eAAe,CAAC;AAgBvB,eAAO,MAAM,6BAA6B,EAAE,QAmH3C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { embedRecallQuery, logger } from "@elizaos/core";
|
|
2
2
|
import { getValidationKeywordTerms } from "@elizaos/shared";
|
|
3
3
|
import { extractConversationMetadataFromRoom, isAutomationConversationMetadata, } from "../api/conversation-metadata.js";
|
|
4
4
|
import { formatRelativeTimestamp, formatSpeakerLabel, roomSourceTag, } from "../shared/conversation-format.js";
|
|
@@ -28,14 +28,13 @@ export const relevantConversationsProvider = {
|
|
|
28
28
|
if (isAutomationConversationMetadata(extractConversationMetadataFromRoom(currentRoom))) {
|
|
29
29
|
return { text: "", values: {}, data: {} };
|
|
30
30
|
}
|
|
31
|
-
// Embed the current message for semantic search
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (!embedding || !Array.isArray(embedding) || embedding.length === 0) {
|
|
31
|
+
// Embed the current message for semantic search. Routes through the one
|
|
32
|
+
// shared per-turn recall-query embed so this provider, document recall, and
|
|
33
|
+
// experience recall reuse a single embed round-trip per turn. `null` means
|
|
34
|
+
// the embed timed out/failed — fail open with no relevant-conversation
|
|
35
|
+
// context (recall richness lost, reply latency unaffected).
|
|
36
|
+
const embedding = await embedRecallQuery(runtime, text);
|
|
37
|
+
if (!embedding || embedding.length === 0) {
|
|
39
38
|
return { text: "", values: {}, data: {} };
|
|
40
39
|
}
|
|
41
40
|
const results = await runtime.searchMemories({
|
package/providers/workspace.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_AGENT_WORKSPACE_DIR, resolveDefaultAgentWorkspaceDir, shouldBootstrapWorkspaceInitFiles, shouldUseRuntimeCwdWorkspace } from "../shared/workspace-resolution.
|
|
1
|
+
import { DEFAULT_AGENT_WORKSPACE_DIR, resolveDefaultAgentWorkspaceDir, shouldBootstrapWorkspaceInitFiles, shouldUseRuntimeCwdWorkspace } from "../shared/workspace-resolution.js";
|
|
2
2
|
export { DEFAULT_AGENT_WORKSPACE_DIR, resolveDefaultAgentWorkspaceDir, shouldBootstrapWorkspaceInitFiles, shouldUseRuntimeCwdWorkspace, };
|
|
3
3
|
export interface RunCommandResult {
|
|
4
4
|
code: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../../src/runtime/actions/web-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAwDD,eAAO,MAAM,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../../src/runtime/actions/web-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAwDD,eAAO,MAAM,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgJrD,CAAC"}
|
|
@@ -83,10 +83,30 @@ function extractValue(body, extract) {
|
|
|
83
83
|
}
|
|
84
84
|
export const webFetch = {
|
|
85
85
|
name: "WEB_FETCH",
|
|
86
|
-
similes: [
|
|
86
|
+
similes: [
|
|
87
|
+
"LOOKUP_WEB",
|
|
88
|
+
"WEB_LOOKUP",
|
|
89
|
+
"FETCH_URL",
|
|
90
|
+
"HTTP_GET",
|
|
91
|
+
"GET_URL",
|
|
92
|
+
"LIVE_INFO",
|
|
93
|
+
"CURRENT_PRICE",
|
|
94
|
+
"CHECK_PRICE",
|
|
95
|
+
"CURRENT_WEATHER",
|
|
96
|
+
],
|
|
97
|
+
// Declaring the `web` context attaches the catalog's live-info keyword docs
|
|
98
|
+
// (price/how-much/current/latest/news/weather) so action retrieval surfaces
|
|
99
|
+
// WEB_FETCH for natural live-info phrasings ("whats the price of btc",
|
|
100
|
+
// "weather in tokyo") — without it WEB_FETCH had NO keyword terms and scored
|
|
101
|
+
// 0, so those turns fell through to a coding sub-agent spawn.
|
|
102
|
+
contexts: ["web"],
|
|
87
103
|
suppressInitialMessage: true,
|
|
88
|
-
description: "Fetch
|
|
89
|
-
"
|
|
104
|
+
description: "Fetch one specific URL and return its contents — a JSON API, data file, or page whose address you already have or can construct exactly. " +
|
|
105
|
+
"Prefer a JSON API over an HTML page so the value parses cleanly, and fetch it inline THIS turn — " +
|
|
106
|
+
"e.g. https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd, " +
|
|
107
|
+
"https://wttr.in/Tokyo?format=j1, " +
|
|
108
|
+
"https://nodejs.org/dist/index.json. " +
|
|
109
|
+
"Optionally pass `extract` (a dotted JSON path) to return a single field. Returns the contents inline. " +
|
|
90
110
|
"No API key required. Requests are https-only, GET-only, and SSRF-guarded (internal/private hosts are blocked).",
|
|
91
111
|
parameters: [
|
|
92
112
|
{
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WEB_SEARCH — keyless inline general web search.
|
|
3
|
+
*
|
|
4
|
+
* Queries the keyless Parallel.ai search MCP (with an Exa fallback) — the same
|
|
5
|
+
* backends the bundled opencode `websearch` tool uses — but INLINE this turn,
|
|
6
|
+
* with no coding sub-agent spawn. Gives every runtime a fast, general web
|
|
7
|
+
* search ("find me X", "latest on Y", "best Z", "who/what/where is …") that
|
|
8
|
+
* needs no API key and no backing service, returning ranked results
|
|
9
|
+
* (title / url / snippet) the model answers from.
|
|
10
|
+
*
|
|
11
|
+
* Sibling of {@link module:runtime/actions/web-fetch}: WEB_FETCH reads a value
|
|
12
|
+
* from a URL you can name; WEB_SEARCH finds the pages when you can't. Routing
|
|
13
|
+
* an open-ended lookup through a coding sub-agent is slow, re-spawns, and risks
|
|
14
|
+
* leaking the weak model's tool-call markup — this answers it in one hop.
|
|
15
|
+
*
|
|
16
|
+
* Inline search is independently controlled by `ELIZA_INLINE_WEB_SEARCH`.
|
|
17
|
+
* `ELIZA_WEB_SEARCH=0|false|off` remains a legacy master kill switch for all
|
|
18
|
+
* web-search surfaces.
|
|
19
|
+
*
|
|
20
|
+
* @module runtime/actions/web-search
|
|
21
|
+
*/
|
|
22
|
+
import { type Action } from "@elizaos/core";
|
|
23
|
+
/**
|
|
24
|
+
* Capability gate for the INLINE keyless web-search action. Inline WEB_SEARCH
|
|
25
|
+
* is the default surface because it goes through Eliza action routing/audit.
|
|
26
|
+
* Provider-native server-side search is an explicit opt-in with
|
|
27
|
+
* `ELIZA_SERVER_WEB_SEARCH=1`; when that native surface is enabled, inline stays
|
|
28
|
+
* off unless `ELIZA_INLINE_WEB_SEARCH` explicitly overrides it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isWebSearchEnabled(): boolean;
|
|
31
|
+
export declare const webSearch: Action & Record<string, unknown>;
|
|
32
|
+
//# sourceMappingURL=web-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../../src/runtime/actions/web-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AA8BvB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAQ5C;AA4ED,eAAO,MAAM,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgItD,CAAC"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WEB_SEARCH — keyless inline general web search.
|
|
3
|
+
*
|
|
4
|
+
* Queries the keyless Parallel.ai search MCP (with an Exa fallback) — the same
|
|
5
|
+
* backends the bundled opencode `websearch` tool uses — but INLINE this turn,
|
|
6
|
+
* with no coding sub-agent spawn. Gives every runtime a fast, general web
|
|
7
|
+
* search ("find me X", "latest on Y", "best Z", "who/what/where is …") that
|
|
8
|
+
* needs no API key and no backing service, returning ranked results
|
|
9
|
+
* (title / url / snippet) the model answers from.
|
|
10
|
+
*
|
|
11
|
+
* Sibling of {@link module:runtime/actions/web-fetch}: WEB_FETCH reads a value
|
|
12
|
+
* from a URL you can name; WEB_SEARCH finds the pages when you can't. Routing
|
|
13
|
+
* an open-ended lookup through a coding sub-agent is slow, re-spawns, and risks
|
|
14
|
+
* leaking the weak model's tool-call markup — this answers it in one hop.
|
|
15
|
+
*
|
|
16
|
+
* Inline search is independently controlled by `ELIZA_INLINE_WEB_SEARCH`.
|
|
17
|
+
* `ELIZA_WEB_SEARCH=0|false|off` remains a legacy master kill switch for all
|
|
18
|
+
* web-search surfaces.
|
|
19
|
+
*
|
|
20
|
+
* @module runtime/actions/web-search
|
|
21
|
+
*/
|
|
22
|
+
import { logger, } from "@elizaos/core";
|
|
23
|
+
import { performGuardedHttpPost } from "../custom-actions.js";
|
|
24
|
+
/** Keyless MCP search endpoints (no PARALLEL_API_KEY / EXA_API_KEY required). */
|
|
25
|
+
const PARALLEL_MCP_URL = "https://search.parallel.ai/mcp";
|
|
26
|
+
const EXA_MCP_URL = "https://mcp.exa.ai/mcp";
|
|
27
|
+
/**
|
|
28
|
+
* Body read cap. Must comfortably exceed a full MCP search payload — 6-10
|
|
29
|
+
* results with livecrawled excerpts can run tens of KB — so the JSON-RPC / SSE
|
|
30
|
+
* envelope is never truncated mid-object (a truncated body fails to parse and
|
|
31
|
+
* would look like "no results"). The model only ever sees the first
|
|
32
|
+
* WEB_SEARCH_RESULT_CHARS of the extracted text.
|
|
33
|
+
*/
|
|
34
|
+
const WEB_SEARCH_READ_CHARS = 262_144;
|
|
35
|
+
/** Cap of result text handed back to the model. */
|
|
36
|
+
const WEB_SEARCH_RESULT_CHARS = 4_000;
|
|
37
|
+
const DEFAULT_NUM_RESULTS = 6;
|
|
38
|
+
function readBooleanEnv(name) {
|
|
39
|
+
const raw = process.env[name]?.trim().toLowerCase();
|
|
40
|
+
if (raw === undefined || raw.length === 0)
|
|
41
|
+
return undefined;
|
|
42
|
+
if (raw === "0" || raw === "false" || raw === "off" || raw === "no") {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (raw === "1" || raw === "true" || raw === "on" || raw === "yes") {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Capability gate for the INLINE keyless web-search action. Inline WEB_SEARCH
|
|
52
|
+
* is the default surface because it goes through Eliza action routing/audit.
|
|
53
|
+
* Provider-native server-side search is an explicit opt-in with
|
|
54
|
+
* `ELIZA_SERVER_WEB_SEARCH=1`; when that native surface is enabled, inline stays
|
|
55
|
+
* off unless `ELIZA_INLINE_WEB_SEARCH` explicitly overrides it.
|
|
56
|
+
*/
|
|
57
|
+
export function isWebSearchEnabled() {
|
|
58
|
+
const master = readBooleanEnv("ELIZA_WEB_SEARCH");
|
|
59
|
+
if (master === false)
|
|
60
|
+
return false;
|
|
61
|
+
const inline = readBooleanEnv("ELIZA_INLINE_WEB_SEARCH");
|
|
62
|
+
if (inline !== undefined)
|
|
63
|
+
return inline;
|
|
64
|
+
return readBooleanEnv("ELIZA_SERVER_WEB_SEARCH") !== true;
|
|
65
|
+
}
|
|
66
|
+
function readParams(options) {
|
|
67
|
+
const params = options
|
|
68
|
+
?.parameters;
|
|
69
|
+
if (!params || typeof params !== "object")
|
|
70
|
+
return {};
|
|
71
|
+
const query = params.query ?? params.q ?? params.objective;
|
|
72
|
+
const rawNum = params.numResults ?? params.num_results;
|
|
73
|
+
const n = typeof rawNum === "number"
|
|
74
|
+
? rawNum
|
|
75
|
+
: Number.parseInt(String(rawNum ?? ""), 10);
|
|
76
|
+
return {
|
|
77
|
+
query: typeof query === "string" ? query.trim() : undefined,
|
|
78
|
+
numResults: Number.isFinite(n) && n > 0 ? Math.min(n, 10) : undefined,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Extract the human-readable result text from an MCP `tools/call` response. The
|
|
83
|
+
* body is either a JSON-RPC object or an SSE stream of `data:` lines; both wrap
|
|
84
|
+
* the payload at `result.content[].text`. A JSON-RPC `error` envelope or a
|
|
85
|
+
* tool-level `result.isError` is treated as a failure (returns undefined) — NOT
|
|
86
|
+
* mistaken for a search result — so the caller falls back to the other provider
|
|
87
|
+
* instead of handing the model an error string as if it were results.
|
|
88
|
+
*/
|
|
89
|
+
function parseMcpResultText(body) {
|
|
90
|
+
const fromPayload = (payload) => {
|
|
91
|
+
const trimmed = payload.trim();
|
|
92
|
+
if (!trimmed.startsWith("{"))
|
|
93
|
+
return undefined;
|
|
94
|
+
try {
|
|
95
|
+
const data = JSON.parse(trimmed);
|
|
96
|
+
if (data.error || data.result?.isError)
|
|
97
|
+
return undefined;
|
|
98
|
+
return data.result?.content?.find((item) => item.text)?.text;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const direct = fromPayload(body);
|
|
105
|
+
if (direct)
|
|
106
|
+
return direct;
|
|
107
|
+
for (const line of body.split("\n")) {
|
|
108
|
+
if (!line.startsWith("data: "))
|
|
109
|
+
continue;
|
|
110
|
+
const parsed = fromPayload(line.slice(6));
|
|
111
|
+
if (parsed)
|
|
112
|
+
return parsed;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
async function callSearchMcp(url, toolName, args) {
|
|
117
|
+
const body = JSON.stringify({
|
|
118
|
+
jsonrpc: "2.0",
|
|
119
|
+
id: 1,
|
|
120
|
+
method: "tools/call",
|
|
121
|
+
params: { name: toolName, arguments: args },
|
|
122
|
+
});
|
|
123
|
+
const result = await performGuardedHttpPost(url, {
|
|
124
|
+
body,
|
|
125
|
+
headers: { Accept: "application/json, text/event-stream" },
|
|
126
|
+
maxChars: WEB_SEARCH_READ_CHARS,
|
|
127
|
+
});
|
|
128
|
+
if (!result.ok || result.blocked)
|
|
129
|
+
return undefined;
|
|
130
|
+
return parseMcpResultText(result.text);
|
|
131
|
+
}
|
|
132
|
+
export const webSearch = {
|
|
133
|
+
name: "WEB_SEARCH",
|
|
134
|
+
similes: [
|
|
135
|
+
"SEARCH_WEB",
|
|
136
|
+
"WEB_QUERY",
|
|
137
|
+
"FIND_ONLINE",
|
|
138
|
+
"SEARCH_INTERNET",
|
|
139
|
+
"LOOKUP_ONLINE",
|
|
140
|
+
],
|
|
141
|
+
// No context gate. An empty anyOf always passes the context-gate
|
|
142
|
+
// (context-gates.ts), so this one general web tool is a candidate on EVERY
|
|
143
|
+
// turn and is selected purely by semantic retrieval over its name / similes /
|
|
144
|
+
// description. That makes it surface for any information-seeking query —
|
|
145
|
+
// recommendations, facts, prices, news, current events — regardless of
|
|
146
|
+
// whether Stage-1 labeled the turn "web" or "simple", with no keyword list.
|
|
147
|
+
contexts: [],
|
|
148
|
+
suppressInitialMessage: true,
|
|
149
|
+
description: "Search the open web and answer from the results. " +
|
|
150
|
+
"Use this for any question that needs current, real-world, or external information — prices, exchange rates, weather, sports scores, stock/crypto values, news, current events, recommendations ('best X', 'top Y'), facts about people, places, products, or companies, 'what/who/where/when is …', 'latest on …', 'how to …'. " +
|
|
151
|
+
"Returns ranked results (title, url, snippet) inline THIS turn. The snippets contain the answer — read them and answer the user directly and completely right now, citing a source; do not promise to look further. " +
|
|
152
|
+
"Keyless and fast; no API key and no coding sub-agent required.",
|
|
153
|
+
parameters: [
|
|
154
|
+
{
|
|
155
|
+
name: "query",
|
|
156
|
+
description: "The search query in natural language (e.g. 'highest rated ramen shop in Tokyo').",
|
|
157
|
+
required: true,
|
|
158
|
+
schema: { type: "string" },
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "numResults",
|
|
162
|
+
description: "Optional number of results to return (default 6, max 10).",
|
|
163
|
+
required: false,
|
|
164
|
+
schema: { type: "number" },
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
validate: async () => isWebSearchEnabled(),
|
|
168
|
+
handler: async (_runtime, _message, _state, options, callback) => {
|
|
169
|
+
const { query, numResults } = readParams(options);
|
|
170
|
+
if (!query) {
|
|
171
|
+
const text = "Missing required parameter 'query'.";
|
|
172
|
+
callback?.({ text });
|
|
173
|
+
return { text, success: false, data: { actionName: "WEB_SEARCH" } };
|
|
174
|
+
}
|
|
175
|
+
const n = numResults ?? DEFAULT_NUM_RESULTS;
|
|
176
|
+
try {
|
|
177
|
+
// Parallel.ai primary, Exa fallback — both keyless, both general.
|
|
178
|
+
let results = await callSearchMcp(PARALLEL_MCP_URL, "web_search", {
|
|
179
|
+
objective: query,
|
|
180
|
+
search_queries: [query],
|
|
181
|
+
});
|
|
182
|
+
let provider = "parallel";
|
|
183
|
+
if (!results) {
|
|
184
|
+
results = await callSearchMcp(EXA_MCP_URL, "web_search_exa", {
|
|
185
|
+
query,
|
|
186
|
+
type: "auto",
|
|
187
|
+
numResults: n,
|
|
188
|
+
livecrawl: "fallback",
|
|
189
|
+
});
|
|
190
|
+
provider = "exa";
|
|
191
|
+
}
|
|
192
|
+
if (!results) {
|
|
193
|
+
const text = `No web search results for "${query}".`;
|
|
194
|
+
callback?.({ text });
|
|
195
|
+
return {
|
|
196
|
+
text,
|
|
197
|
+
success: false,
|
|
198
|
+
data: { actionName: "WEB_SEARCH", query },
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
const value = results.slice(0, WEB_SEARCH_RESULT_CHARS);
|
|
202
|
+
const content = {
|
|
203
|
+
text: value,
|
|
204
|
+
actions: ["WEB_SEARCH"],
|
|
205
|
+
data: { actionName: "WEB_SEARCH", query, provider, value },
|
|
206
|
+
};
|
|
207
|
+
callback?.(content);
|
|
208
|
+
return {
|
|
209
|
+
text: value,
|
|
210
|
+
success: true,
|
|
211
|
+
data: { actionName: "WEB_SEARCH", query, provider, value },
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
216
|
+
logger.warn(`[web-search] error for "${query}": ${message}`);
|
|
217
|
+
const text = `Web search failed for "${query}": ${message}`;
|
|
218
|
+
callback?.({ text });
|
|
219
|
+
return {
|
|
220
|
+
text,
|
|
221
|
+
success: false,
|
|
222
|
+
data: { actionName: "WEB_SEARCH", query },
|
|
223
|
+
error: message,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
examples: [
|
|
228
|
+
[
|
|
229
|
+
{
|
|
230
|
+
name: "{{user}}",
|
|
231
|
+
content: {
|
|
232
|
+
text: "what's the highest rated ramen shop in tokyo right now?",
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: "{{agent}}",
|
|
237
|
+
content: {
|
|
238
|
+
text: "",
|
|
239
|
+
action: "WEB_SEARCH",
|
|
240
|
+
actionParams: { query: "highest rated ramen shop in Tokyo" },
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
],
|
|
244
|
+
],
|
|
245
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ElizaConfig } from "../config/config.
|
|
1
|
+
import type { ElizaConfig } from "../config/config.js";
|
|
2
2
|
export declare const ADVANCED_CAPABILITY_PLUGIN_IDS: readonly ["experience", "todos", "personality"];
|
|
3
3
|
export type AdvancedCapabilityPluginId = (typeof ADVANCED_CAPABILITY_PLUGIN_IDS)[number];
|
|
4
4
|
export declare function isAdvancedCapabilityPluginId(pluginId: string): pluginId is AdvancedCapabilityPluginId;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* direct prompt calls that do not pass through message-state composition.
|
|
26
26
|
*/
|
|
27
27
|
import type { AgentRuntime, JsonValue, Memory, MessageHistoryCompactionHookResult, State } from "@elizaos/core";
|
|
28
|
-
import { type CompactionStats, type CompactorMessage, type CompactorModelCall, type CompactorTranscript } from "./conversation-compactor.types.
|
|
28
|
+
import { type CompactionStats, type CompactorMessage, type CompactorModelCall, type CompactorTranscript } from "./conversation-compactor.types.js";
|
|
29
29
|
export declare const STRATEGY_NAMES: readonly ["naive-summary", "structured-state", "hierarchical-summary", "hybrid-ledger"];
|
|
30
30
|
export type StrategyName = (typeof STRATEGY_NAMES)[number];
|
|
31
31
|
export declare const DEFAULT_CONVERSATION_COMPACTOR_STRATEGY: StrategyName;
|
|
@@ -792,7 +792,7 @@ function syntheticCompactionMemory(args) {
|
|
|
792
792
|
tags: ["compaction", "conversation-summary"],
|
|
793
793
|
strategy: args.strategy,
|
|
794
794
|
hookSource: args.source,
|
|
795
|
-
telemetry: args.telemetry,
|
|
795
|
+
telemetry: JSON.parse(JSON.stringify(args.telemetry)),
|
|
796
796
|
},
|
|
797
797
|
};
|
|
798
798
|
}
|