@geometra/cli 1.14.4 → 1.15.0

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.
@@ -1,12 +1,19 @@
1
1
  /**
2
- * Composites multiple Geometra WebSocket views into a single terminal output.
3
- * Each view gets a vertical slice of the terminal, rendered top-to-bottom.
2
+ * Composites multiple Geometra WebSocket views into a scrollable terminal.
3
+ *
4
+ * Renders at readable scale (width-based) into a virtual grid that can be
5
+ * taller than the terminal. Arrow keys scroll the viewport up/down.
6
+ * Text truncates with "…" instead of overflowing.
4
7
  */
5
8
  export declare class TerminalCompositor {
6
9
  private views;
7
- private width;
8
- private height;
9
- private grid;
10
+ private termWidth;
11
+ private termHeight;
12
+ /** Virtual grid — can be taller than the terminal */
13
+ private vGrid;
14
+ private vHeight;
15
+ /** Scroll offset (which virtual row is at the top of the terminal) */
16
+ private scrollY;
10
17
  private renderScheduled;
11
18
  constructor(urls: string[], options?: {
12
19
  width?: number;
@@ -14,11 +21,12 @@ export declare class TerminalCompositor {
14
21
  });
15
22
  start(): void;
16
23
  close(): void;
24
+ private setupKeyboardScroll;
17
25
  private connectView;
18
26
  private scheduleRender;
19
- private computeRowAllocation;
20
27
  private compositeRender;
21
- private paintView;
28
+ /** Write the visible viewport slice of vGrid to the terminal */
29
+ private flushViewport;
22
30
  private paintNode;
23
31
  private paintBox;
24
32
  private paintText;
@@ -1 +1 @@
1
- {"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAsEA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,eAAe,CAAQ;gBAG7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAe/C,KAAK,IAAI,IAAI;IAQb,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;CASnB"}
1
+ {"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAkEA;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAQ;IAC1B,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAI;IACnB,sEAAsE;IACtE,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,eAAe,CAAQ;gBAG7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAa/C,KAAK,IAAI,IAAI;IAMb,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IA2CvB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,QAAQ;IA8BhB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;CASnB"}
@@ -24,10 +24,9 @@ function parseColor(color) {
24
24
  if (color.startsWith('#')) {
25
25
  return [parseInt(color.slice(1, 3), 16), parseInt(color.slice(3, 5), 16), parseInt(color.slice(5, 7), 16)];
26
26
  }
27
- const rgbaMatch = color.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
28
- if (rgbaMatch) {
29
- return [Number(rgbaMatch[1]), Number(rgbaMatch[2]), Number(rgbaMatch[3])];
30
- }
27
+ const m = color.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
28
+ if (m)
29
+ return [Number(m[1]), Number(m[2]), Number(m[3])];
31
30
  return null;
32
31
  }
33
32
  function colorToAnsi256(color) {
@@ -53,39 +52,83 @@ function fg256(color) {
53
52
  return c !== null ? `${ESC}38;5;${c}m` : '';
54
53
  }
55
54
  /**
56
- * Composites multiple Geometra WebSocket views into a single terminal output.
57
- * Each view gets a vertical slice of the terminal, rendered top-to-bottom.
55
+ * Composites multiple Geometra WebSocket views into a scrollable terminal.
56
+ *
57
+ * Renders at readable scale (width-based) into a virtual grid that can be
58
+ * taller than the terminal. Arrow keys scroll the viewport up/down.
59
+ * Text truncates with "…" instead of overflowing.
58
60
  */
59
61
  export class TerminalCompositor {
60
62
  views = [];
61
- width;
62
- height;
63
- grid = [];
63
+ termWidth;
64
+ termHeight;
65
+ /** Virtual grid can be taller than the terminal */
66
+ vGrid = [];
67
+ vHeight = 0;
68
+ /** Scroll offset (which virtual row is at the top of the terminal) */
69
+ scrollY = 0;
64
70
  renderScheduled = false;
65
71
  constructor(urls, options) {
66
- this.width = options?.width ?? process.stdout.columns ?? 80;
67
- this.height = options?.height ?? process.stdout.rows ?? 24;
68
- this.grid = this.createGrid();
72
+ this.termWidth = options?.width ?? process.stdout.columns ?? 80;
73
+ this.termHeight = options?.height ?? process.stdout.rows ?? 24;
69
74
  this.views = urls.map((url) => ({
70
75
  url,
71
76
  ws: null,
72
77
  layout: null,
73
78
  tree: null,
74
- rows: 0, // computed dynamically after first frames arrive
75
79
  }));
76
80
  }
77
81
  start() {
78
82
  process.stdout.write(HIDE_CURSOR + CLEAR);
79
- for (const view of this.views) {
83
+ for (const view of this.views)
80
84
  this.connectView(view);
81
- }
85
+ this.setupKeyboardScroll();
82
86
  }
83
87
  close() {
84
- for (const view of this.views) {
88
+ for (const view of this.views)
85
89
  view.ws?.close();
86
- }
90
+ if (process.stdin.isTTY)
91
+ process.stdin.setRawMode(false);
87
92
  process.stdout.write(RESET + SHOW_CURSOR + CLEAR);
88
93
  }
94
+ setupKeyboardScroll() {
95
+ if (!process.stdin.isTTY)
96
+ return;
97
+ process.stdin.setRawMode(true);
98
+ process.stdin.resume();
99
+ process.stdin.on('data', (data) => {
100
+ const key = data.toString();
101
+ if (key === '\x03' || key === 'q') { // Ctrl+C or q
102
+ this.close();
103
+ process.exit(0);
104
+ }
105
+ const maxScroll = Math.max(0, this.vHeight - this.termHeight);
106
+ if (key === '\x1b[A' || key === 'k') { // Up arrow or k
107
+ this.scrollY = Math.max(0, this.scrollY - 3);
108
+ this.flushViewport();
109
+ }
110
+ else if (key === '\x1b[B' || key === 'j') { // Down arrow or j
111
+ this.scrollY = Math.min(maxScroll, this.scrollY + 3);
112
+ this.flushViewport();
113
+ }
114
+ else if (key === '\x1b[5~' || key === 'u') { // Page Up or u
115
+ this.scrollY = Math.max(0, this.scrollY - this.termHeight);
116
+ this.flushViewport();
117
+ }
118
+ else if (key === '\x1b[6~' || key === 'd') { // Page Down or d
119
+ this.scrollY = Math.min(maxScroll, this.scrollY + this.termHeight);
120
+ this.flushViewport();
121
+ }
122
+ else if (key === 'g') { // Home
123
+ this.scrollY = 0;
124
+ this.flushViewport();
125
+ }
126
+ else if (key === 'G') { // End
127
+ this.scrollY = maxScroll;
128
+ this.flushViewport();
129
+ }
130
+ });
131
+ }
89
132
  connectView(view) {
90
133
  const ws = new WebSocket(view.url);
91
134
  view.ws = ws;
@@ -108,11 +151,8 @@ export class TerminalCompositor {
108
151
  process.stderr.write(`\x1b[31m${view.url}: ${err.message}\x1b[0m\n`);
109
152
  });
110
153
  ws.on('close', () => {
111
- // Try reconnect after 3s
112
- setTimeout(() => {
113
- if (view.ws === ws)
114
- this.connectView(view);
115
- }, 3000);
154
+ setTimeout(() => { if (view.ws === ws)
155
+ this.connectView(view); }, 3000);
116
156
  });
117
157
  }
118
158
  scheduleRender() {
@@ -124,44 +164,55 @@ export class TerminalCompositor {
124
164
  this.compositeRender();
125
165
  });
126
166
  }
127
- computeRowAllocation() {
128
- // Give header-like views (short) minimal rows, rest to content views
129
- const isShort = this.views.map(v => {
130
- if (!v.layout)
131
- return true;
132
- return v.layout.height < 200; // header views are typically < 100px
133
- });
134
- const shortCount = isShort.filter(Boolean).length;
135
- const tallCount = this.views.length - shortCount;
136
- for (let i = 0; i < this.views.length; i++) {
137
- if (isShort[i]) {
138
- // Short views (headers): give 2-3 rows
139
- this.views[i].rows = Math.min(3, Math.max(2, Math.floor(this.height * 0.05)));
167
+ compositeRender() {
168
+ // Compute scale: fit layout width to terminal columns
169
+ // Use the widest view's width as reference
170
+ let maxLayoutWidth = 1;
171
+ for (const v of this.views) {
172
+ if (v.layout && v.layout.width > maxLayoutWidth)
173
+ maxLayoutWidth = v.layout.width;
174
+ }
175
+ const scaleX = this.termWidth / maxLayoutWidth;
176
+ // Terminal chars are ~2x taller than wide
177
+ const scaleY = scaleX * 0.5;
178
+ // Compute total virtual height across all views
179
+ let totalVRows = 0;
180
+ for (const v of this.views) {
181
+ if (v.layout) {
182
+ totalVRows += Math.max(1, Math.ceil(v.layout.height * scaleY));
140
183
  }
141
184
  else {
142
- // Tall views (content): split remaining rows equally
143
- const remaining = this.height - shortCount * 3;
144
- this.views[i].rows = Math.max(4, Math.floor(remaining / Math.max(1, tallCount)));
185
+ totalVRows += 2;
145
186
  }
146
187
  }
147
- }
148
- compositeRender() {
149
- this.computeRowAllocation();
150
- this.grid = this.createGrid();
188
+ this.vHeight = totalVRows;
189
+ // Build virtual grid
190
+ this.vGrid = this.createGrid(this.termWidth, this.vHeight);
191
+ // Paint each view into the virtual grid
151
192
  let yOffset = 0;
152
193
  for (const view of this.views) {
153
194
  if (view.layout && view.tree) {
154
- this.paintView(view.layout, view.tree, yOffset, view.rows);
195
+ const viewRows = Math.max(1, Math.ceil(view.layout.height * scaleY));
196
+ this.paintNode(view.tree, view.layout, 0, 0, scaleX, scaleY, yOffset);
197
+ yOffset += viewRows;
198
+ }
199
+ else {
200
+ yOffset += 2;
155
201
  }
156
- yOffset += view.rows;
157
202
  }
158
- // Flush grid to terminal
203
+ // Clamp scroll
204
+ this.scrollY = Math.min(this.scrollY, Math.max(0, this.vHeight - this.termHeight));
205
+ this.flushViewport();
206
+ }
207
+ /** Write the visible viewport slice of vGrid to the terminal */
208
+ flushViewport() {
159
209
  let buf = moveTo(0, 0);
160
- for (let y = 0; y < this.height; y++) {
161
- buf += moveTo(0, y);
210
+ for (let ty = 0; ty < this.termHeight; ty++) {
211
+ buf += moveTo(0, ty);
212
+ const vy = ty + this.scrollY;
162
213
  let lastFg = '', lastBg = '';
163
- for (let x = 0; x < this.width; x++) {
164
- const cell = this.grid[y][x];
214
+ for (let x = 0; x < this.termWidth; x++) {
215
+ const cell = this.vGrid[vy]?.[x] ?? { char: ' ', fg: '', bg: '' };
165
216
  if (cell.bg !== lastBg) {
166
217
  buf += cell.bg ? bg256(cell.bg) : RESET;
167
218
  lastBg = cell.bg;
@@ -174,95 +225,97 @@ export class TerminalCompositor {
174
225
  }
175
226
  buf += RESET;
176
227
  }
228
+ // Scroll indicator
229
+ if (this.vHeight > this.termHeight) {
230
+ const pct = Math.round(this.scrollY / Math.max(1, this.vHeight - this.termHeight) * 100);
231
+ const indicator = ` ${pct}% ↑↓ scroll `;
232
+ buf += moveTo(this.termWidth - indicator.length - 1, this.termHeight - 1);
233
+ buf += `${ESC}48;5;237m${ESC}38;5;252m${indicator}${RESET}`;
234
+ }
177
235
  process.stdout.write(buf);
178
236
  }
179
- paintView(layout, tree, yOffset, maxRows) {
180
- // Scale to fit within allocated terminal space (both width and height)
181
- const scaleX = this.width / layout.width;
182
- // Terminal chars are ~2x taller than wide, so y needs 0.5 factor
183
- const scaleYFromWidth = scaleX * 0.5;
184
- // Also constrain by available rows
185
- const scaleYFromHeight = maxRows / (layout.height * 0.5);
186
- // Use the smaller scale so content fits both dimensions
187
- const scaleY = Math.min(scaleYFromWidth, scaleYFromHeight);
188
- const finalScaleX = Math.min(scaleX, scaleY * 2); // keep aspect ratio
189
- this.paintNode(tree, layout, 0, 0, finalScaleX, scaleY, yOffset, yOffset + maxRows);
190
- }
191
- paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, minRow, maxRow) {
237
+ paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, baseY) {
192
238
  const x = Math.round((offsetX + layout.x) * scaleX);
193
- const y = minRow + Math.round((offsetY + layout.y) * scaleY);
239
+ const y = baseY + Math.round((offsetY + layout.y) * scaleY);
194
240
  const w = Math.max(1, Math.round(layout.width * scaleX));
195
241
  const h = Math.max(1, Math.round(layout.height * scaleY));
196
242
  if (element.kind === 'box') {
197
- this.paintBox(element, x, y, w, h, minRow, maxRow);
243
+ this.paintBox(element, x, y, w, h);
198
244
  const childOffsetX = offsetX + layout.x - (element.props.scrollX ?? 0);
199
245
  const childOffsetY = offsetY + layout.y - (element.props.scrollY ?? 0);
200
246
  for (let i = 0; i < element.children.length; i++) {
201
247
  const childLayout = layout.children[i];
202
248
  if (childLayout) {
203
- this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, minRow, maxRow);
249
+ this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, baseY);
204
250
  }
205
251
  }
206
252
  }
207
253
  else if (element.kind === 'scene3d') {
208
- // Skip 3D scenes in terminal
254
+ // skip
209
255
  }
210
256
  else if (element.kind !== 'image') {
211
- this.paintText(element, x, y, w, minRow, maxRow);
257
+ this.paintText(element, x, y, w, h);
212
258
  }
213
259
  }
214
- paintBox(element, x, y, w, h, minRow, maxRow) {
215
- const bg = element.props.backgroundColor;
216
- const gradientBg = element.props.gradient?.stops[0]?.color;
260
+ paintBox(element, x, y, w, h) {
261
+ const props = element.props;
262
+ const bg = props.backgroundColor;
263
+ const gradientBg = props.gradient?.stops[0]?.color;
217
264
  const fillColor = bg ?? gradientBg;
218
265
  if (!fillColor)
219
266
  return;
220
267
  for (let dy = 0; dy < h; dy++) {
221
268
  for (let dx = 0; dx < w; dx++) {
222
- this.setCell(x + dx, y + dy, ' ', '', fillColor, minRow, maxRow);
269
+ this.setCell(x + dx, y + dy, ' ', '', fillColor);
223
270
  }
224
271
  }
225
- if (element.props.borderColor) {
226
- const bc = element.props.borderColor;
227
- if (w >= 2 && h >= 2) {
228
- this.setCell(x, y, '\u250c', bc, fillColor, minRow, maxRow);
229
- this.setCell(x + w - 1, y, '\u2510', bc, fillColor, minRow, maxRow);
230
- this.setCell(x, y + h - 1, '\u2514', bc, fillColor, minRow, maxRow);
231
- this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor, minRow, maxRow);
232
- for (let dx = 1; dx < w - 1; dx++) {
233
- this.setCell(x + dx, y, '\u2500', bc, fillColor, minRow, maxRow);
234
- this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor, minRow, maxRow);
235
- }
236
- for (let dy = 1; dy < h - 1; dy++) {
237
- this.setCell(x, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
238
- this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
239
- }
272
+ const bc = props.borderColor;
273
+ if (bc && w >= 2 && h >= 2) {
274
+ this.setCell(x, y, '\u250c', bc, fillColor);
275
+ this.setCell(x + w - 1, y, '\u2510', bc, fillColor);
276
+ this.setCell(x, y + h - 1, '\u2514', bc, fillColor);
277
+ this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor);
278
+ for (let dx = 1; dx < w - 1; dx++) {
279
+ this.setCell(x + dx, y, '\u2500', bc, fillColor);
280
+ this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor);
281
+ }
282
+ for (let dy = 1; dy < h - 1; dy++) {
283
+ this.setCell(x, y + dy, '\u2502', bc, fillColor);
284
+ this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor);
240
285
  }
241
286
  }
242
287
  }
243
- paintText(element, x, y, w, minRow, maxRow) {
244
- const { text, color, backgroundColor } = element.props;
245
- const fg = color ?? '#ffffff';
246
- const bg = backgroundColor ?? '';
288
+ paintText(element, x, y, w, h) {
289
+ const props = element.props;
290
+ const text = props.text ?? '';
291
+ const fg = props.color ?? '#ffffff';
292
+ const bg = props.backgroundColor ?? '';
293
+ // Smart truncation: fit text into allocated w×h cells
294
+ const lines = text.split('\n');
247
295
  let row = 0;
248
- for (const paragraph of text.split('\n')) {
249
- if (!paragraph.length) {
250
- row++;
251
- continue;
296
+ for (const line of lines) {
297
+ if (row >= h)
298
+ break;
299
+ if (line.length <= w) {
300
+ // Fits — render as-is
301
+ for (let c = 0; c < line.length; c++) {
302
+ this.setCell(x + c, y + row, line[c], fg, bg);
303
+ }
252
304
  }
253
- for (let i = 0; i < paragraph.length; i += w) {
254
- const chunk = paragraph.slice(i, i + w);
255
- for (let c = 0; c < chunk.length; c++) {
256
- this.setCell(x + c, y + row, chunk[c], fg, bg, minRow, maxRow);
305
+ else {
306
+ // Truncate with ellipsis
307
+ const truncated = line.slice(0, Math.max(1, w - 1)) + '\u2026';
308
+ for (let c = 0; c < Math.min(truncated.length, w); c++) {
309
+ this.setCell(x + c, y + row, truncated[c], fg, bg);
257
310
  }
258
- row++;
259
311
  }
312
+ row++;
260
313
  }
261
314
  }
262
- setCell(x, y, char, fg, bg, minRow, maxRow) {
263
- if (x < 0 || x >= this.width || y < minRow || y >= maxRow || y < 0 || y >= this.height)
315
+ setCell(x, y, char, fg, bg) {
316
+ if (x < 0 || x >= this.termWidth || y < 0 || y >= this.vHeight)
264
317
  return;
265
- const cell = this.grid[y]?.[x];
318
+ const cell = this.vGrid[y]?.[x];
266
319
  if (!cell)
267
320
  return;
268
321
  cell.char = char;
@@ -271,11 +324,11 @@ export class TerminalCompositor {
271
324
  if (bg)
272
325
  cell.bg = bg;
273
326
  }
274
- createGrid() {
327
+ createGrid(w, h) {
275
328
  const grid = [];
276
- for (let y = 0; y < this.height; y++) {
329
+ for (let y = 0; y < h; y++) {
277
330
  const row = [];
278
- for (let x = 0; x < this.width; x++)
331
+ for (let x = 0; x < w; x++)
279
332
  row.push({ char: ' ', fg: '', bg: '' });
280
333
  grid.push(row);
281
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geometra/cli",
3
- "version": "1.14.4",
3
+ "version": "1.15.0",
4
4
  "description": "CLI to view any Geometra-powered site in the terminal",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,9 +35,9 @@
35
35
  "check": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@geometra/core": "^1.14.4",
39
- "@geometra/renderer-terminal": "^1.14.4",
40
- "textura": "^1.14.4",
38
+ "@geometra/core": "^1.15.0",
39
+ "@geometra/renderer-terminal": "^1.15.0",
40
+ "textura": "^1.15.0",
41
41
  "ws": "^8.18.0"
42
42
  },
43
43
  "devDependencies": {