export declare const MEDIA_GENERATION_CONTRACT = "\n---\n\n## Media generation contract (load-bearing - overrides softer wording above)\n\nThis project is a **non-web** surface (image / video / audio). The unifying\ncontract is: skill workflow + project metadata tell you WHAT to make; one\nshell command through `OD_NODE_BIN` + `OD_BIN` is HOW you actually produce bytes.\nDo not try to embed binary content inside `<artifact>` tags, and do not\nwrite image/video/audio bytes by hand. Always call out to the dispatcher.\n\nThe daemon injects these environment variables for agent sessions:\n\n- `OD_NODE_BIN` - absolute path to the Node-compatible runtime that started the daemon.\n- `OD_BIN` - absolute path to the OD CLI script. On POSIX shells run with `\"$OD_NODE_BIN\" \"$OD_BIN\" ...`.\n- `OD_PROJECT_ID` - active project id. Pass it as `--project \"$OD_PROJECT_ID\"`.\n- `OD_PROJECT_DIR` - active project files directory.\n- `OD_DAEMON_URL` - base URL of the local daemon.\n\nRun media generation through the dispatcher:\n\n```bash\n\"$OD_NODE_BIN\" \"$OD_BIN\" media generate \\\n  --project \"$OD_PROJECT_ID\" \\\n  --surface <image|video|audio> \\\n  --model <model-id> \\\n  --output <filename> \\\n  --prompt \"<full prompt>\" \\\n  [--aspect 1:1|16:9|9:16|4:3|3:4] \\\n  [--length <seconds>] \\\n  [--duration <seconds>] \\\n  [--prompt-influence <0-1>] \\\n  [--loop] \\\n  [--audio-kind music|speech|sfx] \\\n  [--voice <provider-voice-id>] \\\n  [--language <lang>]\n```\n\nAlways quote the prompt value. Never splice unquoted user text into the\ncommand line. The command returns JSON containing either a final\n`file` object or a `taskId` for long-running renders.\n\nFor long-running renders, continue with:\n\n```bash\n\"$OD_NODE_BIN\" \"$OD_BIN\" media wait <taskId> --since <nextSince>\n```\n\n`media wait` exits `0` when done, `2` when still running, and `5`\nwhen the provider task failed. Exit code `2` is not an error; keep polling\nwith the returned `nextSince`.\n\nDo not emit `<artifact>` blocks for media. The artifact is the generated\nfile written by the dispatcher, and the file viewer will render images,\nvideos, and audio automatically. If generation fails, surface the actual\nstderr / exit status instead of inventing a diagnosis.\n\nFor `elevenlabs-sfx`, do not pass `--voice`; the sound description belongs\nin `--prompt`. Describe the audible event itself: source/action, materials,\nintensity, space, timing, tail/decay, and anything to avoid. Keep ElevenLabs SFX `--prompt` under 450 characters; target 180-320 characters so the dispatcher\ndoes not waste a generation attempt on provider validation. For music-like\nrequests on `elevenlabs-sfx`, produce a short sound-effects loop or texture,\nnot a full song arrangement. Example: \"Seamless lo-fi felt-piano cafe loop, slow lazy jazz 7th/9th chords, subtle tape hiss, intimate room, soft decay, no vocals, no drums.\" Use\n`--prompt-influence 0.7` for user-specified SFX so ElevenLabs follows the\nprompt more closely; lower it only for exploratory/noisier variation. Add\n`--loop` only for seamless ambience / background / game loop audio, and\nmention loop intent in the prompt as well. SFX duration is capped at 30 seconds\nby the provider.\n\nSpecial case: `hyperframes-html` video projects may author composition HTML\nin `.hyperframes-cache/`, then render through the daemon-backed dispatcher\nwith `--composition-dir` so Chrome-bound rendering runs outside the agent\nsandbox.\n";
//# sourceMappingURL=media-contract.d.ts.map