From 61a523b321a8379e3269cc2da76c6fc1eab0051a Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 24 Jun 2026 01:31:55 +0000 Subject: [PATCH] feat(video): build video generation -> ingest -> publish (flag-OFF) Builds the missing generation half of the video pipeline; the Meta Graph publish branches already existed gated behind ARIES_VIDEO_PUBLISH_ENABLED. Provider is Grok/xAI via Hermes (Aries sends a high-level request and never names the tool). Ships dormant: the flag stays OFF and IG video is inert until a Meta IG Business account is linked to the Page (#691). - schema: width_px/height_px/duration_seconds on creative_assets/posts/ scheduled_posts (+ migration 20260623120000); thread mediaMetadata from scheduled_posts -> worker -> scheduled-dispatch -> publishToMetaGraph (direct + composio seam), built only for a video surface with all 3 dims. - ingest: branch on type=generated_video / media_type=video -> write media_type, real aspect_ratio, and dims; logo-composite skips video. - synthesize: copy the linked asset's dims onto the posts row. - outbound: VIDEO_EXECUTION_CONTRACT + per-clip 9:16 brief, gated on the flag + videoRenderCount>0; byte-identical contextBlock when off. - publish: Composio FB feed-video (FACEBOOK_CREATE_VIDEO_POST, new publish_video op) + IG REELS/STORIES two-step container+publish; this also fixes the previously broken single-call IG branch. A pre-publish validateMediaForSurface throw is wrapped as ComposioToolError so it is classified never-posted (a raw MetaPublishError was mis-classified outcome-unknown). IG feed-video validated against reel 9:16 constraints. - dashboard: video assets render as