@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/README.md
CHANGED
|
@@ -279,6 +279,19 @@ If any character files fail to load, ElizaOS will:
|
|
|
279
279
|
|
|
280
280
|
Run tests for Eliza agent plugins and projects.
|
|
281
281
|
|
|
282
|
+
ElizaOS employs a dual testing strategy:
|
|
283
|
+
|
|
284
|
+
1. **Component Tests** (`src/__tests__/*.test.ts`)
|
|
285
|
+
|
|
286
|
+
- Run with Bun's native test runner
|
|
287
|
+
- Fast, isolated tests using mocks
|
|
288
|
+
- Perfect for TDD and component logic
|
|
289
|
+
|
|
290
|
+
2. **E2E Tests** (`src/__tests__/e2e/*.e2e.ts`)
|
|
291
|
+
- Run with ElizaOS custom test runner
|
|
292
|
+
- Real runtime with actual database (PGLite)
|
|
293
|
+
- Test complete user scenarios
|
|
294
|
+
|
|
282
295
|
- **Subcommands:**
|
|
283
296
|
- `component`: Run component tests (via bun:test)
|
|
284
297
|
- `e2e`: Run end-to-end runtime tests
|
|
@@ -288,6 +301,13 @@ Run tests for Eliza agent plugins and projects.
|
|
|
288
301
|
- `-n, --name <n>`: Filter tests by name (matches file names or test suite names)
|
|
289
302
|
- `--skip-build`: Skip building before running tests
|
|
290
303
|
|
|
304
|
+
**E2E Test Structure:**
|
|
305
|
+
|
|
306
|
+
- Plugins export tests in `src/plugin.ts` via the `tests` array
|
|
307
|
+
- Projects export tests in `src/index.ts` via the `tests` array
|
|
308
|
+
- Test files follow naming convention: `[template-name].e2e.ts`
|
|
309
|
+
- Each e2e folder should have a README explaining the testing approach
|
|
310
|
+
|
|
291
311
|
### Trusted Execution Environment (TEE) Management
|
|
292
312
|
|
|
293
313
|
#### `elizaos tee phala <subcommand>`
|
|
@@ -650,6 +670,19 @@ Plugins extend the functionality of ElizaOS agents by providing additional capab
|
|
|
650
670
|
elizaos test e2e
|
|
651
671
|
```
|
|
652
672
|
|
|
673
|
+
**E2E Test Structure:**
|
|
674
|
+
|
|
675
|
+
```
|
|
676
|
+
plugin-my-plugin/
|
|
677
|
+
├── src/
|
|
678
|
+
│ ├── __tests__/
|
|
679
|
+
│ │ ├── e2e/
|
|
680
|
+
│ │ │ ├── plugin-my-plugin.e2e.ts # E2E test suite
|
|
681
|
+
│ │ │ └── README.md # E2E test documentation
|
|
682
|
+
│ │ └── *.test.ts # Component unit tests
|
|
683
|
+
│ └── plugin.ts # Export tests here: tests: [MyPluginTestSuite]
|
|
684
|
+
```
|
|
685
|
+
|
|
653
686
|
6. **Publish your plugin**:
|
|
654
687
|
|
|
655
688
|
```bash
|
|
@@ -765,6 +798,19 @@ Projects contain agent configurations and code for building agent-based applicat
|
|
|
765
798
|
elizaos test --port 4000 --name specific-test
|
|
766
799
|
```
|
|
767
800
|
|
|
801
|
+
**E2E Test Structure for Projects:**
|
|
802
|
+
|
|
803
|
+
```
|
|
804
|
+
my-agent-project/
|
|
805
|
+
├── src/
|
|
806
|
+
│ ├── __tests__/
|
|
807
|
+
│ │ ├── e2e/
|
|
808
|
+
│ │ │ ├── project-my-agent.e2e.ts # E2E test suite
|
|
809
|
+
│ │ │ └── README.md # E2E test documentation
|
|
810
|
+
│ │ └── *.test.ts # Component unit tests
|
|
811
|
+
│ └── index.ts # Export tests here: tests: [MyProjectTestSuite]
|
|
812
|
+
```
|
|
813
|
+
|
|
768
814
|
8. **Development workflow**:
|
|
769
815
|
|
|
770
816
|
```bash
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
displayBunInstallationTipCompact,
|
|
3
3
|
emoji,
|
|
4
4
|
runBunCommand
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FQYWRHLX.js";
|
|
6
6
|
import {
|
|
7
7
|
createApiClientConfig,
|
|
8
8
|
getAgentRuntimeUrl,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
bunExecInherit,
|
|
14
14
|
bunExecSimple,
|
|
15
15
|
commandExists
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-I4L4T7QX.js";
|
|
17
17
|
import {
|
|
18
18
|
__require
|
|
19
19
|
} from "./chunk-3RG5ZIWI.js";
|
|
@@ -119,7 +119,7 @@ async function isBunInstalled() {
|
|
|
119
119
|
const result = await bunExec("bun", ["--version"], { stdio: "ignore" });
|
|
120
120
|
return result.success;
|
|
121
121
|
} catch (error) {
|
|
122
|
-
logger.debug("Error checking if Bun is installed:"
|
|
122
|
+
logger.debug({ error }, "Error checking if Bun is installed:");
|
|
123
123
|
return false;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -210,9 +210,7 @@ var UserEnvironment = class _UserEnvironment {
|
|
|
210
210
|
path: process.argv[1] || ""
|
|
211
211
|
};
|
|
212
212
|
} catch (error) {
|
|
213
|
-
logger2.warn(
|
|
214
|
-
`[UserEnvironment] Error getting CLI info: ${error instanceof Error ? error.message : String(error)}`
|
|
215
|
-
);
|
|
213
|
+
logger2.warn({ error }, `[UserEnvironment] Error getting CLI info`);
|
|
216
214
|
return {
|
|
217
215
|
version: "0.0.0",
|
|
218
216
|
name: "@elizaos/cli",
|
|
@@ -238,9 +236,7 @@ var UserEnvironment = class _UserEnvironment {
|
|
|
238
236
|
version = stdout.trim();
|
|
239
237
|
logger2.debug(`[UserEnvironment] Bun version: ${version}`);
|
|
240
238
|
} catch (e) {
|
|
241
|
-
logger2.debug(
|
|
242
|
-
`[UserEnvironment] Could not get bun version: ${e instanceof Error ? e.message : String(e)}`
|
|
243
|
-
);
|
|
239
|
+
logger2.debug({ error: e }, `[UserEnvironment] Could not get bun version:`);
|
|
244
240
|
if (shouldAutoInstall()) {
|
|
245
241
|
logger2.info(`${emoji.info("Attempting to automatically install Bun...")}`);
|
|
246
242
|
const installSuccess = await autoInstallBun();
|
|
@@ -251,7 +247,8 @@ var UserEnvironment = class _UserEnvironment {
|
|
|
251
247
|
logger2.debug(`[UserEnvironment] Bun version after auto-install: ${version}`);
|
|
252
248
|
} catch (retryError) {
|
|
253
249
|
logger2.error(
|
|
254
|
-
|
|
250
|
+
{ error: retryError },
|
|
251
|
+
"Failed to verify Bun installation after auto-install:"
|
|
255
252
|
);
|
|
256
253
|
}
|
|
257
254
|
}
|
|
@@ -445,7 +442,7 @@ var UserEnvironment = class _UserEnvironment {
|
|
|
445
442
|
}
|
|
446
443
|
return "0.25.9";
|
|
447
444
|
} catch (error) {
|
|
448
|
-
logger2.warn(`Error getting package version
|
|
445
|
+
logger2.warn({ error, packageName }, `Error getting package version`);
|
|
449
446
|
return "0.25.9";
|
|
450
447
|
}
|
|
451
448
|
}
|
|
@@ -462,7 +459,7 @@ var UserEnvironment = class _UserEnvironment {
|
|
|
462
459
|
const pluginPackages = packagesDirEntries.filter((entry) => entry.isDirectory() && entry.name.startsWith("plugin-")).map((entry) => `@elizaos/${entry.name}`);
|
|
463
460
|
return pluginPackages;
|
|
464
461
|
} catch (error) {
|
|
465
|
-
logger2.warn(`Error getting local packages
|
|
462
|
+
logger2.warn({ error }, `Error getting local packages`);
|
|
466
463
|
return [];
|
|
467
464
|
}
|
|
468
465
|
}
|
|
@@ -1766,11 +1763,10 @@ async function getElizaDirectories(targetProjectDir) {
|
|
|
1766
1763
|
const projectRoot = targetProjectDir || paths.monorepoRoot || process.cwd();
|
|
1767
1764
|
const elizaDir = targetProjectDir ? path9.resolve(targetProjectDir, ".eliza") : paths.elizaDir;
|
|
1768
1765
|
const envFilePath = targetProjectDir ? path9.resolve(targetProjectDir, ".env") : paths.envFilePath;
|
|
1769
|
-
logger9.debug(
|
|
1770
|
-
elizaDir,
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
});
|
|
1766
|
+
logger9.debug(
|
|
1767
|
+
{ elizaDir, projectRoot, targetProjectDir: targetProjectDir || "none" },
|
|
1768
|
+
"Eliza directories:"
|
|
1769
|
+
);
|
|
1774
1770
|
const defaultElizaDbDir = path9.resolve(projectRoot, ".eliza", ".elizadb");
|
|
1775
1771
|
const elizaDbDir = await resolvePgliteDir(void 0, defaultElizaDbDir, targetProjectDir);
|
|
1776
1772
|
return { elizaDir, elizaDbDir, envFilePath };
|
|
@@ -1802,10 +1798,10 @@ async function setupEnvFile(envFilePath) {
|
|
|
1802
1798
|
}
|
|
1803
1799
|
}
|
|
1804
1800
|
} catch (error) {
|
|
1805
|
-
logger9.error(
|
|
1806
|
-
error: error instanceof Error ? error.message : String(error),
|
|
1807
|
-
|
|
1808
|
-
|
|
1801
|
+
logger9.error(
|
|
1802
|
+
{ error: error instanceof Error ? error.message : String(error), envFilePath },
|
|
1803
|
+
"Error setting up .env file:"
|
|
1804
|
+
);
|
|
1809
1805
|
throw error;
|
|
1810
1806
|
}
|
|
1811
1807
|
}
|
|
@@ -1831,16 +1827,15 @@ async function setupPgLite(dbDir, envPath, targetProjectDir) {
|
|
|
1831
1827
|
const targetEnvPath = envPath || envFilePath;
|
|
1832
1828
|
try {
|
|
1833
1829
|
await ensureDir(targetDbDir);
|
|
1834
|
-
logger9.debug("[PGLite] Created database directory:"
|
|
1830
|
+
logger9.debug({ targetDbDir }, "[PGLite] Created database directory:");
|
|
1835
1831
|
await setupEnvFile(targetEnvPath);
|
|
1836
1832
|
await storePgliteDataDir(targetDbDir, targetEnvPath);
|
|
1837
1833
|
logger9.success("PGLite configuration saved");
|
|
1838
1834
|
} catch (error) {
|
|
1839
|
-
logger9.error(
|
|
1840
|
-
error: error instanceof Error ? error.message : String(error),
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
});
|
|
1835
|
+
logger9.error(
|
|
1836
|
+
{ error: error instanceof Error ? error.message : String(error), elizaDbDir, envFilePath },
|
|
1837
|
+
"Error setting up PGLite directory:"
|
|
1838
|
+
);
|
|
1844
1839
|
throw error;
|
|
1845
1840
|
}
|
|
1846
1841
|
}
|
|
@@ -1859,7 +1854,7 @@ async function storePostgresUrl(url, envFilePath) {
|
|
|
1859
1854
|
process.env.POSTGRES_URL = url;
|
|
1860
1855
|
logger9.success("Postgres URL saved to configuration");
|
|
1861
1856
|
} catch (error) {
|
|
1862
|
-
logger9.error("Error saving database configuration:"
|
|
1857
|
+
logger9.error({ error }, "Error saving database configuration:");
|
|
1863
1858
|
throw error;
|
|
1864
1859
|
}
|
|
1865
1860
|
}
|
|
@@ -1876,7 +1871,7 @@ async function storePgliteDataDir(dataDir, envFilePath) {
|
|
|
1876
1871
|
process.env.PGLITE_DATA_DIR = dataDir;
|
|
1877
1872
|
logger9.success("PGLite data directory saved to configuration");
|
|
1878
1873
|
} catch (error) {
|
|
1879
|
-
logger9.error("Error saving PGLite configuration:"
|
|
1874
|
+
logger9.error({ error }, "Error saving PGLite configuration:");
|
|
1880
1875
|
throw error;
|
|
1881
1876
|
}
|
|
1882
1877
|
}
|
|
@@ -2762,7 +2757,7 @@ async function getGitHubCredentials() {
|
|
|
2762
2757
|
}
|
|
2763
2758
|
logger10.warn("Invalid GitHub token found in environment variables");
|
|
2764
2759
|
}
|
|
2765
|
-
const { getGitHubToken: getGitHubToken2 } = await import("./registry-
|
|
2760
|
+
const { getGitHubToken: getGitHubToken2 } = await import("./registry-RF6PW3EN.js");
|
|
2766
2761
|
const token = await getGitHubToken2() || void 0;
|
|
2767
2762
|
if (token) {
|
|
2768
2763
|
const isValid2 = await validateGitHubToken(token);
|
|
@@ -3425,7 +3420,7 @@ async function stopAgent(opts) {
|
|
|
3425
3420
|
process.exit(1);
|
|
3426
3421
|
}
|
|
3427
3422
|
try {
|
|
3428
|
-
const { bunExec: bunExec2 } = await import("./bun-exec-
|
|
3423
|
+
const { bunExec: bunExec2 } = await import("./bun-exec-ULMPAIQC.js");
|
|
3429
3424
|
const patterns = [
|
|
3430
3425
|
"(node|bun).*elizaos",
|
|
3431
3426
|
"(node|bun).*eliza.*start",
|
|
@@ -3518,13 +3513,13 @@ function handleError(error) {
|
|
|
3518
3513
|
logger12.error(colors3.red(String(error)));
|
|
3519
3514
|
}
|
|
3520
3515
|
} else {
|
|
3521
|
-
logger12.error("An error occurred:"
|
|
3516
|
+
logger12.error({ error }, "An error occurred:");
|
|
3522
3517
|
if (error instanceof Error) {
|
|
3523
|
-
logger12.error("Error details:"
|
|
3524
|
-
logger12.error("Stack trace:"
|
|
3518
|
+
logger12.error({ message: error.message }, "Error details:");
|
|
3519
|
+
logger12.error({ stack: error.stack }, "Stack trace:");
|
|
3525
3520
|
} else {
|
|
3526
|
-
logger12.error("Unknown error type:"
|
|
3527
|
-
logger12.error("Error value:"
|
|
3521
|
+
logger12.error({ type: typeof error }, "Unknown error type:");
|
|
3522
|
+
logger12.error({ error }, "Error value:");
|
|
3528
3523
|
}
|
|
3529
3524
|
}
|
|
3530
3525
|
process.exit(1);
|
|
@@ -4021,7 +4016,7 @@ function getCliDirectory() {
|
|
|
4021
4016
|
}
|
|
4022
4017
|
return null;
|
|
4023
4018
|
} catch (error) {
|
|
4024
|
-
logger17.error("Failed to determine CLI directory:"
|
|
4019
|
+
logger17.error({ error }, "Failed to determine CLI directory:");
|
|
4025
4020
|
return null;
|
|
4026
4021
|
}
|
|
4027
4022
|
}
|
|
@@ -4178,7 +4173,7 @@ function isRunningFromLocalCli() {
|
|
|
4178
4173
|
const isInLocalCli = path18.resolve(currentScriptPath) === path18.resolve(expectedLocalCliPath);
|
|
4179
4174
|
return isInLocalCli;
|
|
4180
4175
|
} catch (error) {
|
|
4181
|
-
logger18.debug("Error checking if running from local CLI:"
|
|
4176
|
+
logger18.debug({ error }, "Error checking if running from local CLI:");
|
|
4182
4177
|
return false;
|
|
4183
4178
|
}
|
|
4184
4179
|
}
|
|
@@ -4236,7 +4231,7 @@ async function delegateToLocalCli(localCliPath) {
|
|
|
4236
4231
|
resolve2();
|
|
4237
4232
|
});
|
|
4238
4233
|
childProcess.on("error", (error) => {
|
|
4239
|
-
logger18.error(`Failed to start local CLI
|
|
4234
|
+
logger18.error({ message: error.message }, `Failed to start local CLI:`);
|
|
4240
4235
|
reject(error);
|
|
4241
4236
|
});
|
|
4242
4237
|
const forwardSignal = (signal) => {
|
|
@@ -4535,10 +4530,10 @@ async function testPublishToNpm(cwd) {
|
|
|
4535
4530
|
logger20.info("[\u2713] Have publish permissions");
|
|
4536
4531
|
return true;
|
|
4537
4532
|
} catch (error) {
|
|
4538
|
-
logger20.error("Test failed:"
|
|
4533
|
+
logger20.error({ error }, "Test failed:");
|
|
4539
4534
|
if (error instanceof Error) {
|
|
4540
|
-
logger20.error(
|
|
4541
|
-
logger20.error(
|
|
4535
|
+
logger20.error({ message: error.message }, "Error message:");
|
|
4536
|
+
logger20.error({ stack: error.stack }, "Error stack:");
|
|
4542
4537
|
}
|
|
4543
4538
|
return false;
|
|
4544
4539
|
}
|
|
@@ -4633,7 +4628,7 @@ async function publishToNpm(cwd) {
|
|
|
4633
4628
|
await bunExecInherit("npm", ["publish"], { cwd });
|
|
4634
4629
|
return true;
|
|
4635
4630
|
} catch (error) {
|
|
4636
|
-
logger20.error("Failed to publish to npm:"
|
|
4631
|
+
logger20.error({ error }, "Failed to publish to npm:");
|
|
4637
4632
|
return false;
|
|
4638
4633
|
}
|
|
4639
4634
|
}
|
|
@@ -4858,11 +4853,11 @@ import * as fs9 from "fs";
|
|
|
4858
4853
|
import * as path20 from "path";
|
|
4859
4854
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
4860
4855
|
var safeLogger = {
|
|
4861
|
-
debug: logger21?.debug
|
|
4862
|
-
info: logger21?.info
|
|
4863
|
-
warn: logger21?.warn
|
|
4864
|
-
error: logger21?.error
|
|
4865
|
-
success: logger21?.success
|
|
4856
|
+
debug: logger21?.debug?.bind(logger21) ?? console.debug,
|
|
4857
|
+
info: logger21?.info.bind(logger21) ?? console.log,
|
|
4858
|
+
warn: logger21?.warn.bind(logger21) ?? console.warn,
|
|
4859
|
+
error: logger21?.error?.bind(logger21) ?? console.error,
|
|
4860
|
+
success: logger21?.success?.bind(logger21) ?? console.log
|
|
4866
4861
|
};
|
|
4867
4862
|
var TestRunner = class {
|
|
4868
4863
|
runtime;
|
|
@@ -4916,8 +4911,12 @@ var TestRunner = class {
|
|
|
4916
4911
|
let processedFilter = filter;
|
|
4917
4912
|
if (processedFilter.endsWith(".test.ts") || processedFilter.endsWith(".test.js")) {
|
|
4918
4913
|
processedFilter = processedFilter.slice(0, -8);
|
|
4914
|
+
} else if (processedFilter.endsWith(".spec.ts") || processedFilter.endsWith(".spec.js")) {
|
|
4915
|
+
processedFilter = processedFilter.slice(0, -8);
|
|
4919
4916
|
} else if (processedFilter.endsWith(".test")) {
|
|
4920
4917
|
processedFilter = processedFilter.slice(0, -5);
|
|
4918
|
+
} else if (processedFilter.endsWith(".spec")) {
|
|
4919
|
+
processedFilter = processedFilter.slice(0, -5);
|
|
4921
4920
|
}
|
|
4922
4921
|
return name.toLowerCase().includes(processedFilter.toLowerCase());
|
|
4923
4922
|
}
|
|
@@ -4991,9 +4990,9 @@ Running test suite: ${suite.name}`);
|
|
|
4991
4990
|
export const myPlugin = {
|
|
4992
4991
|
name: "my-plugin",
|
|
4993
4992
|
description: "My awesome plugin",
|
|
4994
|
-
|
|
4993
|
+
|
|
4995
4994
|
// ... other plugin properties ...
|
|
4996
|
-
|
|
4995
|
+
|
|
4997
4996
|
tests: [
|
|
4998
4997
|
{
|
|
4999
4998
|
name: "Basic Tests",
|
|
@@ -5039,14 +5038,14 @@ export const myPlugin = {
|
|
|
5039
5038
|
return;
|
|
5040
5039
|
}
|
|
5041
5040
|
try {
|
|
5042
|
-
const e2eDir = path20.join(process.cwd(), "e2e");
|
|
5041
|
+
const e2eDir = path20.join(process.cwd(), "src", "__tests__", "e2e");
|
|
5043
5042
|
if (!fs9.existsSync(e2eDir)) {
|
|
5044
|
-
safeLogger.debug("No
|
|
5043
|
+
safeLogger.debug("No test files found in src/__tests__/e2e/, skipping e2e tests");
|
|
5045
5044
|
return;
|
|
5046
5045
|
}
|
|
5047
5046
|
safeLogger.info("\nRunning e2e tests...");
|
|
5048
5047
|
const walk = (dir) => fs9.readdirSync(dir, { withFileTypes: true }).flatMap(
|
|
5049
|
-
(entry) => entry.isDirectory() ? walk(path20.join(dir, entry.name)) : entry.name.match(/\.test\.(
|
|
5048
|
+
(entry) => entry.isDirectory() ? walk(path20.join(dir, entry.name)) : entry.name.match(/\.(test|spec|e2e)\.(ts|js|tsx|jsx)$/) ? [path20.join(dir, entry.name)] : []
|
|
5050
5049
|
);
|
|
5051
5050
|
const testFiles = walk(e2eDir);
|
|
5052
5051
|
if (testFiles.length === 0) {
|
|
@@ -5054,16 +5053,17 @@ export const myPlugin = {
|
|
|
5054
5053
|
return;
|
|
5055
5054
|
}
|
|
5056
5055
|
safeLogger.info(`Found ${testFiles.length} e2e test files`);
|
|
5057
|
-
const distE2eDir = path20.join(process.cwd(), "dist", "e2e");
|
|
5056
|
+
const distE2eDir = path20.join(process.cwd(), "dist", "__tests__", "e2e");
|
|
5058
5057
|
const hasDistE2e = fs9.existsSync(distE2eDir);
|
|
5059
5058
|
for (const testFile of testFiles) {
|
|
5060
5059
|
try {
|
|
5061
5060
|
const fileName = path20.basename(testFile);
|
|
5062
|
-
const fileNameWithoutExt =
|
|
5061
|
+
const fileNameWithoutExt = fileName.replace(/\.(test|spec|e2e)\.(ts|js|tsx|jsx)$/, "");
|
|
5063
5062
|
safeLogger.info(`Loading test file: ${fileName}`);
|
|
5064
5063
|
let moduleImportPath = testFile;
|
|
5065
5064
|
if (hasDistE2e) {
|
|
5066
|
-
const
|
|
5065
|
+
const relativePath = path20.relative(e2eDir, testFile);
|
|
5066
|
+
const distFile = path20.join(distE2eDir, relativePath.replace(/\.ts$/, ".js"));
|
|
5067
5067
|
if (fs9.existsSync(distFile)) {
|
|
5068
5068
|
moduleImportPath = distFile;
|
|
5069
5069
|
safeLogger.debug(`Using compiled version from ${distFile}`);
|
|
@@ -5074,7 +5074,7 @@ export const myPlugin = {
|
|
|
5074
5074
|
}
|
|
5075
5075
|
} else {
|
|
5076
5076
|
safeLogger.warn(
|
|
5077
|
-
`No dist/e2e directory found. E2E tests should be compiled first. Import may fail.`
|
|
5077
|
+
`No dist/__tests__/e2e directory found. E2E tests should be compiled first. Import may fail.`
|
|
5078
5078
|
);
|
|
5079
5079
|
}
|
|
5080
5080
|
let testModule;
|
|
@@ -5311,9 +5311,7 @@ async function getLocalRegistryIndex() {
|
|
|
5311
5311
|
}
|
|
5312
5312
|
}
|
|
5313
5313
|
} catch (error) {
|
|
5314
|
-
logger22.debug(
|
|
5315
|
-
`Failed to fetch registry from public URL: ${error instanceof Error ? error.message : String(error)}`
|
|
5316
|
-
);
|
|
5314
|
+
logger22.debug({ error }, "Failed to fetch registry from public URL:");
|
|
5317
5315
|
}
|
|
5318
5316
|
try {
|
|
5319
5317
|
if (existsSync18(REGISTRY_CACHE_FILE)) {
|
|
@@ -5323,9 +5321,7 @@ async function getLocalRegistryIndex() {
|
|
|
5323
5321
|
return cachedRegistry;
|
|
5324
5322
|
}
|
|
5325
5323
|
} catch (error) {
|
|
5326
|
-
logger22.debug(
|
|
5327
|
-
`Failed to read registry cache: ${error instanceof Error ? error.message : String(error)}`
|
|
5328
|
-
);
|
|
5324
|
+
logger22.debug({ error }, "Failed to read registry cache:");
|
|
5329
5325
|
}
|
|
5330
5326
|
const directoryInfo = detectDirectoryType(process.cwd());
|
|
5331
5327
|
if (directoryInfo.monorepoRoot) {
|
|
@@ -5340,9 +5336,7 @@ async function getLocalRegistryIndex() {
|
|
|
5340
5336
|
}
|
|
5341
5337
|
return { ...DEFAULT_REGISTRY, ...localRegistry };
|
|
5342
5338
|
} catch (error) {
|
|
5343
|
-
logger22.debug(
|
|
5344
|
-
`Failed to discover local plugins: ${error instanceof Error ? error.message : String(error)}`
|
|
5345
|
-
);
|
|
5339
|
+
logger22.debug({ error }, "Failed to discover local plugins:");
|
|
5346
5340
|
}
|
|
5347
5341
|
}
|
|
5348
5342
|
return DEFAULT_REGISTRY;
|
|
@@ -5532,13 +5526,14 @@ async function getPackageDetails(packageName) {
|
|
|
5532
5526
|
try {
|
|
5533
5527
|
return JSON.parse(text4);
|
|
5534
5528
|
} catch {
|
|
5535
|
-
logger22.warn(
|
|
5529
|
+
logger22.warn(
|
|
5530
|
+
{ packageName, text: text4 },
|
|
5531
|
+
`Invalid JSON response received from registry for package`
|
|
5532
|
+
);
|
|
5536
5533
|
return null;
|
|
5537
5534
|
}
|
|
5538
5535
|
} catch (error) {
|
|
5539
|
-
logger22.warn(
|
|
5540
|
-
`Failed to fetch package details from registry: ${error instanceof Error ? error.message : String(error)}`
|
|
5541
|
-
);
|
|
5536
|
+
logger22.warn({ error }, "Failed to fetch package details from registry:");
|
|
5542
5537
|
return null;
|
|
5543
5538
|
}
|
|
5544
5539
|
}
|
|
@@ -5554,14 +5549,16 @@ async function getBestPluginVersion(packageName, runtimeVersion) {
|
|
|
5554
5549
|
const [packageMajor, packageMinor] = packageDetails.runtimeVersion.split(".").map(Number);
|
|
5555
5550
|
if (runtimeMajor !== packageMajor) {
|
|
5556
5551
|
logger22.warn(
|
|
5557
|
-
|
|
5552
|
+
{ packageName, expected: packageDetails.runtimeVersion, actual: runtimeVersion },
|
|
5553
|
+
`Plugin runtime version mismatch`
|
|
5558
5554
|
);
|
|
5559
5555
|
logger22.warn("This may cause compatibility issues.");
|
|
5560
5556
|
return packageDetails.latestVersion;
|
|
5561
5557
|
}
|
|
5562
5558
|
if (runtimeMinor !== packageMinor) {
|
|
5563
5559
|
logger22.warn(
|
|
5564
|
-
|
|
5560
|
+
{ packageName, expected: packageDetails.runtimeVersion, actual: runtimeVersion },
|
|
5561
|
+
`Plugin runtime minor version differs`
|
|
5565
5562
|
);
|
|
5566
5563
|
}
|
|
5567
5564
|
return packageDetails.latestVersion;
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
selectEmbeddingModel,
|
|
10
10
|
validateCreateOptions,
|
|
11
11
|
validateProjectName
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SMZBJQJR.js";
|
|
13
13
|
import {
|
|
14
14
|
displayBanner,
|
|
15
15
|
handleError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-D3QSET5H.js";
|
|
17
17
|
|
|
18
18
|
// src/commands/create/index.ts
|
|
19
19
|
import { Command } from "commander";
|
|
@@ -195,7 +195,7 @@ var create = new Command("create").description("Create a new ElizaOS project, pl
|
|
|
195
195
|
const errorType = formatProjectType(projectType || "project");
|
|
196
196
|
clack.cancel(`Failed to create ${errorType}.`);
|
|
197
197
|
}
|
|
198
|
-
logger.error("Create command failed:"
|
|
198
|
+
logger.error({ error }, "Create command failed:");
|
|
199
199
|
handleError(error);
|
|
200
200
|
process.exit(1);
|
|
201
201
|
}
|
|
@@ -110,7 +110,7 @@ async function bunExec(command, args = [], options = {}) {
|
|
|
110
110
|
if (!success && options.stdio !== "ignore") {
|
|
111
111
|
logger.debug(`[bunExec] Command failed with exit code ${exitCode}`);
|
|
112
112
|
if (stderr) {
|
|
113
|
-
logger.debug(`[bunExec] stderr
|
|
113
|
+
logger.debug({ stderr }, `[bunExec] stderr:`);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
return {
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
setAgentConfig,
|
|
6
6
|
startAgent,
|
|
7
7
|
stopAgent
|
|
8
|
-
} from "../../../chunk-
|
|
9
|
-
import "../../../chunk-
|
|
8
|
+
} from "../../../chunk-D3QSET5H.js";
|
|
9
|
+
import "../../../chunk-FQYWRHLX.js";
|
|
10
10
|
import "../../../chunk-GXWWPFBO.js";
|
|
11
|
-
import "../../../chunk-
|
|
11
|
+
import "../../../chunk-I4L4T7QX.js";
|
|
12
12
|
import "../../../chunk-3RG5ZIWI.js";
|
|
13
13
|
export {
|
|
14
14
|
clearAgentMemories,
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
agent,
|
|
3
3
|
getAgents,
|
|
4
4
|
resolveAgentId
|
|
5
|
-
} from "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
5
|
+
} from "../../chunk-D3QSET5H.js";
|
|
6
|
+
import "../../chunk-FQYWRHLX.js";
|
|
7
7
|
import {
|
|
8
8
|
getAgentRuntimeUrl,
|
|
9
9
|
getAgentsBaseUrl
|
|
10
10
|
} from "../../chunk-GXWWPFBO.js";
|
|
11
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-I4L4T7QX.js";
|
|
12
12
|
import "../../chunk-3RG5ZIWI.js";
|
|
13
13
|
export {
|
|
14
14
|
agent,
|
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
setupAIModelConfig,
|
|
9
9
|
setupEmbeddingModelConfig,
|
|
10
10
|
setupProjectEnvironment
|
|
11
|
-
} from "../../../chunk-
|
|
12
|
-
import "../../../chunk-
|
|
13
|
-
import "../../../chunk-
|
|
11
|
+
} from "../../../chunk-SMZBJQJR.js";
|
|
12
|
+
import "../../../chunk-D3QSET5H.js";
|
|
13
|
+
import "../../../chunk-FQYWRHLX.js";
|
|
14
14
|
import "../../../chunk-GXWWPFBO.js";
|
|
15
|
-
import "../../../chunk-
|
|
15
|
+
import "../../../chunk-I4L4T7QX.js";
|
|
16
16
|
import "../../../chunk-3RG5ZIWI.js";
|
|
17
17
|
export {
|
|
18
18
|
createAgent,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
create
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-FSSUAWXQ.js";
|
|
4
|
+
import "../../chunk-SMZBJQJR.js";
|
|
5
|
+
import "../../chunk-D3QSET5H.js";
|
|
6
|
+
import "../../chunk-FQYWRHLX.js";
|
|
7
7
|
import "../../chunk-GXWWPFBO.js";
|
|
8
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-I4L4T7QX.js";
|
|
9
9
|
import "../../chunk-3RG5ZIWI.js";
|
|
10
10
|
export {
|
|
11
11
|
create
|