File size: 1,000 Bytes
4c76b0d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import { mediaKindFromMime } from "@openclaw/media-core/constants";
import { detectMime } from "@openclaw/media-core/mime";
import { isVoiceMessageCompatibleAudio } from "../../media/audio.js";
import { createLazyRuntimeMethod } from "../../shared/lazy-runtime.js";
import type { PluginRuntime } from "./types.js";
const loadWebMedia = createLazyRuntimeMethod(
() => import("../../media/web-media.js"),
(runtime) => runtime.loadWebMedia,
);
const getImageMetadata = createLazyRuntimeMethod(
() => import("../../media/image-ops.js"),
(runtime) => runtime.getImageMetadata,
);
const resizeToJpeg = createLazyRuntimeMethod(
() => import("../../media/image-ops.js"),
(runtime) => runtime.resizeToJpeg,
);
/** Creates the plugin runtime media facade. */
export function createRuntimeMedia(): PluginRuntime["media"] {
return {
loadWebMedia,
detectMime,
mediaKindFromMime,
isVoiceCompatibleAudio: isVoiceMessageCompatibleAudio,
getImageMetadata,
resizeToJpeg,
};
}
|