Use this when Alex gives repair notes for an existing video-story project. The director's cut overlays SCENE N · SHOT M, so Alex can say things like “repair scene 2 shot 4: make the dog face camera and keep the red jacket.”
Base:
BASE=http://localhost:4015
TOKEN="$HERMES_AUTOMATION_TOKEN"
Session-specific implementation notes and examples are kept in references/social-creative-telegram-repair.md. Consult it when working on Telegram-driven repair loops, review-video overlays, or frame-specific repairs.
Production map:
curl -sS "$BASE/api/hermes/projects/$PROJECT_ID/production-map" \
-H "Authorization: Bearer $TOKEN"
Repair:
curl -sS -X POST "$BASE/api/hermes/projects/$PROJECT_ID/repair" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"instructions": "...",
"shots": [{"scene_number": 2, "shot_number": 4}],
"regenerate_frames": true,
"regenerate_video": true,
"lipsync": true,
"directors_cut": true
}'
Status:
curl -sS "$BASE/api/hermes/projects/$PROJECT_ID/repair-status" \
-H "Authorization: Bearer $TOKEN"
Director's cut / review video:
# Legacy director's cut
curl -sS -X POST "$BASE/api/hermes/projects/$PROJECT_ID/assemble-directors-cut" \
-H "Authorization: Bearer $TOKEN"
# Preferred labeled review export: writes final_video_review.mp4 and overlays SCENE N · SHOT M + timing.
curl -sS -X POST "$BASE/api/hermes/projects/$PROJECT_ID/assemble-review-video" \
-H "Authorization: Bearer $TOKEN"
curl -sS "$BASE/api/hermes/projects/$PROJECT_ID/review-video" \
-H "Authorization: Bearer $TOKEN"
Single-frame repair for precise notes:
# Use when Alex asks for only a first/last frame, e.g. “last frame of the last shot”.
# 1) Resolve scene/shot from the production map or DB.
# 2) Set only the relevant *_frame_prompt_addition and clear only that frame URL + that shot video.
# 3) Generate only that frame.
curl -sS -X POST "$BASE/api/shots/$SHOT_ID/generate-single-frame" \
-H 'Content-Type: application/json' \
-d '{"frame_type":"last"}'
# 4) Regenerate only that shot video, then rebuild review/clean exports.
curl -sS -X POST "$BASE/api/shots/$SHOT_ID/generate-video"
curl -sS -X POST "$BASE/api/projects/$PROJECT_ID/assemble"
assemble-review-video export over the legacy director's cut: it creates a dedicated labeled review MP4 (final_video_review.mp4) with SCENE N · SHOT M overlays while preserving the clean final_video.mp4./repair endpoint first. Resolve the target shot, set only first_frame_prompt_addition or last_frame_prompt_addition, clear only that frame URL and that shot’s video URL/status, then run generate-single-frame and generate-video for that shot.vsedit:<verb>:<review_id>) and larger state should live in durable app/gateway state.uploads/<project>/export/temp even after a frame/shot is regenerated, especially when the remote object key/URL is overwritten in place. Cache validation must consider the shot’s current source clip/version, and manual verification should delete the affected shot_<start_time>*, normalized clip, and video_only.mp4 temp artifacts before rebuilding if needed.