Some checks failed
ci / Validate workspace (push) Successful in 12m32s
landing-page-ci / Validate landing page (push) Successful in 9m41s
landing-page-deploy / Deploy landing page (push) Failing after 5m23s
github-metrics / Generate repository metrics SVG (push) Failing after 2m6s
refresh-contributors-wall / Refresh contributors wall cache bust (push) Failing after 12s
This repository contains the open-design daemon CLI source code, built and packaged at https://helix-mind.ai/cli/open-design/latest.tgz for use by the HelixMind /design slash command. Licenses: Apache-2.0 (root) + MIT (skills/*)
60 lines
2.4 KiB
TypeScript
60 lines
2.4 KiB
TypeScript
export const MEDIA_GENERATION_CONTRACT = `
|
|
---
|
|
|
|
## Media generation contract (load-bearing - overrides softer wording above)
|
|
|
|
This project is a **non-web** surface (image / video / audio). The unifying
|
|
contract is: skill workflow + project metadata tell you WHAT to make; one
|
|
shell command through \`OD_NODE_BIN\` + \`OD_BIN\` is HOW you actually produce bytes.
|
|
Do not try to embed binary content inside \`<artifact>\` tags, and do not
|
|
write image/video/audio bytes by hand. Always call out to the dispatcher.
|
|
|
|
The daemon injects these environment variables for agent sessions:
|
|
|
|
- \`OD_NODE_BIN\` - absolute path to the Node-compatible runtime that started the daemon.
|
|
- \`OD_BIN\` - absolute path to the OD CLI script. On POSIX shells run with \`"$OD_NODE_BIN" "$OD_BIN" ...\`.
|
|
- \`OD_PROJECT_ID\` - active project id. Pass it as \`--project "$OD_PROJECT_ID"\`.
|
|
- \`OD_PROJECT_DIR\` - active project files directory.
|
|
- \`OD_DAEMON_URL\` - base URL of the local daemon.
|
|
|
|
Run media generation through the dispatcher:
|
|
|
|
\`\`\`bash
|
|
"$OD_NODE_BIN" "$OD_BIN" media generate \\
|
|
--project "$OD_PROJECT_ID" \\
|
|
--surface <image|video|audio> \\
|
|
--model <model-id> \\
|
|
--output <filename> \\
|
|
--prompt "<full prompt>" \\
|
|
[--aspect 1:1|16:9|9:16|4:3|3:4] \\
|
|
[--length <seconds>] \\
|
|
[--duration <seconds>] \\
|
|
[--audio-kind music|speech|sfx] \\
|
|
[--voice <provider-voice-id>]
|
|
\`\`\`
|
|
|
|
Always quote the prompt value. Never splice unquoted user text into the
|
|
command line. The command returns JSON containing either a final
|
|
\`file\` object or a \`taskId\` for long-running renders.
|
|
|
|
For long-running renders, continue with:
|
|
|
|
\`\`\`bash
|
|
"$OD_NODE_BIN" "$OD_BIN" media wait <taskId> --since <nextSince>
|
|
\`\`\`
|
|
|
|
\`media wait\` exits \`0\` when done, \`2\` when still running, and \`5\`
|
|
when the provider task failed. Exit code \`2\` is not an error; keep polling
|
|
with the returned \`nextSince\`.
|
|
|
|
Do not emit \`<artifact>\` blocks for media. The artifact is the generated
|
|
file written by the dispatcher, and the file viewer will render images,
|
|
videos, and audio automatically. If generation fails, surface the actual
|
|
stderr / exit status instead of inventing a diagnosis.
|
|
|
|
Special case: \`hyperframes-html\` video projects may author composition HTML
|
|
in \`.hyperframes-cache/\`, then render through the daemon-backed dispatcher
|
|
with \`--composition-dir\` so Chrome-bound rendering runs outside the agent
|
|
sandbox.
|
|
`;
|