Files
omnigent-ai--omnigent/scripts
Dhruv Gupta 6597809847 feat(cli): unify terminal output contract + add omnigent wordmark (#550)
* feat(cli): unify terminal output contract + add omnigent wordmark

Adds a single, documented styling layer so every `omnigent` command
reads as one coherent, branded product, and a bold "ANSI-Shadow"
omnigent wordmark paired with the Otto mascot.

New modules:
- omnigent/inner/wordmark.py — the brand art: a regenerable per-letter
  glyph map for the 3-row ANSI-Shadow wordmark, the Otto lockup
  (gradient/tagline/epilogue), and the one-line `✦ omnigent` brandmark.
- omnigent/inner/ui.py — shared consoles, brand Theme/palette, status
  helpers (step/success/info → stdout, warn/error → stderr), structure
  helpers (header/kv/rule/table/panel), and TTY-gated banner helpers
  (OMNIGENT_NO_BANNER honored).
- designs/CLI_CONTRACT.md — the contract: palette, helper API, the
  stdout-is-data / stderr-is-decoration rule, gating, new-command checklist.

Wiring:
- Full lockup on `omnigent --help` and `omnigent setup`; compact brandmark
  on upgrade / server status / host status / config list (text mode only).
- Runner-startup spinner recolored to the brand accent.
- Installer (scripts/install_oss.sh): magenta Otto+wordmark banner, palette
  unified from cyan to brand magenta, TTY-gated.

All decoration is on stderr and TTY-gated, so piped/`--json`/`| cat`
output stays byte-clean; protocol/IPC stdout is untouched. Colored
click.secho call sites routed through the shared helpers.

Tests: tests/inner/test_wordmark.py, tests/inner/test_ui.py.

Co-authored-by: Isaac

* fix(cli): make wordmark 4 rows so g/e are legible

The 3-row ANSI-Shadow squash dropped the middle bars that distinguish
'g' and 'e', leaving them unreadable. Keep each letter's identity row
(rows 0,2,4,5 of the source font) for a 4-row wordmark — slightly taller,
fully legible — and sit it on Otto rows 1-4 so its drop-shadow grounds
on Otto's feet. Updates the installer banner and tests to match.

* fix(cli): grow wordmark to 5 rows, aligned 1:1 with Otto

Use the full-height ANSI-Shadow font (the canonical figlet form, as used
by NeonX) with just one duplicate body row dropped — 5 rows, matching
Otto's height so the lockup pairs 1:1 with no unpaired rows. Taller and
fully legible. Updates the installer banner and tests to match.

* refactor(cli): drop the per-command ✦ brandmark; banner on landing only

Remove the compact `✦ omnigent` line from version/upgrade/server status/
host status/config list — those commands print unbranded again so the CLI
stays quiet and scriptable. The full Otto + wordmark lockup stays on the
landing surfaces only: `omnigent --help`, `omnigent setup`, and the
installer. The print_brandmark helper remains available for opt-in use but
is no longer wired onto any command. Contract doc updated to match.
2026-06-17 14:17:42 -07:00
..
2026-06-13 00:37:34 +00:00