TypeScript SDK Reference
The @rodiun/sdk package provides a typed TypeScript/JavaScript client for the Rodiun platform.
Installation
npm install @rodiun/sdk
# or
yarn add @rodiun/sdk
# or
pnpm add @rodiun/sdk
Quick example
import { RodiuClient } from "@rodiun/sdk";
const client = new RodiuClient({
apiKey: process.env.RODIUN_API_KEY!,
baseUrl: "https://api.rodiun.io",
});
const result = await client.run("rodiun.notification-email@1.0.0", {
to: "user@example.com",
from_address: "noreply@app.com",
subject: "Hello",
body: "World",
});
RodiuClient
Constructor
new RodiuClient(options: RodiuClientOptions)
| Option | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Your Rodiun API key |
baseUrl | string | No | API base URL (default: https://api.rodiun.io) |
timeout | number | No | Request timeout in ms (default: 30000) |
client.run(orbId, inputs)
Execute an Orb and get a result with an OPAL Trust Receipt.
const result: OrbRunResult = await client.run(orbId: string, inputs: Record<string, unknown>);
Returns OrbRunResult:
interface OrbRunResult {
run_id: string;
status: "completed" | "failed" | "timeout";
outputs: Record<string, unknown>;
receipt: {
receipt_id: string;
trust_score: number; // 0–100
risk_level: "low" | "medium" | "high" | "critical";
signature_valid: boolean;
timestamp: string;
} | null;
execution_ms: number;
error?: string;
}
client.getReceipt(receiptId)
Retrieve a previously issued OPAL Trust Receipt.
const receipt = await client.getReceipt(receiptId: string);
client.listOrbs()
List all available Orbs for your account.
const orbs = await client.listOrbs();
Error handling
import { RodiuError, OrbNotFoundError, RateLimitError } from "@rodiun/sdk";
try {
const result = await client.run("unknown.orb@1.0.0", {});
} catch (e) {
if (e instanceof OrbNotFoundError) {
console.error("Orb not found:", e.orbId);
} else if (e instanceof RateLimitError) {
console.error("Rate limited; retry after:", e.retryAfterMs, "ms");
} else if (e instanceof RodiuError) {
console.error("Rodiun error:", e.message, e.code);
}
}