# HEARTBEAT.md — רשימת ביצוע לכל ריצה ## שפה — כלל עליון **כל הפלט שלך חייב להיות בעברית בלבד.** זה כולל: - Comments ב-Paperclip - הודעות סטטוס - תיאורי שגיאות - סיכומים ודיווחים - חשיבה פנימית (thinking) אין יוצאים מן הכלל. גם שמות tools, פקודות, ונתיבי קבצים — ההסבר סביבם בעברית. --- הרץ את הרשימה הזו בכל heartbeat. ## 1. זיהוי - וודא שאתה יודע מי אתה: `$PAPERCLIP_AGENT_ID` - בדוק הקשר: `$PAPERCLIP_TASK_ID`, `$PAPERCLIP_WAKE_REASON` ## 2. בדוק תיבת דואר ```bash curl -s -H "Authorization: Bearer $PAPERCLIP_API_KEY" "$PAPERCLIP_API_URL/api/agents/me/inbox-lite" ``` - תעדוף: `in_progress` קודם, אחר כך `todo` - אם `PAPERCLIP_TASK_ID` מוגדר — תעדף אותו ## 2b. קרא תגובות אחרונות על ה-issue לפני שאתה מתחיל לעבוד, בדוק אם יש comments חדשים מחיים: ```bash curl -s -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}/comments" | jq '[.[] | select(.authorUserId != null)] | .[-3:]' ``` - אם יש comment מחיים (authorUserId, לא authorAgentId) שנכתב **אחרי** ה-comment האחרון שלך — **קרא אותו בתשומת לב** - אם ה-comment מכיל הוראות עבודה — **עקוב אחריהן** - אם ה-comment מזכיר קובץ שהועלה — בדוק attachments (ראה 2c) - אם ה-comment מבקש להעביר לסוכן אחר — **עצור**, פרסם comment שמאשר, והעֵר את ה-CEO ## 2c. בדוק קבצים מצורפים אם comment מחיים מזכיר קובץ או טיוטה: ```bash PGPASSWORD="paperclip" psql -h 127.0.0.1 -p 54329 -U paperclip -d paperclip -c " SELECT a.original_filename, a.content_type, a.object_key, a.byte_size FROM issue_attachments ia JOIN assets a ON a.id = ia.asset_id WHERE ia.issue_id = '{issue-id}' ORDER BY ia.created_at DESC LIMIT 5;" ``` - נתיב מלא לקובץ: `/home/chaim/.paperclip/instances/default/data/storage/{object_key}` - קבצי DOCX — קרא אותם עם `Read` - השתמש בתוכן הקובץ כקלט לעבודתך ## 3. Checkout ועבודה ```bash curl -s -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}/checkout" ``` - עבוד על המשימה לפי ההוראות ב-AGENTS.md שלך - השתמש בכלים המשפטיים (legal-ai MCP) ## 4. דיווח — חובה! **לפני שאתה מסיים, תמיד:** ### 4א. פרסם comment על ה-issue ```bash curl -s -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ -H "Content-Type: application/json" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}/comments" \ -d '{"body": "סיכום העבודה..."}' ``` ### 4ב. קבע סטטוס — done או blocked **אם המשימה הושלמה בהצלחה** (כל המסמכים חולצו, כל הבדיקות עברו, אין חסימות): ```bash curl -s -X PATCH -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ -H "Content-Type: application/json" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}" \ -d '{"status": "done"}' ``` **אם המשימה נכשלה או חסומה** (מסמך לא חולץ, timeout, חוסר מידע, שגיאה שלא ניתנת לפתרון): ```bash curl -s -X PATCH -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ -H "Content-Type: application/json" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}" \ -d '{"status": "blocked"}' ``` **אסור** לסיים issue כ-"done" אם יש כשל שלא טופל. "done" = הכל הושלם בהצלחה. אם משהו נכשל — "blocked". ### 4ג. העֵר את העוזר המשפטי (CEO) — חובה! אחרי כל סיום משימה (done או blocked), **העֵר את העוזר המשפטי** כדי שיבדוק תוצאות ויחליט על הצעד הבא: ```bash curl -s -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ -H "Content-Type: application/json" \ "$PAPERCLIP_API_URL/api/agents/752cebdd-6748-4a04-aacd-c7ab0294ef33/wake" \ -d '{"reason": "סוכן [שמך] סיים משימה [issue-id] בסטטוס [done/blocked]. נדרשת בדיקה והחלטה על הצעד הבא."}' ``` אם ה-API הזה לא עובד, השתמש ב-DB ישירות: ```bash PGPASSWORD="paperclip" psql -h 127.0.0.1 -p 54329 -U paperclip -d paperclip -c " INSERT INTO agent_wakeup_requests (company_id, agent_id, source, reason, status, requested_by_actor_type) VALUES ( (SELECT company_id FROM agents WHERE id = '$PAPERCLIP_AGENT_ID'), '752cebdd-6748-4a04-aacd-c7ab0294ef33', 'agent_completion', 'סוכן סיים משימה — נדרשת בדיקה והחלטה על הצעד הבא', 'queued', 'agent' );" ``` ## 5. התראת מייל — כשנדרשת תשובה אנושית **כשהתוצאה דורשת החלטה או תשובה של חיים**, שלח מייל: ```bash python3 /home/chaim/legal-ai/scripts/notify.py \ "נדרשת תשובתך — [תיאור קצר]" \ "תוכן ההודעה עם סיכום מה נדרש" ``` **מתי לשלוח — תמיד:** - **סיום כל משימה** — עם סיכום קצר של מה בוצע - בקשה לקביעת תוצאה (דחייה/קבלה/חלקית) - בקשה לאישור כיוון נימוק - דוח QA שנכשל (צריך החלטה על תיקונים) - החלטה מוכנה לביקורת דפנה - כל מצב שדורש פעולה אנושית ולא יכול להתקדם לבד - שגיאה שלא ניתן לפתור ללא התערבות **מתי לא לשלוח:** - עדכוני סטטוס ביניים (רק בסיום) - שגיאות טכניות שאפשר לפתור לבד ## 6. Release ```bash curl -s -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ "$PAPERCLIP_API_URL/api/issues/{issue-id}/release" ```