Skip to content

Commit

Permalink
Merge pull request #3367 from elizaOS/tcm/merge-conflict
Browse files Browse the repository at this point in the history
resolve merge conflict
  • Loading branch information
tcm390 authored Feb 7, 2025
2 parents 2d875c3 + cdf1fa5 commit 13c4d5b
Showing 1 changed file with 22 additions and 23 deletions.
45 changes: 22 additions & 23 deletions packages/agent/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { DirectClient } from "@elizaos/client-direct";
import {
AgentRuntime,
CacheManager,
Expand All @@ -19,7 +18,7 @@ import {
validateCharacterConfig,
} from "@elizaos/core";
import { defaultCharacter } from "./defaultCharacter.ts";

import { CharacterServer } from "./server";
import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";

import fs from "node:fs";
Expand Down Expand Up @@ -448,26 +447,26 @@ async function findDatabaseAdapter(runtime: AgentRuntime) {
let adapter: Adapter | undefined;
// if not found, default to sqlite
if (adapters.length === 0) {
const sqliteAdapterPlugin = await import('@elizaos-plugins/adapter-sqlite');
const sqliteAdapterPluginDefault = sqliteAdapterPlugin.default;
adapter = sqliteAdapterPluginDefault.adapters[0];
if (!adapter) {
throw new Error("Internal error: No database adapter found for default adapter-sqlite");
}
const sqliteAdapterPlugin = await import('@elizaos-plugins/sqlite');
const sqliteAdapterPluginDefault = sqliteAdapterPlugin.default;
adapter = sqliteAdapterPluginDefault.adapters[0];
if (!adapter) {
throw new Error("Internal error: No database adapter found for default plugin-sqlite");
}
} else if (adapters.length === 1) {
adapter = adapters[0];
adapter = adapters[0];
} else {
throw new Error("Multiple database adapters found. You must have no more than one. Adjust your plugins configuration.");
}
throw new Error("Multiple database adapters found. You must have no more than one. Adjust your plugins configuration.");
}
const adapterInterface = adapter?.init(runtime);
return adapterInterface;
}
}



async function startAgent(
character: Character,
directClient: DirectClient
characterServer: CharacterServer
): Promise<AgentRuntime> {
let db: IDatabaseAdapter & IDatabaseCacheAdapter;
try {
Expand Down Expand Up @@ -502,7 +501,7 @@ async function startAgent(
runtime.clients = await initializeClients(character, runtime);

// add to container
directClient.registerAgent(runtime);
characterServer.registerAgent(runtime);

// report to console
elizaLogger.debug(`Started ${character.name} as ${runtime.agentId}`);
Expand Down Expand Up @@ -546,7 +545,7 @@ const hasValidRemoteUrls = () =>
process.env.REMOTE_CHARACTER_URLS.startsWith("http");

const startAgents = async () => {
const directClient = new DirectClient();
const characterServer = new CharacterServer();
let serverPort = Number.parseInt(settings.SERVER_PORT || "3000");
const args = parseArguments();
const charactersArg = args.characters || args.character;
Expand All @@ -558,7 +557,7 @@ const startAgents = async () => {

try {
for (const character of characters) {
await startAgent(character, directClient);
await startAgent(character, characterServer);
}
} catch (error) {
elizaLogger.error("Error starting agents:", error);
Expand All @@ -572,22 +571,22 @@ const startAgents = async () => {
serverPort++;
}

// upload some agent functionality into directClient
// upload some agent functionality into characterServer
// XXX TODO: is this still used?
directClient.startAgent = async (character) => {
characterServer.startAgent = async (character) => {
throw new Error('not implemented');

// Handle plugins
character.plugins = await handlePluginImporting(character.plugins);

// wrap it so we don't have to inject directClient later
return startAgent(character, directClient);
// wrap it so we don't have to inject characterServer later
return startAgent(character, characterServer);
};

directClient.loadCharacterTryPath = loadCharacterTryPath;
directClient.jsonToCharacter = jsonToCharacter;
characterServer.loadCharacterTryPath = loadCharacterTryPath;
characterServer.jsonToCharacter = jsonToCharacter;

directClient.start(serverPort);
characterServer.start(serverPort);

if (serverPort !== Number.parseInt(settings.SERVER_PORT || "3000")) {
elizaLogger.log(`Server started on alternate port ${serverPort}`);
Expand Down

0 comments on commit 13c4d5b

Please sign in to comment.