Lines 1-37javascript
2import { readFileSync, existsSync, readdirSync, statSync } from "fs";
3import { resolve, basename, extname } from "path";
4var PRIMARY_AGENT_ID = "agent";
5function moduleSpecifier(filePath, hotReload) {
6 if (!hotReload) return filePath;
7 return `${filePath}?v=${Date.now()}`;
9async function loadAgent(agentDir, options = {}) {
10 const absDir = resolve(process.cwd(), agentDir);
11 if (!existsSync(absDir)) {
12 throw new Error(`Agent directory not found: ${absDir}`);
14 const agentFile = resolve(absDir, "agent.ts");
15 let config = { model: "gpt-4o" };
16 if (existsSync(agentFile)) {
18 const mod = await import(moduleSpecifier(agentFile, options.hotReload));
19 if (mod.default) {
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/chunk-QSJIS2NL.jsView on unpkg · L17 20 config = { ...config, ...mod.default };
23 console.warn(`[arcie] Failed to load agent.ts: ${err.message}. Using defaults.`);
26 const instructions = loadInstructionsFile(absDir);
27 const tools = await loadDirectory(absDir, "tools", options);
28 const skills = await loadDirectory(absDir, "skills", options);
29 const hooks = await loadDirectory(absDir, "hooks", options);
30 const channels = await loadDirectory(absDir, "channels", options);
31 const connections = await loadDirectory(absDir, "connections", options);
32 const schedules = await loadDirectory(absDir, "schedules", options);
33 const directorySubagents = await loadSubagents(absDir, options);
34 const inlineSubagents = materializeInlineSubagents(config.subagents);
35 const subagents = { ...inlineSubagents, ...directorySubagents };
36 const session = await loadSessionConfig(absDir, options);
37 const policy = await loadPolicyConfig(absDir, options);