@demystify/tools-engines
v0.1.0
Published
Pure tool engines (fn + zod I/O) — run in the browser AND Node, no DOM
Maintainers
Readme
@demystify/tools-engines
Pure tool engines — a function plus a zod I/O schema per tool. They run identically in the browser and in Node, touch no DOM and no network, and are the single computation truth behind the Demystify Tools web app, API, MCP server and self-hosted runner.
import { formatJson } from "@demystify/tools-engines/dev";
import { gstBreakdown } from "@demystify/tools-engines/fin";
const out = formatJson({ input: '{"b":1,"a":2}', indent: 2, sortKeys: true });
// money is always integer paise — never floats
const gst = gstBreakdown({ amountPaise: 100000, rate: 18, inclusive: false });Design rules
- Pure: deterministic, no side effects, no I/O. The same input always yields the same output — which is what lets every calculator ship hand-computed goldens and every converter ship round-trip/property tests.
- Typed at the boundary: each engine validates its input with zod and throws a
typed error (see
errors) on bad data. The schema is exported for reuse. - Money is integer paise. No floating-point currency, ever.
- Permissive deps only. No AGPL. Anything that can't run in the browser lives in a different lane, not here.
Subpath exports
/text · /dev · /fin · /data · /datetime · /calc · /web · /format
· /security · /design · /documents · /references · /io · /ai · /api
— import only the family you need so bundlers keep pages lean.
Status
Pre-1.0, versioned but not yet published — see the repo's
docs/verification/user-actions.md for the publish checklist.
