@geometra/cli 1.14.5 → 1.15.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.
@@ -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;IAOjB,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;IAkDvB,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,61 @@ 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
+ let maxLayoutWidth = 1;
170
+ let totalLayoutHeight = 0;
171
+ for (const v of this.views) {
172
+ if (v.layout) {
173
+ if (v.layout.width > maxLayoutWidth)
174
+ maxLayoutWidth = v.layout.width;
175
+ totalLayoutHeight += v.layout.height;
176
+ }
177
+ }
178
+ const scaleX = this.termWidth / maxLayoutWidth;
179
+ // Target max ~3 screenfuls so user only scrolls 2-3 times
180
+ const maxVRows = this.termHeight * 3;
181
+ const scaleYFromWidth = scaleX * 0.5;
182
+ const scaleYFromTarget = maxVRows / Math.max(1, totalLayoutHeight);
183
+ // Use whichever is more compact
184
+ const scaleY = Math.max(scaleYFromTarget, scaleYFromWidth * 0.3);
185
+ let totalVRows = 0;
186
+ for (const v of this.views) {
187
+ if (v.layout) {
188
+ totalVRows += Math.max(1, Math.ceil(v.layout.height * scaleY));
140
189
  }
141
190
  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)));
191
+ totalVRows += 2;
145
192
  }
146
193
  }
