@elizaos/cli 1.3.2 → 1.4.3
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-FDEDLANP.js → chunk-FQYWRHLX.js} +1 -1
- package/dist/{chunk-5GUS4CFO.js → chunk-HOC6B3QV.js} +1 -1
- package/dist/{chunk-D3Q2UZLZ.js → chunk-I4L4T7QX.js} +1 -1
- package/dist/{chunk-E6XYTE3A.js → chunk-N5G5XSGP.js} +97 -76
- package/dist/{chunk-T2QDIXGU.js → chunk-NSNXXD3I.js} +3 -3
- 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 +146 -112
- package/dist/{plugin-creator-H26ZLR6H.js → plugin-creator-TCUFII32.js} +2 -2
- package/dist/{registry-433S5F3Y.js → registry-ELONUC44.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__/config.test.ts +6 -15
- 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__/error-handling.test.ts +4 -18
- package/dist/templates/project-starter/src/__tests__/events.test.ts +27 -23
- 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 +41 -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 +40 -26
- package/dist/{utils-DBLSDYBF.js → utils-X6UXPLKD.js} +3 -3
- package/package.json +6 -7
- 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__/config.test.ts +6 -15
- 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__/error-handling.test.ts +4 -18
- package/templates/project-starter/src/__tests__/events.test.ts +27 -23
- 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 +41 -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 +40 -26
- 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
|
|
@@ -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 {
|
|
@@ -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-ELONUC44.js");
|
|
2766
2761
|
const token = await getGitHubToken2() || void 0;
|
|
2767
2762
|
if (token) {
|
|
2768
2763
|
const isValid2 = await validateGitHubToken(token);
|
|
@@ -2868,10 +2863,16 @@ async function ensureDirectory(token, repo, path22, branch) {
|
|
|
2868
2863
|
} catch (error) {
|
|
2869
2864
|
logger10.info(`Directory ${path22} doesn't exist, creating it`);
|
|
2870
2865
|
}
|
|
2866
|
+
const [owner, repoName] = repo.split("/");
|
|
2867
|
+
if (!owner || !repoName) {
|
|
2868
|
+
logger10.error(`Invalid repository format: ${repo}. Expected format: owner/repo`);
|
|
2869
|
+
return false;
|
|
2870
|
+
}
|
|
2871
2871
|
const placeholderPath = `${path22}/.gitkeep`;
|
|
2872
2872
|
const result = await updateFile(
|
|
2873
2873
|
token,
|
|
2874
|
-
|
|
2874
|
+
owner,
|
|
2875
|
+
repoName,
|
|
2875
2876
|
placeholderPath,
|
|
2876
2877
|
"",
|
|
2877
2878
|
// Empty content for placeholder
|
|
@@ -3425,7 +3426,7 @@ async function stopAgent(opts) {
|
|
|
3425
3426
|
process.exit(1);
|
|
3426
3427
|
}
|
|
3427
3428
|
try {
|
|
3428
|
-
const { bunExec: bunExec2 } = await import("./bun-exec-
|
|
3429
|
+
const { bunExec: bunExec2 } = await import("./bun-exec-ULMPAIQC.js");
|
|
3429
3430
|
const patterns = [
|
|
3430
3431
|
"(node|bun).*elizaos",
|
|
3431
3432
|
"(node|bun).*eliza.*start",
|
|
@@ -3518,13 +3519,13 @@ function handleError(error) {
|
|
|
3518
3519
|
logger12.error(colors3.red(String(error)));
|
|
3519
3520
|
}
|
|
3520
3521
|
} else {
|
|
3521
|
-
logger12.error("An error occurred:"
|
|
3522
|
+
logger12.error({ error }, "An error occurred:");
|
|
3522
3523
|
if (error instanceof Error) {
|
|
3523
|
-
logger12.error("Error details:"
|
|
3524
|
-
logger12.error("Stack trace:"
|
|
3524
|
+
logger12.error({ message: error.message }, "Error details:");
|
|
3525
|
+
logger12.error({ stack: error.stack }, "Stack trace:");
|
|
3525
3526
|
} else {
|
|
3526
|
-
logger12.error("Unknown error type:"
|
|
3527
|
-
logger12.error("Error value:"
|
|
3527
|
+
logger12.error({ type: typeof error }, "Unknown error type:");
|
|
3528
|
+
logger12.error({ error }, "Error value:");
|
|
3528
3529
|
}
|
|
3529
3530
|
}
|
|
3530
3531
|
process.exit(1);
|
|
@@ -4021,7 +4022,7 @@ function getCliDirectory() {
|
|
|
4021
4022
|
}
|
|
4022
4023
|
return null;
|
|
4023
4024
|
} catch (error) {
|
|
4024
|
-
logger17.error("Failed to determine CLI directory:"
|
|
4025
|
+
logger17.error({ error }, "Failed to determine CLI directory:");
|
|
4025
4026
|
return null;
|
|
4026
4027
|
}
|
|
4027
4028
|
}
|
|
@@ -4178,7 +4179,7 @@ function isRunningFromLocalCli() {
|
|
|
4178
4179
|
const isInLocalCli = path18.resolve(currentScriptPath) === path18.resolve(expectedLocalCliPath);
|
|
4179
4180
|
return isInLocalCli;
|
|
4180
4181
|
} catch (error) {
|
|
4181
|
-
logger18.debug("Error checking if running from local CLI:"
|
|
4182
|
+
logger18.debug({ error }, "Error checking if running from local CLI:");
|
|
4182
4183
|
return false;
|
|
4183
4184
|
}
|
|
4184
4185
|
}
|
|
@@ -4236,7 +4237,7 @@ async function delegateToLocalCli(localCliPath) {
|
|
|
4236
4237
|
resolve2();
|
|
4237
4238
|
});
|
|
4238
4239
|
childProcess.on("error", (error) => {
|
|
4239
|
-
logger18.error(`Failed to start local CLI
|
|
4240
|
+
logger18.error({ message: error.message }, `Failed to start local CLI:`);
|
|
4240
4241
|
reject(error);
|
|
4241
4242
|
});
|
|
4242
4243
|
const forwardSignal = (signal) => {
|
|
@@ -4535,10 +4536,10 @@ async function testPublishToNpm(cwd) {
|
|
|
4535
4536
|
logger20.info("[\u2713] Have publish permissions");
|
|
4536
4537
|
return true;
|
|
4537
4538
|
} catch (error) {
|
|
4538
|
-
logger20.error("Test failed:"
|
|
4539
|
+
logger20.error({ error }, "Test failed:");
|
|
4539
4540
|
if (error instanceof Error) {
|
|
4540
|
-
logger20.error(
|
|
4541
|
-
logger20.error(
|
|
4541
|
+
logger20.error({ message: error.message }, "Error message:");
|
|
4542
|
+
logger20.error({ stack: error.stack }, "Error stack:");
|
|
4542
4543
|
}
|
|
4543
4544
|
return false;
|
|
4544
4545
|
}
|
|
@@ -4620,7 +4621,7 @@ async function testPublishToGitHub(packageJson, username) {
|
|
|
4620
4621
|
logger20.info("[\u2713] Can create and update files");
|
|
4621
4622
|
return true;
|
|
4622
4623
|
} catch (error) {
|
|
4623
|
-
logger20.error("Test failed:"
|
|
4624
|
+
logger20.error({ error }, "Test failed:");
|
|
4624
4625
|
return false;
|
|
4625
4626
|
}
|
|
4626
4627
|
}
|
|
@@ -4633,7 +4634,7 @@ async function publishToNpm(cwd) {
|
|
|
4633
4634
|
await bunExecInherit("npm", ["publish"], { cwd });
|
|
4634
4635
|
return true;
|
|
4635
4636
|
} catch (error) {
|
|
4636
|
-
logger20.error("Failed to publish to npm:"
|
|
4637
|
+
logger20.error({ error }, "Failed to publish to npm:");
|
|
4637
4638
|
return false;
|
|
4638
4639
|
}
|
|
4639
4640
|
}
|
|
@@ -4761,7 +4762,7 @@ async function publishToGitHub(cwd, packageJson, username, skipRegistry = false,
|
|
|
4761
4762
|
insertIndex = i;
|
|
4762
4763
|
break;
|
|
4763
4764
|
}
|
|
4764
|
-
const match = line.match(/^\s*"(
|
|
4765
|
+
const match = line.match(/^\s*"([^"]+)"/);
|
|
4765
4766
|
if (match) {
|
|
4766
4767
|
const existingPackage = match[1];
|
|
4767
4768
|
if (registryPackageName < existingPackage) {
|
|
@@ -4782,7 +4783,25 @@ async function publishToGitHub(cwd, packageJson, username, skipRegistry = false,
|
|
|
4782
4783
|
logger20.error("Could not find insertion point in index.json");
|
|
4783
4784
|
return false;
|
|
4784
4785
|
}
|
|
4785
|
-
lines.
|
|
4786
|
+
const isLastEntry = lines[insertIndex].trim() === "}";
|
|
4787
|
+
if (isLastEntry) {
|
|
4788
|
+
let prevLineIndex = insertIndex - 1;
|
|
4789
|
+
while (prevLineIndex >= 0 && lines[prevLineIndex].trim() === "") {
|
|
4790
|
+
prevLineIndex--;
|
|
4791
|
+
}
|
|
4792
|
+
if (prevLineIndex >= 0) {
|
|
4793
|
+
const prevLine = lines[prevLineIndex];
|
|
4794
|
+
const prevTrim = prevLine.trim();
|
|
4795
|
+
const isEntryLine = /^"[^"]+"\s*:/.test(prevTrim);
|
|
4796
|
+
if (isEntryLine && !prevTrim.endsWith(",")) {
|
|
4797
|
+
lines[prevLineIndex] = prevLine.trimEnd() + ",";
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
const newEntryWithoutComma = newEntry.replace(/,\s*$/, "");
|
|
4801
|
+
lines.splice(insertIndex, 0, newEntryWithoutComma);
|
|
4802
|
+
} else {
|
|
4803
|
+
lines.splice(insertIndex, 0, newEntry);
|
|
4804
|
+
}
|
|
4786
4805
|
const updatedContent = lines.join("\n");
|
|
4787
4806
|
const indexUpdated = await updateFile(
|
|
4788
4807
|
token,
|
|
@@ -4858,11 +4877,11 @@ import * as fs9 from "fs";
|
|
|
4858
4877
|
import * as path20 from "path";
|
|
4859
4878
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
4860
4879
|
var safeLogger = {
|
|
4861
|
-
debug: logger21?.debug
|
|
4862
|
-
info: logger21?.info
|
|
4863
|
-
warn: logger21?.warn
|
|
4864
|
-
error: logger21?.error
|
|
4865
|
-
success: logger21?.success
|
|
4880
|
+
debug: logger21?.debug?.bind(logger21) ?? console.debug,
|
|
4881
|
+
info: logger21?.info.bind(logger21) ?? console.log,
|
|
4882
|
+
warn: logger21?.warn.bind(logger21) ?? console.warn,
|
|
4883
|
+
error: logger21?.error?.bind(logger21) ?? console.error,
|
|
4884
|
+
success: logger21?.success?.bind(logger21) ?? console.log
|
|
4866
4885
|
};
|
|
4867
4886
|
var TestRunner = class {
|
|
4868
4887
|
runtime;
|
|
@@ -4916,8 +4935,12 @@ var TestRunner = class {
|
|
|
4916
4935
|
let processedFilter = filter;
|
|
4917
4936
|
if (processedFilter.endsWith(".test.ts") || processedFilter.endsWith(".test.js")) {
|
|
4918
4937
|
processedFilter = processedFilter.slice(0, -8);
|
|
4938
|
+
} else if (processedFilter.endsWith(".spec.ts") || processedFilter.endsWith(".spec.js")) {
|
|
4939
|
+
processedFilter = processedFilter.slice(0, -8);
|
|
4919
4940
|
} else if (processedFilter.endsWith(".test")) {
|
|
4920
4941
|
processedFilter = processedFilter.slice(0, -5);
|
|
4942
|
+
} else if (processedFilter.endsWith(".spec")) {
|
|
4943
|
+
processedFilter = processedFilter.slice(0, -5);
|
|
4921
4944
|
}
|
|
4922
4945
|
return name.toLowerCase().includes(processedFilter.toLowerCase());
|
|
4923
4946
|
}
|
|
@@ -4991,9 +5014,9 @@ Running test suite: ${suite.name}`);
|
|
|
4991
5014
|
export const myPlugin = {
|
|
4992
5015
|
name: "my-plugin",
|
|
4993
5016
|
description: "My awesome plugin",
|
|
4994
|
-
|
|
5017
|
+
|
|
4995
5018
|
// ... other plugin properties ...
|
|
4996
|
-
|
|
5019
|
+
|
|
4997
5020
|
tests: [
|
|
4998
5021
|
{
|
|
4999
5022
|
name: "Basic Tests",
|
|
@@ -5039,14 +5062,14 @@ export const myPlugin = {
|
|
|
5039
5062
|
return;
|
|
5040
5063
|
}
|
|
5041
5064
|
try {
|
|
5042
|
-
const e2eDir = path20.join(process.cwd(), "e2e");
|
|
5065
|
+
const e2eDir = path20.join(process.cwd(), "src", "__tests__", "e2e");
|
|
5043
5066
|
if (!fs9.existsSync(e2eDir)) {
|
|
5044
|
-
safeLogger.debug("No
|
|
5067
|
+
safeLogger.debug("No test files found in src/__tests__/e2e/, skipping e2e tests");
|
|
5045
5068
|
return;
|
|
5046
5069
|
}
|
|
5047
5070
|
safeLogger.info("\nRunning e2e tests...");
|
|
5048
5071
|
const walk = (dir) => fs9.readdirSync(dir, { withFileTypes: true }).flatMap(
|
|
5049
|
-
(entry) => entry.isDirectory() ? walk(path20.join(dir, entry.name)) : entry.name.match(/\.test\.(
|
|
5072
|
+
(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
5073
|
);
|
|
5051
5074
|
const testFiles = walk(e2eDir);
|
|
5052
5075
|
if (testFiles.length === 0) {
|
|
@@ -5054,16 +5077,17 @@ export const myPlugin = {
|
|
|
5054
5077
|
return;
|
|
5055
5078
|
}
|
|
5056
5079
|
safeLogger.info(`Found ${testFiles.length} e2e test files`);
|
|
5057
|
-
const distE2eDir = path20.join(process.cwd(), "dist", "e2e");
|
|
5080
|
+
const distE2eDir = path20.join(process.cwd(), "dist", "__tests__", "e2e");
|
|
5058
5081
|
const hasDistE2e = fs9.existsSync(distE2eDir);
|
|
5059
5082
|
for (const testFile of testFiles) {
|
|
5060
5083
|
try {
|
|
5061
5084
|
const fileName = path20.basename(testFile);
|
|
5062
|
-
const fileNameWithoutExt =
|
|
5085
|
+
const fileNameWithoutExt = fileName.replace(/\.(test|spec|e2e)\.(ts|js|tsx|jsx)$/, "");
|
|
5063
5086
|
safeLogger.info(`Loading test file: ${fileName}`);
|
|
5064
5087
|
let moduleImportPath = testFile;
|
|
5065
5088
|
if (hasDistE2e) {
|
|
5066
|
-
const
|
|
5089
|
+
const relativePath = path20.relative(e2eDir, testFile);
|
|
5090
|
+
const distFile = path20.join(distE2eDir, relativePath.replace(/\.ts$/, ".js"));
|
|
5067
5091
|
if (fs9.existsSync(distFile)) {
|
|
5068
5092
|
moduleImportPath = distFile;
|
|
5069
5093
|
safeLogger.debug(`Using compiled version from ${distFile}`);
|
|
@@ -5074,7 +5098,7 @@ export const myPlugin = {
|
|
|
5074
5098
|
}
|
|
5075
5099
|
} else {
|
|
5076
5100
|
safeLogger.warn(
|
|
5077
|
-
`No dist/e2e directory found. E2E tests should be compiled first. Import may fail.`
|
|
5101
|
+
`No dist/__tests__/e2e directory found. E2E tests should be compiled first. Import may fail.`
|
|
5078
5102
|
);
|
|
5079
5103
|
}
|
|
5080
5104
|
let testModule;
|
|
@@ -5311,9 +5335,7 @@ async function getLocalRegistryIndex() {
|
|
|
5311
5335
|
}
|
|
5312
5336
|
}
|
|
5313
5337
|
} catch (error) {
|
|
5314
|
-
logger22.debug(
|
|
5315
|
-
`Failed to fetch registry from public URL: ${error instanceof Error ? error.message : String(error)}`
|
|
5316
|
-
);
|
|
5338
|
+
logger22.debug({ error }, "Failed to fetch registry from public URL:");
|
|
5317
5339
|
}
|
|
5318
5340
|
try {
|
|
5319
5341
|
if (existsSync18(REGISTRY_CACHE_FILE)) {
|
|
@@ -5323,9 +5345,7 @@ async function getLocalRegistryIndex() {
|
|
|
5323
5345
|
return cachedRegistry;
|
|
5324
5346
|
}
|
|
5325
5347
|
} catch (error) {
|
|
5326
|
-
logger22.debug(
|
|
5327
|
-
`Failed to read registry cache: ${error instanceof Error ? error.message : String(error)}`
|
|
5328
|
-
);
|
|
5348
|
+
logger22.debug({ error }, "Failed to read registry cache:");
|
|
5329
5349
|
}
|
|
5330
5350
|
const directoryInfo = detectDirectoryType(process.cwd());
|
|
5331
5351
|
if (directoryInfo.monorepoRoot) {
|
|
@@ -5340,9 +5360,7 @@ async function getLocalRegistryIndex() {
|
|
|
5340
5360
|
}
|
|
5341
5361
|
return { ...DEFAULT_REGISTRY, ...localRegistry };
|
|
5342
5362
|
} catch (error) {
|
|
5343
|
-
logger22.debug(
|
|
5344
|
-
`Failed to discover local plugins: ${error instanceof Error ? error.message : String(error)}`
|
|
5345
|
-
);
|
|
5363
|
+
logger22.debug({ error }, "Failed to discover local plugins:");
|
|
5346
5364
|
}
|
|
5347
5365
|
}
|
|
5348
5366
|
return DEFAULT_REGISTRY;
|
|
@@ -5532,13 +5550,14 @@ async function getPackageDetails(packageName) {
|
|
|
5532
5550
|
try {
|
|
5533
5551
|
return JSON.parse(text4);
|
|
5534
5552
|
} catch {
|
|
5535
|
-
logger22.warn(
|
|
5553
|
+
logger22.warn(
|
|
5554
|
+
{ packageName, text: text4 },
|
|
5555
|
+
`Invalid JSON response received from registry for package`
|
|
5556
|
+
);
|
|
5536
5557
|
return null;
|
|
5537
5558
|
}
|
|
5538
5559
|
} catch (error) {
|
|
5539
|
-
logger22.warn(
|
|
5540
|
-
`Failed to fetch package details from registry: ${error instanceof Error ? error.message : String(error)}`
|
|
5541
|
-
);
|
|
5560
|
+
logger22.warn({ error }, "Failed to fetch package details from registry:");
|
|
5542
5561
|
return null;
|
|
5543
5562
|
}
|
|
5544
5563
|
}
|
|
@@ -5554,14 +5573,16 @@ async function getBestPluginVersion(packageName, runtimeVersion) {
|
|
|
5554
5573
|
const [packageMajor, packageMinor] = packageDetails.runtimeVersion.split(".").map(Number);
|
|
5555
5574
|
if (runtimeMajor !== packageMajor) {
|
|
5556
5575
|
logger22.warn(
|
|
5557
|
-
|
|
5576
|
+
{ packageName, expected: packageDetails.runtimeVersion, actual: runtimeVersion },
|
|
5577
|
+
`Plugin runtime version mismatch`
|
|
5558
5578
|
);
|
|
5559
5579
|
logger22.warn("This may cause compatibility issues.");
|
|
5560
5580
|
return packageDetails.latestVersion;
|
|
5561
5581
|
}
|
|
5562
5582
|
if (runtimeMinor !== packageMinor) {
|
|
5563
5583
|
logger22.warn(
|
|
5564
|
-
|
|
5584
|
+
{ packageName, expected: packageDetails.runtimeVersion, actual: runtimeVersion },
|
|
5585
|
+
`Plugin runtime minor version differs`
|
|
5565
5586
|
);
|
|
5566
5587
|
}
|
|
5567
5588
|
return packageDetails.latestVersion;
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
selectEmbeddingModel,
|
|
10
10
|
validateCreateOptions,
|
|
11
11
|
validateProjectName
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HOC6B3QV.js";
|
|
13
13
|
import {
|
|
14
14
|
displayBanner,
|
|
15
15
|
handleError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-N5G5XSGP.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
|
}
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
setAgentConfig,
|
|
6
6
|
startAgent,
|
|
7
7
|
stopAgent
|
|
8
|
-
} from "../../../chunk-
|
|
9
|
-
import "../../../chunk-
|
|
8
|
+
} from "../../../chunk-N5G5XSGP.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-N5G5XSGP.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-HOC6B3QV.js";
|
|
12
|
+
import "../../../chunk-N5G5XSGP.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-NSNXXD3I.js";
|
|
4
|
+
import "../../chunk-HOC6B3QV.js";
|
|
5
|
+
import "../../chunk-N5G5XSGP.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
|