Skip to content

Commit 0135a0a

Browse files
committed
docs: document image generation runtime
1 parent f4d2748 commit 0135a0a

16 files changed

Lines changed: 27 additions & 0 deletions

src/image-generation/image-assets.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Tests image asset parsing, MIME sniffing, and OpenAI-compatible response conversion. */
12
import { describe, expect, it } from "vitest";
23
import {
34
generatedImageAssetFromDataUrl,

src/image-generation/image-assets.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Converts image provider base64/data-url payloads into generated or source image assets. */
12
import { canonicalizeBase64 } from "@openclaw/media-core/base64";
23
import { isRecord } from "@openclaw/normalization-core/record-coerce";
34
import {
@@ -11,6 +12,7 @@ const DEFAULT_IMAGE_FILE_PREFIX = "image";
1112

1213
// Image asset helpers for provider responses and source uploads. They normalize
1314
// base64/data-url inputs into in-memory assets with predictable filenames.
15+
/** Result of conservative image MIME sniffing for provider responses. */
1416
export type ImageMimeTypeDetection = {
1517
mimeType: string;
1618
extension: string;
@@ -33,6 +35,7 @@ function throwMalformedImageResponse(message: string | undefined): never | undef
3335
return undefined;
3436
}
3537

38+
/** Maps an image MIME type to a stable filename extension. */
3639
export function imageFileExtensionForMimeType(
3740
mimeType: string | undefined,
3841
fallback = "png",

src/image-generation/live-test-helpers.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Tests live image-generation helper parsing and provider selection. */
12
import { describe, expect, it } from "vitest";
23
import type { OpenClawConfig } from "../config/config.js";
34
import {

src/image-generation/live-test-helpers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Helpers for selecting image-generation providers and models in live tests. */
12
import { normalizeOptionalLowercaseString } from "@openclaw/normalization-core/string-coerce";
23
import type { OpenClawConfig } from "../config/types.openclaw.js";
34
import {

src/image-generation/model-ref.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Parses image-generation model references into provider/model components. */
12
import { parseGenerationModelRef } from "../../packages/media-generation-core/src/model-ref.js";
23

34
// Image model refs share the generic media-generation provider/model grammar:

src/image-generation/normalization.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Normalizes image generation request overrides against provider/model capabilities. */
12
import {
23
hasMediaNormalizationEntry,
34
resolveClosestAspectRatio,
@@ -37,6 +38,7 @@ function finalizeImageNormalization(
3738
: undefined;
3839
}
3940

41+
/** Returns supported image overrides plus ignored/normalized override metadata for replies. */
4042
export function resolveImageGenerationOverrides(params: {
4143
provider: ImageGenerationProvider;
4244
model?: string;

src/image-generation/openai-compatible-image-provider.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Tests OpenAI-compatible image provider request building and response handling. */
12
import { afterEach, describe, expect, it, vi } from "vitest";
23
import {
34
createOpenAiCompatibleImageGenerationProvider,

src/image-generation/openai-compatible-image-provider.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Factory for image providers with OpenAI-compatible generation/edit endpoints. */
12
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts";
23
import { isProviderApiKeyConfigured } from "openclaw/plugin-sdk/provider-auth";
34
import { resolveApiKeyForProvider } from "openclaw/plugin-sdk/provider-auth-runtime";
@@ -24,6 +25,7 @@ import type {
2425
// /images/edits endpoints while still allowing provider-specific bodies.
2526
type ModelProviderConfig = NonNullable<NonNullable<OpenClawConfig["models"]>["providers"]>[string];
2627

28+
/** OpenAI-compatible image endpoint mode. */
2729
export type OpenAiCompatibleImageRequestMode = "generate" | "edit";
2830

2931
export type OpenAiCompatibleImageProviderRequestParams = {
@@ -125,6 +127,7 @@ function resolveRequestTimeoutMs(params: {
125127
});
126128
}
127129

130+
/** Creates an image-generation provider backed by OpenAI-style image endpoints. */
128131
export function createOpenAiCompatibleImageGenerationProvider(
129132
options: OpenAiCompatibleImageProviderOptions,
130133
): ImageGenerationProvider {

src/image-generation/provider-registry.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Tests image-generation provider registry aliases and plugin capability integration. */
12
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
23
import type { OpenClawConfig } from "../config/types.js";
34
import type { ImageGenerationProviderPlugin } from "../plugins/types.js";

src/image-generation/provider-registry.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/** Registry for image-generation providers contributed by plugin capabilities. */
12
import { normalizeProviderId } from "../agents/model-selection.js";
23
import type { OpenClawConfig } from "../config/types.openclaw.js";
34
import { isBlockedObjectKey } from "../infra/prototype-keys.js";
@@ -63,12 +64,14 @@ function buildProviderMaps(cfg?: OpenClawConfig): {
6364
return { canonical, aliases };
6465
}
6566

67+
/** Lists canonical image-generation providers visible for config. */
6668
export function listImageGenerationProviders(
6769
cfg?: OpenClawConfig,
6870
): ImageGenerationProviderPlugin[] {
6971
return [...buildProviderMaps(cfg).canonical.values()];
7072
}
7173

74+
/** Resolves an image-generation provider by canonical id or alias. */
7275
export function getImageGenerationProvider(
7376
providerId: string | undefined,
7477
cfg?: OpenClawConfig,

0 commit comments

Comments
 (0)