@aiwayds/dsh-tui-pi 0.4.3 → 0.5.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.
@@ -5,10 +5,13 @@
5
5
  * - Light: near-white canvas with a faint cool-green cast, clear gray-green
6
6
  * surfaces, graphite-green body text and a steel-blue accent — white /
7
7
  * pale green / pale blue / clear gray, no fluorescent hues.
8
- * - Dark: deep gray-blue canvas (#0d1117 family), accent/success/thinking
9
- * hues mirror the light theme's families (brightened for dark), muted
10
- * fills are solid approximations of alpha tints blended over `canvas`
11
- * (the terminal can't carry alpha) — same values as `blend()` below.
8
+ * - Dark: deep gray-blue canvas (#0d1117 family); every status hue uses the
9
+ * BRIGHT half of the user's cmux GitHub Dark 16-color palette
10
+ * (`~/scripts/cmux-theme.sh`: #79c0ff blue, #56d364 green, #e3b341 gold,
11
+ * #ffa198 red, #d2a8ff violet) so no text role falls into black-on-dark;
12
+ * muted fills are solid approximations of alpha tints blended over
13
+ * `canvas` (the terminal can't carry alpha) — same values as `blend()`
14
+ * below.
12
15
  *
13
16
  * The TUI paints every rendered row with `canvas` (patched pi-tui
14
17
  * `setCanvasBackground`, see src/tui.ts) — the app owns its background, so
@@ -18,6 +21,18 @@
18
21
  * see-through canvas, where `canvas` is only the semantic base for the dark
19
22
  * muted blends and contrast design.
20
23
  */
24
+ /** #rrggbb hex matcher — shared by blend(), hexToRgb() and hexIsLight(). */
25
+ const HEX6 = /^#[0-9a-fA-F]{6}$/;
26
+ /** Alpha tint of `over` on `base`, as a solid hex approximation of an alpha blend. */
27
+ function blend(base, over, alpha) {
28
+ if (!HEX6.test(base) || !HEX6.test(over)) {
29
+ throw new TypeError(`blend(): expected #rrggbb hex colors, got "${base}" and "${over}"`);
30
+ }
31
+ const b = [1, 3, 5].map(i => parseInt(base.slice(i, i + 2), 16));
32
+ const o = [1, 3, 5].map(i => parseInt(over.slice(i, i + 2), 16));
33
+ const mixed = b.map((v, i) => Math.round(v * (1 - alpha) + o[i] * alpha));
34
+ return `#${mixed.map(v => v.toString(16).padStart(2, '0')).join('')}`;
35
+ }
21
36
  export const githubLight = {
22
37
  name: 'github-light',
23
38
  dark: false,
@@ -38,11 +53,11 @@ export const githubLight = {
38
53
  // De-emphasized text (link URLs, unstarted todos, panel ellipsis rows):
39
54
  // clear gray-green, ~4.5:1 on canvasSubtle (WCAG AA for small text).
40
55
  fgSubtle: '#637269',
41
- // Default border (editor border, separators): soft clear gray, derived
42
- // from GitHub #d0d7de.
43
- borderDefault: '#ccd6cc',
44
- // Weak border: lighter clear gray.
45
- borderMuted: '#d9e1d9',
56
+ // Default border (editor border, separators): clear gray-green, 3.3:1 on
57
+ // the canvas so panel lines stay clearly visible (was 1.4:1).
58
+ borderDefault: '#829087',
59
+ // Weak border: one step lighter, ~1.8:1 — auxiliary lines only.
60
+ borderMuted: '#b8c1b9',
46
61
  // Primary accent (selection, links, arrows, session status): soft steel
47
62
  // blue, 5.6:1 on canvasSubtle.
48
63
  accent: '#0a60b5',
@@ -70,21 +85,16 @@ export const githubLight = {
70
85
  // Tool card surface: pale ice blue, same family as accentMuted but a touch
71
86
  // bluer than the green-gray bubble surface.
72
87
  toolPanelBg: '#eef4fb',
73
- // Panel box border (think/tool boxes): green-gray, one step stronger than
74
- // borderDefault so the box lines read against the canvas.
75
- panelBorder: '#a9c0ab',
88
+ // Panel box border (think/tool boxes): green-gray, ~3.3:1 on canvasSubtle
89
+ // so the box lines read against the raised panel surface.
90
+ panelBorder: '#6f8c72',
91
+ // FramedOverlay box border (every select panel / popup): accent tinted
92
+ // over the canvas at a medium alpha — the whole popup chrome carries the
93
+ // theme color while staying readable (~3.3:1 on canvas). Light needs a
94
+ // stronger tint than dark (0.7 vs 0.55): 0.55 only reaches ~2.5:1 on the
95
+ // near-white canvas.
96
+ panelBoxBorder: blend('#fcfdfc', '#0a60b5', 0.7),
76
97
  };
77
- const HEX6 = /^#[0-9a-fA-F]{6}$/;
78
- /** Alpha tint of `over` on `base`, as a solid hex approximation of an alpha blend. */
79
- function blend(base, over, alpha) {
80
- if (!HEX6.test(base) || !HEX6.test(over)) {
81
- throw new TypeError(`blend(): expected #rrggbb hex colors, got "${base}" and "${over}"`);
82
- }
83
- const b = [1, 3, 5].map(i => parseInt(base.slice(i, i + 2), 16));
84
- const o = [1, 3, 5].map(i => parseInt(over.slice(i, i + 2), 16));
85
- const mixed = b.map((v, i) => Math.round(v * (1 - alpha) + o[i] * alpha));
86
- return `#${mixed.map(v => v.toString(16).padStart(2, '0')).join('')}`;
87
- }
88
98
  export const githubDark = {
89
99
  name: 'github-dark',
90
100
  dark: true,
@@ -96,48 +106,53 @@ export const githubDark = {
96
106
  canvasInset: '#010409',
97
107
  // Body text: cool off-white, 16:1 on canvas.
98
108
  fgDefault: '#e6edf3',
99
- // Secondary text: gray-blue, ~6:1.
100
- fgMuted: '#8b949e',
101
- // De-emphasized text: brightened from the original #6e7681, 4.5:1 on
102
- // canvas (low emphasis must still be legible).
103
- fgSubtle: '#737d87',
104
- // Default border: gray-blue.
105
- borderDefault: '#30363d',
106
- // Weak border: deeper gray-blue.
107
- borderMuted: '#21262d',
108
- // Primary accent: same blue family as the light accent, brightened for
109
- // dark, 7.5:1 on canvas.
110
- accent: '#58a6ff',
109
+ // Secondary text: bright gray (cmux GitHub Dark bright-black #b1bac4),
110
+ // 9.6:1 on canvas — secondary must read clearly on the dark canvas.
111
+ fgMuted: '#b1bac4',
112
+ // De-emphasized text (unstarted todos, panel ellipsis rows): 6.2:1 on
113
+ // canvas (low emphasis must still be legible, never near-black).
114
+ fgSubtle: '#8b949e',
115
+ // Default border: gray-blue, 4.1:1 on the canvas so panel lines stay
116
+ // clearly visible (was 1.5:1, nearly black-on-black).
117
+ borderDefault: '#6e7681',
118
+ // Weak border: one step up from the canvas, ~1.9:1 — auxiliary lines only.
119
+ borderMuted: '#3d444d',
120
+ // Primary accent: bright blue (cmux bright-blue), 9.7:1 on canvas.
121
+ accent: '#79c0ff',
111
122
  // Accent tint: 25% blue tint over canvas, one step brighter than
112
123
  // canvasSubtle for card faces.
113
- accentMuted: blend('#0d1117', '#58a6ff', 0.25),
124
+ accentMuted: blend('#0d1117', '#79c0ff', 0.25),
114
125
  // Success: same green family as the light success, brightened, 4.9:1 on
115
126
  // successMuted.
116
- success: '#3fb950',
127
+ success: '#56d364',
117
128
  // Success tint (successful tool cards): 25% green tint over canvas.
118
- successMuted: blend('#0d1117', '#3fb950', 0.25),
119
- // Danger: same red family as the light danger, brightened, 4.9:1 on
120
- // dangerMuted.
121
- danger: '#ff7b72',
129
+ successMuted: blend('#0d1117', '#56d364', 0.25),
130
+ // Danger (errors, ✘ tool cards): bright red (cmux bright-red), 9.7:1 on
131
+ // canvas, 5.8:1 on dangerMuted.
132
+ danger: '#ffa198',
122
133
  // Danger tint (failed tool cards): 25% red tint over canvas.
123
- dangerMuted: blend('#0d1117', '#ff7b72', 0.25),
124
- // Attention: same amber family as the light attention, brightened, 4.9:1
125
- // on attentionMuted.
126
- attention: '#d29922',
127
- // Attention tint: 25% amber tint over canvas.
128
- attentionMuted: blend('#0d1117', '#d29922', 0.25),
129
- // Thinking text: same violet family as the light thinking, brightened,
130
- // 6.9:1 on canvasSubtle.
131
- thinking: '#bc8cff',
134
+ dangerMuted: blend('#0d1117', '#ffa198', 0.25),
135
+ // Attention (in-progress todos, token limit): bright gold (cmux
136
+ // bright-yellow), 9.7:1 on canvas, 5.8:1 on attentionMuted.
137
+ attention: '#e3b341',
138
+ // Attention tint: 25% gold tint over canvas.
139
+ attentionMuted: blend('#0d1117', '#e3b341', 0.25),
140
+ // Thinking text: bright violet (cmux bright-purple), 9.7:1 on canvas,
141
+ // 5.8:1 on thinkingPanelBg.
142
+ thinking: '#d2a8ff',
132
143
  // Think panel surface: 25% violet tint over canvas (same blend convention
133
144
  // as the other dark muted fills).
134
- thinkingPanelBg: blend('#0d1117', '#bc8cff', 0.25),
145
+ thinkingPanelBg: blend('#0d1117', '#d2a8ff', 0.25),
135
146
  // Tool card surface: same 25% blue tint as accentMuted (the two surfaces
136
147
  // are one family; the blue reads as "tool" next to the purple "think").
137
- toolPanelBg: blend('#0d1117', '#58a6ff', 0.25),
138
- // Panel box border (think/tool boxes): green-gray, one step stronger than
139
- // borderDefault so the box lines read against the dark canvas.
140
- panelBorder: '#34433b',
148
+ toolPanelBg: blend('#0d1117', '#79c0ff', 0.25),
149
+ // Panel box border (think/tool boxes): green-gray, ~3.6:1 on canvasSubtle
150
+ // so the box lines read against the raised panel surface.
151
+ panelBorder: '#64766b',
152
+ // FramedOverlay box border (every select panel / popup): accent tinted
153
+ // over the canvasSubtle backdrop — 0.70 blend gives ~5:1 contrast, a
154
+ // clearly blue border that reads as the theme color (not dim gray).
155
+ panelBoxBorder: blend('#0d1117', '#79c0ff', 0.70),
141
156
  };
142
157
  /**
143
158
  * Detect whether the terminal background is dark.
@@ -172,4 +187,32 @@ function rgbLuminance({ r, g, b }) {
172
187
  export function rgbIsLight(rgb) {
173
188
  return rgbLuminance(rgb) >= 0.5;
174
189
  }
190
+ /** Parse a #rrggbb hex string into an RGB triple. */
191
+ function hexToRgb(hex) {
192
+ if (!HEX6.test(hex)) {
193
+ throw new TypeError(`hexToRgb(): expected #rrggbb hex color, got "${hex}"`);
194
+ }
195
+ return {
196
+ r: parseInt(hex.slice(1, 3), 16),
197
+ g: parseInt(hex.slice(3, 5), 16),
198
+ b: parseInt(hex.slice(5, 7), 16),
199
+ };
200
+ }
201
+ /**
202
+ * True when a #rrggbb hex background reads as light — used to pick dark
203
+ * segment text on bright powerline fills (white text only on dark fills).
204
+ */
205
+ export function hexIsLight(hex) {
206
+ return rgbIsLight(hexToRgb(hex));
207
+ }
208
+ /**
209
+ * WCAG contrast ratio (1..21) between two #rrggbb colors — lets the theme
210
+ * tests gate border/surface visibility (UI components target ≥3:1).
211
+ */
212
+ export function hexContrast(fg, bg) {
213
+ const l1 = rgbLuminance(hexToRgb(fg));
214
+ const l2 = rgbLuminance(hexToRgb(bg));
215
+ const [lighter, darker] = l1 >= l2 ? [l1, l2] : [l2, l1];
216
+ return (lighter + 0.05) / (darker + 0.05);
217
+ }
175
218
  //# sourceMappingURL=palette.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiwayds/dsh-tui-pi",
3
- "version": "0.4.3",
3
+ "version": "0.5.1",
4
4
  "description": "pi-style terminal UI for DeepSeek Harness (dsh) — pi-tui look & feel, dsh slash commands, GitHub light/dark themes, powerline footer",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -32,6 +32,7 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@aiwayds/dsh-dcp": "latest",
35
+ "@aiwayds/dsh-subagent-registry": "latest",
35
36
  "@earendil-works/pi-tui": "0.84.2"
36
37
  },
37
38
  "devDependencies": {