Skip to content

Wardrik

A client for one Wardrik server.

const wardrik = new Wardrik();
const agent = wardrik.agent("support-bot");
await agent.define({ model: "anthropic:claude-sonnet-4-5" });
for await (const event of agent.stream("What's on fire?")) {
if (event.type === "wardrik.message.delta") process.stdout.write(event.data.delta);
}

Throws a TypeError without a token.

new Wardrik(options?): Wardrik;
Parameter Type
options? WardrikOptions

Wardrik

Operations.constructor
readonly agents: AgentsOperations;

The agents.* operations.

Operations.agents


readonly interrupts: InterruptsOperations;

The interrupts.* operations.

Operations.interrupts


readonly events: EventsOperations;

The events.* operations.

Operations.events


readonly audit: AuditOperations;

The audit.* operations.

Operations.audit


readonly deployment: DeploymentOperations;

The deployment.* operations.

Operations.deployment

agent(id, options?): Agent;

Returns an agent, or one of its conversations. Makes no request.

const agent = wardrik.agent("support-bot");
const thread = wardrik.agent("support-bot", { conversation: "C1-1696.1234" });
Parameter Type
id string
options? AgentOptions

Agent


run<Id>(
id,
input,
options?
): Promise<Outputs[Id]>;

Runs an operation by its ID, with all its parameters in input.

await wardrik.run("agent.ask", { agent: "support-bot", content: "Hi" });
Type Parameter
Id extends | "agent.read" | "agent.define" | "agent.forget" | "agent.ask" | "agent.decide" | "agent.authorization" | "agent.cancel" | "agent.events" | "agent.timeline" | "agent.runs" | "agent.approve" | "agent.deny" | "agent.definition" | "agent.spawn" | "agent.stop" | "agent.clear" | "agent.calls" | "agent.kill" | "agent.trigger_set" | "agent.trigger_remove" | "agent.move" | "agents.list" | "agents.forget" | "agents.cancel" | "interrupts.list" | "events.list" | "events.head" | "audit.list" | "deployment.reload" | "deployment.nodes"
Parameter Type
id Id
input Inputs[Id]
options? CallOptions

Promise<Outputs[Id]>


listen(handlers, options?): Promise<void>;

Passes each event to the handler for its type, with the cursor after it.

await wardrik.listen(
{ "wardrik.run.completed": (event, cursor) => saveRun(event, cursor) },
{ agents: ["support-bot"], after: savedCursor },
);
  • Waits for each handler before the next event.
  • Each event arrives at least once. Drop repeats by event.id.
  • Resolves when signal aborts. Rejects with what a handler throws.
Parameter Type
handlers Handlers
options? ListenOptions

Promise<void>


tool<Input>(definition): this;

Adds a tool that runs in this process. Agents whose tools include workers/* call it as workers__<name>.

wardrik.tool({
name: "refund_order",
description: "Refund an order in full.",
input: z.object({ orderId: z.string() }),
idempotent: true,
run: ({ orderId }, { idempotencyKey }) =>
stripe.refunds.create({ payment_intent: orderId }, { idempotencyKey }),
});
await wardrik.work();
Type Parameter
Input extends StandardSchemaWithJSON
Parameter Type
definition ToolDefinition<Input>

this


work(options?): Promise<void>;

Answers calls to the tools added with tool until signal aborts. Reconnects on its own. Throws a WardrikError if the token is refused.

Parameter Type
options? WorkOptions

Promise<void>