lazyclaw 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.mjs +32 -1
  2. package/package.json +1 -1
package/cli.mjs CHANGED
@@ -1634,6 +1634,33 @@ function _renderBanner(version) {
1634
1634
  ];
1635
1635
  }
1636
1636
 
1637
+ // v5 sloth banner — shared with the ink splash (tui/splash.mjs).
1638
+ // Single-tone orange like _renderBanner so the no-arg launcher and the
1639
+ // chat splash share a visual identity. Opt out with LAZYCLAW_LEGACY_MENU=1
1640
+ // to fall back to the boxed figlet variant above.
1641
+ let _v5BannerRowsCache = null;
1642
+ async function _renderV5Banner(version) {
1643
+ if (!_v5BannerRowsCache) {
1644
+ try {
1645
+ const { banner } = await import('./tui/banner.generated.mjs');
1646
+ _v5BannerRowsCache = banner.rows;
1647
+ } catch {
1648
+ _v5BannerRowsCache = null;
1649
+ }
1650
+ }
1651
+ if (!_v5BannerRowsCache) return _renderBanner(version);
1652
+ const v = String(version || '?.?.?');
1653
+ return _v5BannerRowsCache.map((row, i) => {
1654
+ if (i === 8) {
1655
+ // Caption row — overlay "lazyclaw v<version>" centered on the 24-wide art
1656
+ const cap = `lazyclaw v${v}`;
1657
+ const pad = Math.max(0, Math.floor((24 - cap.length) / 2));
1658
+ return _orange(' '.repeat(pad) + cap + ' '.repeat(24 - pad - cap.length));
1659
+ }
1660
+ return _orange(row);
1661
+ });
1662
+ }
1663
+
1637
1664
  function _printChatBanner(activeProvName, activeModel, version) {
1638
1665
  if (!process.stdout.isTTY) return;
1639
1666
  // Single-hue header: labels dim-orange, values/emphasis full-orange, so the
@@ -6719,9 +6746,13 @@ async function cmdLauncher() {
6719
6746
  process.stdin.resume();
6720
6747
  process.stdin.ref();
6721
6748
 
6749
+ const useLegacyBanner = !!process.env.LAZYCLAW_LEGACY_MENU;
6750
+ const bannerRowsCached = useLegacyBanner
6751
+ ? _renderBanner(readVersionFromRepo())
6752
+ : await _renderV5Banner(readVersionFromRepo());
6722
6753
  const draw = () => {
6723
6754
  process.stdout.write('\x1b[?25l\x1b[2J\x1b[H'); // hide cursor + clear
6724
- _renderBanner(readVersionFromRepo()).forEach((l) => process.stdout.write(l + '\n'));
6755
+ bannerRowsCached.forEach((l) => process.stdout.write(l + '\n'));
6725
6756
  process.stdout.write('\n');
6726
6757
  process.stdout.write(` ${dim('provider ·')} ${ok(provider)}\n`);
6727
6758
  process.stdout.write(` ${dim('model ·')} ${ok(model)}\n`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazyclaw",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "Lazy, elegant terminal CLI for chatting with Claude / OpenAI / Gemini / Ollama, orchestrating multi-step LLM workflows, and running multi-agent Slack teams with cross-task memory. Banner-on-launch, slash-command ghost autocomplete, persistent sessions, local HTTP gateway.",
5
5
  "keywords": [
6
6
  "claude",