Skip to content

Commit 4de4c18

Browse files
authored
Merge pull request elizaOS#1917 from JoeyKhd/fix-types-and-build
fix: resolved a bunch of type related errors and ensure project compiles
2 parents 22acb79 + 922cf90 commit 4de4c18

File tree

3 files changed

+38
-13
lines changed

3 files changed

+38
-13
lines changed

agent/src/index.ts

+23-3
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,11 @@ export async function loadCharacters(
132132
let characterPaths = charactersArg
133133
?.split(",")
134134
.map((filePath) => filePath.trim());
135-
const loadedCharacters = [];
135+
const loadedCharacters: Character[] = [];
136136

137137
if (characterPaths?.length > 0) {
138138
for (const characterPath of characterPaths) {
139-
let content = null;
139+
let content: string | null = null;
140140
let resolvedPath = "";
141141

142142
// Try different path resolutions in order
@@ -246,7 +246,7 @@ export async function loadCharacters(
246246
export function getTokenForProvider(
247247
provider: ModelProviderName,
248248
character: Character
249-
): string {
249+
): string | undefined {
250250
switch (provider) {
251251
// no key needed for llama_local or gaianet
252252
case ModelProviderName.LLAMALOCAL:
@@ -655,13 +655,23 @@ export async function createAgent(
655655
}
656656

657657
function initializeFsCache(baseDir: string, character: Character) {
658+
if (!character?.id) {
659+
throw new Error(
660+
"initializeFsCache requires id to be set in character definition"
661+
);
662+
}
658663
const cacheDir = path.resolve(baseDir, character.id, "cache");
659664

660665
const cache = new CacheManager(new FsCacheAdapter(cacheDir));
661666
return cache;
662667
}
663668

664669
function initializeDbCache(character: Character, db: IDatabaseCacheAdapter) {
670+
if (!character?.id) {
671+
throw new Error(
672+
"initializeFsCache requires id to be set in character definition"
673+
);
674+
}
665675
const cache = new CacheManager(new DbCacheAdapter(db, character.id));
666676
return cache;
667677
}
@@ -677,6 +687,11 @@ function initializeCache(
677687
if (process.env.REDIS_URL) {
678688
elizaLogger.info("Connecting to Redis...");
679689
const redisClient = new RedisClient(process.env.REDIS_URL);
690+
if (!character?.id) {
691+
throw new Error(
692+
"CacheStore.REDIS requires id to be set in character definition"
693+
);
694+
}
680695
return new CacheManager(
681696
new DbCacheAdapter(redisClient, character.id) // Using DbCacheAdapter since RedisClient also implements IDatabaseCacheAdapter
682697
);
@@ -696,6 +711,11 @@ function initializeCache(
696711

697712
case CacheStore.FILESYSTEM:
698713
elizaLogger.info("Using File System Cache...");
714+
if (!baseDir) {
715+
throw new Error(
716+
"baseDir must be provided for CacheStore.FILESYSTEM."
717+
);
718+
}
699719
return initializeFsCache(baseDir, character);
700720

701721
default:

packages/core/src/runtime.ts

+14-9
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ import {
4545
type Evaluator,
4646
type Memory,
4747
IVerifiableInferenceAdapter,
48-
VerifiableInferenceOptions,
49-
VerifiableInferenceProvider,
5048
} from "./types.ts";
5149
import { stringToUuid } from "./uuid.ts";
5250

@@ -628,7 +626,7 @@ export class AgentRuntime implements IAgentRuntime {
628626
*/
629627
async evaluate(
630628
message: Memory,
631-
state?: State,
629+
state: State,
632630
didRespond?: boolean,
633631
callback?: HandlerCallback
634632
) {
@@ -650,10 +648,12 @@ export class AgentRuntime implements IAgentRuntime {
650648
);
651649

652650
const resolvedEvaluators = await Promise.all(evaluatorPromises);
653-
const evaluatorsData = resolvedEvaluators.filter(Boolean);
651+
const evaluatorsData = resolvedEvaluators.filter(
652+
(evaluator): evaluator is Evaluator => evaluator !== null
653+
);
654654

655655
// if there are no evaluators this frame, return
656-
if (evaluatorsData.length === 0) {
656+
if (!evaluatorsData || evaluatorsData.length === 0) {
657657
return [];
658658
}
659659

@@ -859,7 +859,8 @@ export class AgentRuntime implements IAgentRuntime {
859859
);
860860

861861
if (lastMessageWithAttachment) {
862-
const lastMessageTime = lastMessageWithAttachment.createdAt;
862+
const lastMessageTime =
863+
lastMessageWithAttachment?.createdAt ?? Date.now();
863864
const oneHourBeforeLastMessage =
864865
lastMessageTime - 60 * 60 * 1000; // 1 hour before last message
865866

@@ -956,7 +957,10 @@ Text: ${attachment.text}
956957
});
957958

958959
// Sort messages by timestamp in descending order
959-
existingMemories.sort((a, b) => b.createdAt - a.createdAt);
960+
existingMemories.sort(
961+
(a, b) =>
962+
(b?.createdAt ?? Date.now()) - (a?.createdAt ?? Date.now())
963+
);
960964

961965
// Take the most recent messages
962966
const recentInteractionsData = existingMemories.slice(0, 20);
@@ -1269,13 +1273,14 @@ Text: ${attachment.text}
12691273
);
12701274

12711275
if (lastMessageWithAttachment) {
1272-
const lastMessageTime = lastMessageWithAttachment.createdAt;
1276+
const lastMessageTime =
1277+
lastMessageWithAttachment?.createdAt ?? Date.now();
12731278
const oneHourBeforeLastMessage =
12741279
lastMessageTime - 60 * 60 * 1000; // 1 hour before last message
12751280

12761281
allAttachments = recentMessagesData
12771282
.filter((msg) => {
1278-
const msgTime = msg.createdAt;
1283+
const msgTime = msg.createdAt ?? Date.now();
12791284
return msgTime >= oneHourBeforeLastMessage;
12801285
})
12811286
.flatMap((msg) => msg.content.attachments || []);

packages/core/src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1167,7 +1167,7 @@ export interface IAgentRuntime {
11671167
state?: State,
11681168
didRespond?: boolean,
11691169
callback?: HandlerCallback
1170-
): Promise<string[]>;
1170+
): Promise<string[] | null>;
11711171

11721172
ensureParticipantExists(userId: UUID, roomId: UUID): Promise<void>;
11731173

0 commit comments

Comments
 (0)