Files
zero/package.json
Vasanth T 1dd884d6e9 chore(launch): MIT license, windows-arm64 install guard, TUI TTY guard (#340)
* chore(launch): MIT license field, windows-arm64 install guard, TUI TTY guard

Three launch-readiness fixes the docs cleanup doesn't cover:

- package.json: set "license": "MIT" (was the placeholder "SEE LICENSE IN
  LICENSE"), matching the LICENSE file and the README badge.
- scripts/postinstall.mjs: skip gracefully on windows-arm64. (win32, arm64)
  resolves to a valid platform/arch but the release matrix ships no
  windows-arm64 artifact, so the installer would download a 404 and hard-fail
  npm install. Treat it like any unsupported target (warnSkip, exit 0) and point
  to the x64 build (which runs under emulation on Windows on ARM) or source.
- internal/tui/run.go: fail fast when stdin is not a terminal. The interactive
  shell otherwise blocks forever in the Bubble Tea event loop on piped/redirected
  input (e.g. `echo "" | zero`); now it prints guidance toward `zero exec` and
  exits non-zero. Dependency-free ModeCharDevice check (no x/term added).

Tests: windows-arm64 skips with exit 0; the interactive shell returns non-zero
(not a hang) on non-TTY stdin.

* fix(tui): use term.IsTerminal for the stdin guard; pin exit code in test

Address review on the no-TTY guard:
- Replace the os.Stdin.Stat()/ModeCharDevice heuristic with term.IsTerminal
  (github.com/charmbracelet/x/term, already in the module graph via bubbletea).
  It is a true TTY check — it rejects pipes, regular files, and non-terminal
  char devices like /dev/null — and fails closed: anything not a verified
  terminal blocks the interactive shell.
- The test now asserts the documented exit code 2 from the guard, not just a
  non-zero result, so it proves the stdin guard fired.
2026-06-28 17:13:34 +05:30

43 lines
808 B
JSON

{
"name": "@gitlawb/zero",
"version": "0.1.0",
"description": "Zero — a fast, multi-provider terminal coding agent.",
"type": "module",
"module": "bin/zero.js",
"bin": {
"zero": "bin/zero.js"
},
"scripts": {
"postinstall": "node scripts/postinstall.mjs"
},
"files": [
"bin/zero.js",
"scripts/postinstall.mjs"
],
"engines": {
"node": ">=18"
},
"dependencies": {
"agent-browser": "^0.30.1",
"tuistory": "^0.10.0"
},
"os": [
"linux",
"darwin",
"win32"
],
"cpu": [
"x64",
"arm64"
],
"repository": {
"type": "git",
"url": "git+https://github.com/Gitlawb/zero.git"
},
"homepage": "https://github.com/Gitlawb/zero#readme",
"bugs": {
"url": "https://github.com/Gitlawb/zero/issues"
},
"license": "MIT"
}