Skip to content

Commit 9501dd1

Browse files
committed
Refactor JSON response handling for improved parsing efficiency
1 parent 5bf13c8 commit 9501dd1

File tree

2 files changed

+1769
-1764
lines changed

2 files changed

+1769
-1764
lines changed

agent/src/index.ts

+92-90
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite";
66
import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase";
77
import { AutoClientInterface } from "@elizaos/client-auto";
88
import { DiscordClientInterface } from "@elizaos/client-discord";
9+
import { FarcasterClientInterface } from "@elizaos/client-farcaster";
910
import { InstagramClientInterface } from "@elizaos/client-instagram";
1011
import { LensAgentClient } from "@elizaos/client-lens";
12+
import { JeeterClientInterface } from "@elizaos/client-simsai";
1113
import { SlackClientInterface } from "@elizaos/client-slack";
1214
import { TelegramClientInterface } from "@elizaos/client-telegram";
1315
import { TwitterClientInterface } from "@elizaos/client-twitter";
14-
import { FarcasterClientInterface } from "@elizaos/client-farcaster";
1516
import { OmniflixPlugin } from "@elizaos/plugin-omniflix";
16-
import { JeeterClientInterface } from "@elizaos/client-simsai";
1717

1818
import { DirectClient } from "@elizaos/client-direct";
1919
import { agentKitPlugin } from "@elizaos/plugin-agentkit";
2020

21-
import { PrimusAdapter } from "@elizaos/plugin-primus";
22-
import { lightningPlugin } from "@elizaos/plugin-lightning";
2321
import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
22+
import { lightningPlugin } from "@elizaos/plugin-lightning";
23+
import { PrimusAdapter } from "@elizaos/plugin-primus";
2424