147
- }
148
- compositeRender() {
149
- this.computeRowAllocation();
150
- this.grid = this.createGrid();
194
+ this.vHeight = totalVRows;
195
+ // Build virtual grid
196
+ this.vGrid = this.createGrid(this.termWidth, this.vHeight);
197
+ // Paint each view into the virtual grid
151
198
  let yOffset = 0;
152
199
  for (const view of this.views) {
153
200
  if (view.layout && view.tree) {
154
- this.paintView(view.layout, view.tree, yOffset, view.rows);
201
+ const viewRows = Math.max(1, Math.ceil(view.layout.height * scaleY));
202
+ this.paintNode(view.tree, view.layout, 0, 0, scaleX, scaleY, yOffset);
203
+ yOffset += viewRows;
204
+ }
205
+ else {
206
+ yOffset += 2;
155
207
  }
156
- yOffset += view.rows;
157
208
  }
158
- // Flush grid to terminal
209
+ // Clamp scroll
210
+ this.scrollY = Math.min(this.scrollY, Math.max(0, this.vHeight - this.termHeight));
211
+ this.flushViewport();
212
+ }
213
+ /** Write the visible viewport slice of vGrid to the terminal */
214
+ flushViewport() {
159
215
  let buf = moveTo(0, 0);
160
- for (let y = 0; y < this.height; y++) {
161
- buf += moveTo(0, y);
216
+ for (let ty = 0; ty < this.termHeight; ty++) {
217
+ buf += moveTo(0, ty);
218
+ const vy = ty + this.scrollY;
162
219
  let lastFg = '', lastBg = '';
163
- for (let x = 0; x < this.width; x++) {
164
- const cell = this.grid[y][x];
220
+ for (let x = 0; x < this.termWidth; x++) {
221
+ const cell = this.vGrid[vy]?.[x] ?? { char: ' ', fg: '', bg: '' };
165
222
  if (cell.bg !== lastBg) {
166
223
  buf += cell.bg ? bg256(cell.bg) : RESET;
167
224
  lastBg = cell.bg;
@@ -174,89 +231,97 @@ export class TerminalCompositor {
174
231
  }
175
232
  buf += RESET;
176
233
  }
234
+ // Scroll indicator
235
+ if (this.vHeight > this.termHeight) {
236
+ const pct = Math.round(this.scrollY / Math.max(1, this.vHeight - this.termHeight) * 100);
237
+ const indicator = ` ${pct}% ↑↓ scroll `;
238
+ buf += moveTo(this.termWidth - indicator.length - 1, this.termHeight - 1);
239
+ buf += `${ESC}48;5;237m${ESC}38;5;252m${indicator}${RESET}`;
240
+ }
177
241
  process.stdout.write(buf);
178
242
  }
179
- paintView(layout, tree, yOffset, maxRows) {
180
- // Scale independently to fill terminal width and fit allocated rows
181
- const scaleX = this.width / layout.width;
182
- const scaleY = maxRows / layout.height;
183
- this.paintNode(tree, layout, 0, 0, scaleX, scaleY, yOffset, yOffset + maxRows);
184
- }
185
- paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, minRow, maxRow) {
243
+ paintNode(element, layout, offsetX, offsetY, scaleX, scaleY, baseY) {
186
244
  const x = Math.round((offsetX + layout.x) * scaleX);
187
- const y = minRow + Math.round((offsetY + layout.y) * scaleY);
245
+ const y = baseY + Math.round((offsetY + layout.y) * scaleY);
188
246
  const w = Math.max(1, Math.round(layout.width * scaleX));
189
247
  const h = Math.max(1, Math.round(layout.height * scaleY));
190
248
  if (element.kind === 'box') {
191
- this.paintBox(element, x, y, w, h, minRow, maxRow);
249
+ this.paintBox(element, x, y, w, h);
192
250
  const childOffsetX = offsetX + layout.x - (element.props.scrollX ?? 0);
193
251
  const childOffsetY = offsetY + layout.y - (element.props.scrollY ?? 0);
194
252
  for (let i = 0; i < element.children.length; i++) {
195
253
  const childLayout = layout.children[i];
196
254
  if (childLayout) {
197
- this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, minRow, maxRow);
255
+ this.paintNode(element.children[i], childLayout, childOffsetX, childOffsetY, scaleX, scaleY, baseY);
198
256
  }
199
257
  }
200
258
  }
201
259
  else if (element.kind === 'scene3d') {
202
- // Skip 3D scenes in terminal
260
+ // skip
203
261
  }
204
262
  else if (element.kind !== 'image') {
205
- this.paintText(element, x, y, w, minRow, maxRow);
263
+ this.paintText(element, x, y, w, h);
206
264
  }
207
265
  }
208
- paintBox(element, x, y, w, h, minRow, maxRow) {
209
- const bg = element.props.backgroundColor;
210
- const gradientBg = element.props.gradient?.stops[0]?.color;
266
+ paintBox(element, x, y, w, h) {
267
+ const props = element.props;
268
+ const bg = props.backgroundColor;
269
+ const gradientBg = props.gradient?.stops[0]?.color;
211
270
  const fillColor = bg ?? gradientBg;
212
271
  if (!fillColor)
213
272
  return;
214
273
  for (let dy = 0; dy < h; dy++) {
215
274
  for (let dx = 0; dx < w; dx++) {
216
- this.setCell(x + dx, y + dy, ' ', '', fillColor, minRow, maxRow);
275
+ this.setCell(x + dx, y + dy, ' ', '', fillColor);
217
276
  }
218
277
  }
219
- if (element.props.borderColor) {
220
- const bc = element.props.borderColor;
221
- if (w >= 2 && h >= 2) {
222
- this.setCell(x, y, '\u250c', bc, fillColor, minRow, maxRow);
223
- this.setCell(x + w - 1, y, '\u2510', bc, fillColor, minRow, maxRow);
224
- this.setCell(x, y + h - 1, '\u2514', bc, fillColor, minRow, maxRow);
225
- this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor, minRow, maxRow);
226
- for (let dx = 1; dx < w - 1; dx++) {
227
- this.setCell(x + dx, y, '\u2500', bc, fillColor, minRow, maxRow);
228
- this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor, minRow, maxRow);
229
- }
230
- for (let dy = 1; dy < h - 1; dy++) {
231
- this.setCell(x, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
232
- this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor, minRow, maxRow);
233
- }
278
+ const bc = props.borderColor;
279
+ if (bc && w >= 2 && h >= 2) {
280
+ this.setCell(x, y, '\u250c', bc, fillColor);
281
+ this.setCell(x + w - 1, y, '\u2510', bc, fillColor);
282
+ this.setCell(x, y + h - 1, '\u2514', bc, fillColor);
283
+ this.setCell(x + w - 1, y + h - 1, '\u2518', bc, fillColor);
284
+ for (let dx = 1; dx < w - 1; dx++) {
285
+ this.setCell(x + dx, y, '\u2500', bc, fillColor);
286
+ this.setCell(x + dx, y + h - 1, '\u2500', bc, fillColor);
287
+ }
288
+ for (let dy = 1; dy < h - 1; dy++) {
289
+ this.setCell(x, y + dy, '\u2502', bc, fillColor);
290
+ this.setCell(x + w - 1, y + dy, '\u2502', bc, fillColor);
234
291
  }
235
292
  }
236
293
  }
237
- paintText(element, x, y, w, minRow, maxRow) {
238
- const { text, color, backgroundColor } = element.props;
239
- const fg = color ?? '#ffffff';
240
- const bg = backgroundColor ?? '';
294
+ paintText(element, x, y, w, h) {
295
+ const props = element.props;
296
+ const text = props.text ?? '';
297
+ const fg = props.color ?? '#ffffff';
298
+ const bg = props.backgroundColor ?? '';
299
+ // Smart truncation: fit text into allocated w×h cells
300
+ const lines = text.split('\n');
241
301
  let row = 0;
242
- for (const paragraph of text.split('\n')) {
243
- if (!paragraph.length) {
244
- row++;
245
- continue;
302
+ for (const line of lines) {
303
+ if (row >= h)
304
+ break;
305
+ if (line.length <= w) {
306
+ // Fits — render as-is
307
+ for (let c = 0; c < line.length; c++) {
308
+ this.setCell(x + c, y + row, line[c], fg, bg);
309
+ }
246
310
  }
247
- for (let i = 0; i < paragraph.length; i += w) {
248
- const chunk = paragraph.slice(i, i + w);
249
- for (let c = 0; c < chunk.length; c++) {
250
- this.setCell(x + c, y + row, chunk[c], fg, bg, minRow, maxRow);
311
+ else {
312
+ // Truncate with ellipsis
313
+ const truncated = line.slice(0, Math.max(1, w - 1)) + '\u2026';
314
+ for (let c = 0; c < Math.min(truncated.length, w); c++) {
315
+ this.setCell(x + c, y + row, truncated[c], fg, bg);
251
316
  }
252
- row++;
253
317
  }
318
+ row++;
254
319
  }
255
320
  }
256
- setCell(x, y, char, fg, bg, minRow, maxRow) {
257
- if (x < 0 || x >= this.width || y < minRow || y >= maxRow || y < 0 || y >= this.height)
321
+ setCell(x, y, char, fg, bg) {
322
+ if (x < 0 || x >= this.termWidth || y < 0 || y >= this.vHeight)
258
323
  return;
259
- const cell = this.grid[y]?.[x];
324
+ const cell = this.vGrid[y]?.[x];
260
325
  if (!cell)
261
326
  return;
262
327
  cell.char = char;
@@ -265,11 +330,11 @@ export class TerminalCompositor {
265
330
  if (bg)
266
331
  cell.bg = bg;
267
332
  }
268
- createGrid() {
333
+ createGrid(w, h) {
269
334
  const grid = [];
270
- for (let y = 0; y < this.height; y++) {
335
+ for (let y = 0; y < h; y++) {
271
336
  const row = [];
272
- for (let x = 0; x < this.width; x++)
337
+ for (let x = 0; x < w; x++)
273
338
  row.push({ char: ' ', fg: '', bg: '' });
274
339
  grid.push(row);
275
340
  }
@@ -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.5",
3
+ "version": "1.15.1",
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.5",
39
- "@geometra/renderer-terminal": "^1.14.5",
40
- "textura": "^1.14.5",
38
+ "@geometra/core": "^1.15.1",
39
+ "@geometra/renderer-terminal": "^1.15.1",
40
+ "textura": "^1.15.1",
41
41
  "ws": "^8.18.0"
42
42
  },
43
43
  "devDependencies": {