@raindrop-ai/tanstack-ai
v0.0.1
Published
Raindrop integration for the TanStack AI framework (chat middleware + Workshop mirroring)
Keywords
Readme
@raindrop-ai/tanstack-ai
Raindrop integration for the TanStack AI framework.
Streams every chat() invocation to Raindrop (and/or a locally-running Workshop daemon) as a Raindrop event plus an OTel trace. Multiple turns sharing a TanStack threadId group under one Workshop conversation automatically.
Install
pnpm add @raindrop-ai/tanstack-ai @tanstack/aiUsage
import { chat } from "@tanstack/ai";
import { openaiText } from "@tanstack/ai-openai/adapters";
import { createRaindropTanstackAI } from "@raindrop-ai/tanstack-ai";
const raindrop = createRaindropTanstackAI({
writeKey: process.env.RAINDROP_WRITE_KEY,
defaults: { userId: "user-123" },
});
for await (const chunk of chat({
adapter: openaiText(),
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello" }],
middleware: [raindrop.middleware],
threadId: "convo-abc",
})) {
// …
}
await raindrop.flush();Workshop-only setups
A writeKey is optional. When omitted, the middleware mirrors spans + events to a reachable local Workshop daemon (RAINDROP_LOCAL_DEBUGGER, RAINDROP_WORKSHOP, or http://localhost:5899 when NODE_ENV=development). Pass localWorkshopUrl: false to disable all local mirroring.
Per-call overrides
Override the user / conversation / event name on a single chat by setting context:
chat({
...,
context: { userId: "u-1", convoId: "c-1", eventName: "support_chat" },
});When convoId is not provided, the middleware falls back to TanStack's threadId, which is what makes multi-turn conversations land under one Workshop conversation.
