Skip to content

Commit 95e1ddf

Browse files
committedJan 19, 2025
feat: add new plugins to package.json and remove duplicates
1 parent 510051b commit 95e1ddf

File tree

3 files changed

+681
-989
lines changed

3 files changed

+681
-989
lines changed
 

‎agent/package.json

+8-7
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@
3737
"@elizaos/plugin-3d-generation": "workspace:*",
3838
"@elizaos/plugin-abstract": "workspace:*",
3939
"@elizaos/plugin-agentkit": "workspace:*",
40+
"@elizaos/plugin-akash": "workspace:*",
41+
"@elizaos/plugin-allora": "workspace:*",
4042
"@elizaos/plugin-aptos": "workspace:*",
43+
"@elizaos/plugin-arthera": "workspace:*",
4144
"@elizaos/plugin-autonome": "workspace:*",
4245
"@elizaos/plugin-avail": "workspace:*",
4346
"@elizaos/plugin-avalanche": "workspace:*",
47+
"@elizaos/plugin-b2": "workspace:*",
4448
"@elizaos/plugin-binance": "workspace:*",
4549
"@elizaos/plugin-birdeye": "workspace:*",
4650
"@elizaos/plugin-bootstrap": "workspace:*",
@@ -52,6 +56,7 @@
5256
"@elizaos/plugin-cronoszkevm": "workspace:*",
5357
"@elizaos/plugin-depin": "workspace:*",
5458
"@elizaos/plugin-dexscreener": "workspace:*",
59+
"@elizaos/plugin-di": "workspace:0.1.9-alpha.1",
5560
"@elizaos/plugin-echochambers": "workspace:*",
5661
"@elizaos/plugin-evm": "workspace:*",
5762
"@elizaos/plugin-flow": "workspace:*",
@@ -64,7 +69,9 @@
6469
"@elizaos/plugin-hyperliquid": "workspace:*",
6570
"@elizaos/plugin-icp": "workspace:*",
6671
"@elizaos/plugin-image-generation": "workspace:*",
72+
"@elizaos/plugin-injective": "workspace:*",
6773
"@elizaos/plugin-intiface": "workspace:*",
74+
"@elizaos/plugin-iq6900": "workspace:*",
6875
"@elizaos/plugin-lensNetwork": "workspace:*",
6976
"@elizaos/plugin-letzai": "workspace:*",
7077
"@elizaos/plugin-massa": "workspace:*",
@@ -78,18 +85,17 @@
7885
"@elizaos/plugin-opacity": "workspace:*",
7986
"@elizaos/plugin-open-weather": "workspace:*",
8087
"@elizaos/plugin-primus": "workspace:*",
88+
"@elizaos/plugin-pyth-data": "workspace:*",
8189
"@elizaos/plugin-quai": "workspace:*",
8290
"@elizaos/plugin-rabbi-trader": "workspace:*",
8391
"@elizaos/plugin-sgx": "workspace:*",
8492
"@elizaos/plugin-solana": "workspace:*",
85-
"@elizaos/plugin-injective": "workspace:*",
8693
"@elizaos/plugin-solana-agent-kit": "workspace:*",
8794
"@elizaos/plugin-squid-router": "workspace:*",
8895
"@elizaos/plugin-stargaze": "workspace:*",
8996
"@elizaos/plugin-starknet": "workspace:*",
9097
"@elizaos/plugin-story": "workspace:*",
9198
"@elizaos/plugin-sui": "workspace:*",
92-
"@elizaos/plugin-iq6900": "workspace:*",
9399
"@elizaos/plugin-tee": "workspace:*",
94100
"@elizaos/plugin-tee-log": "workspace:*",
95101
"@elizaos/plugin-tee-marlin": "workspace:*",
@@ -99,11 +105,6 @@
99105
"@elizaos/plugin-twitter": "workspace:*",
100106
"@elizaos/plugin-video-generation": "workspace:*",
101107
"@elizaos/plugin-web-search": "workspace:*",
102-
"@elizaos/plugin-arthera": "workspace:*",
103-
"@elizaos/plugin-allora": "workspace:*",
104-
"@elizaos/plugin-akash": "workspace:*",
105-
"@elizaos/plugin-b2": "workspace:*",
106-
"@elizaos/plugin-pyth-data": "workspace:*",
107108
"@elizaos/plugin-zksync-era": "workspace:*",
108109
"readline": "1.3.0",
109110
"rss-parser": "^3.13.0",

‎agent/src/index.ts

