Start
SDK · TypeScript
Build around the run.
Your application owns the experience. Nika owns the workflow contract, the boundary and the receipt. The TypeScript client keeps that separation typed.
- local driver
- live · check, run, plan, test, trace
- HTTP client
- preview · jobs, SSE, artifacts
- workflow service
- not shipped · no false green
APP ├─ local ─── LocalNika ─── nika binary [ LIVE ] └─ remote ── Nika ──────── workflow service [ PREVIEW ]
01 · documentation graph
One connected path, from project file to receipt.
7 systems · 30 guidesProject
Make the control plane explicit.
Choose the released nika.yaml profile, then align workflows, state and the project root.Local API
Drive the released engine.
Use LocalNika for the shipped path: argv-safe process control, machine reports, run events, goldens and trace verification.Runtime
Turn the journal into product UI.
Consume additive events, branch on typed failures and keep transient presentation separate from the hash-chained receipt.Remote API
Build against the intended service contract.
Explore the typed HTTP, jobs, SSE, workflow, artifact and webhook surfaces without pretending a compatible reference service ships today.Operations
Admit work before it receives authority.
Operate live local processes and keep the future workflow HTTP boundary explicit.Reference
Every exported surface, one address.
Scan configuration defaults, method signatures and stable type shapes, with live and preview horizons visible beside every table.02 · the topology
One language. Two transports.
live firstLoading the runtime topology…
03 · contract lab
Inspect the seam before you build it.
click each phaseFollow the released local integration from audit to durable proof. Each phase binds application code to one explicit machine signal. Nothing here simulates a workflow run or invents a server.
Loading the contract inspector…
04 · first run
The smallest honest integration.
copy · run · inspectStart with the local surface. It works against the released binary, uses no shell for process spawning and returns findings instead of hiding them behind exceptions.
import { LocalNika } from '@supernovae-st/nika-client/local'
const nika = new LocalNika()
const report = await nika.check('workflows/hello.nika.yaml')
if (!report.clean) throw new Error('workflow refused')
const run = await nika.runToEnd('workflows/hello.nika.yaml', {
maxCostUsd: 0.25,
})
console.log(run.ok, run.events.length)05 · the contract
Thin by design.
The SDK carries transport and types. The engine keeps enforcement.
Unknown stays unknown.
An unpriced model is never rewritten as free. A new report version warns.
Preview looks like preview.
The HTTP client can be explored without pretending its server already ships.