mcp-use
Version:
Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents, Clients and Servers with support for ChatGPT Apps, Code Mode, OAuth, Notifications, Sampling, Observability and more.
77 lines (74 loc) • 1.99 kB
JavaScript
import {
__name
} from "./chunk-3GQAWCBQ.js";
// src/server/prompts/conversion.ts
function isGetPromptResult(result) {
return "messages" in result && Array.isArray(result.messages);
}
__name(isGetPromptResult, "isGetPromptResult");
function convertToolResultToPromptResult(result) {
if (isGetPromptResult(result)) {
return result;
}
const messages = [];
if (result.content && result.content.length > 0) {
for (const content of result.content) {
if (content.type === "text") {
const textContent = content;
messages.push({
role: "user",
content: {
type: "text",
text: textContent.text
}
});
} else if (content.type === "image") {
const imageContent = content;
messages.push({
role: "user",
content: {
type: "image",
data: imageContent.data,
mimeType: imageContent.mimeType || "image/png"
}
});
} else if (content.type === "resource") {
const resourceContent = content;
const resourceData = resourceContent.resource;
const embeddedResource = {
type: "resource",
resource: {
uri: resourceData.uri,
mimeType: resourceData.mimeType
}
};
if (resourceData.text) {
embeddedResource.resource.text = resourceData.text;
} else if (resourceData.blob) {
embeddedResource.resource.blob = resourceData.blob;
}
messages.push({
role: "user",
content: embeddedResource
});
}
}
}
if (messages.length === 0) {
messages.push({
role: "user",
content: {
type: "text",
text: ""
}
});
}
return {
messages,
description: result._meta?.description
};
}
__name(convertToolResultToPromptResult, "convertToolResultToPromptResult");
export {
convertToolResultToPromptResult
};