Skip to content

Commit 4116739

Browse files
authored
Merge branch 'v2-develop' into hash/fix-plugins-install
2 parents e773f44 + 97ca4ef commit 4116739

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1782
-357
lines changed

.env.example

+25
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,27 @@
1+
# OpenAI Configuration
12
OPENAI_API_KEY=
3+
4+
# Anthropic Configuration
25
ANTHROPIC_API_KEY=
6+
7+
# Fill these out if you want to use Discord
8+
DISCORD_APPLICATION_ID=
9+
DISCORD_API_TOKEN=
10+
11+
# Fill these out if you want to use Telegram
12+
TELEGRAM_BOT_TOKEN=
13+
14+
# Fill these out if you want to use Twitter
15+
TWITTER_USERNAME=
16+
TWITTER_PASSWORD=
17+
TWITTER_EMAIL=
18+
19+
# Fill these out if you want to use EVM
20+
EVM_PRIVATE_KEY=
21+
EVM_CHAINS=mainnet,sepolia,base,arbitrum,polygon
22+
EVM_PROVIDER_URL=
23+
24+
# Fill these out if you want to use Solana
25+
SOLANA_PUBLIC_KEY=
26+
SOLANA_PRIVATE_KEY=
27+
BIRDEYE_API_KEY=

.gitignore

-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ node_modules
77
.env_main
88
concatenated-output.ts
99
embedding-cache.json
10-
packages/plugin-buttplug/intiface-engine
1110

1211
node-compile-cache
1312

@@ -50,10 +49,7 @@ characters/**/*.env
5049
characters/**/*.key
5150
characters/**/private/
5251

