Skip to main content
Import the browser-safe facade from smithers-orchestrator/browser. It runs the real Smithers driver, scheduler, renderer, graph extractor, schema validation, and task dependency semantics without pulling Node database, server, CLI-agent, or subprocess code into the bundle.
createBrowserSmithers creates a fresh driver and scheduler session for every run() call. getRun(runId) and getOutputs(runId) read through the selected runtime storage adapter. runBrowserWorkflow(workflow, options) is the one-shot equivalent when you do not need to retain the Smithers wrapper.

Browser-safe exports

Runtime options

The default runtime uses Date, performance, abortable setTimeout, Web Crypto UUIDs, and Map-backed run/output storage. Override any portable seam:
Provide storage when state must outlive a page refresh. Provide executeTask to route task execution through an application-owned worker, provider client, or policy boundary. The default executor supports static and compute tasks plus in-process agents exposing generate, execute, run, or call. It validates Zod-like outputSchema values before storing outputs.

Capability boundary

The browser adapter intentionally fails closed for filesystem, subprocess, worktree, and sandbox. Calling one of those operations throws a RuntimeCapabilityError with code RUNTIME_CAPABILITY_UNAVAILABLE, the runtime name, capability, and operation. The exported Worktree primitive is portable at graph-render time, but a browser run cannot resolve a real worktree unless the application supplies a custom RuntimeAdapter that owns that capability. The browser facade does not include Node database factories, server helpers, CLI agents, bundled tools, or the full Node component barrel. Use the main smithers-orchestrator entry point for those surfaces.
Source browser engine · Tests browser runtime tests · See also Run workflow, Testing workflows, Package configuration