Skip to content

Commit

Permalink
rollback index
Browse files Browse the repository at this point in the history
  • Loading branch information
sweetmantech committed Jan 14, 2025
1 parent 3fd80d2 commit 5ebeb11
Showing 1 changed file with 38 additions and 68 deletions.
106 changes: 38 additions & 68 deletions agent/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ import { letzAIPlugin } from "@elizaos/plugin-letzai";
import { thirdwebPlugin } from "@elizaos/plugin-thirdweb";
import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid";
import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
import { agentKitPlugin } from "@elizaos/plugin-agentkit";

import { OpacityAdapter } from "@elizaos/plugin-opacity";
import { openWeatherPlugin } from "@elizaos/plugin-open-weather";
Expand All @@ -103,7 +102,7 @@ import net from "net";
import path from "path";
import { fileURLToPath } from "url";
import yargs from "yargs";
import { dominosPlugin } from "@elizaos/plugin-dominos";
import {dominosPlugin} from "@elizaos/plugin-dominos";

const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
const __dirname = path.dirname(__filename); // get the name of the directory
Expand Down Expand Up @@ -153,29 +152,14 @@ function tryLoadFile(filePath: string): string | null {
function mergeCharacters(base: Character, child: Character): Character {
const mergeObjects = (baseObj: any, childObj: any) => {
const result: any = {};
const keys = new Set([
...Object.keys(baseObj || {}),
...Object.keys(childObj || {}),
]);
keys.forEach((key) => {
if (
typeof baseObj[key] === "object" &&
typeof childObj[key] === "object" &&
!Array.isArray(baseObj[key]) &&
!Array.isArray(childObj[key])
) {
const keys = new Set([...Object.keys(baseObj || {}), ...Object.keys(childObj || {})]);
keys.forEach(key => {
if (typeof baseObj[key] === 'object' && typeof childObj[key] === 'object' && !Array.isArray(baseObj[key]) && !Array.isArray(childObj[key])) {
result[key] = mergeObjects(baseObj[key], childObj[key]);
} else if (
Array.isArray(baseObj[key]) ||
Array.isArray(childObj[key])
) {
result[key] = [
...(baseObj[key] || []),
...(childObj[key] || []),
];
} else if (Array.isArray(baseObj[key]) || Array.isArray(childObj[key])) {
result[key] = [...(baseObj[key] || []), ...(childObj[key] || [])];
} else {
result[key] =
childObj[key] !== undefined ? childObj[key] : baseObj[key];
result[key] = childObj[key] !== undefined ? childObj[key] : baseObj[key];
}
});
return result;
Expand All @@ -190,36 +174,32 @@ async function loadCharacter(filePath: string): Promise<Character> {
let character = JSON.parse(content);
validateCharacterConfig(character);

// .id isn't really valid
const characterId = character.id || character.name;
const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.`;
const characterSettings = Object.entries(process.env)
.filter(([key]) => key.startsWith(characterPrefix))
.reduce((settings, [key, value]) => {
const settingKey = key.slice(characterPrefix.length);
return { ...settings, [settingKey]: value };
}, {});
if (Object.keys(characterSettings).length > 0) {
character.settings = character.settings || {};
character.settings.secrets = {
...characterSettings,
...character.settings.secrets,
};
}
// Handle plugins
character.plugins = await handlePluginImporting(character.plugins);
// .id isn't really valid
const characterId = character.id || character.name;
const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.`;
const characterSettings = Object.entries(process.env)
.filter(([key]) => key.startsWith(characterPrefix))
.reduce((settings, [key, value]) => {
const settingKey = key.slice(characterPrefix.length);
return { ...settings, [settingKey]: value };
}, {});
if (Object.keys(characterSettings).length > 0) {
character.settings = character.settings || {};
character.settings.secrets = {
...characterSettings,
...character.settings.secrets,
};
}
// Handle plugins
character.plugins = await handlePluginImporting(
character.plugins
);
if (character.extends) {
elizaLogger.info(
`Merging ${character.name} character with parent characters`
);
elizaLogger.info(`Merging ${character.name} character with parent characters`);
for (const extendPath of character.extends) {
const baseCharacter = await loadCharacter(
path.resolve(path.dirname(filePath), extendPath)
);
const baseCharacter = await loadCharacter(path.resolve(path.dirname(filePath), extendPath));
character = mergeCharacters(baseCharacter, character);
elizaLogger.info(
`Merged ${character.name} with ${baseCharacter.name}`
);
elizaLogger.info(`Merged ${character.name} with ${baseCharacter.name}`);
}
}
return character;
Expand Down Expand Up @@ -492,9 +472,7 @@ function initializeDatabase(dataDir: string) {
// Test the connection
db.init()
.then(() => {
elizaLogger.success(
"Successfully connected to Supabase database"
);
elizaLogger.success("Successfully connected to Supabase database");
})
.catch((error) => {
elizaLogger.error("Failed to connect to Supabase:", error);
Expand All @@ -511,9 +489,7 @@ function initializeDatabase(dataDir: string) {
// Test the connection
db.init()
.then(() => {
elizaLogger.success(
"Successfully connected to PostgreSQL database"
);
elizaLogger.success("Successfully connected to PostgreSQL database");
})
.catch((error) => {
elizaLogger.error("Failed to connect to PostgreSQL:", error);
Expand All @@ -528,17 +504,14 @@ function initializeDatabase(dataDir: string) {
});
return db;
} else {
const filePath =
process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite");
const filePath = process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite");
elizaLogger.info(`Initializing SQLite database at ${filePath}...`);
const db = new SqliteDatabaseAdapter(new Database(filePath));

// Test the connection
db.init()
.then(() => {
elizaLogger.success(
"Successfully connected to SQLite database"
);
elizaLogger.success("Successfully connected to SQLite database");
})
.catch((error) => {
elizaLogger.error("Failed to connect to SQLite:", error);
Expand Down Expand Up @@ -716,8 +689,7 @@ export async function createAgent(
if (
process.env.PRIMUS_APP_ID &&
process.env.PRIMUS_APP_SECRET &&
process.env.VERIFIABLE_INFERENCE_ENABLED === "true"
) {
process.env.VERIFIABLE_INFERENCE_ENABLED === "true"){
verifiableInferenceAdapter = new PrimusAdapter({
appId: process.env.PRIMUS_APP_ID,
appSecret: process.env.PRIMUS_APP_SECRET,
Expand All @@ -737,10 +709,6 @@ export async function createAgent(
// character.plugins are handled when clients are added
plugins: [
bootstrapPlugin,
getSecret(character, "CDP_API_KEY_NAME") &&
getSecret(character, "CDP_API_KEY_PRIVATE_KEY")
? agentKitPlugin
: null,
getSecret(character, "CONFLUX_CORE_PRIVATE_KEY")
? confluxPlugin
: null,
Expand Down Expand Up @@ -883,7 +851,9 @@ export async function createAgent(
getSecret(character, "AKASH_WALLET_ADDRESS")
? akashPlugin
: null,
getSecret(character, "QUAI_PRIVATE_KEY") ? quaiPlugin : null,
getSecret(character, "QUAI_PRIVATE_KEY")
? quaiPlugin
: null,
].filter(Boolean),
providers: [],
actions: [],
Expand Down

0 comments on commit 5ebeb11

Please sign in to comment.