2525
import {
2626
AgentRuntime,
@@ -46,23 +46,20 @@ import {
4646
import { zgPlugin } from "@elizaos/plugin-0g";
4747
import { footballPlugin } from "@elizaos/plugin-football";
4848

49-
import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
50-
import { normalizeCharacter } from "@elizaos/plugin-di";
51-
import createGoatPlugin from "@elizaos/plugin-goat";
52-
// import { intifacePlugin } from "@elizaos/plugin-intiface";
5349
import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation";
5450
import { abstractPlugin } from "@elizaos/plugin-abstract";
5551
import { akashPlugin } from "@elizaos/plugin-akash";
5652
import { alloraPlugin } from "@elizaos/plugin-allora";
57-
import { aptosPlugin } from "@elizaos/plugin-aptos";
53+
// import { aptosPlugin } from "@elizaos/plugin-aptos";
5854
import { artheraPlugin } from "@elizaos/plugin-arthera";
5955
import { autonomePlugin } from "@elizaos/plugin-autonome";
6056
import { availPlugin } from "@elizaos/plugin-avail";
61-
import { avalanchePlugin } from "@elizaos/plugin-avalanche";
57+
// import { avalanchePlugin } from "@elizaos/plugin-avalanche";
6258
import { b2Plugin } from "@elizaos/plugin-b2";
6359
import { binancePlugin } from "@elizaos/plugin-binance";
6460
import { birdeyePlugin } from "@elizaos/plugin-birdeye";
65-
import { bnbPlugin } from "@elizaos/plugin-bnb";
61+
// import { bnbPlugin } from "@elizaos/plugin-bnb";
62+
import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
6663
import {
6764
advancedTradePlugin,
6865
coinbaseCommercePlugin,
@@ -71,68 +68,68 @@ import {
7168
tradePlugin,
7269
webhookPlugin,
7370
} from "@elizaos/plugin-coinbase";
74-
import { coingeckoPlugin } from "@elizaos/plugin-coingecko";
75-
import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap";
76-
import { confluxPlugin } from "@elizaos/plugin-conflux";
77-
import { createCosmosPlugin } from "@elizaos/plugin-cosmos";
78-
import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
71+
// import { confluxPlugin } from "@elizaos/plugin-conflux";
72+
// import { createCosmosPlugin } from "@elizaos/plugin-cosmos";
73+
// import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
74+
import { dexScreenerPlugin } from "@elizaos/plugin-dexscreener";
75+
import { normalizeCharacter } from "@elizaos/plugin-di";
76+
import { dkgPlugin } from "@elizaos/plugin-dkg";
77+
import { echoChambersPlugin } from "@elizaos/plugin-echochambers";
7978
import { evmPlugin } from "@elizaos/plugin-evm";
8079
import { flowPlugin } from "@elizaos/plugin-flow";
8180
import { fuelPlugin } from "@elizaos/plugin-fuel";
8281
import { genLayerPlugin } from "@elizaos/plugin-genlayer";
82+
import { giphyPlugin } from "@elizaos/plugin-giphy";
8383
import { gitcoinPassportPlugin } from "@elizaos/plugin-gitcoin-passport";
84-
import { initiaPlugin } from "@elizaos/plugin-initia";
84+
import createGoatPlugin from "@elizaos/plugin-goat";
85+
import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid";
8586
import { imageGenerationPlugin } from "@elizaos/plugin-image-generation";
87+
import { initiaPlugin } from "@elizaos/plugin-initia";
88+
// import { injectivePlugin } from "@elizaos/plugin-injective";
8689
import { lensPlugin } from "@elizaos/plugin-lensNetwork";
87-
import { multiversxPlugin } from "@elizaos/plugin-multiversx";
88-
import { nearPlugin } from "@elizaos/plugin-near";
90+
import { letzAIPlugin } from "@elizaos/plugin-letzai";
91+
// import { multiversxPlugin } from "@elizaos/plugin-multiversx";
92+
// import { nearPlugin } from "@elizaos/plugin-near";
8993
import createNFTCollectionsPlugin from "@elizaos/plugin-nft-collections";
9094
import { nftGenerationPlugin } from "@elizaos/plugin-nft-generation";
9195
import { createNodePlugin } from "@elizaos/plugin-node";
9296
import { obsidianPlugin } from "@elizaos/plugin-obsidian";
9397
import { OpacityAdapter } from "@elizaos/plugin-opacity";
9498
import { openWeatherPlugin } from "@elizaos/plugin-open-weather";
95-
import { quaiPlugin } from "@elizaos/plugin-quai";
99+
import { pythDataPlugin } from "@elizaos/plugin-pyth-data";
100+
// import { quaiPlugin } from "@elizaos/plugin-quai";
96101
import { sgxPlugin } from "@elizaos/plugin-sgx";
97102
import { solanaPlugin } from "@elizaos/plugin-solana";
98103
import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agent-kit";
99104
import { squidRouterPlugin } from "@elizaos/plugin-squid-router";
100105
import { stargazePlugin } from "@elizaos/plugin-stargaze";
101106
import { storyPlugin } from "@elizaos/plugin-story";
102-
import { suiPlugin } from "@elizaos/plugin-sui";
107+
// import { suiPlugin } from "@elizaos/plugin-sui";
103108
import { TEEMode, teePlugin } from "@elizaos/plugin-tee";
104109
import { teeLogPlugin } from "@elizaos/plugin-tee-log";
105110
import { teeMarlinPlugin } from "@elizaos/plugin-tee-marlin";
106111
import { verifiableLogPlugin } from "@elizaos/plugin-tee-verifiable-log";
107-
import { tonPlugin } from "@elizaos/plugin-ton";
108-
import { webSearchPlugin } from "@elizaos/plugin-web-search";
109-
import { dkgPlugin } from "@elizaos/plugin-dkg";
110-
import { injectivePlugin } from "@elizaos/plugin-injective";
111-
import { giphyPlugin } from "@elizaos/plugin-giphy";
112-
import { letzAIPlugin } from "@elizaos/plugin-letzai";
113112
import { thirdwebPlugin } from "@elizaos/plugin-thirdweb";
114-
import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid";
115-
import { echoChambersPlugin } from "@elizaos/plugin-echochambers";
116-
import { dexScreenerPlugin } from "@elizaos/plugin-dexscreener";
117-
import { pythDataPlugin } from "@elizaos/plugin-pyth-data";
113+
// import { tonPlugin } from "@elizaos/plugin-ton";
114+
import { webSearchPlugin } from "@elizaos/plugin-web-search";
118115

119-
import { openaiPlugin } from "@elizaos/plugin-openai";
120-
import nitroPlugin from "@elizaos/plugin-router-nitro";
121-
import { devinPlugin } from "@elizaos/plugin-devin";
122-
import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
123-
import { chainbasePlugin } from "@elizaos/plugin-chainbase";
124-
import { nvidiaNimPlugin } from "@elizaos/plugin-nvidia-nim";
125116
import { zxPlugin } from "@elizaos/plugin-0x";
117+
import { chainbasePlugin } from "@elizaos/plugin-chainbase";
118+
import { devinPlugin } from "@elizaos/plugin-devin";
119+
import { emailPlugin } from "@elizaos/plugin-email";
126120
import { hyperbolicPlugin } from "@elizaos/plugin-hyperbolic";
121+
import { nvidiaNimPlugin } from "@elizaos/plugin-nvidia-nim";
122+
import { openaiPlugin } from "@elizaos/plugin-openai";
123+
import nitroPlugin from "@elizaos/plugin-router-nitro";
124+
import { sunoPlugin } from "@elizaos/plugin-suno";
125+
import { udioPlugin } from "@elizaos/plugin-udio";
126+
// import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
127127
import Database from "better-sqlite3";
128128
import fs from "fs";
129129
import net from "net";
130130
import path from "path";
131131
import { fileURLToPath } from "url";
132132
import yargs from "yargs";
133-
import { emailPlugin } from "@elizaos/plugin-email";
134-
import { sunoPlugin } from "@elizaos/plugin-suno";
135-
import { udioPlugin } from "@elizaos/plugin-udio";
136133

137134
const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
138135
const __dirname = path.dirname(__filename); // get the name of the directory
@@ -702,20 +699,21 @@ function initializeDatabase(dataDir: string) {
702699
dataDir: process.env.PGLITE_DATA_DIR,
703700
});
704701
return db;
705-
} else if (process.env.QDRANT_URL
706-
&& process.env.QDRANT_KEY
707-
&& process.env.QDRANT_PORT
708-
&& process.env.QDRANT_VECTOR_SIZE
702+
} else if (
703+
process.env.QDRANT_URL &&
704+
process.env.QDRANT_KEY &&
705+
process.env.QDRANT_PORT &&
706+
process.env.QDRANT_VECTOR_SIZE
709707
) {
710708
elizaLogger.info("Initializing Qdrant adapter...");
711709
const db = new QdrantDatabaseAdapter(
712710
process.env.QDRANT_URL,
713711
process.env.QDRANT_KEY,
714712
Number(process.env.QDRANT_PORT),
715-
Number(process.env.QDRANT_VECTOR_SIZE)
713+
Number(process.env.QDRANT_VECTOR_SIZE),
716714
);
717715
return db;
718-
}else {
716+
} else {
719717
const filePath =
720718
process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite");
721719
elizaLogger.info(`Initializing SQLite database at ${filePath}...`);
@@ -949,9 +947,9 @@ export async function createAgent(
949947
? dexScreenerPlugin
950948
: null,
951949
getSecret(character, "FOOTBALL_API_KEY") ? footballPlugin : null,
952-
getSecret(character, "CONFLUX_CORE_PRIVATE_KEY")
953-
? confluxPlugin
954-
: null,
950+
// getSecret(character, "CONFLUX_CORE_PRIVATE_KEY")
951+
// ? confluxPlugin
952+
// : null,
955953
nodePlugin,
956954
getSecret(character, "ROUTER_NITRO_EVM_PRIVATE_KEY") &&
957955
getSecret(character, "ROUTER_NITRO_EVM_ADDRESS")
@@ -969,22 +967,22 @@ export async function createAgent(
969967
getSecret(character, "AUTONOME_JWT_TOKEN") ? autonomePlugin : null,
970968
(getSecret(character, "NEAR_ADDRESS") ||
971969
getSecret(character, "NEAR_WALLET_PUBLIC_KEY")) &&
972-
getSecret(character, "NEAR_WALLET_SECRET_KEY")
973-
? nearPlugin
974-
: null,
970+
// getSecret(character, "NEAR_WALLET_SECRET_KEY")
971+
// ? nearPlugin
972+
// : null,
975973
getSecret(character, "EVM_PUBLIC_KEY") ||
976974
(getSecret(character, "WALLET_PUBLIC_KEY") &&
977975
getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
978976
? evmPlugin
979977
: null,
980978
(getSecret(character, "EVM_PUBLIC_KEY") ||
981979
getSecret(character, "INJECTIVE_PUBLIC_KEY")) &&
982-
getSecret(character, "INJECTIVE_PRIVATE_KEY")
983-
? injectivePlugin
984-
: null,
985-
getSecret(character, "COSMOS_RECOVERY_PHRASE") &&
986-
getSecret(character, "COSMOS_AVAILABLE_CHAINS") &&
987-
createCosmosPlugin(),
980+
// getSecret(character, "INJECTIVE_PRIVATE_KEY")
981+
// ? injectivePlugin
982+
// : null,
983+
// getSecret(character, "COSMOS_RECOVERY_PHRASE") &&
984+
// getSecret(character, "COSMOS_AVAILABLE_CHAINS") &&
985+
// createCosmosPlugin(),
988986
(getSecret(character, "SOLANA_PUBLIC_KEY") ||
989987
(getSecret(character, "WALLET_PUBLIC_KEY") &&
990988
!getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith(
@@ -996,9 +994,9 @@ export async function createAgent(
996994
? nftGenerationPlugin
997995
: null,
998996
getSecret(character, "ZEROG_PRIVATE_KEY") ? zgPlugin : null,
999-
getSecret(character, "COINMARKETCAP_API_KEY")
1000-
? coinmarketcapPlugin
1001-
: null,
997+
// getSecret(character, "COINMARKETCAP_API_KEY")
998+
// ? coinmarketcapPlugin
999+
// : null,
10021000
getSecret(character, "COINBASE_COMMERCE_KEY")
10031001
? coinbaseCommercePlugin
10041002
: null,
@@ -1043,10 +1041,10 @@ export async function createAgent(
10431041
? webhookPlugin
10441042
: null,
10451043
goatPlugin,
1046-
getSecret(character, "COINGECKO_API_KEY") ||
1047-
getSecret(character, "COINGECKO_PRO_API_KEY")
1048-
? coingeckoPlugin
1049-
: null,
1044+
// getSecret(character, "COINGECKO_API_KEY") ||
1045+
// getSecret(character, "COINGECKO_PRO_API_KEY")
1046+
// ? coingeckoPlugin
1047+
// : null,
10501048
getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null,
10511049
getSecret(character, "ABSTRACT_PRIVATE_KEY")
10521050
? abstractPlugin
@@ -1064,16 +1062,16 @@ export async function createAgent(
10641062
getSecret(character, "LENS_PRIVATE_KEY")
10651063
? lensPlugin
10661064
: null,
1067-
getSecret(character, "APTOS_PRIVATE_KEY") ? aptosPlugin : null,
1068-
getSecret(character, "MVX_PRIVATE_KEY") ? multiversxPlugin : null,
1069-
getSecret(character, "ZKSYNC_PRIVATE_KEY") ? zksyncEraPlugin : null,
1070-
getSecret(character, "CRONOSZKEVM_PRIVATE_KEY")
1071-
? cronosZkEVMPlugin
1072-
: null,
1065+
// getSecret(character, "APTOS_PRIVATE_KEY") ? aptosPlugin : null,
1066+
// getSecret(character, "MVX_PRIVATE_KEY") ? multiversxPlugin : null,
1067+
// getSecret(character, "ZKSYNC_PRIVATE_KEY") ? zksyncEraPlugin : null,
1068+
// getSecret(character, "CRONOSZKEVM_PRIVATE_KEY")
1069+
// ? cronosZkEVMPlugin
1070+
// : null,
10731071
getSecret(character, "TEE_MARLIN") ? teeMarlinPlugin : null,
1074-
getSecret(character, "TON_PRIVATE_KEY") ? tonPlugin : null,
1072+
// getSecret(character, "TON_PRIVATE_KEY") ? tonPlugin : null,
10751073
getSecret(character, "THIRDWEB_SECRET_KEY") ? thirdwebPlugin : null,
1076-
getSecret(character, "SUI_PRIVATE_KEY") ? suiPlugin : null,
1074+
// getSecret(character, "SUI_PRIVATE_KEY") ? suiPlugin : null,
10771075
getSecret(character, "STORY_PRIVATE_KEY") ? storyPlugin : null,
10781076
getSecret(character, "SQUID_SDK_URL") &&
10791077
getSecret(character, "SQUID_INTEGRATOR_ID") &&
@@ -1083,9 +1081,9 @@ export async function createAgent(
10831081
? squidRouterPlugin
10841082
: null,
10851083
getSecret(character, "FUEL_PRIVATE_KEY") ? fuelPlugin : null,
1086-
getSecret(character, "AVALANCHE_PRIVATE_KEY")
1087-
? avalanchePlugin
1088-
: null,
1084+
// getSecret(character, "AVALANCHE_PRIVATE_KEY")
1085+
// ? avalanchePlugin
1086+
// : null,
10891087
getSecret(character, "BIRDEYE_API_KEY") ? birdeyePlugin : null,
10901088
getSecret(character, "ECHOCHAMBERS_API_URL") &&
10911089
getSecret(character, "ECHOCHAMBERS_API_KEY")
@@ -1123,7 +1121,7 @@ export async function createAgent(
11231121
? akashPlugin
11241122
: null,
11251123
getSecret(character, "CHAINBASE_API_KEY") ? chainbasePlugin : null,
1126-
getSecret(character, "QUAI_PRIVATE_KEY") ? quaiPlugin : null,
1124+
// getSecret(character, "QUAI_PRIVATE_KEY") ? quaiPlugin : null,
11271125
getSecret(character, "RESERVOIR_API_KEY")
11281126
? createNFTCollectionsPlugin()
11291127
: null,
@@ -1144,27 +1142,31 @@ export async function createAgent(
11441142
)
11451143
? openaiPlugin
11461144
: null,
1147-
getSecret(character, "DEVIN_API_TOKEN")
1148-
? devinPlugin
1149-
: null,
1145+
getSecret(character, "DEVIN_API_TOKEN") ? devinPlugin : null,
11501146
getSecret(character, "INITIA_PRIVATE_KEY") ? initiaPlugin : null,
11511147
getSecret(character, "NVIDIA_NIM_API_KEY") ||
11521148
getSecret(character, "NVIDIA_NGC_API_KEY")
11531149
? nvidiaNimPlugin
11541150
: null,
1155-
getSecret(character, "INITIA_PRIVATE_KEY") && getSecret(character, "INITIA_NODE_URL") ? initiaPlugin : null,
1156-
getSecret(character, "BNB_PRIVATE_KEY") ||
1157-
getSecret(character, "BNB_PUBLIC_KEY")?.startsWith("0x")
1158-
? bnbPlugin
1151+
getSecret(character, "INITIA_PRIVATE_KEY") &&
1152+
getSecret(character, "INITIA_NODE_URL")
1153+
? initiaPlugin
1154+
: null,
1155+
// getSecret(character, "BNB_PRIVATE_KEY") ||
1156+
// getSecret(character, "BNB_PUBLIC_KEY")?.startsWith("0x")
1157+
// ? bnbPlugin
1158+
// : null,
1159+
(getSecret(character, "EMAIL_INCOMING_USER") &&
1160+
getSecret(character, "EMAIL_INCOMING_PASS")) ||
1161+
(getSecret(character, "EMAIL_OUTGOING_USER") &&
1162+
getSecret(character, "EMAIL_OUTGOING_PASS"))
1163+
? emailPlugin
11591164
: null,
1160-
getSecret(character, "EMAIL_INCOMING_USER") && getSecret(character, "EMAIL_INCOMING_PASS") ||
1161-
getSecret(character, "EMAIL_OUTGOING_USER") && getSecret(character, "EMAIL_OUTGOING_PASS") ?
1162-
emailPlugin : null,
11631165
getSecret(character, "HYPERBOLIC_API_KEY")
11641166
? hyperbolicPlugin
11651167
: null,
11661168
getSecret(character, "SUNO_API_KEY") ? sunoPlugin : null,
1167-
getSecret(character, "UDIO_AUTH_TOKEN") ? udioPlugin : null
1169+
getSecret(character, "UDIO_AUTH_TOKEN") ? udioPlugin : null,
11681170
].filter(Boolean),
11691171
providers: [],
11701172
managers: [],
@@ -1399,12 +1401,12 @@ if (
13991401
parseBooleanFromText(process.env.PREVENT_UNHANDLED_EXIT)
14001402
) {
14011403
// Handle uncaught exceptions to prevent the process from crashing
1402-
process.on('uncaughtException', function(err) {
1404+
process.on("uncaughtException", function (err) {
14031405
console.error("uncaughtException", err);
14041406
});
14051407

14061408
// Handle unhandled rejections to prevent the process from crashing
1407-
process.on('unhandledRejection', function(err) {
1409+
process.on("unhandledRejection", function (err) {
14081410
console.error("unhandledRejection", err);
14091411
});
14101412
}

0 commit comments

Comments
 (0)