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.20.4
Patch release: thesmithers bin now resolves the workspace-local
install through package.json instead of the npm/pnpm .bin/ shell
shim, fixing the bun: Expected ")" but found "$(echo " crash that
hit any project with a local .smithers/ install. Engine prompts for
schema-driven outputs now demand raw JSON without code fences.
CLI
-
Bin delegation now resolves the workspace-local install through
package.json. When you runsmithersinside a directory whose.smithers/node_modules/ships its own copy ofsmithers-orchestrator, the global bin re-execs into that local copy so the workflow runtime — engine, react-reconciler, components, React — all load from a single module tree. Previously the global bin handed the local pnpm/npm.bin/smithersshell shim toprocess.execPath(bun), which tried to parse the#!/bin/shshim as JavaScript and crashed withExpected ")" but found "$(echo ". Resolution now readsnode_modules/smithers-orchestrator/package.jsonand re-execs the actual JS entry, bypassing the shim. Workflow-path commands (up,graph,fork,replay,revert,timetravel) also walk upward from the workflow file to find the nearest local install, sosmithers up examples/foo/workflow.tsxpicks up the workflow’s ownnode_moduleseven when invoked from elsewhere. Unit tests for the resolution paths live inapps/cli/tests/bin-delegation-unit.test.js.
Engine
- Structured outputs now require raw JSON, not a code-fenced
block. When the engine asks an agent to emit a typed output and
the agent doesn’t support native structured outputs, the appended
prompt now instructs the agent to return ONLY the raw JSON object
— no markdown, no headings, no
```jsonfence — and to start the response with{and end with}. The validation-retry and schema-summary prompts received the same tightening. This matches what the downstream parser expects and removes the failure mode where an agent emitted a perfectly valid JSON block but the workflow rejected it because of the surrounding markdown.
Dependencies
- Dropped unused workspace dependencies across
apps/observability,packages/db,packages/engine,packages/graph,packages/memory,packages/openapi,packages/protocol,packages/sandbox,packages/scorers,packages/smithers, andpackages/time-travel. Net change: −67 lines frompnpm-lock.yaml, no public API impact.
Docs
-
Docs example smoke tests. New
apps/cli/tests/docs-examples-smoke.test.jsexercises the workflow snippets shipped in the docs so broken examples surface in CI instead of in users’ first runs. Several docs files (tour.mdx,examples/loop.mdx,examples/multi-agent-review.mdx,integrations/cli-agents.mdx,integrations/tools.mdx) received small corrections discovered by that pass. - Public feature coverage audit. A docs-side sweep verified that every public-facing engine and CLI feature has at least one example or how-to reference, and patched the gaps it found.
Internal
- Test coverage additions for the CLI (
node-detail,semantic-tools,why-diagnosis) and components (Runbook, markdown, array control-flow, and composite suites). - CLI refactors: inlined single-statement branches, dropped a few
dead
try/catchwrappers, and replaced a handful of duplicate implementations with re-export shims to keep the workspace graph tidy.