import { Refrain, CallbackLogger, loadRunbook } from "@refrainai/sdk";
import type { LoggerFactory } from "@refrainai/sdk";
const loggerFactory: LoggerFactory = {
createLogger: () =>
new CallbackLogger((level, message) => {
// Forward to your logger (e.g., winston, pino)
console.log(`[refrain:${level}] ${message}`);
}),
createSpinner: () => ({
start: (msg) => console.log(`[spinner] ${msg}...`),
stop: (msg) => console.log(`[spinner] ${msg}`),
}),
};
const client = new Refrain({
ai: {
modelId: "claude-sonnet-4-6",
provider: "anthropic",
apiKey: process.env.ANTHROPIC_API_KEY!,
},
loggerFactory,
debug: true,
});
const runbook = await loadRunbook("./flow.yaml");
const report = await client.execute(runbook, {
contextMarkdown: "",
debugLogPath: "./debug.jsonl",
});
await client.dispose();