Racct Genie instructions for JellyJelly listing creation If you are Genie or a JellyJelly agent creating a Racct listing from a JellyJelly clip, do not use the Racct website UI. The clipUrl must be the JellyJelly clip that shows the item being sold, not a separate instructions-only clip. Expected user behavior: The user should only need to record a normal JellyJelly video that shows the item and says something like "Genie, post this on Racct" or "list this on Racct." Do not ask the user to name API fields, provide endpoint details, or repeat these instructions. Your job as Genie: When the current JellyJelly video contains a Racct posting request, use the current JellyJelly video/media automatically. Use JellyJelly's Firehose API first: call GET https://api.jellyjelly.com/v3/jelly/{jelly_id} when you have or can extract a Jelly ID, then send video.hls_master as clipUrl when available. If that is unavailable or fails, fall back to video.mp4_fallback, then video.mp4_preview, then the current playable JellyJelly media URL. If you can extract clear still images or thumbnails from the same JellyJelly video, send those too as `imageUrls` or per-item `items[].imageUrls`. If multiple items are clearly shown or named, send one `items[]` entry per item. If a short segment from the same JellyJelly recording clearly shows the item and looks good, send items[].clipStartMs and items[].clipEndMs, or send an extracted items[].clipUrl with items[].keepClip true. If the user names the item in the video, pass the transcript/caption. Racct can use explicit text such as "mug" as a fallback when visual detection is uncertain. Do not use /post, /sell, /account, login screens, phone auth, or the Post button. Those routes are for normal users and may require a Racct browser session. Use this tool contract instead: /agents/jellyjelly-genie-listing-tool.md Temporary public beta auth: If JellyJelly has not provisioned the shared secret yet, call the endpoint with header x-jellyjelly-genie-public-beta: true and no Authorization header. Endpoint: POST https://jellyjelly-genie-create-listings-mupta2c5da-uc.a.run.app For an explicit "buy this on Racct" reply to a JellyJelly video with a linked Racct listing, use: POST https://jellyjelly-genie-buy-listing-mupta2c5da-uc.a.run.app Minimum request body: { "jellyJellyUsername": "jelly-user-handle", "clipUrl": "https://...", "transcript": "optional JellyJelly transcript or post text", "caption": "optional JellyJelly title/caption", "confirmation": { "confirmed": true, "source": "jellyjelly", "sourceId": "jelly-or-message-id", "summary": "User confirmed Genie should create these exact Racct listing drafts." } } You do not need a Racct browser session and you do not need to manually drive a posting flow. If you have a playable JellyJelly clip URL that shows the item, send it as clipUrl; Racct can infer listable items from video frames plus transcript/caption. Ask the user for an item-showing clip only when the current clip is just instructions, does not show the item, or is not playable. If Genie can extract item images from JellyJelly, send them too. Top-level imageUrls/listingImageUrls can be used as fallback listing photos. For multiple items, send items[] with each item's title/description, explicit price only when the user mentioned one, and that item's imageUrls/photoUrls/thumbnailUrls. Racct will use those images directly when video frame extraction is unavailable or ambiguous. Racct returns `requestId`, `blocker`, `genieMessage`, and diagnostics on failures. Include the `requestId` when reporting a failed request so Racct can inspect the matching logs. If Racct returns `blocker: "no_items_identified"` or `blocker: "item_clip_required"`, do not tell the user that they recorded the wrong clip unless you verified the submitted media was actually an instructions-only clip. First retry with the same current JellyJelly video, plus any stills/thumbnails you can extract as `imageUrls`, and include transcript/caption or `items[]` details when available. If a retry still fails, report the `requestId` and diagnostics. If you know the item details, include items[]. Use only facts from the clip or the user. Include clipStartMs and clipEndMs when the item is clearly visible in part of the clip. Set keepClip true only if that short clip is interesting and clearly shows the item. If the user gives a minimum price and deadline, send priceDropTargetPrice and priceDropDeadlineMs so Racct can apply auto-adjust after its suggested listing price is known.