Files

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);
}