Files

71 lines
2.5 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const JOBS_FILE = path.join(process.env.HOME, '.openclaw/cron/jobs.json');
// V2: 자기평가를 출력 형식에 포함 (강제)
const SELF_REVIEW_V2 = `
**📊 자기평가 (아래 형식으로 반드시 출력):**
\`\`\`
✅/⚠️ 완성도: [X/5] (누락 항목 명시)
✅/⚠️ 정확성: [OK] or [WARNING: XXX]
✅/⚠️ 톤: [Jarvis] or [ChatGPT-like]
✅/⚠️ 간결성: [X emojis, Y lines]
💡 개선: [다음엔 XXX를 YYY하게]
\`\`\``;
const CRONS_TO_UPDATE = {
'b81588fa-5111-41fb-871f-d767dc1f783b': { name: 'Daily Stock Briefing' },
'b9662f08-36ee-4e6d-ab9d-fd2d48f21737': { name: '모닝 브리핑' },
'bd8e8994-3646-4f7a-b994-4f3ae9f1890a': { name: 'Daily Wrap-up' },
'cc9ddcf5-734c-4e8e-b0e0-51884f8a5196': { name: 'Trend Hunter' },
'41e625c8-59a5-4df5-bd97-2dbc5282eda7': { name: 'IT/AI 뉴스 브리핑' },
'6b2da787-7df8-49e8-b506-9139f66f86ca': { name: '조식 알림' },
'422b96a7-8931-43ba-84ce-a55b1b9a6477': { name: '취침 알림' },
'e16e5163-9caf-444b-b74d-0cbebaed013b': { name: '부부 약 먹기 알림' },
'dfa2bf81-fa94-45b2-a154-b7e4a78fc173': { name: '관훈 미확정 저녁' },
'270a5dc7-f19e-402f-ae3a-79c628a3cde8': { name: 'Monthly DCA Reminder' },
'22c071ae-598f-48da-b002-4d1fd395bf0a': { name: '실적 발표 캘린더' },
'41e5363d-6b32-48c2-9bf6-738d950c6d6c': { name: '주간 요약 리포트' },
'ddef1a57-21e8-4614-991c-a3f29177e8ee': { name: '월간 비용 추적' },
'a98f06f7-a084-4993-b352-358d00ed340f': { name: 'TQQQ 15분 모니터링' }
};
try {
const data = JSON.parse(fs.readFileSync(JOBS_FILE, 'utf8'));
let updated = 0;
data.jobs.forEach(job => {
const config = CRONS_TO_UPDATE[job.id];
if (!config) return;
let message = job.payload.message || '';
// V1 자기평가 섹션 제거 (---\n\n**🔍 자기평가 ... 로 시작하는 부분)
const v1Pattern = /\n---\n\n\*\*🔍 자기평가[\s\S]*$/;
if (v1Pattern.test(message)) {
message = message.replace(v1Pattern, '');
console.log(`[REMOVE V1] ${config.name}`);
}
// V2 자기평가 추가
message = message + SELF_REVIEW_V2;
job.payload.message = message;
job.updatedAtMs = Date.now();
updated++;
console.log(`[UPDATE V2] ${config.name}`);
});
fs.writeFileSync(JOBS_FILE, JSON.stringify(data, null, 2));
console.log(`\n${updated}개 크론 V2 업데이트 완료`);
} catch (error) {
console.error('❌ 에러:', error.message);
process.exit(1);
}