@cleocode/cleo-os 2026.4.18 → 2026.4.19

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.
@@ -0,0 +1,235 @@
1
+ /**
2
+ * CleoOS TUI design system theme — shared ANSI color constants.
3
+ *
4
+ * CANONICAL LOCATION: `packages/cleo-os/extensions/tui-theme.ts`
5
+ *
6
+ * Maps the design tokens from `docs/design/CLEO-PI-AGENT-TUI-DESIGN.md`
7
+ * and `docs/design/QUICK-REFERENCE.md` to ANSI 256-color escape sequences.
8
+ *
9
+ * All Pi extensions that render TUI elements MUST import from this module
10
+ * rather than defining ad-hoc ANSI codes inline. This ensures visual
11
+ * consistency across the CleoOS Hearth surface.
12
+ *
13
+ * ANSI 256-color mapping rationale:
14
+ * Terminal environments do not support arbitrary hex colors. The 256-color
15
+ * palette provides the closest available approximation. Each constant
16
+ * documents the target hex value from the design spec and the chosen
17
+ * ANSI 256-color code that best approximates it.
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ /** ANSI reset sequence — clears all styling. */
22
+ export declare const RESET = "\u001B[0m";
23
+ /**
24
+ * Design token `bg-primary` (#0a0a0f) — main background.
25
+ * ANSI 256-color 232 (darkest gray, #080808).
26
+ */
27
+ export declare const CODE_BG_PRIMARY = 232;
28
+ /**
29
+ * Design token `bg-secondary` (#13131f) — panels, elevated surfaces.
30
+ * ANSI 256-color 233 (#121212).
31
+ */
32
+ export declare const CODE_BG_SECONDARY = 233;
33
+ /**
34
+ * Design token `bg-tertiary` (#1a1a2e) — inputs, cards, subtle highlights.
35
+ * ANSI 256-color 234 (#1c1c1c).
36
+ */
37
+ export declare const CODE_BG_TERTIARY = 234;
38
+ /**
39
+ * Design token `accent-primary` (#a855f7) — Pi AI purple accent.
40
+ * ANSI 256-color 135 (#af5fff).
41
+ */
42
+ export declare const CODE_ACCENT_PRIMARY = 135;
43
+ /**
44
+ * Design token `accent-secondary` (#ec4899) — pink accent.
45
+ * ANSI 256-color 205 (#ff5faf).
46
+ */
47
+ export declare const CODE_ACCENT_SECONDARY = 205;
48
+ /**
49
+ * Design token `accent-success` (#22c55e) — success / active states.
50
+ * ANSI 256-color 35 (#00af5f).
51
+ */
52
+ export declare const CODE_ACCENT_SUCCESS = 35;
53
+ /**
54
+ * Design token `accent-warning` (#f59e0b) — warning states.
55
+ * ANSI 256-color 214 (#ffaf00).
56
+ */
57
+ export declare const CODE_ACCENT_WARNING = 214;
58
+ /**
59
+ * Design token `accent-error` (#ef4444) — error states.
60
+ * ANSI 256-color 196 (#ff0000).
61
+ */
62
+ export declare const CODE_ACCENT_ERROR = 196;
63
+ /**
64
+ * Design token `text-primary` (#f8fafc) — primary headings text.
65
+ * ANSI 256-color 255 (#eeeeee).
66
+ */
67
+ export declare const CODE_TEXT_PRIMARY = 255;
68
+ /**
69
+ * Design token `text-secondary` (#94a3b8) — body / muted text.
70
+ * ANSI 256-color 245 (#8a8a8a).
71
+ */
72
+ export declare const CODE_TEXT_SECONDARY = 245;
73
+ /**
74
+ * Design token `text-tertiary` (#64748b) — disabled / very muted text.
75
+ * ANSI 256-color 243 (#767676).
76
+ */
77
+ export declare const CODE_TEXT_TERTIARY = 243;
78
+ /**
79
+ * Design token `border-subtle` (#2a2a3e) — dividers, borders.
80
+ * ANSI 256-color 236 (#303030).
81
+ */
82
+ export declare const CODE_BORDER_SUBTLE = 236;
83
+ /**
84
+ * Design token `border-focus` (#4a4a5e) — focus rings.
85
+ * ANSI 256-color 240 (#585858).
86
+ */
87
+ export declare const CODE_BORDER_FOCUS = 240;
88
+ /**
89
+ * Blue accent for worker tier badges (not in the design palette but used
90
+ * consistently in the Circle of Ten worker display).
91
+ * ANSI 256-color 75 (#5fafff).
92
+ */
93
+ export declare const CODE_TIER_WORKER = 75;
94
+ /**
95
+ * Wrap text in ANSI 256-color foreground.
96
+ *
97
+ * @param text - The text to colorize.
98
+ * @param code - ANSI 256-color code (0-255).
99
+ * @returns The text wrapped in ANSI color escape sequences.
100
+ */
101
+ export declare function fg256(text: string, code: number): string;
102
+ /**
103
+ * Apply `accent-primary` (purple, #a855f7) foreground to text.
104
+ *
105
+ * Used for: Pi AI branding, active tab indicators, focus borders,
106
+ * Circle of Ten header, banner chrome.
107
+ *
108
+ * @param text - The text to style.
109
+ * @returns Purple ANSI text.
110
+ */
111
+ export declare function accentPrimary(text: string): string;
112
+ /**
113
+ * Apply `accent-secondary` (pink, #ec4899) foreground to text.
114
+ *
115
+ * Used for: secondary emphasis, user message borders, gradient endpoints.
116
+ *
117
+ * @param text - The text to style.
118
+ * @returns Pink ANSI text.
119
+ */
120
+ export declare function accentSecondary(text: string): string;
121
+ /**
122
+ * Apply `accent-success` (green, #22c55e) foreground to text.
123
+ *
124
+ * Used for: active status dots, success badges, healthy system states,
125
+ * orchestrator tier prefix.
126
+ *
127
+ * @param text - The text to style.
128
+ * @returns Green ANSI text.
129
+ */
130
+ export declare function accentSuccess(text: string): string;
131
+ /**
132
+ * Apply `accent-warning` (amber, #f59e0b) foreground to text.
133
+ *
134
+ * Used for: paused status, warning badges, lead tier prefix,
135
+ * modified file indicators.
136
+ *
137
+ * @param text - The text to style.
138
+ * @returns Amber/yellow ANSI text.
139
+ */
140
+ export declare function accentWarning(text: string): string;
141
+ /**
142
+ * Apply `accent-error` (red, #ef4444) foreground to text.
143
+ *
144
+ * Used for: error status, failed states, deleted file indicators,
145
+ * validation failures.
146
+ *
147
+ * @param text - The text to style.
148
+ * @returns Red ANSI text.
149
+ */
150
+ export declare function accentError(text: string): string;
151
+ /**
152
+ * Apply `text-secondary` (gray, #94a3b8) foreground to text.
153
+ *
154
+ * Used for: body text, timestamps, metadata, dim separators.
155
+ *
156
+ * @param text - The text to dim.
157
+ * @returns Dim gray ANSI text.
158
+ */
159
+ export declare function textSecondary(text: string): string;
160
+ /**
161
+ * Apply `text-tertiary` (dark gray, #64748b) foreground to text.
162
+ *
163
+ * Used for: disabled text, placeholders, line numbers.
164
+ *
165
+ * @param text - The text to style.
166
+ * @returns Dark gray ANSI text.
167
+ */
168
+ export declare function textTertiary(text: string): string;
169
+ /**
170
+ * Apply worker tier blue accent foreground to text.
171
+ *
172
+ * Used for: worker agent tier prefix `[W]` in the Circle of Ten display.
173
+ *
174
+ * @param text - The text to style.
175
+ * @returns Blue ANSI text.
176
+ */
177
+ export declare function tierWorker(text: string): string;
178
+ /**
179
+ * Apply `border-subtle` (#2a2a3e) foreground to text.
180
+ *
181
+ * Used for: separator lines, box-drawing border characters.
182
+ *
183
+ * @param text - The text to style.
184
+ * @returns Subtle border-colored ANSI text.
185
+ */
186
+ export declare function borderSubtle(text: string): string;
187
+ /**
188
+ * Apply ANSI bold to text.
189
+ *
190
+ * Used for: headings, agent names, active labels, H2/H3 elements.
191
+ *
192
+ * @param text - The text to bold.
193
+ * @returns Bold ANSI text.
194
+ */
195
+ export declare function bold(text: string): string;
196
+ /**
197
+ * Apply ANSI italic to text.
198
+ *
199
+ * Used for: thought process text, AI reasoning display.
200
+ *
201
+ * @param text - The text to italicize.
202
+ * @returns Italic ANSI text.
203
+ */
204
+ export declare function italic(text: string): string;
205
+ /** Double-line horizontal bar character. */
206
+ export declare const BOX_HORIZONTAL = "\u2550";
207
+ /** Double-line vertical bar character. */
208
+ export declare const BOX_VERTICAL = "\u2551";
209
+ /** Double-line top-left corner. */
210
+ export declare const BOX_TOP_LEFT = "\u2554";
211
+ /** Double-line top-right corner. */
212
+ export declare const BOX_TOP_RIGHT = "\u2557";
213
+ /** Double-line bottom-left corner. */
214
+ export declare const BOX_BOTTOM_LEFT = "\u255A";
215
+ /** Double-line bottom-right corner. */
216
+ export declare const BOX_BOTTOM_RIGHT = "\u255D";
217
+ /** Double-line left T-junction. */
218
+ export declare const BOX_LEFT_T = "\u2560";
219
+ /** Double-line right T-junction. */
220
+ export declare const BOX_RIGHT_T = "\u2563";
221
+ /** Single-line horizontal bar character (for lighter separators). */
222
+ export declare const LINE_HORIZONTAL = "\u2500";
223
+ /** Single-line vertical bar character (for lighter separators). */
224
+ export declare const LINE_VERTICAL = "\u2502";
225
+ /** Filled circle — active / online status. */
226
+ export declare const DOT_FILLED = "\u25CF";
227
+ /** Hollow circle — inactive / offline status. */
228
+ export declare const DOT_HOLLOW = "\u25CB";
229
+ /** Hammer and pick — CleoOS forge icon. */
230
+ export declare const ICON_FORGE = "\u2692";
231
+ /** Diamond — team indicator. */
232
+ export declare const ICON_DIAMOND = "\u25C6";
233
+ /** Triangle up — tier/priority indicator. */
234
+ export declare const ICON_TRIANGLE = "\u25B2";
235
+ //# sourceMappingURL=tui-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-theme.d.ts","sourceRoot":"","sources":["tui-theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * CleoOS TUI design system theme — shared ANSI color constants.
3
+ *
4
+ * CANONICAL LOCATION: `packages/cleo-os/extensions/tui-theme.ts`
5
+ *
6
+ * Maps the design tokens from `docs/design/CLEO-PI-AGENT-TUI-DESIGN.md`
7
+ * and `docs/design/QUICK-REFERENCE.md` to ANSI 256-color escape sequences.
8
+ *
9
+ * All Pi extensions that render TUI elements MUST import from this module
10
+ * rather than defining ad-hoc ANSI codes inline. This ensures visual
11
+ * consistency across the CleoOS Hearth surface.
12
+ *
13
+ * ANSI 256-color mapping rationale:
14
+ * Terminal environments do not support arbitrary hex colors. The 256-color
15
+ * palette provides the closest available approximation. Each constant
16
+ * documents the target hex value from the design spec and the chosen
17
+ * ANSI 256-color code that best approximates it.
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ // ============================================================================
22
+ // ANSI primitives
23
+ // ============================================================================
24
+ /** ANSI escape code prefix. */
25
+ const ESC = "\x1b[";
26
+ /** ANSI reset sequence — clears all styling. */
27
+ export const RESET = `${ESC}0m`;
28
+ // ============================================================================
29
+ // Raw ANSI 256-color codes (design token → closest 256-color match)
30
+ // ============================================================================
31
+ /**
32
+ * Design token `bg-primary` (#0a0a0f) — main background.
33
+ * ANSI 256-color 232 (darkest gray, #080808).
34
+ */
35
+ export const CODE_BG_PRIMARY = 232;
36
+ /**
37
+ * Design token `bg-secondary` (#13131f) — panels, elevated surfaces.
38
+ * ANSI 256-color 233 (#121212).
39
+ */
40
+ export const CODE_BG_SECONDARY = 233;
41
+ /**
42
+ * Design token `bg-tertiary` (#1a1a2e) — inputs, cards, subtle highlights.
43
+ * ANSI 256-color 234 (#1c1c1c).
44
+ */
45
+ export const CODE_BG_TERTIARY = 234;
46
+ /**
47
+ * Design token `accent-primary` (#a855f7) — Pi AI purple accent.
48
+ * ANSI 256-color 135 (#af5fff).
49
+ */
50
+ export const CODE_ACCENT_PRIMARY = 135;
51
+ /**
52
+ * Design token `accent-secondary` (#ec4899) — pink accent.
53
+ * ANSI 256-color 205 (#ff5faf).
54
+ */
55
+ export const CODE_ACCENT_SECONDARY = 205;
56
+ /**
57
+ * Design token `accent-success` (#22c55e) — success / active states.
58
+ * ANSI 256-color 35 (#00af5f).
59
+ */
60
+ export const CODE_ACCENT_SUCCESS = 35;
61
+ /**
62
+ * Design token `accent-warning` (#f59e0b) — warning states.
63
+ * ANSI 256-color 214 (#ffaf00).
64
+ */
65
+ export const CODE_ACCENT_WARNING = 214;
66
+ /**
67
+ * Design token `accent-error` (#ef4444) — error states.
68
+ * ANSI 256-color 196 (#ff0000).
69
+ */
70
+ export const CODE_ACCENT_ERROR = 196;
71
+ /**
72
+ * Design token `text-primary` (#f8fafc) — primary headings text.
73
+ * ANSI 256-color 255 (#eeeeee).
74
+ */
75
+ export const CODE_TEXT_PRIMARY = 255;
76
+ /**
77
+ * Design token `text-secondary` (#94a3b8) — body / muted text.
78
+ * ANSI 256-color 245 (#8a8a8a).
79
+ */
80
+ export const CODE_TEXT_SECONDARY = 245;
81
+ /**
82
+ * Design token `text-tertiary` (#64748b) — disabled / very muted text.
83
+ * ANSI 256-color 243 (#767676).
84
+ */
85
+ export const CODE_TEXT_TERTIARY = 243;
86
+ /**
87
+ * Design token `border-subtle` (#2a2a3e) — dividers, borders.
88
+ * ANSI 256-color 236 (#303030).
89
+ */
90
+ export const CODE_BORDER_SUBTLE = 236;
91
+ /**
92
+ * Design token `border-focus` (#4a4a5e) — focus rings.
93
+ * ANSI 256-color 240 (#585858).
94
+ */
95
+ export const CODE_BORDER_FOCUS = 240;
96
+ /**
97
+ * Blue accent for worker tier badges (not in the design palette but used
98
+ * consistently in the Circle of Ten worker display).
99
+ * ANSI 256-color 75 (#5fafff).
100
+ */
101
+ export const CODE_TIER_WORKER = 75;
102
+ // ============================================================================
103
+ // Convenience styling functions
104
+ // ============================================================================
105
+ /**
106
+ * Wrap text in ANSI 256-color foreground.
107
+ *
108
+ * @param text - The text to colorize.
109
+ * @param code - ANSI 256-color code (0-255).
110
+ * @returns The text wrapped in ANSI color escape sequences.
111
+ */
112
+ export function fg256(text, code) {
113
+ return `${ESC}38;5;${code}m${text}${RESET}`;
114
+ }
115
+ /**
116
+ * Apply `accent-primary` (purple, #a855f7) foreground to text.
117
+ *
118
+ * Used for: Pi AI branding, active tab indicators, focus borders,
119
+ * Circle of Ten header, banner chrome.
120
+ *
121
+ * @param text - The text to style.
122
+ * @returns Purple ANSI text.
123
+ */
124
+ export function accentPrimary(text) {
125
+ return fg256(text, CODE_ACCENT_PRIMARY);
126
+ }
127
+ /**
128
+ * Apply `accent-secondary` (pink, #ec4899) foreground to text.
129
+ *
130
+ * Used for: secondary emphasis, user message borders, gradient endpoints.
131
+ *
132
+ * @param text - The text to style.
133
+ * @returns Pink ANSI text.
134
+ */
135
+ export function accentSecondary(text) {
136
+ return fg256(text, CODE_ACCENT_SECONDARY);
137
+ }
138
+ /**
139
+ * Apply `accent-success` (green, #22c55e) foreground to text.
140
+ *
141
+ * Used for: active status dots, success badges, healthy system states,
142
+ * orchestrator tier prefix.
143
+ *
144
+ * @param text - The text to style.
145
+ * @returns Green ANSI text.
146
+ */
147
+ export function accentSuccess(text) {
148
+ return fg256(text, CODE_ACCENT_SUCCESS);
149
+ }
150
+ /**
151
+ * Apply `accent-warning` (amber, #f59e0b) foreground to text.
152
+ *
153
+ * Used for: paused status, warning badges, lead tier prefix,
154
+ * modified file indicators.
155
+ *
156
+ * @param text - The text to style.
157
+ * @returns Amber/yellow ANSI text.
158
+ */
159
+ export function accentWarning(text) {
160
+ return fg256(text, CODE_ACCENT_WARNING);
161
+ }
162
+ /**
163
+ * Apply `accent-error` (red, #ef4444) foreground to text.
164
+ *
165
+ * Used for: error status, failed states, deleted file indicators,
166
+ * validation failures.
167
+ *
168
+ * @param text - The text to style.
169
+ * @returns Red ANSI text.
170
+ */
171
+ export function accentError(text) {
172
+ return fg256(text, CODE_ACCENT_ERROR);
173
+ }
174
+ /**
175
+ * Apply `text-secondary` (gray, #94a3b8) foreground to text.
176
+ *
177
+ * Used for: body text, timestamps, metadata, dim separators.
178
+ *
179
+ * @param text - The text to dim.
180
+ * @returns Dim gray ANSI text.
181
+ */
182
+ export function textSecondary(text) {
183
+ return fg256(text, CODE_TEXT_SECONDARY);
184
+ }
185
+ /**
186
+ * Apply `text-tertiary` (dark gray, #64748b) foreground to text.
187
+ *
188
+ * Used for: disabled text, placeholders, line numbers.
189
+ *
190
+ * @param text - The text to style.
191
+ * @returns Dark gray ANSI text.
192
+ */
193
+ export function textTertiary(text) {
194
+ return fg256(text, CODE_TEXT_TERTIARY);
195
+ }
196
+ /**
197
+ * Apply worker tier blue accent foreground to text.
198
+ *
199
+ * Used for: worker agent tier prefix `[W]` in the Circle of Ten display.
200
+ *
201
+ * @param text - The text to style.
202
+ * @returns Blue ANSI text.
203
+ */
204
+ export function tierWorker(text) {
205
+ return fg256(text, CODE_TIER_WORKER);
206
+ }
207
+ /**
208
+ * Apply `border-subtle` (#2a2a3e) foreground to text.
209
+ *
210
+ * Used for: separator lines, box-drawing border characters.
211
+ *
212
+ * @param text - The text to style.
213
+ * @returns Subtle border-colored ANSI text.
214
+ */
215
+ export function borderSubtle(text) {
216
+ return fg256(text, CODE_BORDER_SUBTLE);
217
+ }
218
+ /**
219
+ * Apply ANSI bold to text.
220
+ *
221
+ * Used for: headings, agent names, active labels, H2/H3 elements.
222
+ *
223
+ * @param text - The text to bold.
224
+ * @returns Bold ANSI text.
225
+ */
226
+ export function bold(text) {
227
+ return `${ESC}1m${text}${RESET}`;
228
+ }
229
+ /**
230
+ * Apply ANSI italic to text.
231
+ *
232
+ * Used for: thought process text, AI reasoning display.
233
+ *
234
+ * @param text - The text to italicize.
235
+ * @returns Italic ANSI text.
236
+ */
237
+ export function italic(text) {
238
+ return `${ESC}3m${text}${RESET}`;
239
+ }
240
+ // ============================================================================
241
+ // Box-drawing constants (Forge aesthetic)
242
+ // ============================================================================
243
+ /** Double-line horizontal bar character. */
244
+ export const BOX_HORIZONTAL = "\u2550";
245
+ /** Double-line vertical bar character. */
246
+ export const BOX_VERTICAL = "\u2551";
247
+ /** Double-line top-left corner. */
248
+ export const BOX_TOP_LEFT = "\u2554";
249
+ /** Double-line top-right corner. */
250
+ export const BOX_TOP_RIGHT = "\u2557";
251
+ /** Double-line bottom-left corner. */
252
+ export const BOX_BOTTOM_LEFT = "\u255A";
253
+ /** Double-line bottom-right corner. */
254
+ export const BOX_BOTTOM_RIGHT = "\u255D";
255
+ /** Double-line left T-junction. */
256
+ export const BOX_LEFT_T = "\u2560";
257
+ /** Double-line right T-junction. */
258
+ export const BOX_RIGHT_T = "\u2563";
259
+ /** Single-line horizontal bar character (for lighter separators). */
260
+ export const LINE_HORIZONTAL = "\u2500";
261
+ /** Single-line vertical bar character (for lighter separators). */
262
+ export const LINE_VERTICAL = "\u2502";
263
+ // ============================================================================
264
+ // Status indicator characters
265
+ // ============================================================================
266
+ /** Filled circle — active / online status. */
267
+ export const DOT_FILLED = "\u25CF";
268
+ /** Hollow circle — inactive / offline status. */
269
+ export const DOT_HOLLOW = "\u25CB";
270
+ /** Hammer and pick — CleoOS forge icon. */
271
+ export const ICON_FORGE = "\u2692";
272
+ /** Diamond — team indicator. */
273
+ export const ICON_DIAMOND = "\u25C6";
274
+ /** Triangle up — tier/priority indicator. */
275
+ export const ICON_TRIANGLE = "\u25B2";
276
+ //# sourceMappingURL=tui-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-theme.js","sourceRoot":"","sources":["tui-theme.ts"],"names":[],"mappings":"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"}