84 lines
2.4 KiB
JavaScript
84 lines
2.4 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');
|
|
|
|
// 파일 기록 지시 생성 함수
|
|
function getFileRecordInstruction(cronName) {
|
|
return `
|
|
|
|
---
|
|
|
|
**📝 자기평가 기록 (필수):**
|
|
|
|
위 자기평가를 다음 파일에 저장하세요:
|
|
\`memory/self-review-$(date '+%Y-%m-%d').md\`
|
|
|
|
형식:
|
|
\`\`\`markdown
|
|
## HH:MM ${cronName}
|
|
|
|
[위 자기평가 내용 그대로 복사]
|
|
\`\`\`
|
|
|
|
**주의:**
|
|
- 현재 시각은 Asia/Seoul (KST) 기준입니다.
|
|
- 파일이 없으면 생성하고, 있으면 추가합니다.`;
|
|
}
|
|
|
|
// 자기평가 포함된 14개 크론
|
|
const CRONS_WITH_REVIEW = [
|
|
'b81588fa-5111-41fb-871f-d767dc1f783b', // Daily Stock Briefing
|
|
'b9662f08-36ee-4e6d-ab9d-fd2d48f21737', // 모닝 브리핑
|
|
'bd8e8994-3646-4f7a-b994-4f3ae9f1890a', // Daily Wrap-up
|
|
'cc9ddcf5-734c-4e8e-b0e0-51884f8a5196', // Trend Hunter
|
|
'41e625c8-59a5-4df5-bd97-2dbc5282eda7', // IT/AI 뉴스
|
|
'6b2da787-7df8-49e8-b506-9139f66f86ca', // 조식 알림
|
|
'422b96a7-8931-43ba-84ce-a55b1b9a6477', // 취침 알림
|
|
'e16e5163-9caf-444b-b74d-0cbebaed013b', // 약 먹기
|
|
'dfa2bf81-fa94-45b2-a154-b7e4a78fc173', // 관훈 저녁
|
|
'270a5dc7-f19e-402f-ae3a-79c628a3cde8', // Monthly DCA
|
|
'22c071ae-598f-48da-b002-4d1fd395bf0a', // 실적 발표
|
|
'41e5363d-6b32-48c2-9bf6-738d950c6d6c', // 주간 요약
|
|
'ddef1a57-21e8-4614-991c-a3f29177e8ee', // 월간 비용
|
|
'a98f06f7-a084-4993-b352-358d00ed340f' // TQQQ 15분
|
|
];
|
|
|
|
try {
|
|
const data = JSON.parse(fs.readFileSync(JOBS_FILE, 'utf8'));
|
|
|
|
let updated = 0;
|
|
|
|
data.jobs.forEach(job => {
|
|
if (!CRONS_WITH_REVIEW.includes(job.id)) return;
|
|
|
|
let message = job.payload.message || '';
|
|
|
|
// 이미 파일 기록 지시가 있으면 스킵
|
|
if (message.includes('자기평가 기록 (필수)')) {
|
|
console.log(`[SKIP] ${job.name} - 이미 적용됨`);
|
|
return;
|
|
}
|
|
|
|
// 파일 기록 지시 생성
|
|
const instruction = getFileRecordInstruction(job.name);
|
|
|
|
// 메시지 끝에 추가
|
|
message = message + instruction;
|
|
|
|
job.payload.message = message;
|
|
job.updatedAtMs = Date.now();
|
|
updated++;
|
|
console.log(`[UPDATE] ${job.name}`);
|
|
});
|
|
|
|
fs.writeFileSync(JOBS_FILE, JSON.stringify(data, null, 2));
|
|
console.log(`\n✅ ${updated}개 크론에 파일 기록 지시 추가 완료`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ 에러:', error.message);
|
|
process.exit(1);
|
|
}
|