import OpenAI from "openai";
import { createCaptar } from "@captar/sdk";
const captar = createCaptar({
project: "support-bot",
exporter: { url: process.env.CAPTAR_INGEST_URL! },
});
const session = await captar.startSession({
budget: {
maxSpendUsd: 2,
finalizationReserveUsd: 0.2,
},
metadata: {
_user: "u_123",
_team: "support",
feature: "chat",
},
policy: {
call: {
allowedModels: ["gpt-4.1-mini"],
maxEstimatedCostUsd: 0.6,
},
tool: {
requireApprovalFor: ["zendesk.createComment"],
},
},
});
const openai = captar.wrapOpenAI(
new OpenAI({ apiKey: process.env.OPENAI_API_KEY }),
{ session },
);
const response = await openai.responses.create({
model: "gpt-4.1-mini",
input: "Help me answer this support ticket.",
max_output_tokens: 200,
});
await captar.trackTool("zendesk.createComment", {
session,
estimate: 0.02,
}).run(async () => {
return { ok: true };
});
await session.close();
await captar.flush();