klyro 0.1.34 → 0.1.35

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.
package/dist/cli/repl.js CHANGED
@@ -105,12 +105,9 @@ export async function startRepl(opts = {}) {
105
105
  else
106
106
  pendingQueue.push({ kind: 'plan', plan: p });
107
107
  }
108
- // ── Full-screen takeover like OpenCode/Claude Code (§3) ──
109
- // Detect alt-screen support (§19.5): Windows Terminal (WT_SESSION), VS Code, xterm, or non-Windows.
110
- // Fallback to inline (native scroll) on conhost/mintty so text isn't clipped — degrade don't break (§1.8).
111
- const supportsAlt = !!process.env.WT_SESSION || process.env.TERM_PROGRAM === 'vscode' || (process.env.TERM ?? '').includes('xterm') || process.platform !== 'win32' || process.env.KLYRO_ALT_SCREEN === '1';
112
- const noAlt = process.env.KLYRO_NO_ALT === '1' || process.env.NO_ALT === '1';
113
- const isAltScreen = useTui && !!process.stdout.isTTY && supportsAlt && !noAlt;
108
+ // ── Full-screen takeover like OpenCode always when klyro in TTY (user explicitly wants it)
109
+ // Scroll now works correctly via internal viewport, not native terminal scroll
110
+ const isAltScreen = useTui && !!process.stdout.isTTY && process.env.KLYRO_NO_ALT !== '1';
114
111
  const enterAlt = () => {
115
112
  if (!isAltScreen)
116
113
  return;
package/dist/tui/app.js CHANGED
@@ -110,7 +110,15 @@ export function App(props) {
110
110
  const isFullscreen = props.isFullscreen ?? false;
111
111
  const grouped = groupTools(transcript);
112
112
  const viewportH = Math.max(5, height - 10);
113
- const totalRows = grouped.length + (plan.length > 0 ? 1 : 0) + 2;
113
+ const estLines = (s) => Math.max(1, Math.ceil(s.length / Math.max(20, width - 6)));
114
+ const totalRows = grouped.reduce((sum, it) => {
115
+ if (it.verb)
116
+ return sum + 1 + ((it.items.length > 1 && expandedGroups.has(it.id)) ? it.items.length : 0);
117
+ const t = it;
118
+ if (t.kind === 'text')
119
+ return sum + estLines(t.text) + 1;
120
+ return sum + 2;
121
+ }, 0) + (plan.length > 0 ? plan.length + 1 : 0) + 2;
114
122
  const maxOffset = Math.max(0, totalRows - viewportH);
115
123
  const isAtBottom = scrollOffset >= maxOffset;
116
124
  const trackH = viewportH;
@@ -18,21 +18,21 @@ export declare const tokens: {
18
18
  readonly diffDelBg: "#2A1212";
19
19
  };
20
20
  readonly ansi: {
21
- readonly accent: "yellow";
21
+ readonly accent: "yellowBright";
22
22
  readonly accentBold: "yellowBright";
23
- readonly fg: "white";
24
- readonly soft: "whiteBright";
23
+ readonly fg: "whiteBright";
24
+ readonly soft: "white";
25
25
  readonly dim: "gray";
26
26
  readonly guide: "gray";
27
- readonly ok: "yellow";
27
+ readonly ok: "yellowBright";
28
28
  readonly err: "red";
29
- readonly warn: "yellow";
29
+ readonly warn: "yellowBright";
30
30
  readonly info: "white";
31
31
  readonly border: "gray";
32
32
  readonly muted: "gray";
33
- readonly success: "yellow";
33
+ readonly success: "yellowBright";
34
34
  readonly error: "red";
35
- readonly warning: "yellow";
35
+ readonly warning: "yellowBright";
36
36
  };
37
37
  };
38
38
  export declare const glyphs: {
@@ -18,21 +18,21 @@ export const tokens = {
18
18
  diffDelBg: '#2A1212',
19
19
  },
20
20
  ansi: {
21
- accent: 'yellow', // #E8843C → 209 → yellow
21
+ accent: 'yellowBright', // #E8843C → vivid orange
22
22
  accentBold: 'yellowBright',
23
- fg: 'white', // #FFFFFF
24
- soft: 'whiteBright', // #F5F5F5
25
- dim: 'gray', // #9A9A9A
23
+ fg: 'whiteBright', // #FFFFFF — pure white
24
+ soft: 'white',
25
+ dim: 'gray',
26
26
  guide: 'gray',
27
- ok: 'yellow', // orange for in white/orange theme
27
+ ok: 'yellowBright', // ✓ orange vivid
28
28
  err: 'red',
29
- warn: 'yellow', // orange
29
+ warn: 'yellowBright', // spinner orange vivid
30
30
  info: 'white',
31
31
  border: 'gray',
32
32
  muted: 'gray',
33
- success: 'yellow',
33
+ success: 'yellowBright',
34
34
  error: 'red',
35
- warning: 'yellow',
35
+ warning: 'yellowBright',
36
36
  },
37
37
  };
38
38
  export const glyphs = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klyro",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "description": "Klyro — autonomous coding harness CLI that streams from any OpenAI-compatible or Anthropic LLM endpoint.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",