diff --git a/data/lemonv/agents/ceo/config.json b/data/lemonv/agents/ceo/config.json index 0088ed0..142a7a8 100644 --- a/data/lemonv/agents/ceo/config.json +++ b/data/lemonv/agents/ceo/config.json @@ -35,6 +35,7 @@ "maxProcesses": 5 }, "heartbeat": { - "intervalMinutes": 5 + "intervalMinutes": 5, + "enabled": true } } \ No newline at end of file diff --git a/data/lemonv/agents/coo/config.json b/data/lemonv/agents/coo/config.json index b4dad41..6a77c43 100644 --- a/data/lemonv/agents/coo/config.json +++ b/data/lemonv/agents/coo/config.json @@ -23,5 +23,9 @@ "maxMemoryMB": 512, "maxDiskMB": 1024, "maxProcesses": 5 + }, + "heartbeat": { + "intervalMinutes": 5, + "enabled": true } } \ No newline at end of file diff --git a/data/lemonv/agents/cto/config.json b/data/lemonv/agents/cto/config.json index afc3ccb..522026e 100644 --- a/data/lemonv/agents/cto/config.json +++ b/data/lemonv/agents/cto/config.json @@ -23,5 +23,9 @@ "maxMemoryMB": 512, "maxDiskMB": 1024, "maxProcesses": 5 + }, + "heartbeat": { + "intervalMinutes": 5, + "enabled": true } } \ No newline at end of file diff --git a/data/lemonv/agents/trend-hunter/config.json b/data/lemonv/agents/trend-hunter/config.json index a16c5ae..106e2fe 100644 --- a/data/lemonv/agents/trend-hunter/config.json +++ b/data/lemonv/agents/trend-hunter/config.json @@ -11,8 +11,18 @@ "cli": { "toolPolicy": { "mode": "restricted", - "allowedTools": ["WebFetch", "WebSearch", "Read", "Write", "Bash", "CronCreate"], - "forbiddenTools": ["Agent", "Edit"] + "allowedTools": [ + "WebFetch", + "WebSearch", + "Read", + "Write", + "Bash", + "CronCreate" + ], + "forbiddenTools": [ + "Agent", + "Edit" + ] } }, "gateway": { @@ -28,5 +38,9 @@ "maxMemoryMB": 512, "maxDiskMB": 1024, "maxProcesses": 5 + }, + "heartbeat": { + "intervalMinutes": 5, + "enabled": true } } \ No newline at end of file diff --git a/data/lemonv/company.json b/data/lemonv/company.json index 280cd27..18b047d 100644 --- a/data/lemonv/company.json +++ b/data/lemonv/company.json @@ -2,9 +2,9 @@ "id": "lemonv", "name": "LemonV.cc", "description": "AI 互动玩具创新公司,通过 AI 技术创造具有情感交互能力的智能玩具,结合热点内容与经典 IP 打造沉浸式互动体验", - "status": "creating", + "status": "running", "createdAt": "2026-03-26T05:15:00.000Z", - "updatedAt": "2026-03-26T05:15:00.000Z", + "updatedAt": "2026-03-26T08:25:39.676Z", "createdBy": "master", "ceo": null, "sop": null, @@ -24,5 +24,6 @@ "运营与反馈:内容发布后根据数据反馈迭代优化" ] } - } -} + }, + "startedAt": "2026-03-26T08:25:39.676Z" +} \ No newline at end of file diff --git a/server/routes/company.js b/server/routes/company.js index 82775bf..2b495a9 100644 --- a/server/routes/company.js +++ b/server/routes/company.js @@ -194,7 +194,12 @@ router.put('/:companyId/agents/:agentId/heartbeat', (req, res) => { } const config = JSON.parse(fs.readFileSync(configPath, 'utf-8')); - if (!config.heartbeat) config.heartbeat = {}; + if (!config.heartbeat) config.heartbeat = { intervalMinutes: 15, enabled: false }; + + // 保证有合理的默认值 + if (config.heartbeat.intervalMinutes === undefined) config.heartbeat.intervalMinutes = 15; + if (config.heartbeat.enabled === undefined) config.heartbeat.enabled = false; + if (intervalMinutes !== undefined) config.heartbeat.intervalMinutes = Number(intervalMinutes); if (enabled !== undefined) config.heartbeat.enabled = Boolean(enabled); fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');