import { httpRequest } from "http-request";
import { createResponse } from "create-response";
export async function responseProvider(request) {
if (request.method === "POST") {
const text = await request.text();
// Path mapped to the TrustGuard origin in Property Manager
const guardResponse = await httpRequest("/trustguard/v1/evaluate", {
method: "POST",
headers: {
Authorization: "Bearer <collector-api-key>",
"Content-Type": "application/json",
},
body: JSON.stringify({
protocol: "llm",
direction: "input",
payload: { input: text },
consumer_id: request.getHeader("X-User-Id")?.[0] ?? "",
session_id: request.getHeader("X-Session-Id")?.[0] ?? "",
}),
timeout: 3000,
});
const result = await guardResponse.json();
if (result.status === "block") {
return createResponse(403, {}, "Blocked by TrustGuard");
}
// Masked/rewritten content ("transform") is forwarded instead of the original
// body; "report" / "allow" forward the original body unchanged.
const forwardBody = result.status === "transform" && result.transformed_payload
? JSON.stringify(result.transformed_payload)
: text;
const originResponse = await httpRequest(request.url, {
method: "POST",
headers: { "Content-Type": request.getHeader("Content-Type") ?? "" },
body: forwardBody,
});
return createResponse(originResponse.status, {}, originResponse.body);
}
const originResponse = await httpRequest(request.url);
return createResponse(originResponse.status, {}, originResponse.body);
}