export const addOutput = addSpanAttributes("output", String.camelToSnake)<{
value: string;
}>;
export const addInput = addSpanAttributes("input", String.camelToSnake)<{
value: string;
mime_type: string;
}>;
export const AddIO = Layer.sync(CurrentSpanTransformer, () => (q) => {
addOutput(q.span, { value: q.response.text });
addInput(q.span, { value: JSON.stringify(q.prompt), mime_type: "application/json" });
});
export const OpenRouter = OpenAiClient.layer({
apiKey: Redacted.make(process.env.OPENROUTER_API_KEY!),
apiUrl: "https://openrouter.ai/api/v1"
}).pipe(Layer.provide(NodeHttpClient.layerUndici), Layer.provide(AddIO));
export const addOutput = addSpanAttributes("output", String.camelToSnake)<{
value: string;
}>;
export const addInput = addSpanAttributes("input", String.camelToSnake)<{
value: string;
mime_type: string;
}>;
export const AddIO = Layer.sync(CurrentSpanTransformer, () => (q) => {
addOutput(q.span, { value: q.response.text });
addInput(q.span, { value: JSON.stringify(q.prompt), mime_type: "application/json" });
});
export const OpenRouter = OpenAiClient.layer({
apiKey: Redacted.make(process.env.OPENROUTER_API_KEY!),
apiUrl: "https://openrouter.ai/api/v1"
}).pipe(Layer.provide(NodeHttpClient.layerUndici), Layer.provide(AddIO));