@raindrop-ai/bedrock
v0.0.2
Published
Raindrop integration for AWS Bedrock
Downloads
207
Keywords
Readme
@raindrop-ai/bedrock
Raindrop integration for AWS Bedrock. Automatically captures Converse and InvokeModel calls by wrapping the BedrockRuntimeClient.
Installation
npm install @raindrop-ai/bedrock @aws-sdk/client-bedrock-runtimeUsage
import { createRaindropBedrock } from "@raindrop-ai/bedrock";
import { BedrockRuntimeClient, ConverseCommand } from "@aws-sdk/client-bedrock-runtime";
const raindrop = createRaindropBedrock({
writeKey: "rk_...",
userId: "user-123",
});
const client = new BedrockRuntimeClient({ region: "us-east-1" });
const wrapped = raindrop.wrap(client);
const response = await wrapped.send(
new ConverseCommand({
modelId: "anthropic.claude-3-5-sonnet-20241022-v2:0",
messages: [
{ role: "user", content: [{ text: "Hello!" }] },
],
}),
);
await raindrop.flush();What gets captured
- Converse API: input messages, output text, model ID, token usage (inputTokens/outputTokens)
- InvokeModel API: raw request/response bodies, model ID, token usage (Claude, Titan, and Llama formats)
- Errors: captured with OTLP error status, re-thrown to the caller
Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| writeKey | string | - | Raindrop API write key (omit to disable telemetry) |
| endpoint | string | https://api.raindrop.ai/v1/ | API endpoint |
| userId | string | - | Associate all events with a user |
| convoId | string | - | Group events into a conversation |
| debug | boolean | false | Enable verbose logging |
Testing
pnpm testTests use MSW to intercept HTTP requests — no real AWS calls are made.
