Skip to content

ema / ema / Server

Class: Server

Defined in: server.ts:40

The server class for the EverMemoryArchive.

Properties

actorDB

ts
actorDB: ActorDB & MongoCollectionGetter;

Defined in: server.ts:50


actors

ts
actors: Map<number, ActorWorker>;

Defined in: server.ts:41


config

ts
config: Config;

Defined in: server.ts:43


conversationDB

ts
conversationDB: ConversationDB & MongoCollectionGetter;

Defined in: server.ts:53


conversationMessageDB

ts
conversationMessageDB: ConversationMessageDB & MongoCollectionGetter;

Defined in: server.ts:54


lancedb

ts
lancedb: Connection;

Defined in: server.ts:47


longTermMemoryDB

ts
longTermMemoryDB: LongTermMemoryDB & MongoCollectionGetter;

Defined in: server.ts:56


longTermMemoryVectorSearcher

ts
longTermMemoryVectorSearcher: MongoMemorySearchAdaptor & MongoCollectionGetter;

Defined in: server.ts:57


mongo

ts
mongo: Mongo;

Defined in: server.ts:46


roleDB

ts
roleDB: RoleDB & MongoCollectionGetter;

Defined in: server.ts:49


shortTermMemoryDB

ts
shortTermMemoryDB: ShortTermMemoryDB & MongoCollectionGetter;

Defined in: server.ts:55


userDB

ts
userDB: UserDB & MongoCollectionGetter;

Defined in: server.ts:51


userOwnActorDB

ts
userOwnActorDB: UserOwnActorDB & MongoCollectionGetter;

Defined in: server.ts:52

Methods

chat()

ts
chat(messages): Promise<{
  content: string;
  thinking: string | undefined;
}>;

Defined in: server.ts:260

Handles chat requests and returns LLM responses.

Exposed as POST /api/roles/chat.

Parameters

messages

Message[]

Array of conversation messages

Returns

Promise<{ content: string; thinking: string | undefined; }>

The LLM response

Example

ts
// Example usage:
const response = await server.chat([
  { role: "system", content: "You are a helpful assistant." },
  { role: "user", content: "Hello!" }
]);
console.log(response.content);

getActor()

ts
getActor(_userId, actorId): Promise<ActorWorker>;

Defined in: server.ts:226

Gets an actor by user ID and actor ID.

Parameters

_userId

number

actorId

number

The actor ID

Returns

Promise<ActorWorker>

The actor


login()

ts
login(): object;

Defined in: server.ts:212

Handles user login and returns a user object.

Exposed as GET /api/users/login.

Returns

object

The logged-in user object.

email
ts
email: string;
id
ts
id: number;
name
ts
name: string;

Example

ts
// Example usage:
const user = server.login();
console.log(user.id); // 1

restoreFromSnapshot()

ts
restoreFromSnapshot(name): Promise<boolean>;

Defined in: server.ts:190

Restores the MongoDB database from the snapshot file.

Parameters

name

string

The name of the snapshot

Returns

Promise<boolean>

True if the snapshot was restored, false if not found


snapshot()

ts
snapshot(name): Promise<{
  fileName: string;
}>;

Defined in: server.ts:161

Takes a snapshot of the MongoDB database and writes it to a file.

Parameters

name

string

The name of the snapshot

Returns

Promise<{ fileName: string; }>

The file name of the snapshot


create()

ts
static create(fs, config): Promise<Server>;

Defined in: server.ts:80

Parameters

fs

Fs = ...

config

Config = ...

Returns

Promise<Server>


createSync()

ts
static createSync(
   fs, 
   mongo, 
   lance, 
   config): Server;

Defined in: server.ts:120

Creates a Server instance with a pre-configured MongoDB instance for testing.

Parameters

fs

Fs

File system implementation

mongo

Mongo

MongoDB instance

lance

Connection

LanceDB instance

config

Config = ...

Returns

Server

The Server instance