Documentation Index
Fetch the complete documentation index at: https://smithers.sh/llms.txt
Use this file to discover all available pages before exploring further.
0.18.0
0.18.0 should be a minor release. Since 0.17.0, Smithers has gained new public Gateway UI APIs, two browser-facing SDK packages, an OpenCode CLI agent, new stable RPC methods, and a larger default workflow pack. There are no intentional breaking changes, but the new package and API surface is larger than a patch release.Gateway UI SDKs
-
New browser client package:
@smithers-orchestrator/gateway-client. It shipsSmithersGatewayClient,SmithersGatewayConnection, typed request and response maps for the stable Gateway RPC contract, structuredGatewayRpcErrorhandling, HTTP RPC helpers, WebSocket connection support, and astreamRunEvents()async iterator for run-scoped event streams. -
New React package:
@smithers-orchestrator/gateway-react. It shipsSmithersGatewayProvider,createGatewayReactRoot, and hooks for common UI reads and actions:useGatewayRpc,useGatewayRuns,useGatewayRun,useGatewayRunEvents,useGatewayWorkflows,useGatewayApprovals,useGatewayNodeOutput, anduseGatewayActions. -
Convenience subpath exports from
smithers-orchestrator. Apps can import the new SDK surfaces throughsmithers-orchestrator/gateway-clientandsmithers-orchestrator/gateway-reactin addition to the standalone workspace packages.
Gateway-Hosted React UIs
-
Gateway can now serve a custom browser UI from the Gateway origin. Pass
ui: { entry, path, title, props }tonew Gateway(...)to mount a gateway-level React app. -
Workflows can define their own UI mounts.
gateway.register("deploy", workflow, { ui })mounts workflow-specific UIs, defaulting to/workflows/<workflowKey>when no explicit path is provided. -
The server generates the HTML shell and browser boot config. Gateway
injects
globalThis.__SMITHERS_GATEWAY_UI__with the API version, mount kind, workflow key, RPC path, WebSocket path, asset base path, and custom props. -
React entries are bundled with Bun for the browser. The generated client
bundle is served under
__smithers_ui/client.jswith no-store caching and content-type hardening.
Gateway RPC
-
New stable
listWorkflowsRPC. Clients can list Gateway-registered workflows over HTTP or WebSocket withrun:read, optionally filtering byhasUi. Responses includekey, optionalreadableNameanddescription,hasUi, anduiPath. -
New stable
listApprovalsRPC. Clients can list pending approval requests over HTTP or WebSocket withrun:read, filtering byrunId,workflow, andlimit. Approval summaries now include the workflow key and approval metadata needed by operator UIs. -
Legacy aliases remain supported.
workflows.listmaps tolistWorkflows, andapprovals.listcontinues to work through the updated approval-listing path. -
OpenAPI and RPC docs were updated. The Gateway contract now documents 19
stable RPC methods, including new reference pages for
listWorkflowsandlistApprovals.
Agents
-
New
OpenCodeAgent. Smithers now ships an OpenCode CLI integration with support for system prompts, per-call session resume, token usage parsing from OpenCodestep_finishevents, structured provider errors on nonzero exits, capability discovery, and published TypeScript types. -
CLI agent JSON output parsing is broader. The shared CLI agent base now
understands OpenCode-style
finish,done, andtextJSON events, strips terminal OSC title sequences from parsed output, and extracts structured error messages from JSON streams before falling back to stderr. -
OpenAI and Anthropic SDK agents use native structured output. SDK-backed
agents now advertise
supportsNativeStructuredOutputand pass taskoutputSchemathrough the provider’s native object-output path instead of relying only on prompt-level JSON instructions.
Default Workflow Pack
-
smithers initnow seeds themissionworkflow.missionis a long-horizon workflow that plans work into milestones, optionally waits for plan approval, runs focused feature workers in parallel, integrates milestone output, validates the checkpoint, performs one follow-up repair pass when validation fails, and writes a final report. -
Mission runs can use worktree isolation. The workflow supports
useWorktrees,baseBranch, milestone and feature limits, and a configurable max concurrency. -
New local
workflow-skillworkflow. This workflow scans local.smithers/workflowsfiles and asks an agent to create or update agent-facing skill docs under.smithers/skillsor a caller-provided output path. -
Workflow follow-up CTAs were expanded. Research, planning, PRD, and ticket
workflows now point toward
missionwhen a request should become a milestone-gated run.missionpoints to review, test-coverage, and audit workflows for follow-up quality passes.
Docs
-
New Default Workflows docs section. The docs navigation now lists the
scaffolded workflow pack, with pages for
implement,research,research-plan-implement,plan,mission,kanban,review,debug,improve-test-coverage,ticket-create,tickets-create,grill-me,write-a-prd,feature-enum,audit,ralph, andworkflow-skill. - Gateway integration docs now show the custom React UI flow. The page documents gateway-level and workflow-level UI config, browser client usage, and React hook usage.
- Docs config gained repository links. The Mintlify navbar and footer now link to the Smithers GitHub repository.
-
README onboarding was refreshed. The README now points new users at
bunx smithers-orchestrator@latest initand describes the generated workflow pack as ready-to-run.
Fixes and Hardening
-
Non-retryable agent failures are now honored. Agent configuration failures
such as
AGENT_CONFIG_INVALID, and failures marked withfailureRetryable: false, now stop retrying instead of looping through the scheduler and bridge retry paths. - Scheduler failure recovery no longer trips over planned recovery work. The scheduler now tracks active failure-recovery keys so failed tasks that are being handled by recovery branches do not prematurely terminate the run.
-
Duplicate output-schema references produce a clear error. Workflows that
register the same raw Zod object under multiple output keys now fail with an
explicit
UNKNOWN_OUTPUT_SCHEMAmessage telling authors to usecreateSmithers(...).outputs.<key>or a string output key. -
bunx smithers-orchestrator initresolves published package versions correctly. The workflow pack now reads its own package version from the installed CLI package, resolves dependency versions withcreateRequire, and writes a concretesmithers-orchestratorsemver range instead of always using"latest". -
Published package dependency guardrails were added. New tests simulate the
installed
bunxlayout and verify published workspace packages declare their external runtime imports instead of depending on monorepo-hoisted phantom dependencies. -
Gateway React provider handles
createElementchildren correctly. The provider now renders children through React’screateElementcall path and has regression coverage. - Gateway UI bundling uses an explicit Bun browser config. The bundler now sets the browser target, ESM format, inline source maps, and React automatic JSX settings.
-
Generated server types include the new Gateway UI surface. The server type
bundle now exports
GatewayRegisterOptions,GatewayUiConfig,GatewayUiMount, andResolvedGatewayUiConfig; the server build also clears stale generated declarations before rebuilding. -
<Worktree>accepts React keys in its props type.WorktreePropsnow includeskey, matching how keyed worktree wrappers are used in generated and hand-written TSX workflows. - SDK checks are deterministic. The new client and React packages use local tool paths for build/typecheck scripts and include focused tests for HTTP RPC calls and React provider wiring.
-
CLI init smoke coverage was expanded. The E2E init test now verifies the
seeded
missionfiles, prompt templates, and workflow-pack typecheck harness.