rosud-harness
v0.3.0
Published
TypeScript/JavaScript SDK for Rosud Harness — AI agent control plane
Maintainers
Readme
rosud-harness
TypeScript/JavaScript SDK for Rosud Harness — the AI agent control plane.
Control, monitor, and run AI agents with a single SDK.
npm install rosud-harnessQuick start
import { Harness } from 'rosud-harness'
const harness = new Harness({ apiKey: 'your-api-key' })
// 1. Register an agent
const agent = await harness.agents.register({
name: 'my-analyst',
model: 'claude-sonnet-4',
})
// 2. Run a task (wait for result)
const result = await harness.tasks.run(agent.agentId, 'Summarize last week sales data')
console.log(result)
// 3. Or stream progress in real-time
for await (const event of harness.tasks.stream(agent.agentId, 'Analyze this report')) {
console.log(event.status, event.output)
}Features
- Ralph Loop — iterative agent execution with configurable retry count
- ZDR (Zero Data Retention) — instruction and output never written to disk for sensitive tasks
- Guardrails — built-in policy enforcement per agent
- Memory Bank — per-agent memory across sessions (1 month free, unlimited on Pro)
- SSE streaming — real-time task progress via
tasks.stream()
API reference
new Harness(config)
| Option | Type | Required | Default |
|--------|------|----------|---------|
| apiKey | string | ✅ | — |
| baseUrl | string | | https://api.rosud.com |
| timeoutMs | number | | 30000 |
harness.agents
// Register
const agent = await harness.agents.register({
name: 'my-agent',
model: 'claude-sonnet-4', // optional
tools: ['web_search', 'code'], // optional
memoryEnabled: true, // default: true
guardrailEnabled: true, // default: true
})
// List
const { agents } = await harness.agents.list()
// Deregister
await harness.agents.deregister(agentId)harness.tasks
// Create (non-blocking — returns immediately)
const task = await harness.tasks.create(agentId, {
instruction: 'Do this thing',
context: { key: 'value' }, // optional
maxIterations: 3, // Ralph Loop retries (default: 3)
zdrEnabled: false, // Zero Data Retention (default: false)
})
// Run (blocking — waits for completion, returns output string)
const output = await harness.tasks.run(agentId, 'Do this thing')
// Stream (async generator — yields TaskEvent objects)
for await (const event of harness.tasks.stream(agentId, 'Do this thing')) {
if (event.status === 'done') console.log('Done:', event.output)
if (event.status === 'failed') console.error('Failed:', event.error)
}
// Get task by ID
const task = await harness.tasks.get(taskId)
// List all tasks
const { tasks } = await harness.tasks.list()ZDR (Zero Data Retention)
When zdrEnabled: true, the instruction and output are never written to the database. Only task metadata (ID, status, timestamps) is stored.
const output = await harness.tasks.run(agentId, {
instruction: 'Process this patient record: ...',
zdrEnabled: true, // instruction never stored
})Get your API key
- Sign up at rosud.com
- Go to Dashboard → API Keys → Create
License
MIT — see LICENSE
Backend is proprietary and hosted at api.rosud.com.
