"""Task instructions, one per (surface, mode). Served in the reset observation. These are the environment's own statement of the task, so every harness (the rollout script, a trainer, Claude over MCP) starts from the same wording, and a result is only comparable within one `PROMPT_VERSION`. """ from __future__ import annotations PROMPT_VERSION = "v5" # v5: images come from files through the editor's own insert/import command; v4: GUI coordinate systems and line breaks, target shown with the task, looking is free; v3: no in-editor Reference panel; v2: HTML stylesheets _GOAL = { "reference": ( "Recreate the target design as exactly as you can. The target image is shown " "{where}. Match every element's position, size, stacking order, font, size and colour." ), "description": ( "Build the design described below. There is no target image: read the brief, work out " "a layout that fits it, and use every asset and every line of copy it mentions.\n\n" "BRIEF\n{description}" ), } _CANVAS = ( "The canvas is {width}x{height} px. Coordinates are canvas pixels from the top-left corner; " "x/y is an element's top-left, before rotation. Elements stack back to front in the order " "they are added." ) _TEXT_RULES = ( "Text is typed, never pasted as an image. Text boxes do not wrap: put line breaks in the " "text as \\n. A text box's height follows its lines; its width sets the alignment box. " "Only the fonts in list_fonts exist." ) _SURFACE = { "tools": ( "You edit the canvas with tool calls: add_image, add_text, add_shape, update_element, " "reorder_element, align_elements, delete_element, duplicate_element, set_background, " "undo and redo. view_assets shows every asset with its id; view_canvas shows your " "current render; list_elements lists what is on the canvas. " + _TEXT_RULES ), "html": ( "You write the design as one HTML page and submit it with write_html. The page:\n" '