| 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, | |
| }; | |
| } | |