mirror of
https://github.com/hanzo-js/hanzo.git
synced 2026-10-30 18:55:09 +00:00
Four npm names published the same idea -- hanzo (a 2020 placeholder with no
main, no bin and no deps), @hanzo/cli, @hanzo/ai, hanzoai -- and a reader had
to know which. The cost is not tidiness: a wrong guess installs a client that
does not carry the surface being called.
This is a front door and nothing else. `hanzo` re-exports the generated cloud
client, `hanzo/ai` re-exports the agents library, and the `hanzo` command execs
the Rust binary @hanzo/cli fetches. Nothing is vendored, nothing reimplemented;
each piece stays in the package that owns it and depending on those directly
still works.
The launcher execs the binary rather than @hanzo/cli's own launcher, so exactly
one process sits between the terminal and an interactive program -- a wrapper
that outlives its child owns that child's signals. A signalled child re-raises
rather than collapsing to an exit code.
Measured from a packed tarball, installed clean: `import * as h from 'hanzo'`
772 exports, `require('hanzo')` 770, `import * as a from 'hanzo/ai'` 36, and
`hanzo --version` prints 1.9.57 with one bin linked.
Co-authored-by: Hanzo Dev <[email protected]>