Docs/SDKs/TypeScript

TypeScript SDK.

The official Node and browser client. Strict types. ESM + CJS. Works in Bun and Deno. Source on GitHub at wrxstack/sdk-typescript.

Install

npm install wrxstack
# or
pnpm add wrxstack
yarn add wrxstack
bun add wrxstack

Quickstart

import { Client } from "wrxstack";

const client = new Client();

const task = await client.tasks.create({
  title: "Review MSA",
  assignee: "priya@acme.com",
});

const run = await client.assistants.invoke({
  assistant: "redline",
  input: { task_id: task.id },
});

console.log(run.output);

Configuration

const client = new Client({
  apiKey:    process.env.WRX_API_KEY,
  workspace: process.env.WRX_WORKSPACE,
  baseUrl:   "https://api.wrxstack.com/v1",
  timeout:   30_000,
  maxRetries: 3,
});

Method index

Same surface as the Python SDK. The TypeScript SDK uses camelCase for fields:

await client.tasks.create({
  title: "…",
  due: "2026-05-22",         // snake_case → camelCase
  about: ["acc_01HQ3K..."],
});

Streaming

For long-running assistant invocations, use streaming mode. You get partial step results as they happen.

for await (const step of client.assistants.invokeStream({
  assistant: "redline",
  input: { task_id: "tsk_..." },
})) {
  console.log(step.tool, step.status);
}

Errors

import { NotFound, RateLimited } from "wrxstack/errors";

try {
  await client.tasks.get("tsk_does_not_exist");
} catch (e) {
  if (e instanceof NotFound) handleMissing();
  if (e instanceof RateLimited) await sleep(e.retryAfterMs);
}