@elizaos/agent 2.0.3-beta.2 → 2.0.3-beta.3
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 +50 -26
- 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/runtime/eliza-plugin.js
CHANGED
|
@@ -9,6 +9,7 @@ import { AgentEventService, logger, NotificationService, promoteSubactionsToActi
|
|
|
9
9
|
import { compactConversationAction } from "../actions/compact-conversation.js";
|
|
10
10
|
import { contactAction } from "../actions/contact.js";
|
|
11
11
|
import { databaseAction } from "../actions/database.js";
|
|
12
|
+
import { filesAction } from "../actions/files.js";
|
|
12
13
|
import { logsAction } from "../actions/logs.js";
|
|
13
14
|
import { memoryAction } from "../actions/memories.js";
|
|
14
15
|
import { notifyAction } from "../actions/notify.js";
|
|
@@ -18,6 +19,8 @@ import { runtimeAction } from "../actions/runtime.js";
|
|
|
18
19
|
import { settingsAction } from "../actions/settings-actions.js";
|
|
19
20
|
import { terminalAction } from "../actions/terminal.js";
|
|
20
21
|
import { triggerAction } from "../actions/trigger.js";
|
|
22
|
+
import { backgroundGenerateImageRoute } from "../api/background-routes.js";
|
|
23
|
+
import { filesRoutes } from "../api/files-routes.js";
|
|
21
24
|
import { mediaFileRoute, registerMediaGcTask, registerMediaPipelineHook, } from "../api/media-runtime.js";
|
|
22
25
|
import { adminPanelProvider } from "../providers/admin-panel.js";
|
|
23
26
|
import { adminTrustProvider } from "../providers/admin-trust.js";
|
|
@@ -36,9 +39,14 @@ import { createOngoingTasksProvider } from "../providers/tasks.js";
|
|
|
36
39
|
import { uiCatalogProvider } from "../providers/ui-catalog.js";
|
|
37
40
|
import { createUserNameProvider } from "../providers/user-name.js";
|
|
38
41
|
import { createWorkspaceProvider } from "../providers/workspace-provider.js";
|
|
42
|
+
import { ApprovalService } from "../services/approval/index.js";
|
|
39
43
|
import { ElizaCharacterPersistenceService } from "../services/character-persistence.js";
|
|
44
|
+
import { LocalFileStorageService } from "../services/file-storage.js";
|
|
45
|
+
import { GlobalPauseService } from "../services/global-pause/index.js";
|
|
46
|
+
import { HandoffService } from "../services/handoff/index.js";
|
|
40
47
|
import { KnowledgeGraphService, knowledgeGraphSchema, } from "../services/knowledge-graph/index.js";
|
|
41
48
|
import { AgentMediaGenerationService } from "../services/media-generation.js";
|
|
49
|
+
import { PendingPromptsService } from "../services/pending-prompts/index.js";
|
|
42
50
|
import { PermissionRegistry } from "../services/permissions-registry.js";
|
|
43
51
|
import { NotificationPushService } from "../services/push/notification-push-service.js";
|
|
44
52
|
import { resolveDefaultAgentWorkspaceDir } from "../shared/workspace-resolution.js";
|
|
@@ -82,8 +90,13 @@ export function createElizaPlugin(config) {
|
|
|
82
90
|
NotificationPushService,
|
|
83
91
|
ElizaCharacterPersistenceService,
|
|
84
92
|
AgentMediaGenerationService,
|
|
93
|
+
LocalFileStorageService,
|
|
85
94
|
PermissionRegistry,
|
|
86
95
|
KnowledgeGraphService,
|
|
96
|
+
PendingPromptsService,
|
|
97
|
+
GlobalPauseService,
|
|
98
|
+
HandoffService,
|
|
99
|
+
ApprovalService,
|
|
87
100
|
],
|
|
88
101
|
init: async (_pluginConfig, runtime) => {
|
|
89
102
|
registerTriggerTaskWorker(runtime);
|
|
@@ -165,7 +178,7 @@ export function createElizaPlugin(config) {
|
|
|
165
178
|
],
|
|
166
179
|
// Public media route — only reached on iOS (in-process dispatch, no HTTP
|
|
167
180
|
// server). HTTP platforms serve media via the pre-auth handler in server.ts.
|
|
168
|
-
routes: [mediaFileRoute],
|
|
181
|
+
routes: [mediaFileRoute, backgroundGenerateImageRoute, ...filesRoutes],
|
|
169
182
|
actions: [
|
|
170
183
|
terminalAction,
|
|
171
184
|
...promoteSubactionsToActions(triggerAction),
|
|
@@ -180,6 +193,7 @@ export function createElizaPlugin(config) {
|
|
|
180
193
|
compactConversationAction,
|
|
181
194
|
notifyAction,
|
|
182
195
|
...promoteSubactionsToActions(memoryAction),
|
|
196
|
+
filesAction,
|
|
183
197
|
// SCHEDULE_FOLLOW_UP is now the `followup` op on contactAction.
|
|
184
198
|
// ARCHIVE_CODING_TASK / REOPEN_CODING_TASK live as ops on the TASKS
|
|
185
199
|
// parent in @elizaos/plugin-agent-orchestrator (also surfaced via the
|
package/runtime/eliza.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { CHANNEL_PLUGIN_MAP, collectPluginNames, OPTIONAL_PLUGIN_MAP, PROVIDER_PLUGIN_MAP, } from "./plugin-collector.
|
|
2
|
-
export { CUSTOM_PLUGINS_DIRNAME, EJECTED_PLUGINS_DIRNAME, ensureBrowserServerLink, findPluginBrowserStagehandDir, findRuntimePluginExport, mergeDropInPlugins, type PluginModuleShape, type ResolvedPlugin, repairBrokenInstallRecord, resolveElizaPluginImportSpecifier, resolvePackageEntry, STATIC_ELIZA_PLUGINS, scanDropInPlugins, } from "./plugin-types.
|
|
1
|
+
export { CHANNEL_PLUGIN_MAP, collectPluginNames, OPTIONAL_PLUGIN_MAP, PROVIDER_PLUGIN_MAP, } from "./plugin-collector.js";
|
|
2
|
+
export { CUSTOM_PLUGINS_DIRNAME, EJECTED_PLUGINS_DIRNAME, ensureBrowserServerLink, findPluginBrowserStagehandDir, findRuntimePluginExport, mergeDropInPlugins, type PluginModuleShape, type ResolvedPlugin, repairBrokenInstallRecord, resolveElizaPluginImportSpecifier, resolvePackageEntry, STATIC_ELIZA_PLUGINS, scanDropInPlugins, } from "./plugin-types.js";
|
|
3
3
|
import { AgentRuntime, type LogEntry, type Plugin } from "@elizaos/core";
|
|
4
|
-
import { buildCharacterFromConfig } from "./build-character-config.
|
|
5
|
-
import { resolvePreferredProviderId, resolvePreferredProviderPluginName, resolvePrimaryModel } from "./model-resolution.
|
|
6
|
-
import { type ElizaConfig } from "../config/config.
|
|
7
|
-
import { BLOCKING_CORE_PLUGINS, CORE_PLUGINS, DEFERRED_CORE_PLUGINS, LEAN_CHAT_PLUGINS, OPTIONAL_CORE_PLUGINS } from "./core-plugins.
|
|
4
|
+
import { buildCharacterFromConfig } from "./build-character-config.js";
|
|
5
|
+
import { resolvePreferredProviderId, resolvePreferredProviderPluginName, resolvePrimaryModel } from "./model-resolution.js";
|
|
6
|
+
import { type ElizaConfig } from "../config/config.js";
|
|
7
|
+
import { BLOCKING_CORE_PLUGINS, CORE_PLUGINS, DEFERRED_CORE_PLUGINS, LEAN_CHAT_PLUGINS, OPTIONAL_CORE_PLUGINS } from "./core-plugins.js";
|
|
8
8
|
export declare function ensureDeferredCoreStaticPluginsRegistered(): Promise<void>;
|
|
9
9
|
/**
|
|
10
10
|
* Static-plugin registration for the CLOUD-HOSTED topology only (the agent runs
|
|
@@ -54,7 +54,9 @@ export declare function configureLocalEmbeddingPlugin(_plugin: Plugin, config?:
|
|
|
54
54
|
* PGlite manager, so restarts must close the adapter or the next runtime can
|
|
55
55
|
* silently reuse the same broken manager instance.
|
|
56
56
|
*/
|
|
57
|
-
export declare function shutdownRuntime(runtime: AgentRuntime | null | undefined, context: string
|
|
57
|
+
export declare function shutdownRuntime(runtime: AgentRuntime | null | undefined, context: string, options?: {
|
|
58
|
+
fast?: boolean;
|
|
59
|
+
}): Promise<void>;
|
|
58
60
|
/**
|
|
59
61
|
* Remove duplicate actions across an ordered list of plugins.
|
|
60
62
|
*
|
package/runtime/eliza.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eliza.d.ts","sourceRoot":"","sources":["../../src/runtime/eliza.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eliza.d.ts","sourceRoot":"","sources":["../../src/runtime/eliza.ts"],"names":[],"mappings":"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"}
|
package/runtime/eliza.js
CHANGED
|
@@ -32,6 +32,7 @@ import { runFirstTimeSetup } from "./first-time-setup.js";
|
|
|
32
32
|
import { resolveConfigEnvForProcess } from "./operations/vault-bridge.js";
|
|
33
33
|
import { resolvePlugins, } from "./plugin-resolver.js";
|
|
34
34
|
import { CUSTOM_PLUGINS_DIRNAME as CUSTOM_RUNTIME_PLUGINS_DIRNAME, STATIC_ELIZA_PLUGINS, } from "./plugin-types.js";
|
|
35
|
+
import { shouldLoadRemoteCodingRunnerForBoot } from "./remote-coding-runner-gate.js";
|
|
35
36
|
export { CHANNEL_PLUGIN_MAP, collectPluginNames, OPTIONAL_PLUGIN_MAP, PROVIDER_PLUGIN_MAP, } from "./plugin-collector.js";
|
|
36
37
|
export { CUSTOM_PLUGINS_DIRNAME, EJECTED_PLUGINS_DIRNAME, ensureBrowserServerLink, findPluginBrowserStagehandDir, findRuntimePluginExport, mergeDropInPlugins, repairBrokenInstallRecord, resolveElizaPluginImportSpecifier, resolvePackageEntry, STATIC_ELIZA_PLUGINS, scanDropInPlugins, } from "./plugin-types.js";
|
|
37
38
|
// resolvePlugins is re-exported via index.ts from ./plugin-resolver
|
|
@@ -90,6 +91,7 @@ async function loadE2BCapabilityRouterModule() {
|
|
|
90
91
|
/* @vite-ignore */ moduleId)));
|
|
91
92
|
}
|
|
92
93
|
import { debugLogResolvedContext, validateRuntimeContext, } from "../api/plugin-validation.js";
|
|
94
|
+
import { listViews } from "../api/views-registry.js";
|
|
93
95
|
import { getWalletAddresses, syncSolanaPublicKeyEnv } from "../api/wallet.js";
|
|
94
96
|
import { configFileExists, loadElizaConfig, } from "../config/config.js";
|
|
95
97
|
import { CONNECTOR_ENV_MAP, collectConfigEnvVars, collectConnectorEnvVars, } from "../config/env-vars.js";
|
|
@@ -111,7 +113,8 @@ import { createPgliteInitError, getPgliteErrorCode, PGLITE_ERROR_CODES, } from "
|
|
|
111
113
|
import { installRuntimePluginLifecycle } from "./plugin-lifecycle.js";
|
|
112
114
|
import { validateIntentActionMap } from "./prompt-compaction.js";
|
|
113
115
|
import rolesPlugin from "./roles.js";
|
|
114
|
-
import { shouldEnableTrajectoryLoggingByDefault } from "./trajectory-persistence.js";
|
|
116
|
+
import { installDatabaseTrajectoryLogger, shouldEnableTrajectoryLoggingByDefault, } from "./trajectory-persistence.js";
|
|
117
|
+
import { validateViewActionMap, validateViewCoverage, } from "./view-action-affinity.js";
|
|
115
118
|
function isPluginSqlResolutionError(err) {
|
|
116
119
|
const message = err instanceof Error ? err.message : String(err);
|
|
117
120
|
return (message.includes("Cannot find module '@elizaos/plugin-sql'") ||
|
|
@@ -343,7 +346,12 @@ const CORE_STATIC_PLUGIN_REGISTRATIONS = [
|
|
|
343
346
|
packageName: "@elizaos/plugin-gitpathologist",
|
|
344
347
|
phase: "deferred",
|
|
345
348
|
required: false,
|
|
346
|
-
|
|
349
|
+
// Not in the mobile bundle — attempting the import there hangs the full
|
|
350
|
+
// 30s deferred-plugin timeout before being skipped. Skip it up front on
|
|
351
|
+
// android/ios (it's a desktop dev tool, already gated in plugin-collector).
|
|
352
|
+
load: () => isMobilePlatform()
|
|
353
|
+
? Promise.resolve(null)
|
|
354
|
+
: getOptionalPlugin("@elizaos/plugin-gitpathologist"),
|
|
347
355
|
},
|
|
348
356
|
];
|
|
349
357
|
let _blockingStaticPluginsRegistered = false;
|
|
@@ -560,7 +568,10 @@ function registerSignalShutdownHandlers(context) {
|
|
|
560
568
|
try {
|
|
561
569
|
const runtime = current?.getRuntime();
|
|
562
570
|
if (runtime) {
|
|
563
|
-
|
|
571
|
+
// SIGINT/SIGTERM is an interactive/dev teardown — use the capped fast
|
|
572
|
+
// path so the process exits promptly instead of waiting on in-flight
|
|
573
|
+
// deferred service starts or an embedding-queue flush (#9605).
|
|
574
|
+
await shutdownRuntime(runtime, "signal shutdown", { fast: true });
|
|
564
575
|
}
|
|
565
576
|
}
|
|
566
577
|
catch (err) {
|
|
@@ -622,7 +633,7 @@ export async function configureLocalEmbeddingPlugin(_plugin, config) {
|
|
|
622
633
|
const { detectEmbeddingPreset } = await import("@elizaos/plugin-local-inference/runtime/embedding-presets");
|
|
623
634
|
const detectedPreset = detectEmbeddingPreset();
|
|
624
635
|
const SQL_COMPATIBLE_EMBEDDING_DIMENSIONS = new Set([
|
|
625
|
-
384, 512, 768, 1024, 1536, 3072,
|
|
636
|
+
384, 512, 768, 1024, 1536, 2048, 3072,
|
|
626
637
|
]);
|
|
627
638
|
const normalizeEmbeddingDimensions = (rawValue) => {
|
|
628
639
|
if (!rawValue)
|
|
@@ -911,13 +922,15 @@ function _redactUserSegments(filepath) {
|
|
|
911
922
|
* PGlite manager, so restarts must close the adapter or the next runtime can
|
|
912
923
|
* silently reuse the same broken manager instance.
|
|
913
924
|
*/
|
|
914
|
-
export async function shutdownRuntime(runtime, context) {
|
|
925
|
+
export async function shutdownRuntime(runtime, context, options = {}) {
|
|
915
926
|
if (!runtime)
|
|
916
927
|
return;
|
|
917
928
|
const adapter = runtime.adapter;
|
|
918
929
|
let firstError = null;
|
|
919
930
|
try {
|
|
920
|
-
|
|
931
|
+
// Interactive/signal teardown asks for the capped fast path so Ctrl-C does
|
|
932
|
+
// not block on a slow deferred service start or a long embedding drain.
|
|
933
|
+
await runtime.stop(options.fast ? { fast: true } : undefined);
|
|
921
934
|
}
|
|
922
935
|
catch (err) {
|
|
923
936
|
firstError = err;
|
|
@@ -1055,6 +1068,18 @@ async function installPromptOptimizationLayer(runtime, context, config) {
|
|
|
1055
1068
|
async function prepareRuntimeForTrajectoryCapture(runtime, context, config) {
|
|
1056
1069
|
await waitForTrajectoriesService(runtime, context);
|
|
1057
1070
|
ensureTrajectoryLoggerEnabled(runtime, context);
|
|
1071
|
+
// Bridge the in-memory "trajectories" service to the SQL trajectory_steps
|
|
1072
|
+
// tables that the viewer + collection read. Without this the core service
|
|
1073
|
+
// captures LLM calls only into its own trajectory_step_index store, so every
|
|
1074
|
+
// platform without the plugin-training log-backfill (mobile, cloud) shows a
|
|
1075
|
+
// trajectory with zero recorded LLM calls. Patching here makes capture land
|
|
1076
|
+
// in trajectory_steps universally (local + cloud + mobile).
|
|
1077
|
+
try {
|
|
1078
|
+
await installDatabaseTrajectoryLogger(runtime);
|
|
1079
|
+
}
|
|
1080
|
+
catch (err) {
|
|
1081
|
+
logger.warn(`[eliza] Failed to install database trajectory logger (${context}): ${err instanceof Error ? err.message : err}`);
|
|
1082
|
+
}
|
|
1058
1083
|
await installPromptOptimizationLayer(runtime, context, config);
|
|
1059
1084
|
}
|
|
1060
1085
|
// ---------------------------------------------------------------------------
|
|
@@ -3068,7 +3093,7 @@ export async function startEliza(opts) {
|
|
|
3068
3093
|
}
|
|
3069
3094
|
else if (process.env.ELIZA_DEVICE_BRIDGE_ENABLED?.trim() === "1") {
|
|
3070
3095
|
try {
|
|
3071
|
-
const { ensureMobileDeviceBridgeInferenceHandlers } = await import("@elizaos/plugin-capacitor-bridge");
|
|
3096
|
+
const { ensureMobileDeviceBridgeInferenceHandlers } = await import("@elizaos/plugin-capacitor-bridge/mobile-device-bridge-bootstrap");
|
|
3072
3097
|
await ensureMobileDeviceBridgeInferenceHandlers(runtime);
|
|
3073
3098
|
}
|
|
3074
3099
|
catch (err) {
|
|
@@ -3106,6 +3131,7 @@ export async function startEliza(opts) {
|
|
|
3106
3131
|
catch (err) {
|
|
3107
3132
|
logger.warn(`[eliza] Roles capability pre-registration failed: ${formatError(err)}`);
|
|
3108
3133
|
}
|
|
3134
|
+
bootTimer.lap("svc:roles-register");
|
|
3109
3135
|
const warmAgentSkillsService = async () => {
|
|
3110
3136
|
// Let runtime startup complete first; this warm-up runs asynchronously
|
|
3111
3137
|
// so API + agent come online immediately.
|
|
@@ -3174,6 +3200,8 @@ export async function startEliza(opts) {
|
|
|
3174
3200
|
const registerRemoteCodingRunner = async () => {
|
|
3175
3201
|
if (isBundledMobileRuntime())
|
|
3176
3202
|
return;
|
|
3203
|
+
if (!shouldLoadRemoteCodingRunnerForBoot(runtime))
|
|
3204
|
+
return;
|
|
3177
3205
|
try {
|
|
3178
3206
|
const { registerE2BRemoteCapabilityRouterIfEnabled } = await loadE2BCapabilityRouterModule();
|
|
3179
3207
|
const result = await registerE2BRemoteCapabilityRouterIfEnabled(runtime);
|
|
@@ -3355,6 +3383,20 @@ export async function startEliza(opts) {
|
|
|
3355
3383
|
logger.debug(`[eliza] WEB_FETCH action registration skipped: ${formatError(err)}`);
|
|
3356
3384
|
}
|
|
3357
3385
|
};
|
|
3386
|
+
const registerWebSearchActionIfEnabled = async () => {
|
|
3387
|
+
try {
|
|
3388
|
+
const { webSearch, isWebSearchEnabled } = await import("./actions/web-search.js");
|
|
3389
|
+
if (!isWebSearchEnabled()) {
|
|
3390
|
+
logger.info("[eliza] WEB_SEARCH action disabled; set ELIZA_INLINE_WEB_SEARCH=1 to force inline search, or unset ELIZA_SERVER_WEB_SEARCH when using the default inline surface");
|
|
3391
|
+
return;
|
|
3392
|
+
}
|
|
3393
|
+
runtime.registerAction(webSearch);
|
|
3394
|
+
logger.info("[eliza] Registered keyless WEB_SEARCH action");
|
|
3395
|
+
}
|
|
3396
|
+
catch (err) {
|
|
3397
|
+
logger.debug(`[eliza] WEB_SEARCH action registration skipped: ${formatError(err)}`);
|
|
3398
|
+
}
|
|
3399
|
+
};
|
|
3358
3400
|
const isAutonomyEnabled = () => ["true", "1"].includes((process.env.ENABLE_AUTONOMY ?? "").toLowerCase());
|
|
3359
3401
|
const startAutonomyServiceIfEnabled = async (autonomyEnabled) => {
|
|
3360
3402
|
if (autonomyEnabled && !runtime.getService("AUTONOMY")) {
|
|
@@ -3497,7 +3539,9 @@ export async function startEliza(opts) {
|
|
|
3497
3539
|
// requested). The runtime is reported ready as soon as this resolves.
|
|
3498
3540
|
const initializeRuntimeServices = async () => {
|
|
3499
3541
|
await runStewardEvmPreBoot();
|
|
3542
|
+
bootTimer.lap("svc:steward-evm");
|
|
3500
3543
|
await registerConnectorSetupService();
|
|
3544
|
+
bootTimer.lap("svc:connector-setup");
|
|
3501
3545
|
await registerRemoteCodingRunner();
|
|
3502
3546
|
bootTimer.lap("svc:pre-init");
|
|
3503
3547
|
if (blockDeferredPluginImports) {
|
|
@@ -3632,31 +3676,36 @@ export async function startEliza(opts) {
|
|
|
3632
3676
|
await syncRemoteCapabilityPluginsIfAvailable();
|
|
3633
3677
|
await applyPluginRoleGatingIfAvailable();
|
|
3634
3678
|
await registerConversationProximityProvider();
|
|
3679
|
+
// Probe the embedding dimension BEFORE seeding bundled documents (#8769).
|
|
3680
|
+
// The deferred plugin waves above register the cloud TEXT_EMBEDDING handler
|
|
3681
|
+
// (plugin-elizacloud, 1536-dim); the probe in runtime.initialize() ran ~38s
|
|
3682
|
+
// earlier, before that handler existed, so the SQL adapter kept its
|
|
3683
|
+
// hardcoded dim384 default. seedBundledDocumentsIfEnabled() embeds its docs
|
|
3684
|
+
// at 1536 via the cloud handler, so if the column is still dim384 every
|
|
3685
|
+
// bundled-doc vector is dropped on a "dimension mismatch with configured
|
|
3686
|
+
// column (dim384)" and the agent boots with no recall memory. Snapping the
|
|
3687
|
+
// column to dim1536 here — after the handler is registered, before the seed
|
|
3688
|
+
// writes — lets those embeddings (and all later memory) persist.
|
|
3689
|
+
// ensureEmbeddingDimension() is public, idempotent, and self-guarding (it
|
|
3690
|
+
// no-ops when no TEXT_EMBEDDING handler is registered, e.g. cloud-proxied
|
|
3691
|
+
// agents), so this is safe on every boot path.
|
|
3692
|
+
try {
|
|
3693
|
+
await runtime.ensureEmbeddingDimension();
|
|
3694
|
+
}
|
|
3695
|
+
catch (err) {
|
|
3696
|
+
logger.warn(`[eliza] deferred embedding-dimension re-probe failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3697
|
+
}
|
|
3635
3698
|
await seedBundledDocumentsIfEnabled();
|
|
3636
3699
|
await runStewardEvmPostBoot();
|
|
3637
3700
|
await installServerSideWebSearchIfAvailable();
|
|
3638
3701
|
await registerWebFetchActionIfEnabled();
|
|
3702
|
+
await registerWebSearchActionIfEnabled();
|
|
3639
3703
|
bootTimer.lap("deferred:post-init");
|
|
3640
3704
|
const autonomyLoopEnabled = isAutonomyEnabled();
|
|
3641
3705
|
await startAutonomyServiceIfEnabled(true);
|
|
3642
3706
|
await enableAutonomyLoopIfAvailable(autonomyLoopEnabled);
|
|
3643
3707
|
startAgentSkillsWarmup();
|
|
3644
3708
|
startEmbeddingWarmup();
|
|
3645
|
-
// Re-probe the embedding dimension now that the deferred plugin waves have
|
|
3646
|
-
// registered the cloud TEXT_EMBEDDING handler (plugin-elizacloud). The probe
|
|
3647
|
-
// in runtime.initialize() runs ~38s earlier — before that deferred handler
|
|
3648
|
-
// exists — so on a cloud agent it finds no TEXT_EMBEDDING model and the SQL
|
|
3649
|
-
// adapter keeps its hardcoded dim384 default; every 1536-dim cloud vector is
|
|
3650
|
-
// then dropped on a "dimension mismatch with configured column (dim384)".
|
|
3651
|
-
// ensureEmbeddingDimension() is public, idempotent, and self-guarding (it
|
|
3652
|
-
// no-ops when no handler is registered, e.g. cloud-proxied agents), so this
|
|
3653
|
-
// safely snaps the column to dim1536 and lets memory embeddings persist.
|
|
3654
|
-
try {
|
|
3655
|
-
await runtime.ensureEmbeddingDimension();
|
|
3656
|
-
}
|
|
3657
|
-
catch (err) {
|
|
3658
|
-
logger.warn(`[eliza] deferred embedding-dimension re-probe failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3659
|
-
}
|
|
3660
3709
|
// Trigger the lazy wallet singleton fire-and-forget. This is a safety net
|
|
3661
3710
|
// — if no wallet route or signing flow triggers it earlier, wallets are
|
|
3662
3711
|
// still generated here. The singleton keeps this harmless if already
|
|
@@ -3672,9 +3721,22 @@ export async function startEliza(opts) {
|
|
|
3672
3721
|
// actions like TASKS (agent-orchestrator) and PLAY_EMOTE (companion) that
|
|
3673
3722
|
// simply hadn't loaded yet.
|
|
3674
3723
|
validateIntentActionMap(runtime.actions.map((a) => a.name), runtime.logger);
|
|
3724
|
+
// Same timing: turn the (previously dead-but-tested) view-coverage validators
|
|
3725
|
+
// into a live drift guard now that all plugins/views are registered (#8798).
|
|
3726
|
+
// Warns when a VIEW_ACTION_MAP entry names an unregistered action, or a
|
|
3727
|
+
// registered view has neither an affinity entry nor a declared ViewCapability.
|
|
3728
|
+
const developerViews = listViews({ developerMode: true });
|
|
3729
|
+
validateViewActionMap(runtime.actions.map((a) => a.name), runtime.logger);
|
|
3730
|
+
validateViewCoverage(developerViews.map((v) => v.id), developerViews.filter((v) => v.capabilities?.length).map((v) => v.id), runtime.logger);
|
|
3675
3731
|
bootTimer.lap("deferred:complete");
|
|
3676
3732
|
};
|
|
3677
3733
|
try {
|
|
3734
|
+
// Time from the register-sql lap up to entering service init (roles
|
|
3735
|
+
// capability registration + any blocking pre-init work). Split out so a
|
|
3736
|
+
// device boot can attribute the dominant cost instead of lumping it into
|
|
3737
|
+
// svc:pre-init (issue #9565): on a bundled mobile runtime the three hooks
|
|
3738
|
+
// below are each fast/no-op, yet svc:pre-init was ~15s of a 16s cold boot.
|
|
3739
|
+
bootTimer.lap("svc:boot-prep");
|
|
3678
3740
|
await initializeRuntimeServices();
|
|
3679
3741
|
}
|
|
3680
3742
|
catch (err) {
|
|
@@ -3941,7 +4003,8 @@ export async function startEliza(opts) {
|
|
|
3941
4003
|
catch {
|
|
3942
4004
|
// non-fatal
|
|
3943
4005
|
}
|
|
3944
|
-
if (!isBundledMobileRuntime()
|
|
4006
|
+
if (!isBundledMobileRuntime() &&
|
|
4007
|
+
shouldLoadRemoteCodingRunnerForBoot(newRuntime)) {
|
|
3945
4008
|
try {
|
|
3946
4009
|
const { registerE2BRemoteCapabilityRouterIfEnabled } = await loadE2BCapabilityRouterModule();
|
|
3947
4010
|
await registerE2BRemoteCapabilityRouterIfEnabled(newRuntime);
|
|
@@ -14,11 +14,9 @@
|
|
|
14
14
|
* 7. GitHub access (local runtime only)
|
|
15
15
|
* 8. Persist agent + style + provider + embedding config
|
|
16
16
|
*
|
|
17
|
-
* Extracted from eliza.ts to reduce file size.
|
|
18
|
-
*
|
|
19
17
|
* @module first-time-setup
|
|
20
18
|
*/
|
|
21
|
-
import { type ElizaConfig } from "../config/config.
|
|
19
|
+
import { type ElizaConfig } from "../config/config.js";
|
|
22
20
|
type FirstTimeSetupCloudResult = CloudFirstRunResult;
|
|
23
21
|
interface CloudFirstRunResult {
|
|
24
22
|
apiKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-time-setup.d.ts","sourceRoot":"","sources":["../../src/runtime/first-time-setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"first-time-setup.d.ts","sourceRoot":"","sources":["../../src/runtime/first-time-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AASxE,KAAK,yBAAyB,GAAG,mBAAmB,CAAC;AAErD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE;IACJ,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;CACxD,GACA,WAAW,CA+Db;AAyFD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC1E;AAMD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAwjBtB"}
|
|
@@ -14,8 +14,6 @@
|
|
|
14
14
|
* 7. GitHub access (local runtime only)
|
|
15
15
|
* 8. Persist agent + style + provider + embedding config
|
|
16
16
|
*
|
|
17
|
-
* Extracted from eliza.ts to reduce file size.
|
|
18
|
-
*
|
|
19
17
|
* @module first-time-setup
|
|
20
18
|
*/
|
|
21
19
|
import { buildDefaultElizaCloudServiceRouting, buildElizaCloudServiceRoute, formatError, getStylePresets, migrateLegacyRuntimeConfig, } from "@elizaos/shared";
|
package/runtime/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export * from "./advanced-capabilities-config.
|
|
2
|
-
export * from "./agent-event-service.
|
|
3
|
-
export * from "./conversation-compactor.
|
|
4
|
-
export * from "./conversation-compactor.types.
|
|
5
|
-
export * from "./eliza.
|
|
6
|
-
export * from "./eliza-plugin.
|
|
7
|
-
export * from "./first-run-names.
|
|
8
|
-
export * from "./owner-entity.
|
|
9
|
-
export * from "./plugin-collector.
|
|
10
|
-
export * from "./plugin-lifecycle.
|
|
11
|
-
export { getLastFailedPluginDetails, getLastFailedPluginNames, resolvePlugins, } from "./plugin-resolver.
|
|
12
|
-
export * from "./plugin-types.
|
|
13
|
-
export * from "./release-plugin-policy.
|
|
14
|
-
export * from "./roles.
|
|
15
|
-
export * from "./trajectory-internals.
|
|
16
|
-
export * from "./trajectory-persistence.
|
|
17
|
-
export * from "./trajectory-query.
|
|
18
|
-
export * from "./version.
|
|
1
|
+
export * from "./advanced-capabilities-config.js";
|
|
2
|
+
export * from "./agent-event-service.js";
|
|
3
|
+
export * from "./conversation-compactor.js";
|
|
4
|
+
export * from "./conversation-compactor.types.js";
|
|
5
|
+
export * from "./eliza.js";
|
|
6
|
+
export * from "./eliza-plugin.js";
|
|
7
|
+
export * from "./first-run-names.js";
|
|
8
|
+
export * from "./owner-entity.js";
|
|
9
|
+
export * from "./plugin-collector.js";
|
|
10
|
+
export * from "./plugin-lifecycle.js";
|
|
11
|
+
export { getLastFailedPluginDetails, getLastFailedPluginNames, resolvePlugins, } from "./plugin-resolver.js";
|
|
12
|
+
export * from "./plugin-types.js";
|
|
13
|
+
export * from "./release-plugin-policy.js";
|
|
14
|
+
export * from "./roles.js";
|
|
15
|
+
export * from "./trajectory-internals.js";
|
|
16
|
+
export * from "./trajectory-persistence.js";
|
|
17
|
+
export * from "./trajectory-query.js";
|
|
18
|
+
export * from "./version.js";
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentRuntime, Plugin } from "@elizaos/core";
|
|
2
|
-
import { PluginCompiler } from "../services/plugin-compiler.
|
|
3
|
-
import type { VirtualFilesystemService } from "../services/virtual-filesystem.
|
|
2
|
+
import { PluginCompiler } from "../services/plugin-compiler.js";
|
|
3
|
+
import type { VirtualFilesystemService } from "../services/virtual-filesystem.js";
|
|
4
4
|
export interface LoadPluginFromVfsOptions {
|
|
5
5
|
runtime: AgentRuntime;
|
|
6
6
|
vfs: VirtualFilesystemService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-dns.d.ts","sourceRoot":"","sources":["../../src/runtime/mobile-dns.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mobile-dns.d.ts","sourceRoot":"","sources":["../../src/runtime/mobile-dns.ts"],"names":[],"mappings":"AA2BA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAwFjD"}
|
package/runtime/mobile-dns.js
CHANGED
|
@@ -3,6 +3,7 @@ import http from "node:http";
|
|
|
3
3
|
import https from "node:https";
|
|
4
4
|
import net from "node:net";
|
|
5
5
|
import zlib from "node:zlib";
|
|
6
|
+
import { isMobilePlatform } from "@elizaos/shared";
|
|
6
7
|
/**
|
|
7
8
|
* Public resolvers the on-device agent dials directly. Android/iOS expose no
|
|
8
9
|
* `/etc/resolv.conf` (DNS is brokered by the OS resolver — netd on Android),
|
|
@@ -14,10 +15,6 @@ import zlib from "node:zlib";
|
|
|
14
15
|
*/
|
|
15
16
|
const MOBILE_DNS_SERVERS = ["1.1.1.1", "8.8.8.8"];
|
|
16
17
|
let configured = false;
|
|
17
|
-
function isMobilePlatform() {
|
|
18
|
-
const platform = process.env.ELIZA_PLATFORM?.toLowerCase();
|
|
19
|
-
return platform === "android" || platform === "ios";
|
|
20
|
-
}
|
|
21
18
|
/** A real external hostname needing resolution (not an IP literal or loopback). */
|
|
22
19
|
function needsResolution(hostname) {
|
|
23
20
|
if (!hostname)
|
|
@@ -93,7 +90,7 @@ export function configureMobileDnsIfNeeded() {
|
|
|
93
90
|
if (err)
|
|
94
91
|
reject(err);
|
|
95
92
|
else
|
|
96
|
-
resolve(options?.all ? address : { address, family });
|
|
93
|
+
resolve((options?.all ? address : { address, family }));
|
|
97
94
|
});
|
|
98
95
|
}));
|
|
99
96
|
installFetchOverNodeHttp(lookup);
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* - all changedPaths under env./vars./models. → hot
|
|
21
21
|
* - otherwise → cold
|
|
22
22
|
*/
|
|
23
|
-
import type { OperationIntent, ReloadTier } from "./types.
|
|
23
|
+
import type { OperationIntent, ReloadTier } from "./types.js";
|
|
24
24
|
export interface ClassifyContext {
|
|
25
25
|
currentProvider?: string;
|
|
26
26
|
currentApiKey?: string;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* synthetic timestamp-only sub-phases.
|
|
8
8
|
*/
|
|
9
9
|
import type { AgentRuntime } from "@elizaos/core";
|
|
10
|
-
import type { ReloadStrategy } from "./types.
|
|
10
|
+
import type { ReloadStrategy } from "./types.js";
|
|
11
11
|
export interface ColdStrategyOptions {
|
|
12
12
|
/**
|
|
13
13
|
* Restart closure injected from the API server boot path. Returns the
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - Treat optional/missing runtime surface as "not applicable, ok".
|
|
12
12
|
* - Treat real failures (DB ping false, provider unreachable) as failures.
|
|
13
13
|
*/
|
|
14
|
-
import type { HealthCheck } from "./types.
|
|
14
|
+
import type { HealthCheck } from "./types.js";
|
|
15
15
|
export declare function describeError(err: unknown): string;
|
|
16
16
|
export declare const runtimeReadyCheck: HealthCheck;
|
|
17
17
|
export declare const essentialServicesCheck: HealthCheck;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Logging prefix: `[runtime-ops:health]`.
|
|
16
16
|
*/
|
|
17
17
|
import { type AgentRuntime } from "@elizaos/core";
|
|
18
|
-
import type { HealthCheck, HealthCheckReport } from "./types.
|
|
18
|
+
import type { HealthCheck, HealthCheckReport } from "./types.js";
|
|
19
19
|
export declare class HealthChecker {
|
|
20
20
|
private readonly checks;
|
|
21
21
|
register(check: HealthCheck): void;
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* Implementations are sibling files; this barrel keeps consumers off the
|
|
5
5
|
* individual paths.
|
|
6
6
|
*/
|
|
7
|
-
export { type ClassifyContext, classifyOperation, defaultClassifier, } from "./classifier.
|
|
8
|
-
export type { ColdStrategyOptions } from "./cold-strategy.
|
|
9
|
-
export { createColdStrategy } from "./cold-strategy.
|
|
10
|
-
export { getDefaultHealthChecker, HealthChecker } from "./health.
|
|
11
|
-
export { builtInHealthChecks, dbConnectionCheck, essentialServicesCheck, providerSmokeCheck, runtimeReadyCheck, } from "./health-checks.
|
|
12
|
-
export { DefaultRuntimeOperationManager, type DefaultRuntimeOperationManagerOptions, type IntentClassifier, } from "./manager.
|
|
13
|
-
export { createHotStrategy, type HotStrategyDeps } from "./reload-hot.
|
|
14
|
-
export { FilesystemRuntimeOperationRepository, getDefaultRepository, } from "./repository.
|
|
15
|
-
export * from "./types.
|
|
16
|
-
export { _resetDefaultSecretsManagerForTesting, defaultSecretsManager, formatVaultRef, isVaultRef, parseVaultRef, persistProviderApiKey, resolveConfigEnvForProcess, resolveProviderApiKey, type VaultLike, vaultKeyForProviderApiKey, } from "./vault-bridge.
|
|
7
|
+
export { type ClassifyContext, classifyOperation, defaultClassifier, } from "./classifier.js";
|
|
8
|
+
export type { ColdStrategyOptions } from "./cold-strategy.js";
|
|
9
|
+
export { createColdStrategy } from "./cold-strategy.js";
|
|
10
|
+
export { getDefaultHealthChecker, HealthChecker } from "./health.js";
|
|
11
|
+
export { builtInHealthChecks, dbConnectionCheck, essentialServicesCheck, providerSmokeCheck, runtimeReadyCheck, } from "./health-checks.js";
|
|
12
|
+
export { DefaultRuntimeOperationManager, type DefaultRuntimeOperationManagerOptions, type IntentClassifier, } from "./manager.js";
|
|
13
|
+
export { createHotStrategy, type HotStrategyDeps } from "./reload-hot.js";
|
|
14
|
+
export { FilesystemRuntimeOperationRepository, getDefaultRepository, } from "./repository.js";
|
|
15
|
+
export * from "./types.js";
|
|
16
|
+
export { _resetDefaultSecretsManagerForTesting, defaultSecretsManager, formatVaultRef, isVaultRef, parseVaultRef, persistProviderApiKey, resolveConfigEnvForProcess, resolveProviderApiKey, type VaultLike, vaultKeyForProviderApiKey, } from "./vault-bridge.js";
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
* `executeOperation` calls via a Promise chain.
|
|
16
16
|
*/
|
|
17
17
|
import type { AgentRuntime } from "@elizaos/core";
|
|
18
|
-
import type { ClassifyContext } from "./classifier.
|
|
19
|
-
import type { HealthChecker } from "./health.
|
|
20
|
-
import type { OperationIntent, ReloadStrategy, ReloadTier, RuntimeOperation, RuntimeOperationListOptions, RuntimeOperationManager, RuntimeOperationRepository, StartOperationOutcome, StartOperationRequest } from "./types.
|
|
18
|
+
import type { ClassifyContext } from "./classifier.js";
|
|
19
|
+
import type { HealthChecker } from "./health.js";
|
|
20
|
+
import type { OperationIntent, ReloadStrategy, ReloadTier, RuntimeOperation, RuntimeOperationListOptions, RuntimeOperationManager, RuntimeOperationRepository, StartOperationOutcome, StartOperationRequest } from "./types.js";
|
|
21
21
|
export type IntentClassifier = (intent: OperationIntent, ctx: ClassifyContext) => ReloadTier;
|
|
22
22
|
export interface DefaultRuntimeOperationManagerOptions {
|
|
23
23
|
repository: RuntimeOperationRepository;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { AgentRuntime } from "@elizaos/core";
|
|
18
18
|
import type { SecretsManager } from "@elizaos/vault";
|
|
19
|
-
import type { ProviderSwitchIntent, ReloadStrategy } from "./types.
|
|
19
|
+
import type { ProviderSwitchIntent, ReloadStrategy } from "./types.js";
|
|
20
20
|
export interface HotStrategyDeps {
|
|
21
21
|
/**
|
|
22
22
|
* Apply env-var / config mutations for a provider switch. Defaults wrap the
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Pruning also runs opportunistically after each `create` so a long-running
|
|
20
20
|
* process doesn't accumulate state between hydrations.
|
|
21
21
|
*/
|
|
22
|
-
import type { OperationPhase, RuntimeOperation, RuntimeOperationListOptions, RuntimeOperationRepository } from "./types.
|
|
22
|
+
import type { OperationPhase, RuntimeOperation, RuntimeOperationListOptions, RuntimeOperationRepository } from "./types.js";
|
|
23
23
|
export interface FilesystemRuntimeOperationRepositoryOptions {
|
|
24
24
|
/** Override the retention window for terminal ops. */
|
|
25
25
|
retentionMs?: number;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* which constructs a fresh manager backed by the OS-keychain vault.
|
|
15
15
|
*/
|
|
16
16
|
import { type SecretsManager, type Vault } from "@elizaos/vault";
|
|
17
|
-
import type { OperationErrorCode } from "./types.
|
|
17
|
+
import type { OperationErrorCode } from "./types.js";
|
|
18
18
|
export declare class VaultResolveError extends Error {
|
|
19
19
|
readonly code: OperationErrorCode;
|
|
20
20
|
constructor(apiKeyRef: string, cause: unknown);
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export declare function resolvePluginPackageAlias(packageName: string): string;
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Maps Eliza channel names to plugin package names. Derived at registry build
|
|
4
|
+
* time from each connector entry's `channels` (e.g. x -> ["x", "twitter"]); see
|
|
5
|
+
* packages/registry/src/first-party. To add/rename a channel, edit the owning
|
|
6
|
+
* connector's registry-entry.json `channels` and regenerate — not this list.
|
|
7
|
+
*/
|
|
3
8
|
export declare const CHANNEL_PLUGIN_MAP: Readonly<Record<string, string>>;
|
|
4
9
|
/** Maps environment variable names to model-provider plugin packages. */
|
|
5
10
|
export declare const PROVIDER_PLUGIN_MAP: Readonly<Record<string, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-collector.d.ts","sourceRoot":"","sources":["../../src/runtime/plugin-collector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-collector.d.ts","sourceRoot":"","sources":["../../src/runtime/plugin-collector.ts"],"names":[],"mappings":"AAoIA,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAuBD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9C,CAAC;AAEnB,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BhE,CAAC;AAuCF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqDhE,CAAC;AAMF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|