NAVIGATION
ELOWEN DOCUMENTATION

Last updated: 10 October 2026

Browse documentation · image-gen implementation
Developer reference

image-gen implementation

Developer reference

The minimum core release must contain the exported elowen-plugin-shared/imageRuntime subpath and its declarations. The first containing release is recorded in each plugin's requiresCore manifest field and enforced by the existing marketplace compatibility gate before installation. The shared API number alone does not identify newly added subpaths. GenerateImage and EditImage each create the shared runtime once during registration; without a usable provider they register no tool. The runtime performs one host image render and one project-file write without polling or automatic sharing.

The supported image runtime entry is createImageRuntime(ctx) from elowen-plugin-shared/imageRuntime. Image-gen and Image-edit call it during registration. It returns null when no usable configured provider exists, so no image tool is registered; otherwise runtime.model preserves the trimmed configured model id, including an OpenRouter namespace, or selects the existing OpenAI/Codex default. A connected Codex account does not need an API key. Core owns rendering credentials and project file authority; providerUsable and resolveModel are private implementation functions. Creating the runtime does not render an image; GenerateImage or EditImage invokes the provider through runtime.render.

The supported image runtime entry is createImageRuntime(ctx) from elowen-plugin-shared/imageRuntime. Image-gen and Image-edit call it during registration. It returns null when no usable configured provider exists, so no image tool is registered; otherwise runtime.model preserves the trimmed configured model id, including an OpenRouter namespace, or selects the existing OpenAI/Codex default. A connected Codex account does not need an API key. Core owns rendering credentials and project file authority; providerUsable and resolveModel are private implementation functions. Creating the runtime does not render an image; GenerateImage or EditImage invokes the provider through runtime.render.

Image plugins require the first core release whose shipped archive exports and includes imageRuntime and its host image contract. Shared API 8 alone does not establish subpath availability, and released core 0.29.82 is not sufficient. requiresCore records the actual containing release and the marketplace checks the archived manifest before accepting a candidate. The paired registry tests stage the real image plugin bytes through prepareCandidate and load both entries through loadPlugins. A capable source checkout with an unchanged released version is not proof that an older published archive is capable.