+116-95
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { SlackClientInterface } from "@elizaos/client-slack";
1313
import { TelegramClientInterface } from "@elizaos/client-telegram";
1414
import { TwitterClientInterface } from "@elizaos/client-twitter";
1515
// import { ReclaimAdapter } from "@elizaos/plugin-reclaim";
16-
import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
16+
// import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
1717
import { PrimusAdapter } from "@elizaos/plugin-primus";
1818

1919
import {
@@ -63,7 +63,7 @@ import {
6363
tradePlugin,
6464
webhookPlugin,
6565
} from "@elizaos/plugin-coinbase";
66-
import { coingeckoPlugin } from "@elizaos/plugin-coingecko";
66+
// import { coingeckoPlugin } from "@elizaos/plugin-coingecko";
6767
import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap";
6868
// import { confluxPlugin } from "@elizaos/plugin-conflux";
6969
// import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
@@ -86,15 +86,15 @@ import { openWeatherPlugin } from "@elizaos/plugin-open-weather";
8686
import { quaiPlugin } from "@elizaos/plugin-quai";
8787
import { sgxPlugin } from "@elizaos/plugin-sgx";
8888
import { solanaPlugin } from "@elizaos/plugin-solana";
89-
import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agentkit";
89+
// import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agent-kit";
9090
// import { squidRouterPlugin } from "@elizaos/plugin-squid-router";
9191
import { dexScreenerPlugin } from "@elizaos/plugin-dexscreener";
9292
import { echoChambersPlugin } from "@elizaos/plugin-echochambers";
9393
import { giphyPlugin } from "@elizaos/plugin-giphy";
9494
import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid";
9595
import { injectivePlugin } from "@elizaos/plugin-injective";
9696
import { letzAIPlugin } from "@elizaos/plugin-letzai";
97-
import { pythDataPlugin } from "@elizaos/plugin-pyth-data";
97+
// import { pythDataPlugin } from "@elizaos/plugin-pyth-data";
9898
import { stargazePlugin } from "@elizaos/plugin-stargaze";
9999
import { storyPlugin } from "@elizaos/plugin-story";
100100
import { suiPlugin } from "@elizaos/plugin-sui";
@@ -114,9 +114,9 @@ import net from "net";
114114
import path from "path";
115115
import { fileURLToPath } from "url";
116116
import yargs from "yargs";
117-
import { cryptoNewsProvider } from "../providers/cryptoNewsProvider";
118-
import { cryptoPriceProvider } from "../providers/cryptoPriceProvider";
119-
import { timeProvider } from "../providers/timeProvider";
117+
// import { cryptoNewsProvider } from "../providers/cryptoNewsProvider";
118+
// import { cryptoPriceProvider } from "../providers/cryptoPriceProvider";
119+
// import { timeProvider } from "../providers/timeProvider";
120120

121121
const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
122122
const __dirname = path.dirname(__filename); // get the name of the directory
@@ -139,7 +139,7 @@ export function parseArguments(): {
139139
characters?: string;
140140
} {
141141
try {
142-
return yargs(process.argv.slice(3))
142+
const args = yargs(process.argv.slice(2))
143143
.option("character", {
144144
type: "string",
145145
description: "Path to the character JSON file",
@@ -150,6 +150,16 @@ export function parseArguments(): {
150150
"Comma separated list of paths to character JSON files",
151151
})
152152
.parseSync();
153+
154+
// Handle the case where the value includes the equals sign
155+
if (args.character && args.character.startsWith("=")) {
156+
args.character = args.character.slice(1);
157+
}
158+
if (args.characters && args.characters.startsWith("=")) {
159+
args.characters = args.characters.slice(1);
160+
}
161+
162+
return args;
153163
} catch (error) {
154164
elizaLogger.error("Error parsing arguments:", error);
155165
return {};
@@ -195,64 +205,65 @@ function mergeCharacters(base: Character, child: Character): Character {
195205
};
196206
return mergeObjects(base, child);
197207
}
198-
function isAllStrings(arr: unknown[]): boolean {
199-
return Array.isArray(arr) && arr.every((item) => typeof item === "string");
200-
}
201-
export async function loadCharacterFromOnchain(): Promise<Character[]> {
202-
const jsonText = onchainJson;
203-
204-
console.log("JSON:", jsonText);
205-
if (!jsonText) return [];
206-
const loadedCharacters = [];
207-
try {
208-
const character = JSON.parse(jsonText);
209-
validateCharacterConfig(character);
210-
211-
// .id isn't really valid
212-
const characterId = character.id || character.name;
213-
const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.`;
214-
215-
const characterSettings = Object.entries(process.env)
216-
.filter(([key]) => key.startsWith(characterPrefix))
217-
.reduce((settings, [key, value]) => {
218-
const settingKey = key.slice(characterPrefix.length);
219-
settings[settingKey] = value;
220-
return settings;
221-
}, {});
222-
223-
if (Object.keys(characterSettings).length > 0) {
224-
character.settings = character.settings || {};
225-
character.settings.secrets = {
226-
...characterSettings,
227-
...character.settings.secrets,
228-
};
229-
}
230-
231-
// Handle plugins
232-
if (isAllStrings(character.plugins)) {
233-
elizaLogger.info("Plugins are: ", character.plugins);
234-
const importedPlugins = await Promise.all(
235-
character.plugins.map(async (plugin) => {
236-
const importedPlugin = await import(plugin);
237-
return importedPlugin.default;
238-
})
239-
);
240-
character.plugins = importedPlugins;
241-
}
242-
243-
loadedCharacters.push(character);
244-
elizaLogger.info(
245-
`Successfully loaded character from: ${process.env.IQ_WALLET_ADDRESS}`
246-
);
247-
return loadedCharacters;
248-
} catch (e) {
249-
elizaLogger.error(
250-
`Error parsing character from ${process.env.IQ_WALLET_ADDRESS}: ${e}`
251-
);
252-
process.exit(1);
253-
}
254-
}
255-
208+
// function isAllStrings(arr: unknown[]): boolean {
209+
// return Array.isArray(arr) && arr.every((item) => typeof item === "string");
210+
// }
211+
// export async function loadCharacterFromOnchain(): Promise<Character[]> {
212+
// const jsonText = onchainJson;
213+
214+
// console.log("JSON:", jsonText);
215+
// if (!jsonText) return [];
216+
// const loadedCharacters = [];
217+
// try {
218+
// const character = JSON.parse(jsonText);
219+
// validateCharacterConfig(character);
220+
221+
// // .id isn't really valid
222+
// const characterId = character.id || character.name;
223+
// const characterPrefix = `CHARACTER.${characterId
224+
// .toUpperCase()
225+
// .replace(/ /g, "_")}.`;
226+
227+
// const characterSettings = Object.entries(process.env)
228+
// .filter(([key]) => key.startsWith(characterPrefix))
229+
// .reduce((settings, [key, value]) => {
230+
// const settingKey = key.slice(characterPrefix.length);
231+
// settings[settingKey] = value;
232+
// return settings;
233+
// }, {});
234+
235+
// if (Object.keys(characterSettings).length > 0) {
236+
// character.settings = character.settings || {};
237+
// character.settings.secrets = {
238+
// ...characterSettings,
239+
// ...character.settings.secrets,
240+
// };
241+
// }
242+
243+
// // Handle plugins
244+
// if (isAllStrings(character.plugins)) {
245+
// elizaLogger.info("Plugins are: ", character.plugins);
246+
// const importedPlugins = await Promise.all(
247+
// character.plugins.map(async (plugin) => {
248+
// const importedPlugin = await import(plugin);
249+
// return importedPlugin.default;
250+
// })
251+
// );
252+
// character.plugins = importedPlugins;
253+
// }
254+
255+
// loadedCharacters.push(character);
256+
// elizaLogger.info(
257+
// `Successfully loaded character from: ${process.env.IQ_WALLET_ADDRESS}`
258+
// );
259+
// return loadedCharacters;
260+
// } catch (e) {
261+
// elizaLogger.error(
262+
// `Error parsing character from ${process.env.IQ_WALLET_ADDRESS}: ${e}`
263+
// );
264+
// process.exit(1);
265+
// }
266+
// }
256267

257268
async function loadCharactersFromUrl(url: string): Promise<Character[]> {
258269
try {
@@ -283,7 +294,9 @@ async function jsonToCharacter(
283294

284295
// .id isn't really valid
285296
const characterId = character.id || character.name;
286-
const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.`;
297+
const characterPrefix = `CHARACTER.${characterId
298+
.toUpperCase()
299+
.replace(/ /g, "_")}.`;
287300
const characterSettings = Object.entries(process.env)
288301
.filter(([key]) => key.startsWith(characterPrefix))
289302
.reduce((settings, [key, value]) => {
@@ -393,8 +406,9 @@ export async function loadCharacters(
393406
if (characterPaths?.length > 0) {
394407
for (const characterPath of characterPaths) {
395408
try {
396-
const character: Character =
397-
await loadCharacterTryPath(characterPath);
409+
const character: Character = await loadCharacterTryPath(
410+
characterPath
411+
);
398412
loadedCharacters.push(character);
399413
} catch (e) {
400414
process.exit(1);
@@ -468,11 +482,11 @@ export function getTokenForProvider(
468482
character.settings?.secrets?.OPENAI_API_KEY ||
469483
settings.OPENAI_API_KEY
470484
);
471-
case ModelProviderName.ETERNALAI:
472-
return (
473-
character.settings?.secrets?.ETERNALAI_API_KEY ||
474-
settings.ETERNALAI_API_KEY
475-
);
485+
// case ModelProviderName.ETERNALAI:
486+
// return (
487+
// character.settings?.secrets?.ETERNALAI_API_KEY ||
488+
// settings.ETERNALAI_API_KEY
489+
// );
476490
case ModelProviderName.NINETEEN_AI:
477491
return (
478492
character.settings?.secrets?.NINETEEN_AI_API_KEY ||
@@ -884,10 +898,10 @@ export async function createAgent(
884898
character,
885899
// character.plugins are handled when clients are added
886900
plugins: [
887-
getSecret(character, "IQ_WALLET_ADDRESS") &&
888-
getSecret(character, "IQSOlRPC")
889-
? elizaCodeinPlugin
890-
: null,
901+
// getSecret(character, "IQ_WALLET_ADDRESS") &&
902+
// getSecret(character, "IQSOlRPC")
903+
// ? elizaCodeinPlugin
904+
// : null,
891905
bootstrapPlugin,
892906
rabbiPlugin,
893907
getSecret(character, "DEXSCREENER_API_KEY")
@@ -903,9 +917,9 @@ export async function createAgent(
903917
!getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
904918
? solanaPlugin
905919
: null,
906-
getSecret(character, "SOLANA_PRIVATE_KEY")
907-
? solanaAgentkitPlugin
908-
: null,
920+
// getSecret(character, "SOLANA_PRIVATE_KEY")
921+
// ? solanaAgentkitPlugin
922+
// : null,
909923
getSecret(character, "AUTONOME_JWT_TOKEN") ? autonomePlugin : null,
910924
// (getSecret(character, "NEAR_ADDRESS") ||
911925
// getSecret(character, "NEAR_WALLET_PUBLIC_KEY")) &&
@@ -978,10 +992,10 @@ export async function createAgent(
978992
? webhookPlugin
979993
: null,
980994
goatPlugin,
981-
getSecret(character, "COINGECKO_API_KEY") ||
982-
getSecret(character, "COINGECKO_PRO_API_KEY")
983-
? coingeckoPlugin
984-
: null,
995+
// getSecret(character, "COINGECKO_API_KEY") ||
996+
// getSecret(character, "COINGECKO_PRO_API_KEY")
997+
// ? coingeckoPlugin
998+
// : null,
985999
getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null,
9861000
getSecret(character, "ABSTRACT_PRIVATE_KEY")
9871001
? abstractPlugin
@@ -1061,12 +1075,12 @@ export async function createAgent(
10611075
getSecret(character, "RESERVOIR_API_KEY")
10621076
? createNFTCollectionsPlugin()
10631077
: null,
1064-
getSecret(character, "PYTH_TESTNET_PROGRAM_KEY") ||
1065-
getSecret(character, "PYTH_MAINNET_PROGRAM_KEY")
1066-
? pythDataPlugin
1067-
: null,
1078+
// getSecret(character, "PYTH_TESTNET_PROGRAM_KEY") ||
1079+
// getSecret(character, "PYTH_MAINNET_PROGRAM_KEY")
1080+
// ? pythDataPlugin
1081+
// : null,
10681082
].filter(Boolean),
1069-
providers: [timeProvider, cryptoPriceProvider, cryptoNewsProvider],
1083+
providers: [],
10701084
actions: [],
10711085
services: [],
10721086
managers: [],
@@ -1238,12 +1252,19 @@ const startAgents = async () => {
12381252
const charactersArg = args.characters || args.character;
12391253
let characters = [defaultCharacter];
12401254

1241-
if (process.env.IQ_WALLET_ADDRESS && process.env.IQSOlRPC) {
1242-
characters = await loadCharacterFromOnchain();
1243-
}
1255+
elizaLogger.info("Loading character settings:", {
1256+
ARGV: process.argv,
1257+
CHARACTER_ARG: charactersArg,
1258+
CWD: process.cwd(),
1259+
});
12441260

1245-
if ((!onchainJson && charactersArg) || hasValidRemoteUrls()) {
1246-
characters = await loadCharacters(charactersArg);
1261+
if (charactersArg) {
1262+
try {
1263+
characters = await loadCharacters(charactersArg);
1264+
} catch (error) {
1265+
elizaLogger.error("Error loading characters:", error);
1266+
process.exit(1);
1267+
}
12471268
}
12481269

12491270
// Normalize characters for injectable plugins

0 commit comments

Comments
 (0)