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