openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
43 lines (42 loc) • 2.45 kB
JavaScript
import { r as getRuntimeConfig } from "./io.runtime-BsUXSsD4.mjs";
import "./config-DLycWFvB.mjs";
import { n as resolveRequestedSessionAgentId } from "./session-request-agent-Bxi11ET4.mjs";
import { r as parseInboundMediaUri } from "./inbound-media-uri-Bc4RWtcM.mjs";
import { u as readMediaBuffer } from "./store-CP-GWHOW.mjs";
import "./media-reference-C8XnD_RC.mjs";
import { i as loadGatewaySessionEntryReadOnly } from "./session-utils-store-BAlWJHht.mjs";
import "./session-utils-seGz8XhX.mjs";
import { l as readManagedOutgoingImageThumbnail, s as parseManagedOutgoingRoute } from "./managed-image-attachments-qLUeEsQ8.mjs";
import { n as MANAGED_OUTGOING_IMAGE_ARTIFACT_ID_PREFIX } from "./managed-outgoing-artifact-id-Ba11Ib46.mjs";
import { n as decodeTuiImageData, r as prepareTuiImage, t as TUI_IMAGE_MAX_BYTES } from "./tui-image-data-B0I8wO40.mjs";
//#region src/tui/embedded-image-loader.ts
async function loadEmbeddedImage(request) {
const { signal } = request;
signal.throwIfAborted();
const inline = decodeTuiImageData(request.source);
if (inline) return await prepareTuiImage(inline, signal);
const owner = resolveRequestedSessionAgentId(getRuntimeConfig(), request.sessionKey, request.agentId);
if (!owner.ok) throw new Error(owner.error.message);
const { canonicalKey, agentId, entry } = loadGatewaySessionEntryReadOnly(request.sessionKey, { agentId: owner.agentId });
if (!entry?.sessionId) throw new Error("Image session is unavailable");
const inbound = parseInboundMediaUri(request.source);
if (inbound) {
const { buffer } = await readMediaBuffer(inbound.id, "inbound", TUI_IMAGE_MAX_BYTES);
return await prepareTuiImage(buffer, signal);
}
const managed = request.source.startsWith("/api/chat/media/outgoing/") ? parseManagedOutgoingRoute(request.source) : null;
if (!managed || managed.sessionKey !== canonicalKey) throw new Error("Image source is not managed by this session");
const artifactId = `${MANAGED_OUTGOING_IMAGE_ARTIFACT_ID_PREFIX}${managed.attachmentId}`;
if (request.artifactId && request.artifactId !== artifactId) throw new Error("Image artifact does not match its source");
const buffer = await readManagedOutgoingImageThumbnail({
sessionKey: canonicalKey,
agentId,
artifactId,
maxBytes: TUI_IMAGE_MAX_BYTES,
signal
});
if (!buffer) throw new Error("Image artifact is unavailable");
return await prepareTuiImage(buffer, signal);
}
//#endregion
export { loadEmbeddedImage };