green-screen-proxy 1.0.2 → 1.1.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.
Files changed (40) hide show
  1. package/dist/controller.d.ts +36 -0
  2. package/dist/controller.d.ts.map +1 -0
  3. package/dist/controller.js +144 -0
  4. package/dist/controller.js.map +1 -0
  5. package/dist/protocols/tn5250-handler.d.ts +24 -1
  6. package/dist/protocols/tn5250-handler.d.ts.map +1 -1
  7. package/dist/protocols/tn5250-handler.js +251 -16
  8. package/dist/protocols/tn5250-handler.js.map +1 -1
  9. package/dist/routes.d.ts.map +1 -1
  10. package/dist/routes.js +2 -4
  11. package/dist/routes.js.map +1 -1
  12. package/dist/session.d.ts +2 -2
  13. package/dist/session.d.ts.map +1 -1
  14. package/dist/session.js +2 -2
  15. package/dist/session.js.map +1 -1
  16. package/dist/tn5250/connection.d.ts +2 -1
  17. package/dist/tn5250/connection.d.ts.map +1 -1
  18. package/dist/tn5250/connection.js +5 -3
  19. package/dist/tn5250/connection.js.map +1 -1
  20. package/dist/tn5250/constants.d.ts +15 -0
  21. package/dist/tn5250/constants.d.ts.map +1 -1
  22. package/dist/tn5250/constants.js +18 -0
  23. package/dist/tn5250/constants.js.map +1 -1
  24. package/dist/tn5250/encoder.d.ts +11 -0
  25. package/dist/tn5250/encoder.d.ts.map +1 -1
  26. package/dist/tn5250/encoder.js +107 -5
  27. package/dist/tn5250/encoder.js.map +1 -1
  28. package/dist/tn5250/parser.d.ts +64 -6
  29. package/dist/tn5250/parser.d.ts.map +1 -1
  30. package/dist/tn5250/parser.js +582 -139
  31. package/dist/tn5250/parser.js.map +1 -1
  32. package/dist/tn5250/screen.d.ts +93 -0
  33. package/dist/tn5250/screen.d.ts.map +1 -1
  34. package/dist/tn5250/screen.js +283 -12
  35. package/dist/tn5250/screen.js.map +1 -1
  36. package/dist/websocket.d.ts +0 -3
  37. package/dist/websocket.d.ts.map +1 -1
  38. package/dist/websocket.js +123 -139
  39. package/dist/websocket.js.map +1 -1
  40. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/tn5250/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/tn5250/parser.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ interface SavedScreenState {
2
+ buffer: string[];
3
+ attrBuffer: number[];
4
+ fields: FieldDef[];
5
+ cursorRow: number;
6
+ cursorCol: number;
7
+ }
8
+ export interface WindowDef {
9
+ row: number;
10
+ col: number;
11
+ height: number;
12
+ width: number;
13
+ }
1
14
  export interface FieldDef {
2
15
  row: number;
3
16
  col: number;
@@ -10,6 +23,18 @@ export interface FieldDef {
10
23
  rawAttrByte: number;
11
24
  modified: boolean;
12
25
  }
26
+ export interface SelectionChoice {
27
+ text: string;
28
+ row: number;
29
+ col: number;
30
+ }
31
+ export interface SelectionFieldDef {
32
+ row: number;
33
+ col: number;
34
+ numRows: number;
35
+ numCols: number;
36
+ choices: SelectionChoice[];
37
+ }
13
38
  export declare class ScreenBuffer {
14
39
  rows: number;
15
40
  cols: number;
@@ -20,8 +45,29 @@ export declare class ScreenBuffer {
20
45
  fields: FieldDef[];
21
46
  cursorRow: number;
22
47
  cursorCol: number;
48
+ /** Keyboard locked by host (X SYSTEM indicator) */
49
+ keyboardLocked: boolean;
50
+ /** Insert mode (true) vs overwrite mode (false). Default is overwrite per real 5250. */
51
+ insertMode: boolean;
52
+ /** Cursor position saved before WRITE_ERROR_CODE moved it, for Reset to restore */
53
+ savedCursorBeforeError: {
54
+ row: number;
55
+ col: number;
56
+ } | null;
57
+ /** Message waiting indicator */
58
+ messageWaiting: boolean;
59
+ /** Pending alarm/beep from CC2 */
60
+ pendingAlarm: boolean;
61
+ /** Stack of saved screen states for SAVE_SCREEN / RESTORE_SCREEN */
62
+ screenStack: SavedScreenState[];
63
+ /** Active windows (for tracking; borders rendered directly into buffer) */
64
+ windowList: WindowDef[];
65
+ /** Selection fields parsed from WDSF DEFINE_SELECTION_FIELD */
66
+ selectionFields: SelectionFieldDef[];
23
67
  constructor(rows?: 24, cols?: 80);
24
68
  get size(): number;
69
+ /** Resize the screen buffer, clearing all content and fields. */
70
+ resize(rows: number, cols: number): void;
25
71
  /** Convert row,col to linear offset */
26
72
  offset(row: number, col: number): number;
27
73
  /** Convert linear offset to row,col */
@@ -41,6 +87,8 @@ export declare class ScreenBuffer {
41
87
  setAttrAt(addr: number, attr: number): void;
42
88
  /** Clear the entire screen */
43
89
  clear(): void;
90
+ /** Clear the error/message line (last row) */
91
+ clearErrorLine(): void;
44
92
  /** Fill range [start, end) with a character */
45
93
  fillRange(start: number, end: number, char: string): void;
46
94
  /** Get the content of a field as a string */
@@ -68,6 +116,45 @@ export declare class ScreenBuffer {
68
116
  hasNativeUnderscore(field: FieldDef): boolean;
69
117
  /** Whether the field's OWN attribute byte indicates non-display (lower 3 bits = 7). */
70
118
  hasNativeNonDisplay(field: FieldDef): boolean;
119
+ /**
120
+ * Decode the 5250 color from a raw field attribute byte (0x20-0x3F).
121
+ *
122
+ * 5250 color model:
123
+ * Bits 4-3 select color group, bit 1 selects intensity:
124
+ * | Bits 4-3 | Normal (bit1=0) | High Intensity (bit1=1) |
125
+ * |----------|-----------------|-------------------------|
126
+ * | 00 (0x20)| green | white |
127
+ * | 01 (0x28)| red | red |
128
+ * | 10 (0x30)| turquoise | yellow |
129
+ * | 11 (0x38)| pink | blue |
130
+ */
131
+ static attrColor(rawAttrByte: number): 'green' | 'white' | 'red' | 'turquoise' | 'yellow' | 'pink' | 'blue';
132
+ /** Save current screen state to the stack */
133
+ saveState(): void;
134
+ /** Restore screen state from the stack. Returns false if stack is empty. */
135
+ restoreState(): boolean;
136
+ /**
137
+ * Synthesize a window when the host uses SAVE_SCREEN but no CREATE_WINDOW.
138
+ * Detects the content area written to the cleared screen, restores the saved
139
+ * screen as background, and overlays the content with a border.
140
+ */
141
+ synthesizeWindow(): void;
142
+ /** Erase a rectangular region (inclusive bounds, 0-based) */
143
+ eraseRegion(startRow: number, startCol: number, endRow: number, endCol: number): void;
144
+ /** Render a window border with default characters */
145
+ renderWindowBorder(row: number, col: number, height: number, width: number): void;
146
+ /** Render a window border with custom characters and optional title/footer.
147
+ * Per lib5250 session.c:3129-3349. */
148
+ renderWindowBorderCustom(row: number, col: number, height: number, width: number, chars: {
149
+ ul: string;
150
+ top: string;
151
+ ur: string;
152
+ left: string;
153
+ right: string;
154
+ ll: string;
155
+ bot: string;
156
+ lr: string;
157
+ }, title: string, footer: string): void;
71
158
  /** Convert screen buffer to the ScreenData format expected by the frontend */
72
159
  toScreenData(): {
73
160
  content: string;
@@ -84,9 +171,15 @@ export declare class ScreenBuffer {
84
171
  is_highlighted?: boolean;
85
172
  is_reverse?: boolean;
86
173
  is_underscored?: boolean;
174
+ color?: 'green' | 'white' | 'red' | 'turquoise' | 'yellow' | 'pink' | 'blue';
87
175
  }>;
88
176
  screen_signature: string;
89
177
  timestamp: string;
178
+ keyboard_locked?: boolean;
179
+ message_waiting?: boolean;
180
+ alarm?: boolean;
181
+ insert_mode?: boolean;
90
182
  };
91
183
  }
184
+ export {};
92
185
  //# sourceMappingURL=screen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/tn5250/screen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/tn5250/screen.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,22 @@ export class ScreenBuffer {
10
10
  fields = [];
11
11
  cursorRow = 0;
12
12
  cursorCol = 0;
13
+ /** Keyboard locked by host (X SYSTEM indicator) */
14
+ keyboardLocked = false;
15
+ /** Insert mode (true) vs overwrite mode (false). Default is overwrite per real 5250. */
16
+ insertMode = false;
17
+ /** Cursor position saved before WRITE_ERROR_CODE moved it, for Reset to restore */
18
+ savedCursorBeforeError = null;
19
+ /** Message waiting indicator */
20
+ messageWaiting = false;
21
+ /** Pending alarm/beep from CC2 */
22
+ pendingAlarm = false;
23
+ /** Stack of saved screen states for SAVE_SCREEN / RESTORE_SCREEN */
24
+ screenStack = [];
25
+ /** Active windows (for tracking; borders rendered directly into buffer) */
26
+ windowList = [];
27
+ /** Selection fields parsed from WDSF DEFINE_SELECTION_FIELD */
28
+ selectionFields = [];
13
29
  constructor(rows = SCREEN.ROWS_24, cols = SCREEN.COLS_80) {
14
30
  this.rows = rows;
15
31
  this.cols = cols;
@@ -20,6 +36,17 @@ export class ScreenBuffer {
20
36
  get size() {
21
37
  return this.rows * this.cols;
22
38
  }
39
+ /** Resize the screen buffer, clearing all content and fields. */
40
+ resize(rows, cols) {
41
+ this.rows = rows;
42
+ this.cols = cols;
43
+ const size = rows * cols;
44
+ this.buffer = new Array(size).fill(' ');
45
+ this.attrBuffer = new Array(size).fill(0x20);
46
+ this.fields = [];
47
+ this.cursorRow = 0;
48
+ this.cursorCol = 0;
49
+ }
23
50
  /** Convert row,col to linear offset */
24
51
  offset(row, col) {
25
52
  return row * this.cols + col;
@@ -67,9 +94,18 @@ export class ScreenBuffer {
67
94
  this.buffer.fill(' ');
68
95
  this.attrBuffer.fill(0x20);
69
96
  this.fields = [];
97
+ this.selectionFields = [];
70
98
  this.cursorRow = 0;
71
99
  this.cursorCol = 0;
72
100
  }
101
+ /** Clear the error/message line (last row) */
102
+ clearErrorLine() {
103
+ const start = this.offset(this.rows - 1, 0);
104
+ for (let i = start; i < start + this.cols; i++) {
105
+ this.buffer[i] = ' ';
106
+ this.attrBuffer[i] = 0x20;
107
+ }
108
+ }
73
109
  /** Fill range [start, end) with a character */
74
110
  fillRange(start, end, char) {
75
111
  for (let i = start; i < end && i < this.size; i++) {
@@ -138,9 +174,219 @@ export class ScreenBuffer {
138
174
  hasNativeNonDisplay(field) {
139
175
  return (field.rawAttrByte & 0x07) === 0x07;
140
176
  }
177
+ /**
178
+ * Decode the 5250 color from a raw field attribute byte (0x20-0x3F).
179
+ *
180
+ * 5250 color model:
181
+ * Bits 4-3 select color group, bit 1 selects intensity:
182
+ * | Bits 4-3 | Normal (bit1=0) | High Intensity (bit1=1) |
183
+ * |----------|-----------------|-------------------------|
184
+ * | 00 (0x20)| green | white |
185
+ * | 01 (0x28)| red | red |
186
+ * | 10 (0x30)| turquoise | yellow |
187
+ * | 11 (0x38)| pink | blue |
188
+ */
189
+ static attrColor(rawAttrByte) {
190
+ const colorGroup = rawAttrByte & 0x18; // bits 4-3
191
+ const highIntensity = (rawAttrByte & 0x02) !== 0; // bit 1
192
+ switch (colorGroup) {
193
+ case 0x00: return highIntensity ? 'white' : 'green';
194
+ case 0x08: return 'red';
195
+ case 0x10: return highIntensity ? 'yellow' : 'turquoise';
196
+ case 0x18: return highIntensity ? 'blue' : 'pink';
197
+ default: return 'green';
198
+ }
199
+ }
200
+ /** Save current screen state to the stack */
201
+ saveState() {
202
+ this.screenStack.push({
203
+ buffer: [...this.buffer],
204
+ attrBuffer: [...this.attrBuffer],
205
+ fields: this.fields.map(f => ({ ...f })),
206
+ cursorRow: this.cursorRow,
207
+ cursorCol: this.cursorCol,
208
+ });
209
+ }
210
+ /** Restore screen state from the stack. Returns false if stack is empty. */
211
+ restoreState() {
212
+ const state = this.screenStack.pop();
213
+ if (!state)
214
+ return false;
215
+ this.buffer = state.buffer;
216
+ this.attrBuffer = state.attrBuffer;
217
+ this.fields = state.fields;
218
+ this.cursorRow = state.cursorRow;
219
+ this.cursorCol = state.cursorCol;
220
+ return true;
221
+ }
222
+ /**
223
+ * Synthesize a window when the host uses SAVE_SCREEN but no CREATE_WINDOW.
224
+ * Detects the content area written to the cleared screen, restores the saved
225
+ * screen as background, and overlays the content with a border.
226
+ */
227
+ synthesizeWindow() {
228
+ if (this.screenStack.length === 0)
229
+ return;
230
+ // Find the bounding box of non-empty content in current buffer
231
+ let minRow = this.rows, maxRow = -1, minCol = this.cols, maxCol = -1;
232
+ for (let r = 0; r < this.rows; r++) {
233
+ for (let c = 0; c < this.cols; c++) {
234
+ if (this.buffer[this.offset(r, c)] !== ' ') {
235
+ if (r < minRow)
236
+ minRow = r;
237
+ if (r > maxRow)
238
+ maxRow = r;
239
+ if (c < minCol)
240
+ minCol = c;
241
+ if (c > maxCol)
242
+ maxCol = c;
243
+ }
244
+ }
245
+ }
246
+ if (maxRow < 0)
247
+ return; // nothing written
248
+ // Save the prompted command content and fields
249
+ const contentBuf = [...this.buffer];
250
+ const contentAttr = [...this.attrBuffer];
251
+ const contentFields = this.fields.map(f => ({ ...f }));
252
+ const contentCursorRow = this.cursorRow;
253
+ const contentCursorCol = this.cursorCol;
254
+ // Restore saved screen as background (peek, don't pop — RESTORE_SCREEN will pop)
255
+ const saved = this.screenStack[this.screenStack.length - 1];
256
+ this.buffer = [...saved.buffer];
257
+ this.attrBuffer = [...saved.attrBuffer];
258
+ // Check if there's room for borders (at least 1 cell of space on each side)
259
+ const hasTopBorder = minRow > 0;
260
+ const hasBotBorder = maxRow < this.rows - 1;
261
+ const hasLeftBorder = minCol > 0;
262
+ const hasRightBorder = maxCol < this.cols - 1;
263
+ if (hasTopBorder || hasBotBorder || hasLeftBorder || hasRightBorder) {
264
+ const bTop = hasTopBorder ? minRow - 1 : minRow;
265
+ const bLeft = hasLeftBorder ? minCol - 1 : minCol;
266
+ const bBot = hasBotBorder ? maxRow + 1 : maxRow;
267
+ const bRight = hasRightBorder ? maxCol + 1 : maxCol;
268
+ const setBorder = (r, c, ch) => {
269
+ if (r >= 0 && r < this.rows && c >= 0 && c < this.cols) {
270
+ const addr = this.offset(r, c);
271
+ this.buffer[addr] = ch;
272
+ this.attrBuffer[addr] = 0x22;
273
+ }
274
+ };
275
+ // Horizontal edges
276
+ if (hasTopBorder)
277
+ for (let c = bLeft; c <= bRight; c++)
278
+ setBorder(bTop, c, '.');
279
+ if (hasBotBorder)
280
+ for (let c = bLeft; c <= bRight; c++)
281
+ setBorder(bBot, c, '.');
282
+ // Vertical edges
283
+ if (hasLeftBorder)
284
+ for (let r = minRow; r <= maxRow; r++)
285
+ setBorder(r, bLeft, ':');
286
+ if (hasRightBorder)
287
+ for (let r = minRow; r <= maxRow; r++)
288
+ setBorder(r, bRight, ':');
289
+ // Corners
290
+ if (hasTopBorder && hasLeftBorder)
291
+ setBorder(bTop, bLeft, '.');
292
+ if (hasTopBorder && hasRightBorder)
293
+ setBorder(bTop, bRight, '.');
294
+ if (hasBotBorder && hasLeftBorder)
295
+ setBorder(bBot, bLeft, ':');
296
+ if (hasBotBorder && hasRightBorder)
297
+ setBorder(bBot, bRight, ':');
298
+ // Erase content area inside the border (clear saved screen artifacts)
299
+ for (let r = minRow; r <= maxRow; r++) {
300
+ for (let c = minCol; c <= maxCol; c++) {
301
+ const addr = this.offset(r, c);
302
+ this.buffer[addr] = ' ';
303
+ this.attrBuffer[addr] = 0x20;
304
+ }
305
+ }
306
+ }
307
+ // Copy prompted command content into the area
308
+ for (let r = minRow; r <= maxRow; r++) {
309
+ for (let c = minCol; c <= maxCol; c++) {
310
+ const addr = this.offset(r, c);
311
+ this.buffer[addr] = contentBuf[addr];
312
+ this.attrBuffer[addr] = contentAttr[addr];
313
+ }
314
+ }
315
+ // Restore content fields and cursor
316
+ this.fields = contentFields;
317
+ this.cursorRow = contentCursorRow;
318
+ this.cursorCol = contentCursorCol;
319
+ // Track as a synthetic window
320
+ this.windowList.push({
321
+ row: Math.max(0, minRow - 1),
322
+ col: Math.max(0, minCol - 1),
323
+ height: maxRow - minRow + 1,
324
+ width: maxCol - minCol + 1,
325
+ });
326
+ }
327
+ /** Erase a rectangular region (inclusive bounds, 0-based) */
328
+ eraseRegion(startRow, startCol, endRow, endCol) {
329
+ for (let r = startRow; r <= endRow; r++) {
330
+ for (let c = startCol; c <= endCol; c++) {
331
+ const addr = this.offset(r, c);
332
+ if (addr >= 0 && addr < this.size) {
333
+ this.buffer[addr] = ' ';
334
+ this.attrBuffer[addr] = 0x20;
335
+ }
336
+ }
337
+ }
338
+ }
339
+ /** Render a window border with default characters */
340
+ renderWindowBorder(row, col, height, width) {
341
+ this.renderWindowBorderCustom(row, col, height, width, { ul: '.', top: '.', ur: '.', left: ':', right: ':', ll: ':', bot: '.', lr: ':' }, '', '');
342
+ }
343
+ /** Render a window border with custom characters and optional title/footer.
344
+ * Per lib5250 session.c:3129-3349. */
345
+ renderWindowBorderCustom(row, col, height, width, chars, title, footer) {
346
+ const botRow = row + height + 1;
347
+ const rightCol = col + width + 1;
348
+ const setBorder = (r, c, ch) => {
349
+ if (r >= 0 && r < this.rows && c >= 0 && c < this.cols) {
350
+ const addr = this.offset(r, c);
351
+ this.buffer[addr] = ch;
352
+ this.attrBuffer[addr] = 0x22; // high intensity for border
353
+ }
354
+ };
355
+ // Corners
356
+ setBorder(row, col, chars.ul);
357
+ setBorder(row, rightCol, chars.ur);
358
+ setBorder(botRow, col, chars.ll);
359
+ setBorder(botRow, rightCol, chars.lr);
360
+ // Top and bottom edges
361
+ for (let c = col + 1; c < rightCol; c++) {
362
+ setBorder(row, c, chars.top);
363
+ setBorder(botRow, c, chars.bot);
364
+ }
365
+ // Left and right edges
366
+ for (let r = row + 1; r < botRow; r++) {
367
+ setBorder(r, col, chars.left);
368
+ setBorder(r, rightCol, chars.right);
369
+ }
370
+ // Window title (centered on top border)
371
+ if (title) {
372
+ const startCol = col + 1 + Math.max(0, Math.floor((width - title.length) / 2));
373
+ for (let i = 0; i < title.length && startCol + i < rightCol; i++) {
374
+ setBorder(row, startCol + i, title[i]);
375
+ }
376
+ }
377
+ // Window footer (centered on bottom border)
378
+ if (footer) {
379
+ const startCol = col + 1 + Math.max(0, Math.floor((width - footer.length) / 2));
380
+ for (let i = 0; i < footer.length && startCol + i < rightCol; i++) {
381
+ setBorder(botRow, startCol + i, footer[i]);
382
+ }
383
+ }
384
+ }
141
385
  /** Convert screen buffer to the ScreenData format expected by the frontend */
142
386
  toScreenData() {
143
387
  // Build content as newline-separated rows, sanitising control characters
388
+ // and replacing 5250 indicator characters that the host sends without
389
+ // an SA charset switch (common on pub400 and other non-GUI hosts).
144
390
  const lines = [];
145
391
  for (let r = 0; r < this.rows; r++) {
146
392
  const start = r * this.cols;
@@ -149,24 +395,45 @@ export class ScreenBuffer {
149
395
  const ch = this.buffer[start + c];
150
396
  const code = ch.charCodeAt(0);
151
397
  // Replace control characters (< 0x20) and DEL (0x7F) with space
152
- row += (code < 0x20 || code === 0x7F || code >= 0x80 && code <= 0x9F) ? ' ' : ch;
398
+ if (code < 0x20 || code === 0x7F || code >= 0x80 && code <= 0x9F) {
399
+ row += ' ';
400
+ }
401
+ else {
402
+ row += ch;
403
+ }
153
404
  }
154
405
  lines.push(row);
155
406
  }
156
- const content = lines.join('\n');
407
+ // Clean up 5250 indicator artifacts in the rendered text:
408
+ // - â/ê appearing as lone chars before "Bottom"/"More"/"Top" → replace with arrows
409
+ // - & appearing as isolated chars (field attribute separators) → replace with space
410
+ // - ( + ê appearing at end of indicator lines → replace with space
411
+ let content = lines.join('\n');
412
+ content = content.replace(/â(\s+(Bottom|More))/g, '↓$1');
413
+ content = content.replace(/â(\s+(Top))/g, '↑$1');
414
+ content = content.replace(/(\s)ê(\s)/g, '$1 $2');
415
+ content = content.replace(/(\s)&(\s{2,})/g, '$1 $2');
416
+ content = content.replace(/\(\s{2,}\+\s+ê/g, ' ');
157
417
  // Map fields to frontend format
158
- const fields = this.fields.map(f => ({
159
- row: f.row,
160
- col: f.col,
161
- length: f.length,
162
- is_input: this.isInputField(f),
163
- is_protected: !this.isInputField(f),
164
- is_highlighted: this.isHighlighted(f) || undefined,
165
- is_reverse: this.isReverse(f) || undefined,
166
- is_underscored: this.isUnderscored(f) || undefined,
167
- }));
418
+ const fields = this.fields.map(f => {
419
+ const color = f.rawAttrByte ? ScreenBuffer.attrColor(f.rawAttrByte) : undefined;
420
+ return {
421
+ row: f.row,
422
+ col: f.col,
423
+ length: f.length,
424
+ is_input: this.isInputField(f),
425
+ is_protected: !this.isInputField(f),
426
+ is_highlighted: this.isHighlighted(f) || undefined,
427
+ is_reverse: this.isReverse(f) || undefined,
428
+ is_underscored: this.isUnderscored(f) || undefined,
429
+ color: color !== 'green' ? color : undefined, // only send non-default
430
+ };
431
+ });
168
432
  // Generate screen signature
169
433
  const hash = createHash('md5').update(content).digest('hex').substring(0, 12);
434
+ // Consume pending alarm (one-shot)
435
+ const alarm = this.pendingAlarm;
436
+ this.pendingAlarm = false;
170
437
  return {
171
438
  content,
172
439
  cursor_row: this.cursorRow,
@@ -176,6 +443,10 @@ export class ScreenBuffer {
176
443
  fields,
177
444
  screen_signature: hash,
178
445
  timestamp: new Date().toISOString(),
446
+ keyboard_locked: this.keyboardLocked || undefined,
447
+ insert_mode: this.insertMode || undefined,
448
+ message_waiting: this.messageWaiting || undefined,
449
+ alarm: alarm || undefined,
179
450
  };
180
451
  }
181
452
  }