From ee4f4c8a685a24ab821217c5600351d5ca0d590e Mon Sep 17 00:00:00 2001 From: JSon Date: Mon, 2 Dec 2024 14:33:30 +0800 Subject: [PATCH] fix: Fix the issue where running the program throws an error when the plugins field in the .character.json file is configured with plugin names. --- agent/src/index.ts | 8 ++++++-- packages/core/src/enviroment.ts | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index cb580eed776..f98836765b2 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -65,6 +65,10 @@ export function parseArguments(): { } } +function isAllStrings(arr: unknown[]): boolean { + return Array.isArray(arr) && arr.every((item) => typeof item === "string"); +} + export async function loadCharacters( charactersArg: string ): Promise { @@ -85,7 +89,7 @@ export async function loadCharacters( validateCharacterConfig(character); // is there a "plugins" field? - if (character.plugins) { + if (isAllStrings(character.plugins)) { console.log("Plugins are: ", character.plugins); const importedPlugins = await Promise.all( @@ -93,7 +97,7 @@ export async function loadCharacters( // if the plugin name doesnt start with @eliza, const importedPlugin = await import(plugin); - return importedPlugin; + return importedPlugin.default; }) ); diff --git a/packages/core/src/enviroment.ts b/packages/core/src/enviroment.ts index a9f0db42c78..87fedaf8a22 100644 --- a/packages/core/src/enviroment.ts +++ b/packages/core/src/enviroment.ts @@ -79,7 +79,10 @@ export const CharacterSchema = z.object({ adjectives: z.array(z.string()), knowledge: z.array(z.string()).optional(), clients: z.array(z.nativeEnum(Clients)), - plugins: z.array(PluginSchema), + plugins: z.union([ + z.array(z.string()), + z.array(PluginSchema), + ]), settings: z .object({ secrets: z.record(z.string()).optional(),