53-
packages/core/src/providers/cache
54-
packages/core/src/providers/cache/*
5552
cache/*
56-
packages/plugin-coinbase/src/plugins/transactions.csv
5753

5854
tsup.config.bundled_*.mjs
5955

@@ -71,10 +67,6 @@ eliza.manifest
7167
eliza.manifest.sgx
7268
eliza.sig
7369

74-
packages/plugin-nvidia-nim/extra
75-
packages/plugin-nvidia-nim/old_code
76-
packages/plugin-nvidia-nim/docs
77-
7870
# Edriziai specific ignores
7971
characters/edriziai-info/secrets.json
8072

bun.lockb

211 KB
Binary file not shown.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"build:cli": "turbo run build --filter=./packages/cli && cd packages/cli && bun link",
1212
"start": "turbo run start --filter=!./packages/docs",
1313
"agent": "turbo run start --filter=@elizaos/agent",
14-
"dev": "turbo run build --filter=./packages/core && turbo run dev --filter=!./packages/core --concurrency=20",
14+
"dev": "turbo run build --filter=./packages/core && turbo run dev --filter=!./packages/core --filter=!./packages/docs --concurrency=20",
1515
"release": "bun run build && bun format && npx lerna publish --no-private --force-publish",
1616
"docker:build": "bash ./scripts/docker.sh build",
1717
"docker:run": "bash ./scripts/docker.sh run",

packages/agent/src/api.ts

-3
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,6 @@ export function createApiRouter(
307307

308308
router.post("/agent/start", async (req, res) => {
309309
const { characterPath, characterJson } = req.body;
310-
console.log("characterPath:", characterPath);
311-
console.log("characterJson:", characterJson);
312310
try {
313311
let character: Character;
314312
if (characterJson) {
@@ -340,7 +338,6 @@ export function createApiRouter(
340338

341339
router.post("/agents/:agentId/stop", async (req, res) => {
342340
const agentId = req.params.agentId;
343-
console.log("agentId", agentId);
344341
const agent: IAgentRuntime = agents.get(agentId);
345342

346343
// update character

packages/agent/src/defaultCharacter.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ export const defaultCharacter: Character = {
44
name: "Eliza",
55
username: "eliza",
66
plugins: [
7-
"@elizaos/plugin-anthropic",
7+
// "@elizaos/plugin-anthropic",
88
"@elizaos/plugin-openai",
9-
"@elizaos/plugin-local-ai",
10-
"@elizaos/plugin-discord",
9+
// "@elizaos/plugin-local-ai",
10+
// "@elizaos/plugin-discord",
1111
"@elizaos/plugin-node",
12-
"@elizaos/plugin-telegram",
13-
"@elizaos/plugin-twitter",
12+
// "@elizaos/plugin-telegram",
13+
// "@elizaos/plugin-twitter",
14+
"@elizaos/plugin-evm",
15+
"@elizaos/plugin-solana",
1416
],
1517
settings: {
1618
secrets: {},

packages/agent/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ async function findDatabaseAdapter(runtime: IAgentRuntime) {
348348
let adapter: Adapter | undefined;
349349
// if not found, default to sqlite
350350
if (adapters.length === 0) {
351-
const sqliteAdapterPlugin = await import('@elizaos-plugins/sqlite');
351+
const sqliteAdapterPlugin = await import('@elizaos/plugin-sqlite');
352352
const sqliteAdapterPluginDefault = sqliteAdapterPlugin.default;
353353
adapter = sqliteAdapterPluginDefault.adapters[0];
354354
if (!adapter) {

packages/agent/src/plugins.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ async function findDatabaseAdapter(runtime: IAgentRuntime) {
2525

2626
// Default to sqlite if no adapter found
2727
if (adapters.length === 0) {
28-
const sqliteAdapter = await import('@elizaos-plugins/sqlite');
28+
const sqliteAdapter = await import('@elizaos/plugin-sqlite');
2929
adapter = sqliteAdapter.default.adapters[0];
3030
if (!adapter) {
3131
throw new Error("No database adapter found in default sqlite plugin");

packages/agent/src/server.ts

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import {
22
composeContext,
3-
logger,
43
generateMessageResponse,
54
generateObject,
6-
messageCompletionFooter,
5+
logger,
76
ModelClass,
87
stringToUuid,
8+
type Character,
99
type Content,
10-
type Media,
11-
type Memory,
1210
type IAgentRuntime,
13-
type Character
11+
type Media,
12+
type Memory
1413
} from "@elizaos/core";
1514
import bodyParser from "body-parser";
1615
import cors from "cors";
@@ -20,9 +19,8 @@ import * as fs from "node:fs";
2019
import * as path from "node:path";
2120
import { z } from "zod";
2221
import { createApiRouter } from "./api.ts";
22+
import { hyperfiHandlerTemplate, messageHandlerTemplate, upload } from "./helper.ts";
2323
import replyAction from "./reply.ts";
24-
import { messageHandlerTemplate } from "./helper.ts";
25-
import { upload } from "./helper.ts";
2624

2725

2826

@@ -31,7 +29,7 @@ export class CharacterServer {
3129
public app: express.Application;
3230
private agents: Map<string, IAgentRuntime>; // container management
3331
private server: any; // Store server instance
34-
public startAgent: () => Promise<void>; // Store startAgent function
32+
public startAgent: (character: Character) => Promise<IAgentRuntime>; // Store startAgent function
3533
public loadCharacterTryPath: (characterPath: string) => Promise<Character>; // Store loadCharacterTryPath function
3634
public jsonToCharacter: (filePath: string, character: string | never) => Promise<Character>; // Store jsonToCharacter function
3735

@@ -91,9 +89,10 @@ export class CharacterServer {
9189
return;
9290
}
9391

94-
const transcription = await runtime.useModel(ModelClass.TRANSCRIPTION, fs.createReadStream(audioFile.path));
95-
96-
res.json(transcription);
92+
const audioBuffer = fs.readFileSync(audioFile.path);
93+
const transcription = await runtime.useModel(ModelClass.TRANSCRIPTION, audioBuffer);
94+
95+
res.json({text: transcription});
9796
}
9897
);
9998

packages/cli/src/commands/character.ts

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// src/commands/agent.ts
2-
import { Database, SqliteDatabaseAdapter } from "@elizaos-plugins/sqlite";
2+
import { Database, SqliteDatabaseAdapter } from "@elizaos/plugin-sqlite";
33
import type { MessageExample, UUID } from "@elizaos/core";
44
import { MessageExampleSchema } from "@elizaos/core";
55
import { Command } from "commander";
@@ -116,10 +116,16 @@ async function collectCharacterData(
116116
const examples = response.value
117117
.split('\\n')
118118
.map(line => line.trim())
119-
.filter(Boolean);
120-
formData.messageExamples = examples.length > 0
121-
? examples
122-
: [`{{user1}}: hey how are you?\n${formData.name}`];
119+
.filter(Boolean)
120+
.map(line => ({
121+
user: line.split(':')[0].trim(),
122+
content: {
123+
text: line.split(':').slice(1).join(':').trim()
124+
}
125+
}));
126+
formData.messageExamples = examples.length > 0
127+
? [examples]
128+
: [];
123129
break;
124130
}
125131

packages/cli/src/database.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Database from "better-sqlite3"
2-
import { SqliteDatabaseAdapter } from "@elizaos-plugins/sqlite"
2+
import { SqliteDatabaseAdapter } from "@elizaos/plugin-sqlite"
33

44
// Initialize database
55
export const adapter = new SqliteDatabaseAdapter(new Database("./eliza.db"))

packages/cli/src/templates/database/sqlite.ts.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SqliteDatabaseAdapter } from '@elizaos-plugins/sqlite';
1+
import { SqliteDatabaseAdapter } from '@elizaos/plugin-sqlite';
22
import Database from 'better-sqlite3';
33
import path from 'path';
44

packages/cli/src/utils/registry/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ const agent = process.env.https_proxy
99

1010
export async function getRegistryIndex(): Promise<Registry> {
1111
try {
12-
console.log("REGISTRY_URL", REGISTRY_URL)
1312
const response = await fetch(REGISTRY_URL, { agent })
1413
// Get the response body as text first
1514
const text = await response.text()

packages/cli/src/utils/templates.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
export function createDatabaseTemplate(database: string) {
33
if (database === "sqlite") {
44
return `import { Database } from "better-sqlite3"
5-
import { SqliteDatabaseAdapter } from "@elizaos-plugins/sqlite"
5+
import { SqliteDatabaseAdapter } from "@elizaos/plugin-sqlite"
66
77
// Initialize database
88
export const db = new Database("./eliza.db")

packages/core/src/generation.ts

+32-4
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,19 @@ export async function generateText({
131131
stopSequences?: string[];
132132
customSystemPrompt?: string;
133133
}): Promise<string> {
134+
135+
logger.debug("Generating text")
136+
logger.debug(context)
137+
134138
const text = await runtime.useModel(modelClass, {
135139
runtime,
136140
context,
137141
stopSequences,
138142
});
139143

144+
logger.debug("Generated text")
145+
logger.debug(text)
146+
140147
return text;
141148
}
142149

@@ -257,7 +264,7 @@ export async function generateTrueOrFalse({
257264
export const generateObject = async ({
258265
runtime,
259266
context,
260-
modelClass = ModelClass.TEXT_SMALL,
267+
modelClass = ModelClass.TEXT_LARGE,
261268
stopSequences,
262269
}: GenerateObjectOptions): Promise<any> => {
263270
if (!context) {
@@ -266,16 +273,37 @@ export const generateObject = async ({
266273
throw new Error(errorMessage);
267274
}
268275

269-
const { object } = await runtime.useModel(modelClass, {
276+
const obj = await runtime.useModel(modelClass, {
270277
runtime,
271278
context,
272279
modelClass,
273280
stopSequences,
274281
object: true,
275282
});
276283

277-
logger.debug(`Received Object response from ${modelClass} model.`);
278-
return object;
284+
let jsonString = obj;
285+
286+
// try to find a first and last bracket
287+
const firstBracket = obj.indexOf("{");
288+
const lastBracket = obj.lastIndexOf("}");
289+
if (firstBracket !== -1 && lastBracket !== -1 && firstBracket < lastBracket) {
290+
jsonString = obj.slice(firstBracket, lastBracket + 1);
291+
}
292+
293+
if (jsonString.length === 0) {
294+
logger.error("Failed to extract JSON string from model response");
295+
return null;
296+
}
297+
298+
// parse the json string
299+
try {
300+
const json = JSON.parse(jsonString);
301+
return json;
302+
} catch (error) {
303+
logger.error("Failed to parse JSON string");
304+
logger.error(jsonString);
305+
return null;
306+
}
279307
};
280308

281309
export async function generateObjectArray({

packages/core/src/knowledge.ts

-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ async function get(
88
runtime: AgentRuntime,
99
message: Memory
1010
): Promise<KnowledgeItem[]> {
11-
console.log("get", message);
1211
// Add validation for message
1312
if (!message?.content?.text) {
1413
logger.warn("Invalid message for knowledge query:", {
@@ -70,7 +69,6 @@ async function set(
7069
chunkSize = 512,
7170
bleed = 20
7271
) {
73-
console.log("set", item);
7472
const embedding = await runtime.useModel(ModelClass.TEXT_EMBEDDING, null);
7573
await runtime.documentsManager.createMemory({
7674
id: item.id,

packages/core/src/logger.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const createStream = () => {
2929
});
3030
};
3131

32-
const defaultLevel = process?.env?.DEFAULT_LOG_LEVEL || "info";
32+
const defaultLevel = process?.env?.DEFAULT_LOG_LEVEL || process?.env?.LOG_LEVEL || "info";
3333

3434
const options = {
3535
level: defaultLevel,

packages/core/src/memory.ts

-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export class MemoryManager implements IMemoryManager {
5050
* @throws Error if the memory content is empty
5151
*/
5252
async addEmbeddingToMemory(memory: Memory): Promise<Memory> {
53-
console.log("addEmbeddingToMemory", memory);
5453
// Return early if embedding already exists
5554
if (memory.embedding) {
5655
return memory;
@@ -174,7 +173,6 @@ export class MemoryManager implements IMemoryManager {
174173
*/
175174
async createMemory(memory: Memory, unique = false): Promise<void> {
176175
// TODO: check memory.agentId == this.runtime.agentId
177-
console.log("createMemory", memory);
178176

179177
const existingMessage =
180178
await this.runtime.databaseAdapter.getMemoryById(memory.id);

packages/core/src/runtime.ts

+28-2
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,15 @@ export class AgentRuntime implements IAgentRuntime {
327327
for(const route of plugin.routes){
328328
this.routes.push(route);
329329
}
330+
331+
for(const client of plugin.clients){
332+
client.start(this).then((startedClient) => {
333+
logger.debug(
334+
`Initializing client: ${client.name}`
335+
);
336+
this.clients.push(startedClient);
337+
});
338+
}
330339
}
331340

332341
this.plugins = plugins;
@@ -353,6 +362,25 @@ export class AgentRuntime implements IAgentRuntime {
353362
this.clients.push(startedClient);
354363
}
355364
}
365+
366+
if (plugin.actions) {
367+
for (const action of plugin.actions) {
368+
this.registerAction(action);
369+
}
370+
}
371+
372+
if (plugin.evaluators) {
373+
for (const evaluator of plugin.evaluators) {
374+
this.registerEvaluator(evaluator);
375+
}
376+
}
377+
378+
if (plugin.providers) {
379+
for (const provider of plugin.providers) {
380+
this.registerContextProvider(provider);
381+
}
382+
}
383+
356384
if (plugin.models) {
357385
for (const [modelClass, handler] of Object.entries(plugin.models)) {
358386
this.registerModel(modelClass as ModelClass, handler as (params: any) => Promise<any>);
@@ -602,8 +630,6 @@ export class AgentRuntime implements IAgentRuntime {
602630
modelClass: ModelClass.TEXT_SMALL,
603631
});
604632

605-
console.log("***** result", result);
606-
607633
const evaluators = parseJsonArrayFromText(
608634
result,
609635
) as unknown as string[];

0 commit comments

Comments
 (0)