klyro 0.1.8 → 0.1.10
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/tui/activity-line.d.ts +19 -0
- package/dist/tui/activity-line.js +30 -0
- package/dist/tui/app.d.ts +2 -2
- package/dist/tui/app.fullscreen.d.ts +25 -0
- package/dist/tui/app.fullscreen.js +97 -0
- package/dist/tui/app.inline.d.ts +29 -0
- package/dist/tui/app.inline.js +336 -0
- package/dist/tui/app.js +56 -260
- package/dist/tui/app.legacy.d.ts +25 -0
- package/dist/tui/app.legacy.js +337 -0
- package/dist/tui/app.test.js +10 -5
- package/dist/tui/banner.d.ts +28 -0
- package/dist/tui/banner.js +15 -0
- package/dist/tui/components/Header.d.ts +7 -0
- package/dist/tui/components/Header.js +5 -0
- package/dist/tui/input-box.d.ts +21 -0
- package/dist/tui/input-box.js +31 -0
- package/dist/tui/snapshot.test.js +16 -7
- package/dist/tui/state.d.ts +66 -0
- package/dist/tui/state.js +20 -0
- package/dist/tui/thinking-block.d.ts +12 -0
- package/dist/tui/thinking-block.js +11 -0
- package/dist/tui/tokens.d.ts +67 -0
- package/dist/tui/tokens.js +88 -0
- package/package.json +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Tokens — TUI_DESIGN.md §4
|
|
3
|
+
* Semantic colors, glyphs, spacing for Klyro TUI
|
|
4
|
+
*/
|
|
5
|
+
export declare const tokens: {
|
|
6
|
+
readonly colors: {
|
|
7
|
+
readonly accent: "#8B7CF6";
|
|
8
|
+
readonly fg: "#E6E6E6";
|
|
9
|
+
readonly muted: "#7A7A7A";
|
|
10
|
+
readonly success: "#4ADE80";
|
|
11
|
+
readonly error: "#F87171";
|
|
12
|
+
readonly warning: "#FBBF24";
|
|
13
|
+
readonly info: "#60A5FA";
|
|
14
|
+
readonly diffAddBg: "#12351F";
|
|
15
|
+
readonly diffDelBg: "#3B1519";
|
|
16
|
+
readonly border: "#3A3A3A";
|
|
17
|
+
readonly codeBg: "#1E1E1E";
|
|
18
|
+
readonly thinking: "#7A7A7A";
|
|
19
|
+
};
|
|
20
|
+
readonly ansi: {
|
|
21
|
+
readonly accent: "magenta";
|
|
22
|
+
readonly fg: undefined;
|
|
23
|
+
readonly muted: "gray";
|
|
24
|
+
readonly success: "green";
|
|
25
|
+
readonly error: "red";
|
|
26
|
+
readonly warning: "yellow";
|
|
27
|
+
readonly info: "blue";
|
|
28
|
+
readonly border: "gray";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare const glyphs: {
|
|
32
|
+
readonly prompt: "›";
|
|
33
|
+
readonly promptAscii: ">";
|
|
34
|
+
readonly toolRunning: "●";
|
|
35
|
+
readonly toolDone: "●";
|
|
36
|
+
readonly connector: "⎿";
|
|
37
|
+
readonly connectorAscii: "\\";
|
|
38
|
+
readonly success: "✔";
|
|
39
|
+
readonly successAscii: "[ok]";
|
|
40
|
+
readonly failure: "✘";
|
|
41
|
+
readonly failureAscii: "[x]";
|
|
42
|
+
readonly warning: "⚠";
|
|
43
|
+
readonly warningAscii: "[!]";
|
|
44
|
+
readonly spinner: readonly ["✻", "✽", "✶", "✳", "✢", "·"];
|
|
45
|
+
readonly spinnerAscii: readonly ["-", "\\", "|", "/"];
|
|
46
|
+
readonly pending: "○";
|
|
47
|
+
readonly pendingAscii: "o";
|
|
48
|
+
readonly checkboxDone: "☒";
|
|
49
|
+
readonly checkboxTodo: "☐";
|
|
50
|
+
readonly repair: "↻";
|
|
51
|
+
readonly repairAscii: "~";
|
|
52
|
+
readonly compaction: "⟲";
|
|
53
|
+
readonly compactionAscii: "~~";
|
|
54
|
+
readonly expand: "▸";
|
|
55
|
+
readonly selected: "❯";
|
|
56
|
+
readonly contextBar: "▰";
|
|
57
|
+
readonly contextBarEmpty: "▱";
|
|
58
|
+
readonly brand: "◆";
|
|
59
|
+
readonly brandAscii: "*";
|
|
60
|
+
};
|
|
61
|
+
export declare function isAsciiMode(): boolean;
|
|
62
|
+
export declare function glyph(name: keyof typeof glyphs): string;
|
|
63
|
+
export declare const spacing: {
|
|
64
|
+
readonly maxWidth: 120;
|
|
65
|
+
readonly indent: 2;
|
|
66
|
+
readonly gap: 1;
|
|
67
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Tokens — TUI_DESIGN.md §4
|
|
3
|
+
* Semantic colors, glyphs, spacing for Klyro TUI
|
|
4
|
+
*/
|
|
5
|
+
export const tokens = {
|
|
6
|
+
colors: {
|
|
7
|
+
accent: '#8B7CF6',
|
|
8
|
+
fg: '#E6E6E6',
|
|
9
|
+
muted: '#7A7A7A',
|
|
10
|
+
success: '#4ADE80',
|
|
11
|
+
error: '#F87171',
|
|
12
|
+
warning: '#FBBF24',
|
|
13
|
+
info: '#60A5FA',
|
|
14
|
+
diffAddBg: '#12351F',
|
|
15
|
+
diffDelBg: '#3B1519',
|
|
16
|
+
border: '#3A3A3A',
|
|
17
|
+
codeBg: '#1E1E1E',
|
|
18
|
+
thinking: '#7A7A7A',
|
|
19
|
+
},
|
|
20
|
+
// For Ink, map to closest ANSI names
|
|
21
|
+
ansi: {
|
|
22
|
+
accent: 'magenta',
|
|
23
|
+
fg: undefined,
|
|
24
|
+
muted: 'gray',
|
|
25
|
+
success: 'green',
|
|
26
|
+
error: 'red',
|
|
27
|
+
warning: 'yellow',
|
|
28
|
+
info: 'blue',
|
|
29
|
+
border: 'gray',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
export const glyphs = {
|
|
33
|
+
prompt: '›',
|
|
34
|
+
promptAscii: '>',
|
|
35
|
+
toolRunning: '●',
|
|
36
|
+
toolDone: '●',
|
|
37
|
+
connector: '⎿',
|
|
38
|
+
connectorAscii: '\\',
|
|
39
|
+
success: '✔',
|
|
40
|
+
successAscii: '[ok]',
|
|
41
|
+
failure: '✘',
|
|
42
|
+
failureAscii: '[x]',
|
|
43
|
+
warning: '⚠',
|
|
44
|
+
warningAscii: '[!]',
|
|
45
|
+
spinner: ['✻', '✽', '✶', '✳', '✢', '·'],
|
|
46
|
+
spinnerAscii: ['-', '\\', '|', '/'],
|
|
47
|
+
pending: '○',
|
|
48
|
+
pendingAscii: 'o',
|
|
49
|
+
checkboxDone: '☒',
|
|
50
|
+
checkboxTodo: '☐',
|
|
51
|
+
repair: '↻',
|
|
52
|
+
repairAscii: '~',
|
|
53
|
+
compaction: '⟲',
|
|
54
|
+
compactionAscii: '~~',
|
|
55
|
+
expand: '▸',
|
|
56
|
+
selected: '❯',
|
|
57
|
+
contextBar: '▰',
|
|
58
|
+
contextBarEmpty: '▱',
|
|
59
|
+
brand: '◆',
|
|
60
|
+
brandAscii: '*',
|
|
61
|
+
};
|
|
62
|
+
export function isAsciiMode() {
|
|
63
|
+
return (process.env.TERM === 'dumb' ||
|
|
64
|
+
process.env.KLYRO_ASCII === '1' ||
|
|
65
|
+
(process.env.LANG !== undefined && !process.env.LANG.toLowerCase().includes('utf-8')) ||
|
|
66
|
+
process.platform === 'win32' // legacy console fallback check could be more precise
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
export function glyph(name) {
|
|
70
|
+
if (isAsciiMode()) {
|
|
71
|
+
const asciiKey = `${String(name)}Ascii`;
|
|
72
|
+
const val = glyphs[asciiKey];
|
|
73
|
+
if (typeof val === 'string')
|
|
74
|
+
return val;
|
|
75
|
+
if (Array.isArray(val))
|
|
76
|
+
return val[0] ?? '>';
|
|
77
|
+
return '>';
|
|
78
|
+
}
|
|
79
|
+
const val = glyphs[name];
|
|
80
|
+
if (Array.isArray(val))
|
|
81
|
+
return val[0] ?? '●';
|
|
82
|
+
return val;
|
|
83
|
+
}
|
|
84
|
+
export const spacing = {
|
|
85
|
+
maxWidth: 120,
|
|
86
|
+
indent: 2,
|
|
87
|
+
gap: 1,
|
|
88
|
+
};
|