@elizaos/cli 1.3.2 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/dist/{bun-exec-6CQHTS4F.js → bun-exec-ULMPAIQC.js} +1 -1
- package/dist/{chunk-E6XYTE3A.js → chunk-D3QSET5H.js} +69 -72
- package/dist/{chunk-FDEDLANP.js → chunk-FQYWRHLX.js} +1 -1
- package/dist/{chunk-T2QDIXGU.js → chunk-FSSUAWXQ.js} +3 -3
- package/dist/{chunk-D3Q2UZLZ.js → chunk-I4L4T7QX.js} +1 -1
- package/dist/{chunk-5GUS4CFO.js → chunk-SMZBJQJR.js} +1 -1
- package/dist/commands/agent/actions/index.js +3 -3
- package/dist/commands/agent/index.js +3 -3
- package/dist/commands/create/actions/index.js +4 -4
- package/dist/commands/create/index.js +5 -5
- package/dist/index.js +134 -109
- package/dist/{plugin-creator-H26ZLR6H.js → plugin-creator-TCUFII32.js} +2 -2
- package/dist/{registry-433S5F3Y.js → registry-RF6PW3EN.js} +3 -3
- package/dist/templates/plugin-quick-starter/README.md +52 -10
- package/dist/templates/plugin-quick-starter/package.json +2 -2
- package/dist/templates/plugin-quick-starter/src/__tests__/e2e/README.md +140 -0
- package/dist/templates/plugin-quick-starter/src/__tests__/e2e/plugin-quick-starter.e2e.ts +339 -0
- package/dist/templates/plugin-quick-starter/src/__tests__/plugin.test.ts +55 -17
- package/dist/templates/plugin-quick-starter/src/plugin.ts +14 -14
- package/dist/templates/plugin-starter/README.md +124 -49
- package/dist/templates/plugin-starter/package.json +2 -2
- package/dist/templates/plugin-starter/src/__tests__/e2e/README.md +44 -9
- package/{templates/plugin-starter/src/__tests__/e2e/starter-plugin.ts → dist/templates/plugin-starter/src/__tests__/e2e/plugin-starter.e2e.ts} +13 -20
- package/dist/templates/plugin-starter/src/plugin.ts +5 -7
- package/dist/templates/project-starter/README.md +24 -11
- package/dist/templates/project-starter/package.json +4 -4
- package/dist/templates/project-starter/src/__tests__/actions.test.ts +2 -2
- package/dist/templates/project-starter/src/__tests__/e2e/README.md +103 -0
- package/dist/templates/project-starter/src/__tests__/e2e/project-starter.e2e.ts +575 -0
- package/dist/templates/project-starter/src/__tests__/integration.test.ts +1 -1
- package/dist/templates/project-starter/src/__tests__/models.test.ts +3 -3
- package/dist/templates/project-starter/src/__tests__/plugin.test.ts +3 -3
- package/dist/templates/project-starter/src/__tests__/provider.test.ts +2 -2
- package/dist/templates/project-starter/src/index.ts +4 -3
- package/dist/templates/project-starter/src/plugin.ts +5 -5
- package/dist/templates/project-tee-starter/README.md +44 -5
- package/dist/templates/project-tee-starter/package.json +4 -4
- package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/build-order.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/character.test.ts +1 -1
- package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/config.test.ts +1 -1
- package/dist/templates/project-tee-starter/src/__tests__/e2e/README.md +128 -0
- package/dist/templates/project-tee-starter/src/__tests__/e2e/project-tee-starter.e2e.ts +280 -0
- package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/env.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/error-handling.test.ts +2 -2
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/events.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/file-structure.test.ts +2 -2
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/integration.test.ts +2 -2
- package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/models.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/plugin.test.ts +1 -1
- package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/provider.test.ts +2 -2
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/routes.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/tee-validation.test.ts +1 -1
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/test-utils.ts +2 -2
- package/{templates/project-tee-starter → dist/templates/project-tee-starter/src}/__tests__/vite-config-utils.ts +14 -2
- package/dist/templates/project-tee-starter/src/index.ts +2 -0
- package/dist/templates/project-tee-starter/src/plugin.ts +19 -7
- package/dist/{utils-DBLSDYBF.js → utils-5HPZSIF6.js} +3 -3
- package/package.json +6 -6
- package/templates/plugin-quick-starter/README.md +52 -10
- package/templates/plugin-quick-starter/package.json +2 -2
- package/templates/plugin-quick-starter/src/__tests__/e2e/README.md +140 -0
- package/templates/plugin-quick-starter/src/__tests__/e2e/plugin-quick-starter.e2e.ts +339 -0
- package/templates/plugin-quick-starter/src/__tests__/plugin.test.ts +55 -17
- package/templates/plugin-quick-starter/src/plugin.ts +14 -14
- package/templates/plugin-starter/README.md +124 -49
- package/templates/plugin-starter/package.json +2 -2
- package/templates/plugin-starter/src/__tests__/e2e/README.md +44 -9
- package/{dist/templates/plugin-starter/src/__tests__/e2e/starter-plugin.ts → templates/plugin-starter/src/__tests__/e2e/plugin-starter.e2e.ts} +13 -20
- package/templates/plugin-starter/src/plugin.ts +5 -7
- package/templates/project-starter/README.md +24 -11
- package/templates/project-starter/package.json +4 -4
- package/templates/project-starter/src/__tests__/actions.test.ts +2 -2
- package/templates/project-starter/src/__tests__/e2e/README.md +103 -0
- package/templates/project-starter/src/__tests__/e2e/project-starter.e2e.ts +575 -0
- package/templates/project-starter/src/__tests__/integration.test.ts +1 -1
- package/templates/project-starter/src/__tests__/models.test.ts +3 -3
- package/templates/project-starter/src/__tests__/plugin.test.ts +3 -3
- package/templates/project-starter/src/__tests__/provider.test.ts +2 -2
- package/templates/project-starter/src/index.ts +4 -3
- package/templates/project-starter/src/plugin.ts +5 -5
- package/templates/project-tee-starter/README.md +44 -5
- package/templates/project-tee-starter/package.json +4 -4
- package/templates/project-tee-starter/{__tests__ → src/__tests__}/build-order.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/character.test.ts +1 -1
- package/templates/project-tee-starter/{__tests__ → src/__tests__}/config.test.ts +1 -1
- package/templates/project-tee-starter/src/__tests__/e2e/README.md +128 -0
- package/templates/project-tee-starter/src/__tests__/e2e/project-tee-starter.e2e.ts +280 -0
- package/templates/project-tee-starter/{__tests__ → src/__tests__}/env.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/error-handling.test.ts +2 -2
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/events.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/file-structure.test.ts +2 -2
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/integration.test.ts +2 -2
- package/templates/project-tee-starter/{__tests__ → src/__tests__}/models.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/plugin.test.ts +1 -1
- package/templates/project-tee-starter/{__tests__ → src/__tests__}/provider.test.ts +2 -2
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/routes.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/tee-validation.test.ts +1 -1
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/test-utils.ts +2 -2
- package/{dist/templates/project-tee-starter → templates/project-tee-starter/src}/__tests__/vite-config-utils.ts +14 -2
- package/templates/project-tee-starter/src/index.ts +2 -0
- package/templates/project-tee-starter/src/plugin.ts +19 -7
- package/dist/templates/plugin-starter/src/tests.ts +0 -6
- package/dist/templates/project-starter/src/__tests__/e2e/index.ts +0 -14
- package/dist/templates/project-starter/src/__tests__/e2e/natural-language.test.ts +0 -246
- package/dist/templates/project-starter/src/__tests__/e2e/project.test.ts +0 -155
- package/dist/templates/project-starter/src/__tests__/e2e/starter-plugin.test.ts +0 -421
- package/dist/templates/project-tee-starter/e2e/project.test.ts +0 -38
- package/dist/templates/project-tee-starter/e2e/starter-plugin.test.ts +0 -92
- package/templates/plugin-starter/src/tests.ts +0 -6
- package/templates/project-starter/src/__tests__/e2e/index.ts +0 -14
- package/templates/project-starter/src/__tests__/e2e/natural-language.test.ts +0 -246
- package/templates/project-starter/src/__tests__/e2e/project.test.ts +0 -155
- package/templates/project-starter/src/__tests__/e2e/starter-plugin.test.ts +0 -421
- package/templates/project-tee-starter/e2e/project.test.ts +0 -38
- package/templates/project-tee-starter/e2e/starter-plugin.test.ts +0 -92
- /package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/actions.test.ts +0 -0
- /package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/frontend.test.ts +0 -0
- /package/dist/templates/project-tee-starter/{__tests__ → src/__tests__}/utils/core-test-utils.ts +0 -0
- /package/templates/project-tee-starter/{__tests__ → src/__tests__}/actions.test.ts +0 -0
- /package/templates/project-tee-starter/{__tests__ → src/__tests__}/frontend.test.ts +0 -0
- /package/templates/project-tee-starter/{__tests__ → src/__tests__}/utils/core-test-utils.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import {
|
|
3
3
|
create
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FSSUAWXQ.js";
|
|
5
5
|
import {
|
|
6
6
|
getElizaCharacter
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SMZBJQJR.js";
|
|
8
8
|
import {
|
|
9
9
|
TestRunner,
|
|
10
10
|
UserEnvironment,
|
|
@@ -44,18 +44,18 @@ import {
|
|
|
44
44
|
testPublishToNpm,
|
|
45
45
|
tryDelegateToLocalCli,
|
|
46
46
|
validateDataDir
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-D3QSET5H.js";
|
|
48
48
|
import {
|
|
49
49
|
configureEmojis,
|
|
50
50
|
emoji,
|
|
51
51
|
runBunCommand
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-FQYWRHLX.js";
|
|
53
53
|
import "./chunk-GXWWPFBO.js";
|
|
54
54
|
import {
|
|
55
55
|
bunExec,
|
|
56
56
|
bunExecInherit,
|
|
57
57
|
bunExecSimple
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-I4L4T7QX.js";
|
|
59
59
|
import "./chunk-3RG5ZIWI.js";
|
|
60
60
|
|
|
61
61
|
// src/commands/dev/index.ts
|
|
@@ -424,14 +424,14 @@ function hasElizaOSCli(packageJsonPath) {
|
|
|
424
424
|
try {
|
|
425
425
|
packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
426
426
|
} catch (parseError) {
|
|
427
|
-
logger.debug(`Error parsing JSON in package.json
|
|
427
|
+
logger.debug({ error: parseError, packageJsonPath }, `Error parsing JSON in package.json`);
|
|
428
428
|
return false;
|
|
429
429
|
}
|
|
430
430
|
const dependencies = packageJson.dependencies || {};
|
|
431
431
|
const devDependencies = packageJson.devDependencies || {};
|
|
432
432
|
return "@elizaos/cli" in dependencies || "@elizaos/cli" in devDependencies;
|
|
433
433
|
} catch (error) {
|
|
434
|
-
logger.debug(`Error reading package.json
|
|
434
|
+
logger.debug({ error, packageJsonPath }, `Error reading package.json`);
|
|
435
435
|
return false;
|
|
436
436
|
}
|
|
437
437
|
}
|
|
@@ -475,12 +475,12 @@ async function installElizaOSCli(cwd = process.cwd()) {
|
|
|
475
475
|
return true;
|
|
476
476
|
} else {
|
|
477
477
|
logger.warn("\u26A0 Failed to install @elizaos/cli as dev dependency (optional)");
|
|
478
|
-
logger.debug(
|
|
478
|
+
logger.debug({ error: result.error }, "Installation error:");
|
|
479
479
|
return false;
|
|
480
480
|
}
|
|
481
481
|
} catch (error) {
|
|
482
482
|
logger.warn("\u26A0 Failed to install @elizaos/cli as dev dependency (optional)");
|
|
483
|
-
logger.debug("Installation error:"
|
|
483
|
+
logger.debug({ error }, "Installation error:");
|
|
484
484
|
return false;
|
|
485
485
|
}
|
|
486
486
|
}
|
|
@@ -1215,7 +1215,7 @@ var extractPluginEnvRequirements = async (packageName, cwd) => {
|
|
|
1215
1215
|
for (const possiblePath of possiblePaths) {
|
|
1216
1216
|
if (existsSync9(possiblePath)) {
|
|
1217
1217
|
packageJsonPath = possiblePath;
|
|
1218
|
-
logger3.debug(`Found plugin package.json at
|
|
1218
|
+
logger3.debug({ packageJsonPath }, `Found plugin package.json at:`);
|
|
1219
1219
|
break;
|
|
1220
1220
|
}
|
|
1221
1221
|
}
|
|
@@ -1228,7 +1228,7 @@ var extractPluginEnvRequirements = async (packageName, cwd) => {
|
|
|
1228
1228
|
const pkgJsonPath = path9.join(nodeModulesPath, pkg, "package.json");
|
|
1229
1229
|
if (existsSync9(pkgJsonPath)) {
|
|
1230
1230
|
packageJsonPath = pkgJsonPath;
|
|
1231
|
-
logger3.debug(`Found matching plugin package.json at
|
|
1231
|
+
logger3.debug({ packageJsonPath }, `Found matching plugin package.json at:`);
|
|
1232
1232
|
break;
|
|
1233
1233
|
}
|
|
1234
1234
|
}
|
|
@@ -1236,8 +1236,8 @@ var extractPluginEnvRequirements = async (packageName, cwd) => {
|
|
|
1236
1236
|
}
|
|
1237
1237
|
}
|
|
1238
1238
|
if (!packageJsonPath) {
|
|
1239
|
-
logger3.debug(`Plugin package.json not found
|
|
1240
|
-
logger3.debug(
|
|
1239
|
+
logger3.debug({ packageName }, `Plugin package.json not found`);
|
|
1240
|
+
logger3.debug({ paths: possiblePaths }, `Searched paths:`);
|
|
1241
1241
|
return {};
|
|
1242
1242
|
}
|
|
1243
1243
|
const packageJsonContent = readFileSync2(packageJsonPath, "utf-8");
|
|
@@ -1248,13 +1248,12 @@ var extractPluginEnvRequirements = async (packageName, cwd) => {
|
|
|
1248
1248
|
return {};
|
|
1249
1249
|
}
|
|
1250
1250
|
logger3.debug(
|
|
1251
|
-
|
|
1251
|
+
{ packageName, vars: Object.keys(agentConfig.pluginParameters) },
|
|
1252
|
+
"Found environment variables"
|
|
1252
1253
|
);
|
|
1253
1254
|
return agentConfig.pluginParameters;
|
|
1254
1255
|
} catch (error) {
|
|
1255
|
-
logger3.debug(
|
|
1256
|
-
`Error reading plugin package.json for ${packageName}: ${error instanceof Error ? error.message : String(error)}`
|
|
1257
|
-
);
|
|
1256
|
+
logger3.debug({ error, packageName }, "Error reading plugin package.json");
|
|
1258
1257
|
return {};
|
|
1259
1258
|
}
|
|
1260
1259
|
};
|
|
@@ -2123,13 +2122,16 @@ var MigrationGuideLoader = class {
|
|
|
2123
2122
|
keywords: config2.keywords
|
|
2124
2123
|
});
|
|
2125
2124
|
} catch (error) {
|
|
2126
|
-
logger8.warn(`Failed to load migration guide
|
|
2125
|
+
logger8.warn({ error, guideName: config2.name }, `Failed to load migration guide`);
|
|
2127
2126
|
}
|
|
2128
2127
|
} else {
|
|
2129
|
-
logger8.warn(`Migration guide not found
|
|
2128
|
+
logger8.warn({ guidePath }, `Migration guide not found`);
|
|
2130
2129
|
}
|
|
2131
2130
|
}
|
|
2132
|
-
logger8.info(
|
|
2131
|
+
logger8.info(
|
|
2132
|
+
{ count: this.guides.length, guidesDir: this.guidesDir },
|
|
2133
|
+
`Loaded migration guides`
|
|
2134
|
+
);
|
|
2133
2135
|
}
|
|
2134
2136
|
createEmbeddedGuides(guideConfigs) {
|
|
2135
2137
|
const embeddedGuides = {
|
|
@@ -2404,7 +2406,7 @@ var SimpleMigrationAgent = class extends EventTarget {
|
|
|
2404
2406
|
logger9.info("Migration guide loader initialized successfully");
|
|
2405
2407
|
}
|
|
2406
2408
|
} catch (error) {
|
|
2407
|
-
logger9.warn("Failed to initialize migration guide loader"
|
|
2409
|
+
logger9.warn({ error }, "Failed to initialize migration guide loader");
|
|
2408
2410
|
throw new Error("Cannot initialize migration system without guide access");
|
|
2409
2411
|
}
|
|
2410
2412
|
}
|
|
@@ -3194,7 +3196,7 @@ import { readFileSync as readFileSync5 } from "fs";
|
|
|
3194
3196
|
import path14 from "path";
|
|
3195
3197
|
async function generatePlugin(opts) {
|
|
3196
3198
|
try {
|
|
3197
|
-
const { PluginCreator } = await import("./plugin-creator-
|
|
3199
|
+
const { PluginCreator } = await import("./plugin-creator-TCUFII32.js");
|
|
3198
3200
|
if (opts.apiKey) {
|
|
3199
3201
|
process.env.ANTHROPIC_API_KEY = opts.apiKey;
|
|
3200
3202
|
}
|
|
@@ -3619,10 +3621,19 @@ var ELIZAOS_ORG = "@elizaos";
|
|
|
3619
3621
|
var FALLBACK_VERSION = "0.0.0";
|
|
3620
3622
|
async function getVersion2() {
|
|
3621
3623
|
try {
|
|
3624
|
+
const directoryInfo = detectDirectoryType(process.cwd());
|
|
3625
|
+
const isMonorepo = directoryInfo.type === "elizaos-monorepo";
|
|
3626
|
+
if (isMonorepo) {
|
|
3627
|
+
return "monorepo";
|
|
3628
|
+
}
|
|
3622
3629
|
const envInfo = await UserEnvironment.getInstance().getInfo();
|
|
3623
|
-
|
|
3630
|
+
const version = envInfo.cli.version;
|
|
3631
|
+
if (isWorkspaceVersion(version)) {
|
|
3632
|
+
return "monorepo";
|
|
3633
|
+
}
|
|
3634
|
+
return version;
|
|
3624
3635
|
} catch (error) {
|
|
3625
|
-
logger12.error("Error getting CLI version:"
|
|
3636
|
+
logger12.error({ error }, "Error getting CLI version:");
|
|
3626
3637
|
return FALLBACK_VERSION;
|
|
3627
3638
|
}
|
|
3628
3639
|
}
|
|
@@ -3728,7 +3739,10 @@ async function performCliUpdate(options = {}) {
|
|
|
3728
3739
|
console.error(" curl -fsSL https://bun.sh/install | bash");
|
|
3729
3740
|
console.error(" # or");
|
|
3730
3741
|
console.error(" npm install -g bun");
|
|
3731
|
-
logger13.debug(
|
|
3742
|
+
logger13.debug(
|
|
3743
|
+
{ error: bunError instanceof Error ? bunError.message : String(bunError) },
|
|
3744
|
+
"Bun error:"
|
|
3745
|
+
);
|
|
3732
3746
|
return false;
|
|
3733
3747
|
}
|
|
3734
3748
|
} catch (error) {
|
|
@@ -4500,16 +4514,16 @@ async function loadProject(dir) {
|
|
|
4500
4514
|
projectModule = await import(importUrl);
|
|
4501
4515
|
logger16.info(`Loaded project from ${entryPoint}`);
|
|
4502
4516
|
const exportKeys = Object.keys(projectModule);
|
|
4503
|
-
logger16.debug(
|
|
4517
|
+
logger16.debug({ exportKeys }, `Module exports:`);
|
|
4504
4518
|
if (exportKeys.includes("default")) {
|
|
4505
|
-
logger16.debug(
|
|
4519
|
+
logger16.debug({ type: typeof projectModule.default }, `Default export type:`);
|
|
4506
4520
|
if (typeof projectModule.default === "object" && projectModule.default !== null) {
|
|
4507
|
-
logger16.debug(
|
|
4521
|
+
logger16.debug({ keys: Object.keys(projectModule.default) }, `Default export keys:`);
|
|
4508
4522
|
}
|
|
4509
4523
|
}
|
|
4510
4524
|
break;
|
|
4511
4525
|
} catch (error) {
|
|
4512
|
-
logger16.warn(`Failed to import project
|
|
4526
|
+
logger16.warn({ error, entryPoint }, `Failed to import project`);
|
|
4513
4527
|
}
|
|
4514
4528
|
}
|
|
4515
4529
|
}
|
|
@@ -4517,13 +4531,13 @@ async function loadProject(dir) {
|
|
|
4517
4531
|
throw new Error("Could not find project entry point");
|
|
4518
4532
|
}
|
|
4519
4533
|
const moduleIsPlugin = isPlugin(projectModule);
|
|
4520
|
-
logger16.debug(`Is this a plugin
|
|
4534
|
+
logger16.debug({ moduleIsPlugin }, `Is this a plugin?`);
|
|
4521
4535
|
if (moduleIsPlugin) {
|
|
4522
4536
|
logger16.info("Detected plugin module instead of project");
|
|
4523
4537
|
try {
|
|
4524
4538
|
const plugin = extractPlugin(projectModule);
|
|
4525
|
-
logger16.debug(
|
|
4526
|
-
logger16.debug(
|
|
4539
|
+
logger16.debug({ name: plugin.name, description: plugin.description }, `Found plugin:`);
|
|
4540
|
+
logger16.debug({ keys: Object.keys(plugin) }, `Plugin has the following properties:`);
|
|
4527
4541
|
const completePlugin = {
|
|
4528
4542
|
// Copy all other properties from the original plugin first
|
|
4529
4543
|
...plugin,
|
|
@@ -4565,7 +4579,7 @@ async function loadProject(dir) {
|
|
|
4565
4579
|
const agents = [];
|
|
4566
4580
|
if (projectModule.default && typeof projectModule.default === "object" && Array.isArray(projectModule.default.agents)) {
|
|
4567
4581
|
agents.push(...projectModule.default.agents);
|
|
4568
|
-
logger16.debug(
|
|
4582
|
+
logger16.debug({ count: agents.length }, `Found agents in default export's agents array`);
|
|
4569
4583
|
} else {
|
|
4570
4584
|
for (const [key, value] of Object.entries(projectModule)) {
|
|
4571
4585
|
if (key === "default" && value && typeof value === "object") {
|
|
@@ -4575,7 +4589,7 @@ async function loadProject(dir) {
|
|
|
4575
4589
|
}
|
|
4576
4590
|
} else if (value && typeof value === "object" && value.character && value.init) {
|
|
4577
4591
|
agents.push(value);
|
|
4578
|
-
logger16.debug(`Found agent in named export
|
|
4592
|
+
logger16.debug({ key }, `Found agent in named export`);
|
|
4579
4593
|
}
|
|
4580
4594
|
}
|
|
4581
4595
|
}
|
|
@@ -4588,7 +4602,7 @@ async function loadProject(dir) {
|
|
|
4588
4602
|
};
|
|
4589
4603
|
return project;
|
|
4590
4604
|
} catch (error) {
|
|
4591
|
-
logger16.error("Error loading project:"
|
|
4605
|
+
logger16.error({ error }, "Error loading project:");
|
|
4592
4606
|
throw error;
|
|
4593
4607
|
}
|
|
4594
4608
|
}
|
|
@@ -4694,7 +4708,7 @@ function resolvePluginDependencies(availablePlugins, isTestMode = false) {
|
|
|
4694
4708
|
}
|
|
4695
4709
|
}
|
|
4696
4710
|
const finalPlugins = resolutionOrder.map((name) => availablePlugins.get(name)).filter((p) => p);
|
|
4697
|
-
logger17.info(
|
|
4711
|
+
logger17.info({ plugins: finalPlugins.map((p) => p.name) }, `Final plugins being loaded:`);
|
|
4698
4712
|
return finalPlugins;
|
|
4699
4713
|
}
|
|
4700
4714
|
|
|
@@ -4762,7 +4776,6 @@ async function startAgent(character, server, init, plugins2 = [], options = {})
|
|
|
4762
4776
|
await setDefaultSecretsFromEnv(character);
|
|
4763
4777
|
}
|
|
4764
4778
|
const loadedPlugins = /* @__PURE__ */ new Map();
|
|
4765
|
-
loadedPlugins.set(sqlPlugin.name, sqlPlugin);
|
|
4766
4779
|
const pluginsToLoad = new Set(character.plugins || []);
|
|
4767
4780
|
for (const p of plugins2) {
|
|
4768
4781
|
if (typeof p === "string") {
|
|
@@ -4787,6 +4800,16 @@ async function startAgent(character, server, init, plugins2 = [], options = {})
|
|
|
4787
4800
|
}
|
|
4788
4801
|
}
|
|
4789
4802
|
}
|
|
4803
|
+
let haveSql = false;
|
|
4804
|
+
for (const n of allAvailablePlugins.keys()) {
|
|
4805
|
+
if (n === sqlPlugin.name || n === "mysql") {
|
|
4806
|
+
haveSql = true;
|
|
4807
|
+
break;
|
|
4808
|
+
}
|
|
4809
|
+
}
|
|
4810
|
+
if (!haveSql) {
|
|
4811
|
+
allAvailablePlugins.set(sqlPlugin.name, sqlPlugin);
|
|
4812
|
+
}
|
|
4790
4813
|
const finalPlugins = resolvePluginDependencies(allAvailablePlugins, options.isTestMode);
|
|
4791
4814
|
const runtime = new AgentRuntime2({
|
|
4792
4815
|
character: encryptedCharacter(character),
|
|
@@ -4812,7 +4835,7 @@ async function startAgent(character, server, init, plugins2 = [], options = {})
|
|
|
4812
4835
|
logger19.warn("DatabaseMigrationService not found - plugin schema migrations skipped");
|
|
4813
4836
|
}
|
|
4814
4837
|
} catch (error) {
|
|
4815
|
-
logger19.error("Failed to run plugin migrations:"
|
|
4838
|
+
logger19.error({ error }, "Failed to run plugin migrations:");
|
|
4816
4839
|
throw error;
|
|
4817
4840
|
}
|
|
4818
4841
|
server.registerAgent(runtime);
|
|
@@ -4872,13 +4895,13 @@ async function startAgents(options) {
|
|
|
4872
4895
|
const desiredPort = options.port || Number.parseInt(process.env.SERVER_PORT || "3000");
|
|
4873
4896
|
const serverPort = await findNextAvailablePort(desiredPort);
|
|
4874
4897
|
if (serverPort !== desiredPort) {
|
|
4875
|
-
logger20.warn(
|
|
4898
|
+
logger20.warn({ desiredPort, serverPort }, "Port is in use, using alternate port");
|
|
4876
4899
|
}
|
|
4877
4900
|
process.env.SERVER_PORT = serverPort.toString();
|
|
4878
4901
|
try {
|
|
4879
4902
|
await server.start(serverPort);
|
|
4880
4903
|
} catch (error) {
|
|
4881
|
-
logger20.error(`Failed to start server on port
|
|
4904
|
+
logger20.error({ error, serverPort }, `Failed to start server on port:`);
|
|
4882
4905
|
throw error;
|
|
4883
4906
|
}
|
|
4884
4907
|
if (options.projectAgents && options.projectAgents.length > 0) {
|
|
@@ -4956,7 +4979,7 @@ var start = new Command7().name("start").description("Build and start the Eliza
|
|
|
4956
4979
|
throw new Error(`Invalid character file: ${resolvedPath}`);
|
|
4957
4980
|
}
|
|
4958
4981
|
} catch (e) {
|
|
4959
|
-
logger21.error(`Failed to load character from
|
|
4982
|
+
logger21.error({ error: e, resolvedPath }, `Failed to load character from path:`);
|
|
4960
4983
|
throw new Error(`Invalid character file: ${resolvedPath}`);
|
|
4961
4984
|
}
|
|
4962
4985
|
}
|
|
@@ -4978,7 +5001,7 @@ var start = new Command7().name("start").description("Build and start the Eliza
|
|
|
4978
5001
|
}
|
|
4979
5002
|
}
|
|
4980
5003
|
} catch (e) {
|
|
4981
|
-
logger21.debug("Failed to load project agents, will use default character:"
|
|
5004
|
+
logger21.debug({ error: e }, "Failed to load project agents, will use default character:");
|
|
4982
5005
|
}
|
|
4983
5006
|
}
|
|
4984
5007
|
await startAgents({ ...options, characters, projectAgents });
|
|
@@ -5101,7 +5124,7 @@ async function installPluginDependencies(projectInfo) {
|
|
|
5101
5124
|
};
|
|
5102
5125
|
await fs12.promises.writeFile(packageJsonPath, JSON.stringify(packageJsonContent, null, 2));
|
|
5103
5126
|
}
|
|
5104
|
-
const { installPlugin: installPlugin2 } = await import("./utils-
|
|
5127
|
+
const { installPlugin: installPlugin2 } = await import("./utils-5HPZSIF6.js");
|
|
5105
5128
|
for (const dependency of project.pluginModule.dependencies) {
|
|
5106
5129
|
await installPlugin2(dependency, pluginsDir);
|
|
5107
5130
|
const dependencyPath = path26.join(pluginsDir, "node_modules", dependency);
|
|
@@ -5120,7 +5143,6 @@ async function installPluginDependencies(projectInfo) {
|
|
|
5120
5143
|
|
|
5121
5144
|
// src/commands/test/actions/component-tests.ts
|
|
5122
5145
|
import { logger as logger24 } from "@elizaos/core";
|
|
5123
|
-
import { spawn as spawn2 } from "child_process";
|
|
5124
5146
|
import path28 from "path";
|
|
5125
5147
|
|
|
5126
5148
|
// src/utils/testing/tsc-validator.ts
|
|
@@ -5152,7 +5174,7 @@ async function runTypeCheck(projectPath, strict = true) {
|
|
|
5152
5174
|
warnings: stderr.includes("warning") ? [stderr] : []
|
|
5153
5175
|
};
|
|
5154
5176
|
} catch (error) {
|
|
5155
|
-
logger23.error("TypeScript validation failed:"
|
|
5177
|
+
logger23.error({ error }, "TypeScript validation failed:");
|
|
5156
5178
|
return {
|
|
5157
5179
|
success: false,
|
|
5158
5180
|
errors: [`TypeScript validation error: ${error.message}`],
|
|
@@ -5186,40 +5208,34 @@ async function runComponentTests(testPath, options, projectInfo) {
|
|
|
5186
5208
|
}
|
|
5187
5209
|
}
|
|
5188
5210
|
logger24.info("Running component tests...");
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
const
|
|
5203
|
-
stdio: "inherit",
|
|
5204
|
-
shell: false,
|
|
5211
|
+
const args = ["test", "--passWithNoTests"];
|
|
5212
|
+
if (options.name) {
|
|
5213
|
+
const baseName = processFilterName(options.name);
|
|
5214
|
+
if (baseName) {
|
|
5215
|
+
logger24.info(`Using test filter: ${baseName}`);
|
|
5216
|
+
args.push("-t", baseName);
|
|
5217
|
+
}
|
|
5218
|
+
}
|
|
5219
|
+
const monorepoRoot = UserEnvironment.getInstance().findMonorepoRoot(process.cwd());
|
|
5220
|
+
const baseDir = monorepoRoot ?? process.cwd();
|
|
5221
|
+
const targetPath = testPath ? path28.resolve(baseDir, testPath) : process.cwd();
|
|
5222
|
+
logger24.info(`Executing: bun ${args.join(" ")} in ${targetPath}`);
|
|
5223
|
+
try {
|
|
5224
|
+
const result = await bunExecInherit("bun", args, {
|
|
5205
5225
|
cwd: targetPath,
|
|
5206
5226
|
env: {
|
|
5207
|
-
...process.env,
|
|
5208
5227
|
FORCE_COLOR: "1",
|
|
5209
5228
|
// Force color output
|
|
5210
5229
|
CI: ""
|
|
5211
5230
|
// Override CI to empty string (some tools check existence, but most check truthiness)
|
|
5212
5231
|
}
|
|
5213
5232
|
});
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
});
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
resolve2({ failed: true });
|
|
5221
|
-
});
|
|
5222
|
-
});
|
|
5233
|
+
logger24.info("Component tests completed");
|
|
5234
|
+
return { failed: !result.success };
|
|
5235
|
+
} catch (error) {
|
|
5236
|
+
logger24.error({ error }, "Error running component tests:");
|
|
5237
|
+
return { failed: true };
|
|
5238
|
+
}
|
|
5223
5239
|
}
|
|
5224
5240
|
|
|
5225
5241
|
// src/commands/test/actions/e2e-tests.ts
|
|
@@ -5295,7 +5311,7 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5295
5311
|
});
|
|
5296
5312
|
logger25.info("Server initialized successfully");
|
|
5297
5313
|
} catch (initError) {
|
|
5298
|
-
logger25.error("Server initialization failed:"
|
|
5314
|
+
logger25.error({ error: initError }, "Server initialization failed:");
|
|
5299
5315
|
throw initError;
|
|
5300
5316
|
}
|
|
5301
5317
|
let project;
|
|
@@ -5325,12 +5341,12 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5325
5341
|
logger25.info("Starting server...");
|
|
5326
5342
|
try {
|
|
5327
5343
|
await server.start(serverPort);
|
|
5328
|
-
logger25.info("Server started successfully on port"
|
|
5344
|
+
logger25.info({ serverPort }, "Server started successfully on port");
|
|
5329
5345
|
} catch (error) {
|
|
5330
|
-
logger25.error("Error starting server:"
|
|
5346
|
+
logger25.error({ error }, "Error starting server:");
|
|
5331
5347
|
if (error instanceof Error) {
|
|
5332
|
-
logger25.error("Error details:"
|
|
5333
|
-
logger25.error("Stack trace:"
|
|
5348
|
+
logger25.error({ message: error.message }, "Error details:");
|
|
5349
|
+
logger25.error({ stack: error.stack }, "Stack trace:");
|
|
5334
5350
|
}
|
|
5335
5351
|
throw error;
|
|
5336
5352
|
}
|
|
@@ -5365,7 +5381,7 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5365
5381
|
});
|
|
5366
5382
|
logger25.info("Default test agent started successfully");
|
|
5367
5383
|
} catch (pluginError) {
|
|
5368
|
-
logger25.error(`Error starting plugin test agent
|
|
5384
|
+
logger25.error({ error: pluginError }, `Error starting plugin test agent:`);
|
|
5369
5385
|
throw pluginError;
|
|
5370
5386
|
}
|
|
5371
5387
|
} else {
|
|
@@ -5385,10 +5401,13 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5385
5401
|
projectAgents.push(agent2);
|
|
5386
5402
|
await new Promise((resolve2) => setTimeout(resolve2, 1e3));
|
|
5387
5403
|
} catch (agentError) {
|
|
5388
|
-
logger25.error(
|
|
5404
|
+
logger25.error(
|
|
5405
|
+
{ error: agentError, agentName: agent2.character.name },
|
|
5406
|
+
"Error starting agent"
|
|
5407
|
+
);
|
|
5389
5408
|
if (agentError instanceof Error) {
|
|
5390
|
-
logger25.error("Error details:"
|
|
5391
|
-
logger25.error("Stack trace:"
|
|
5409
|
+
logger25.error({ message: agentError.message }, "Error details:");
|
|
5410
|
+
logger25.error({ stack: agentError.stack }, "Stack trace:");
|
|
5392
5411
|
}
|
|
5393
5412
|
logger25.warn(`Skipping agent ${agent2.character.name} due to startup error`);
|
|
5394
5413
|
}
|
|
@@ -5427,17 +5446,17 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5427
5446
|
}
|
|
5428
5447
|
return { failed: anyTestsFound ? totalFailed > 0 : false };
|
|
5429
5448
|
} catch (error) {
|
|
5430
|
-
logger25.error("Error in runE2eTests:"
|
|
5449
|
+
logger25.error({ error }, "Error in runE2eTests:");
|
|
5431
5450
|
if (error instanceof Error) {
|
|
5432
|
-
logger25.error("Error details:"
|
|
5433
|
-
logger25.error("Stack trace:"
|
|
5451
|
+
logger25.error({ message: error.message }, "Error details:");
|
|
5452
|
+
logger25.error({ stack: error.stack }, "Stack trace:");
|
|
5434
5453
|
} else {
|
|
5435
|
-
logger25.error("Unknown error type:"
|
|
5436
|
-
logger25.error("Error value:"
|
|
5454
|
+
logger25.error({ type: typeof error }, "Unknown error type:");
|
|
5455
|
+
logger25.error({ error }, "Error value:");
|
|
5437
5456
|
try {
|
|
5438
|
-
logger25.error(
|
|
5457
|
+
logger25.error({ stringified: JSON.stringify(error, null, 2) }, "Stringified error:");
|
|
5439
5458
|
} catch (e) {
|
|
5440
|
-
logger25.error("Could not stringify error:"
|
|
5459
|
+
logger25.error({ error: e }, "Could not stringify error:");
|
|
5441
5460
|
}
|
|
5442
5461
|
}
|
|
5443
5462
|
return { failed: true };
|
|
@@ -5460,33 +5479,33 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5460
5479
|
}
|
|
5461
5480
|
}
|
|
5462
5481
|
} catch (error) {
|
|
5463
|
-
logger25.error("Error in runE2eTests:"
|
|
5482
|
+
logger25.error({ error }, "Error in runE2eTests:");
|
|
5464
5483
|
if (error instanceof Error) {
|
|
5465
|
-
logger25.error("Error details:"
|
|
5466
|
-
logger25.error("Stack trace:"
|
|
5484
|
+
logger25.error({ message: error.message }, "Error details:");
|
|
5485
|
+
logger25.error({ stack: error.stack }, "Stack trace:");
|
|
5467
5486
|
} else {
|
|
5468
|
-
logger25.error("Unknown error type:"
|
|
5469
|
-
logger25.error("Error value:"
|
|
5487
|
+
logger25.error({ type: typeof error }, "Unknown error type:");
|
|
5488
|
+
logger25.error({ error }, "Error value:");
|
|
5470
5489
|
try {
|
|
5471
|
-
logger25.error(
|
|
5490
|
+
logger25.error({ stringified: JSON.stringify(error, null, 2) }, "Stringified error:");
|
|
5472
5491
|
} catch (e) {
|
|
5473
|
-
logger25.error("Could not stringify error:"
|
|
5492
|
+
logger25.error({ error: e }, "Could not stringify error:");
|
|
5474
5493
|
}
|
|
5475
5494
|
}
|
|
5476
5495
|
return { failed: true };
|
|
5477
5496
|
}
|
|
5478
5497
|
} catch (error) {
|
|
5479
|
-
logger25.error("Error in runE2eTests:"
|
|
5498
|
+
logger25.error({ error }, "Error in runE2eTests:");
|
|
5480
5499
|
if (error instanceof Error) {
|
|
5481
|
-
logger25.error("Error details:"
|
|
5482
|
-
logger25.error("Stack trace:"
|
|
5500
|
+
logger25.error({ message: error.message }, "Error details:");
|
|
5501
|
+
logger25.error({ stack: error.stack }, "Stack trace:");
|
|
5483
5502
|
} else {
|
|
5484
|
-
logger25.error("Unknown error type:"
|
|
5485
|
-
logger25.error("Error value:"
|
|
5503
|
+
logger25.error({ type: typeof error }, "Unknown error type:");
|
|
5504
|
+
logger25.error({ error }, "Error value:");
|
|
5486
5505
|
try {
|
|
5487
|
-
logger25.error(
|
|
5506
|
+
logger25.error({ stringified: JSON.stringify(error, null, 2) }, "Stringified error:");
|
|
5488
5507
|
} catch (e) {
|
|
5489
|
-
logger25.error("Could not stringify error:"
|
|
5508
|
+
logger25.error({ error: e }, "Could not stringify error:");
|
|
5490
5509
|
}
|
|
5491
5510
|
}
|
|
5492
5511
|
return { failed: true };
|
|
@@ -5496,15 +5515,21 @@ async function runE2eTests(testPath, options, projectInfo) {
|
|
|
5496
5515
|
// src/commands/test/actions/run-all-tests.ts
|
|
5497
5516
|
async function runAllTests(testPath, options) {
|
|
5498
5517
|
const projectInfo = getProjectType(testPath);
|
|
5518
|
+
let componentResult = { failed: false };
|
|
5499
5519
|
if (!options.skipBuild) {
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
}
|
|
5520
|
+
componentResult = await runComponentTests(testPath, options, projectInfo);
|
|
5521
|
+
} else {
|
|
5522
|
+
logger26.info("Skipping component tests due to --skip-build option");
|
|
5504
5523
|
}
|
|
5505
5524
|
const e2eResult = await runE2eTests(testPath, options, projectInfo);
|
|
5506
|
-
if (e2eResult.failed) {
|
|
5507
|
-
|
|
5525
|
+
if (componentResult.failed || e2eResult.failed) {
|
|
5526
|
+
if (componentResult.failed) {
|
|
5527
|
+
logger26.error("Component tests failed.");
|
|
5528
|
+
}
|
|
5529
|
+
if (e2eResult.failed) {
|
|
5530
|
+
logger26.error("E2E tests failed.");
|
|
5531
|
+
}
|
|
5532
|
+
logger26.error("Test suite failed.");
|
|
5508
5533
|
process.exit(1);
|
|
5509
5534
|
}
|
|
5510
5535
|
logger26.success("All tests passed successfully!");
|
|
@@ -5599,7 +5624,7 @@ async function gracefulShutdown(signal) {
|
|
|
5599
5624
|
} catch (error) {
|
|
5600
5625
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
5601
5626
|
logger29.error(`Error stopping server: ${errorMessage}`);
|
|
5602
|
-
logger29.debug("Full error details:"
|
|
5627
|
+
logger29.debug({ error }, "Full error details:");
|
|
5603
5628
|
}
|
|
5604
5629
|
const exitCode = signal === "SIGINT" ? 130 : signal === "SIGTERM" ? 143 : 0;
|
|
5605
5630
|
process.exit(exitCode);
|
|
@@ -5633,6 +5658,6 @@ async function main() {
|
|
|
5633
5658
|
await program.parseAsync();
|
|
5634
5659
|
}
|
|
5635
5660
|
main().catch((error) => {
|
|
5636
|
-
logger29.error("An error occurred:"
|
|
5661
|
+
logger29.error({ error }, "An error occurred:");
|
|
5637
5662
|
process.exit(1);
|
|
5638
5663
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runBunCommand
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FQYWRHLX.js";
|
|
4
4
|
import {
|
|
5
5
|
bunExec,
|
|
6
6
|
bunExecInherit,
|
|
7
7
|
bunExecSimple
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-I4L4T7QX.js";
|
|
9
9
|
import "./chunk-3RG5ZIWI.js";
|
|
10
10
|
|
|
11
11
|
// src/utils/plugin-creator.ts
|
|
@@ -24,10 +24,10 @@ import {
|
|
|
24
24
|
setEnvVar,
|
|
25
25
|
setGitHubToken,
|
|
26
26
|
validateDataDir
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
} from "./chunk-D3QSET5H.js";
|
|
28
|
+
import "./chunk-FQYWRHLX.js";
|
|
29
29
|
import "./chunk-GXWWPFBO.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-I4L4T7QX.js";
|
|
31
31
|
import "./chunk-3RG5ZIWI.js";
|
|
32
32
|
export {
|
|
33
33
|
checkDataDir,
|