@floegence/floeterm-terminal-web 0.14.0 → 0.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.
Files changed (156) hide show
  1. package/README.md +78 -445
  2. package/dist/core/TerminalInputBridge.d.ts +7 -3
  3. package/dist/core/TerminalInputBridge.d.ts.map +1 -1
  4. package/dist/core/TerminalInputBridge.js +63 -4
  5. package/dist/core/TerminalInputBridge.js.map +1 -1
  6. package/dist/entries/live.d.ts +4 -4
  7. package/dist/entries/live.d.ts.map +1 -1
  8. package/dist/entries/live.js +2 -2
  9. package/dist/entries/live.js.map +1 -1
  10. package/dist/entries/semantic.d.ts +9 -0
  11. package/dist/entries/semantic.d.ts.map +1 -0
  12. package/dist/entries/semantic.js +5 -0
  13. package/dist/entries/semantic.js.map +1 -0
  14. package/dist/entries/sessions.d.ts +1 -1
  15. package/dist/entries/sessions.d.ts.map +1 -1
  16. package/dist/index.d.ts +4 -26
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -16
  19. package/dist/index.js.map +1 -1
  20. package/dist/live/client.d.ts +4 -6
  21. package/dist/live/client.d.ts.map +1 -1
  22. package/dist/live/client.js +19 -72
  23. package/dist/live/client.js.map +1 -1
  24. package/dist/live/codec.d.ts +8 -21
  25. package/dist/live/codec.d.ts.map +1 -1
  26. package/dist/live/codec.js +79 -111
  27. package/dist/live/codec.js.map +1 -1
  28. package/dist/live/transport.d.ts +38 -18
  29. package/dist/live/transport.d.ts.map +1 -1
  30. package/dist/live/transport.js +59 -133
  31. package/dist/live/transport.js.map +1 -1
  32. package/dist/semantic/RendererSurface.d.ts +65 -0
  33. package/dist/semantic/RendererSurface.d.ts.map +1 -0
  34. package/dist/semantic/RendererSurface.js +566 -0
  35. package/dist/semantic/RendererSurface.js.map +1 -0
  36. package/dist/semantic/presentation.d.ts +97 -0
  37. package/dist/semantic/presentation.d.ts.map +1 -0
  38. package/dist/semantic/presentation.js +102 -0
  39. package/dist/semantic/presentation.js.map +1 -0
  40. package/dist/types.d.ts +13 -494
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +1 -37
  43. package/dist/types.js.map +1 -1
  44. package/package.json +11 -19
  45. package/dist/checkpoint/GhosttyCheckpoint.worker.d.ts +0 -2
  46. package/dist/checkpoint/GhosttyCheckpoint.worker.d.ts.map +0 -1
  47. package/dist/checkpoint/GhosttyCheckpoint.worker.js +0 -9
  48. package/dist/checkpoint/GhosttyCheckpoint.worker.js.map +0 -1
  49. package/dist/checkpoint/GhosttyCheckpointActor.d.ts +0 -44
  50. package/dist/checkpoint/GhosttyCheckpointActor.d.ts.map +0 -1
  51. package/dist/checkpoint/GhosttyCheckpointActor.js +0 -284
  52. package/dist/checkpoint/GhosttyCheckpointActor.js.map +0 -1
  53. package/dist/checkpoint/GhosttyCheckpointEngine.d.ts +0 -62
  54. package/dist/checkpoint/GhosttyCheckpointEngine.d.ts.map +0 -1
  55. package/dist/checkpoint/GhosttyCheckpointEngine.js +0 -175
  56. package/dist/checkpoint/GhosttyCheckpointEngine.js.map +0 -1
  57. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.d.ts +0 -31
  58. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.d.ts.map +0 -1
  59. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.js +0 -112
  60. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.js.map +0 -1
  61. package/dist/core/PagedTerminalOutputCoordinator.d.ts +0 -130
  62. package/dist/core/PagedTerminalOutputCoordinator.d.ts.map +0 -1
  63. package/dist/core/PagedTerminalOutputCoordinator.js +0 -1197
  64. package/dist/core/PagedTerminalOutputCoordinator.js.map +0 -1
  65. package/dist/core/TerminalCore.d.ts +0 -286
  66. package/dist/core/TerminalCore.d.ts.map +0 -1
  67. package/dist/core/TerminalCore.js +0 -3566
  68. package/dist/core/TerminalCore.js.map +0 -1
  69. package/dist/core/TerminalOutputPipeline.d.ts +0 -86
  70. package/dist/core/TerminalOutputPipeline.d.ts.map +0 -1
  71. package/dist/core/TerminalOutputPipeline.js +0 -511
  72. package/dist/core/TerminalOutputPipeline.js.map +0 -1
  73. package/dist/core/TerminalRenderScheduler.d.ts +0 -45
  74. package/dist/core/TerminalRenderScheduler.d.ts.map +0 -1
  75. package/dist/core/TerminalRenderScheduler.js +0 -145
  76. package/dist/core/TerminalRenderScheduler.js.map +0 -1
  77. package/dist/core/TerminalScrollbarOverlay.d.ts +0 -63
  78. package/dist/core/TerminalScrollbarOverlay.d.ts.map +0 -1
  79. package/dist/core/TerminalScrollbarOverlay.js +0 -493
  80. package/dist/core/TerminalScrollbarOverlay.js.map +0 -1
  81. package/dist/entries/history.d.ts +0 -4
  82. package/dist/entries/history.d.ts.map +0 -1
  83. package/dist/entries/history.js +0 -2
  84. package/dist/entries/history.js.map +0 -1
  85. package/dist/entries/preload.d.ts +0 -3
  86. package/dist/entries/preload.d.ts.map +0 -1
  87. package/dist/entries/preload.js +0 -2
  88. package/dist/entries/preload.js.map +0 -1
  89. package/dist/fabric/BeamtermFabricRenderer.d.ts +0 -67
  90. package/dist/fabric/BeamtermFabricRenderer.d.ts.map +0 -1
  91. package/dist/fabric/BeamtermFabricRenderer.js +0 -659
  92. package/dist/fabric/BeamtermFabricRenderer.js.map +0 -1
  93. package/dist/fabric/TerminalFabricCoordinator.d.ts +0 -40
  94. package/dist/fabric/TerminalFabricCoordinator.d.ts.map +0 -1
  95. package/dist/fabric/TerminalFabricCoordinator.js +0 -141
  96. package/dist/fabric/TerminalFabricCoordinator.js.map +0 -1
  97. package/dist/fabric/TerminalLiveFabric.d.ts +0 -44
  98. package/dist/fabric/TerminalLiveFabric.d.ts.map +0 -1
  99. package/dist/fabric/TerminalLiveFabric.js +0 -117
  100. package/dist/fabric/TerminalLiveFabric.js.map +0 -1
  101. package/dist/fabric/types.d.ts +0 -152
  102. package/dist/fabric/types.d.ts.map +0 -1
  103. package/dist/fabric/types.js +0 -2
  104. package/dist/fabric/types.js.map +0 -1
  105. package/dist/internal/BeamtermResourceLoader.d.ts +0 -3
  106. package/dist/internal/BeamtermResourceLoader.d.ts.map +0 -1
  107. package/dist/internal/BeamtermResourceLoader.js +0 -14
  108. package/dist/internal/BeamtermResourceLoader.js.map +0 -1
  109. package/dist/internal/GhosttyCompatibilityVersion.d.ts +0 -2
  110. package/dist/internal/GhosttyCompatibilityVersion.d.ts.map +0 -1
  111. package/dist/internal/GhosttyCompatibilityVersion.js +0 -2
  112. package/dist/internal/GhosttyCompatibilityVersion.js.map +0 -1
  113. package/dist/internal/GhosttyScrollbackCompat.d.ts +0 -16
  114. package/dist/internal/GhosttyScrollbackCompat.d.ts.map +0 -1
  115. package/dist/internal/GhosttyScrollbackCompat.js +0 -43
  116. package/dist/internal/GhosttyScrollbackCompat.js.map +0 -1
  117. package/dist/internal/GhosttyScrollbarCompat.d.ts +0 -12
  118. package/dist/internal/GhosttyScrollbarCompat.d.ts.map +0 -1
  119. package/dist/internal/GhosttyScrollbarCompat.js +0 -160
  120. package/dist/internal/GhosttyScrollbarCompat.js.map +0 -1
  121. package/dist/internal/SequenceBuffer.d.ts +0 -19
  122. package/dist/internal/SequenceBuffer.d.ts.map +0 -1
  123. package/dist/internal/SequenceBuffer.js +0 -83
  124. package/dist/internal/SequenceBuffer.js.map +0 -1
  125. package/dist/internal/TerminalInitializationScheduler.d.ts +0 -38
  126. package/dist/internal/TerminalInitializationScheduler.d.ts.map +0 -1
  127. package/dist/internal/TerminalInitializationScheduler.js +0 -112
  128. package/dist/internal/TerminalInitializationScheduler.js.map +0 -1
  129. package/dist/internal/TerminalResourceLoader.d.ts +0 -40
  130. package/dist/internal/TerminalResourceLoader.d.ts.map +0 -1
  131. package/dist/internal/TerminalResourceLoader.js +0 -165
  132. package/dist/internal/TerminalResourceLoader.js.map +0 -1
  133. package/dist/internal/UnicodeSafeUrlProvider.d.ts +0 -17
  134. package/dist/internal/UnicodeSafeUrlProvider.d.ts.map +0 -1
  135. package/dist/internal/UnicodeSafeUrlProvider.js +0 -32
  136. package/dist/internal/UnicodeSafeUrlProvider.js.map +0 -1
  137. package/dist/internal/scheduleUiTurn.d.ts +0 -5
  138. package/dist/internal/scheduleUiTurn.d.ts.map +0 -1
  139. package/dist/internal/scheduleUiTurn.js +0 -37
  140. package/dist/internal/scheduleUiTurn.js.map +0 -1
  141. package/dist/manager/TerminalInstanceController.d.ts +0 -88
  142. package/dist/manager/TerminalInstanceController.d.ts.map +0 -1
  143. package/dist/manager/TerminalInstanceController.js +0 -1076
  144. package/dist/manager/TerminalInstanceController.js.map +0 -1
  145. package/dist/utils/errors.d.ts +0 -3
  146. package/dist/utils/errors.d.ts.map +0 -1
  147. package/dist/utils/errors.js +0 -11
  148. package/dist/utils/errors.js.map +0 -1
  149. package/dist/utils/history.d.ts +0 -2
  150. package/dist/utils/history.d.ts.map +0 -1
  151. package/dist/utils/history.js +0 -12
  152. package/dist/utils/history.js.map +0 -1
  153. package/dist/utils/xtermAutoResponseFilter.d.ts +0 -2
  154. package/dist/utils/xtermAutoResponseFilter.d.ts.map +0 -1
  155. package/dist/utils/xtermAutoResponseFilter.js +0 -109
  156. package/dist/utils/xtermAutoResponseFilter.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { MAX_INPUT_BYTES, StreamKind, TerminalLiveDecoder, TerminalLiveFrameType, decodeAttached, decodeGeometryChanged, decodeOutputBatch, decodeProtocolError, decodeResizeApplied, encodeAttach, encodeInput, encodeResize, } from './codec.js';
1
+ import { MAX_INPUT_BYTES, StreamKind, TerminalLiveDecoder, TerminalLiveFrameType, decodeAttached, decodeGeometryChanged, decodePresentation, decodeProtocolError, decodeResizeApplied, encodeAttach, encodeInput, encodeResize, } from './codec.js';
2
2
  export const MAX_QUEUED_INPUT_BYTES = 8 * 1024 * 1024;
3
3
  export var TerminalLiveErrorCode;
4
4
  (function (TerminalLiveErrorCode) {
@@ -40,37 +40,32 @@ const toSafeNumber = (value, name) => {
40
40
  return number;
41
41
  };
42
42
  class TerminalLiveConnectionImpl {
43
- constructor(stream, reader, attached, onOutputBatch, onGeometry, onClosed, onError) {
43
+ constructor(stream, reader, attached, onPresentation, onGeometry, onClosed, onError) {
44
44
  this.stream = stream;
45
45
  this.reader = reader;
46
- this.onOutputBatch = onOutputBatch;
46
+ this.onPresentation = onPresentation;
47
47
  this.onGeometry = onGeometry;
48
48
  this.onClosed = onClosed;
49
49
  this.onError = onError;
50
50
  this.inputSequence = 0n;
51
51
  this.resizeSequence = 0n;
52
52
  this.queuedInputBytes = 0;
53
- this.pendingGeometries = [];
54
53
  this.writeTail = Promise.resolve();
55
54
  this.resizeWaiters = new Map();
56
55
  this.closed = false;
57
56
  this.failed = false;
58
57
  this.attached = {
59
- historyBoundarySequence: toSafeNumber(attached.historyBoundarySequence, 'historyBoundarySequence'),
60
- historyGeneration: toSafeNumber(attached.historyGeneration, 'historyGeneration'),
61
- historyStartSequence: toSafeNumber(attached.historyStartSequence, 'historyStartSequence'),
58
+ presentationSequence: toSafeNumber(attached.presentationSequence, 'presentationSequence'),
62
59
  geometryGeneration: toSafeNumber(attached.geometryGeneration, 'geometryGeneration'),
63
60
  cols: attached.cols,
64
61
  rows: attached.rows,
65
62
  };
66
63
  this.geometry = {
67
64
  generation: this.attached.geometryGeneration,
68
- outputSequenceBoundary: this.attached.historyBoundarySequence,
65
+ presentationSequence: this.attached.presentationSequence,
69
66
  cols: this.attached.cols,
70
67
  rows: this.attached.rows,
71
68
  };
72
- this.nextOutputSequence = attached.historyBoundarySequence + 1n;
73
- this.lastOutputSequence = attached.historyBoundarySequence;
74
69
  this.onGeometry?.(this.geometry);
75
70
  }
76
71
  start() {
@@ -150,50 +145,33 @@ class TerminalLiveConnectionImpl {
150
145
  return;
151
146
  }
152
147
  switch (frame.type) {
153
- case TerminalLiveFrameType.OutputBatch:
154
- {
155
- const batch = decodeOutputBatch(frame);
156
- const records = batch.records;
157
- for (const record of records) {
158
- if (record.sequence !== this.nextOutputSequence) {
159
- throw new Error(`expected output sequence ${this.nextOutputSequence}, received ${record.sequence}`);
160
- }
161
- this.nextOutputSequence += 1n;
162
- }
163
- const batchGeometry = {
164
- generation: toSafeNumber(batch.geometryGeneration, 'geometryGeneration'),
165
- outputSequenceBoundary: toSafeNumber(records[0].sequence - 1n, 'outputSequenceBoundary'),
166
- cols: batch.cols,
167
- rows: batch.rows,
168
- };
169
- this.applyGeometry(batchGeometry);
170
- this.onOutputBatch(records, batchGeometry);
171
- if (records.length > 0)
172
- this.lastOutputSequence = records[records.length - 1].sequence;
173
- this.flushPendingGeometries();
174
- break;
175
- }
176
148
  case TerminalLiveFrameType.ResizeApplied: {
177
149
  const applied = decodeResizeApplied(frame);
178
150
  const waiter = this.resizeWaiters.get(applied.sequence);
179
151
  if (!waiter)
180
152
  throw new Error('unexpected terminal live resize acknowledgement');
181
- this.queueGeometry({
153
+ const geometry = {
182
154
  generation: toSafeNumber(applied.geometryGeneration, 'geometryGeneration'),
183
- outputSequenceBoundary: toSafeNumber(applied.outputSequenceBoundary, 'outputSequenceBoundary'),
155
+ presentationSequence: toSafeNumber(applied.presentationSequence, 'presentationSequence'),
184
156
  cols: applied.cols,
185
157
  rows: applied.rows,
186
- }, applied.outputSequenceBoundary, applied.sequence);
158
+ };
159
+ this.applyGeometry(geometry);
160
+ this.resizeWaiters.delete(applied.sequence);
161
+ waiter.resolve({ requested: waiter.requested, effective: geometry });
187
162
  break;
188
163
  }
164
+ case TerminalLiveFrameType.Presentation:
165
+ this.onPresentation?.(decodePresentation(frame));
166
+ break;
189
167
  case TerminalLiveFrameType.GeometryChanged: {
190
168
  const geometry = decodeGeometryChanged(frame);
191
- this.queueGeometry({
169
+ this.applyGeometry({
192
170
  generation: toSafeNumber(geometry.generation, 'geometryGeneration'),
193
- outputSequenceBoundary: toSafeNumber(geometry.outputSequenceBoundary, 'outputSequenceBoundary'),
171
+ presentationSequence: toSafeNumber(geometry.presentationSequence, 'presentationSequence'),
194
172
  cols: geometry.cols,
195
173
  rows: geometry.rows,
196
- }, geometry.outputSequenceBoundary);
174
+ });
197
175
  break;
198
176
  }
199
177
  case TerminalLiveFrameType.SessionClosed:
@@ -222,37 +200,6 @@ class TerminalLiveConnectionImpl {
222
200
  for (const waiter of this.resizeWaiters.values())
223
201
  waiter.reject(error);
224
202
  this.resizeWaiters.clear();
225
- this.pendingGeometries = [];
226
- }
227
- queueGeometry(geometry, outputSequenceBoundary, resizeSequence) {
228
- this.pendingGeometries.push({ geometry, outputSequenceBoundary, resizeSequence });
229
- this.flushPendingGeometries();
230
- }
231
- flushPendingGeometries() {
232
- if (this.pendingGeometries.length === 0)
233
- return;
234
- const ready = [];
235
- const waiting = [];
236
- for (const pending of this.pendingGeometries) {
237
- (pending.outputSequenceBoundary <= this.lastOutputSequence ? ready : waiting).push(pending);
238
- }
239
- this.pendingGeometries = waiting;
240
- ready.sort((left, right) => (left.outputSequenceBoundary === right.outputSequenceBoundary
241
- ? left.geometry.generation - right.geometry.generation
242
- : left.outputSequenceBoundary < right.outputSequenceBoundary ? -1 : 1));
243
- for (const pending of ready) {
244
- this.applyGeometry(pending.geometry);
245
- if (pending.resizeSequence !== undefined) {
246
- const waiter = this.resizeWaiters.get(pending.resizeSequence);
247
- if (!waiter)
248
- continue;
249
- this.resizeWaiters.delete(pending.resizeSequence);
250
- waiter.resolve({
251
- requested: waiter.requested,
252
- effective: pending.geometry,
253
- });
254
- }
255
- }
256
203
  }
257
204
  applyGeometry(next) {
258
205
  if (next.generation < this.geometry.generation)
@@ -261,7 +208,7 @@ class TerminalLiveConnectionImpl {
261
208
  if (next.cols !== this.geometry.cols || next.rows !== this.geometry.rows) {
262
209
  throw new Error('terminal live geometry changed without advancing its generation');
263
210
  }
264
- if (next.outputSequenceBoundary > this.geometry.outputSequenceBoundary) {
211
+ if (next.presentationSequence > this.geometry.presentationSequence) {
265
212
  this.geometry = next;
266
213
  }
267
214
  return;
@@ -309,7 +256,7 @@ export const connectTerminalLive = async (options) => {
309
256
  if (first.type !== TerminalLiveFrameType.Attached) {
310
257
  throw new Error(`invalid terminal live server frame before attach: 0x${first.type.toString(16)}`);
311
258
  }
312
- const connection = new TerminalLiveConnectionImpl(stream, reader, decodeAttached(first), options.onOutputBatch, options.onGeometry, options.onClosed, options.onError);
259
+ const connection = new TerminalLiveConnectionImpl(stream, reader, decodeAttached(first), options.onPresentation, options.onGeometry, options.onClosed, options.onError);
313
260
  connection.start();
314
261
  return connection;
315
262
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/live/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/live/client.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@ export declare const StreamKind = "terminal/live_v1";
2
2
  export declare const FRAME_HEADER_BYTES = 8;
3
3
  export declare const MAX_FRAME_PAYLOAD_BYTES: number;
4
4
  export declare const MAX_INPUT_BYTES: number;
5
- export declare const MAX_OUTPUT_BATCH_BYTES: number;
6
- export declare const MAX_OUTPUT_BATCH_CHUNKS = 256;
7
5
  export declare const MAX_IDENTIFIER_BYTES = 256;
8
6
  export declare enum TerminalLiveFrameType {
9
7
  Attach = 1,
@@ -11,10 +9,10 @@ export declare enum TerminalLiveFrameType {
11
9
  Resize = 3,
12
10
  Detach = 4,
13
11
  Attached = 129,
14
- OutputBatch = 130,
15
12
  ResizeApplied = 131,
16
13
  SessionClosed = 132,
17
14
  GeometryChanged = 133,
15
+ Presentation = 134,
18
16
  Error = 255
19
17
  }
20
18
  export type TerminalLiveFrame = Readonly<{
@@ -39,9 +37,7 @@ export type Resize = Readonly<{
39
37
  rows: number;
40
38
  }>;
41
39
  export type Attached = Readonly<{
42
- historyBoundarySequence: bigint;
43
- historyGeneration: bigint;
44
- historyStartSequence: bigint;
40
+ presentationSequence: bigint;
45
41
  geometryGeneration: bigint;
46
42
  cols: number;
47
43
  rows: number;
@@ -49,27 +45,19 @@ export type Attached = Readonly<{
49
45
  export type ResizeApplied = Readonly<{
50
46
  sequence: bigint;
51
47
  geometryGeneration: bigint;
52
- outputSequenceBoundary: bigint;
48
+ presentationSequence: bigint;
53
49
  cols: number;
54
50
  rows: number;
55
51
  }>;
56
- export type OutputRecord = Readonly<{
57
- sequence: bigint;
58
- timestampMs: bigint;
59
- data: Uint8Array;
60
- }>;
61
- export type OutputBatch = Readonly<{
62
- geometryGeneration: bigint;
63
- cols: number;
64
- rows: number;
65
- records: readonly OutputRecord[];
66
- }>;
67
52
  export type GeometryChanged = Readonly<{
68
53
  generation: bigint;
69
- outputSequenceBoundary: bigint;
54
+ presentationSequence: bigint;
70
55
  cols: number;
71
56
  rows: number;
72
57
  }>;
58
+ export type Presentation = Readonly<{
59
+ value: unknown;
60
+ }>;
73
61
  export type ProtocolError = Readonly<{
74
62
  code: number;
75
63
  message: string;
@@ -90,8 +78,7 @@ export declare const encodeResizeApplied: (value: ResizeApplied) => Uint8Array;
90
78
  export declare const decodeResizeApplied: (value: TerminalLiveFrame) => ResizeApplied;
91
79
  export declare const encodeGeometryChanged: (value: GeometryChanged) => Uint8Array;
92
80
  export declare const decodeGeometryChanged: (value: TerminalLiveFrame) => GeometryChanged;
93
- export declare const encodeOutputBatch: (value: OutputBatch) => Uint8Array;
94
- export declare const decodeOutputBatch: (value: TerminalLiveFrame) => OutputBatch;
95
81
  export declare const decodeProtocolError: (value: TerminalLiveFrame) => ProtocolError;
82
+ export declare const decodePresentation: (value: TerminalLiveFrame) => unknown;
96
83
  export declare const decodeUtf8: (value: Uint8Array) => string;
97
84
  //# sourceMappingURL=codec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/live/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/live/codec.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@ export const StreamKind = 'terminal/live_v1';
2
2
  export const FRAME_HEADER_BYTES = 8;
3
3
  export const MAX_FRAME_PAYLOAD_BYTES = 256 * 1024;
4
4
  export const MAX_INPUT_BYTES = 64 * 1024;
5
- export const MAX_OUTPUT_BATCH_BYTES = 64 * 1024;
6
- export const MAX_OUTPUT_BATCH_CHUNKS = 256;
7
5
  export const MAX_IDENTIFIER_BYTES = 256;
8
6
  export var TerminalLiveFrameType;
9
7
  (function (TerminalLiveFrameType) {
@@ -12,10 +10,10 @@ export var TerminalLiveFrameType;
12
10
  TerminalLiveFrameType[TerminalLiveFrameType["Resize"] = 3] = "Resize";
13
11
  TerminalLiveFrameType[TerminalLiveFrameType["Detach"] = 4] = "Detach";
14
12
  TerminalLiveFrameType[TerminalLiveFrameType["Attached"] = 129] = "Attached";
15
- TerminalLiveFrameType[TerminalLiveFrameType["OutputBatch"] = 130] = "OutputBatch";
16
13
  TerminalLiveFrameType[TerminalLiveFrameType["ResizeApplied"] = 131] = "ResizeApplied";
17
14
  TerminalLiveFrameType[TerminalLiveFrameType["SessionClosed"] = 132] = "SessionClosed";
18
15
  TerminalLiveFrameType[TerminalLiveFrameType["GeometryChanged"] = 133] = "GeometryChanged";
16
+ TerminalLiveFrameType[TerminalLiveFrameType["Presentation"] = 134] = "Presentation";
19
17
  TerminalLiveFrameType[TerminalLiveFrameType["Error"] = 255] = "Error";
20
18
  })(TerminalLiveFrameType || (TerminalLiveFrameType = {}));
21
19
  const encoder = new TextEncoder();
@@ -191,59 +189,47 @@ export const decodeResize = (value) => {
191
189
  return { sequence, cols, rows };
192
190
  };
193
191
  export const encodeAttached = (value) => {
194
- assertPositiveUint64(value.historyGeneration, 'historyGeneration');
195
- assertPositiveUint64(value.historyStartSequence, 'historyStartSequence');
192
+ assertPositiveUint64(value.presentationSequence, 'presentationSequence');
196
193
  assertPositiveUint64(value.geometryGeneration, 'geometryGeneration');
197
194
  assertPositiveUint32(value.cols, 'cols');
198
195
  assertPositiveUint32(value.rows, 'rows');
199
- if (value.historyStartSequence > value.historyBoundarySequence + 1n) {
200
- throw new Error('historyStartSequence exceeds the attached history boundary');
201
- }
202
- const payload = new Uint8Array(40);
196
+ const payload = new Uint8Array(24);
203
197
  const view = new DataView(payload.buffer);
204
- view.setBigUint64(0, value.historyBoundarySequence, false);
205
- view.setBigUint64(8, value.historyGeneration, false);
206
- view.setBigUint64(16, value.historyStartSequence, false);
207
- view.setBigUint64(24, value.geometryGeneration, false);
208
- view.setUint32(32, value.cols, false);
209
- view.setUint32(36, value.rows, false);
198
+ view.setBigUint64(0, value.presentationSequence, false);
199
+ view.setBigUint64(8, value.geometryGeneration, false);
200
+ view.setUint32(16, value.cols, false);
201
+ view.setUint32(20, value.rows, false);
210
202
  return frame(TerminalLiveFrameType.Attached, payload);
211
203
  };
212
204
  export const decodeAttached = (value) => {
213
205
  if (value.type !== TerminalLiveFrameType.Attached)
214
206
  throw new Error('unexpected terminal live frame type');
215
- if (value.payload.byteLength !== 40)
207
+ if (value.payload.byteLength !== 24)
216
208
  throw new Error('invalid terminal live attached payload');
217
209
  const view = new DataView(value.payload.buffer, value.payload.byteOffset);
218
210
  const attached = {
219
- historyBoundarySequence: view.getBigUint64(0, false),
220
- historyGeneration: view.getBigUint64(8, false),
221
- historyStartSequence: view.getBigUint64(16, false),
222
- geometryGeneration: view.getBigUint64(24, false),
223
- cols: view.getUint32(32, false),
224
- rows: view.getUint32(36, false),
211
+ presentationSequence: view.getBigUint64(0, false),
212
+ geometryGeneration: view.getBigUint64(8, false),
213
+ cols: view.getUint32(16, false),
214
+ rows: view.getUint32(20, false),
225
215
  };
226
- assertPositiveUint64(attached.historyGeneration, 'historyGeneration');
227
- assertPositiveUint64(attached.historyStartSequence, 'historyStartSequence');
216
+ assertPositiveUint64(attached.presentationSequence, 'presentationSequence');
228
217
  assertPositiveUint64(attached.geometryGeneration, 'geometryGeneration');
229
218
  assertPositiveUint32(attached.cols, 'cols');
230
219
  assertPositiveUint32(attached.rows, 'rows');
231
- if (attached.historyStartSequence > attached.historyBoundarySequence + 1n) {
232
- throw new Error('historyStartSequence exceeds the attached history boundary');
233
- }
234
220
  return attached;
235
221
  };
236
222
  export const encodeResizeApplied = (value) => {
237
223
  assertPositiveUint64(value.sequence, 'sequence');
238
224
  assertPositiveUint64(value.geometryGeneration, 'geometryGeneration');
239
- assertUint64(value.outputSequenceBoundary, 'outputSequenceBoundary');
225
+ assertPositiveUint64(value.presentationSequence, 'presentationSequence');
240
226
  assertPositiveUint32(value.cols, 'cols');
241
227
  assertPositiveUint32(value.rows, 'rows');
242
228
  const payload = new Uint8Array(32);
243
229
  const view = new DataView(payload.buffer);
244
230
  view.setBigUint64(0, value.sequence, false);
245
231
  view.setBigUint64(8, value.geometryGeneration, false);
246
- view.setBigUint64(16, value.outputSequenceBoundary, false);
232
+ view.setBigUint64(16, value.presentationSequence, false);
247
233
  view.setUint32(24, value.cols, false);
248
234
  view.setUint32(28, value.rows, false);
249
235
  return frame(TerminalLiveFrameType.ResizeApplied, payload);
@@ -256,25 +242,25 @@ export const decodeResizeApplied = (value) => {
256
242
  const view = new DataView(value.payload.buffer, value.payload.byteOffset);
257
243
  const sequence = view.getBigUint64(0, false);
258
244
  const geometryGeneration = view.getBigUint64(8, false);
259
- const outputSequenceBoundary = view.getBigUint64(16, false);
245
+ const presentationSequence = view.getBigUint64(16, false);
260
246
  const cols = view.getUint32(24, false);
261
247
  const rows = view.getUint32(28, false);
262
248
  assertPositiveUint64(sequence, 'sequence');
263
249
  assertPositiveUint64(geometryGeneration, 'geometryGeneration');
264
- assertUint64(outputSequenceBoundary, 'outputSequenceBoundary');
250
+ assertPositiveUint64(presentationSequence, 'presentationSequence');
265
251
  assertPositiveUint32(cols, 'cols');
266
252
  assertPositiveUint32(rows, 'rows');
267
- return { sequence, geometryGeneration, outputSequenceBoundary, cols, rows };
253
+ return { sequence, geometryGeneration, presentationSequence, cols, rows };
268
254
  };
269
255
  export const encodeGeometryChanged = (value) => {
270
256
  assertPositiveUint64(value.generation, 'geometryGeneration');
271
- assertUint64(value.outputSequenceBoundary, 'outputSequenceBoundary');
257
+ assertPositiveUint64(value.presentationSequence, 'presentationSequence');
272
258
  assertPositiveUint32(value.cols, 'cols');
273
259
  assertPositiveUint32(value.rows, 'rows');
274
260
  const payload = new Uint8Array(24);
275
261
  const view = new DataView(payload.buffer);
276
262
  view.setBigUint64(0, value.generation, false);
277
- view.setBigUint64(8, value.outputSequenceBoundary, false);
263
+ view.setBigUint64(8, value.presentationSequence, false);
278
264
  view.setUint32(16, value.cols, false);
279
265
  view.setUint32(20, value.rows, false);
280
266
  return frame(TerminalLiveFrameType.GeometryChanged, payload);
@@ -286,88 +272,14 @@ export const decodeGeometryChanged = (value) => {
286
272
  throw new Error('invalid terminal live geometry payload');
287
273
  const view = new DataView(value.payload.buffer, value.payload.byteOffset);
288
274
  const generation = view.getBigUint64(0, false);
289
- const outputSequenceBoundary = view.getBigUint64(8, false);
275
+ const presentationSequence = view.getBigUint64(8, false);
290
276
  const cols = view.getUint32(16, false);
291
277
  const rows = view.getUint32(20, false);
292
278
  assertPositiveUint64(generation, 'geometryGeneration');
293
- assertUint64(outputSequenceBoundary, 'outputSequenceBoundary');
294
- assertPositiveUint32(cols, 'cols');
295
- assertPositiveUint32(rows, 'rows');
296
- return { generation, outputSequenceBoundary, cols, rows };
297
- };
298
- export const encodeOutputBatch = (value) => {
299
- assertPositiveUint64(value.geometryGeneration, 'geometryGeneration');
300
- assertPositiveUint32(value.cols, 'cols');
301
- assertPositiveUint32(value.rows, 'rows');
302
- if (value.records.length === 0 || value.records.length > MAX_OUTPUT_BATCH_CHUNKS) {
303
- throw new Error('invalid terminal live output record count');
304
- }
305
- let dataBytes = 0;
306
- let payloadBytes = 18;
307
- for (const record of value.records) {
308
- assertPositiveUint64(record.sequence, 'sequence');
309
- if (record.data.byteLength === 0)
310
- throw new Error('invalid terminal live output data');
311
- dataBytes += record.data.byteLength;
312
- payloadBytes += 20 + record.data.byteLength;
313
- }
314
- if (dataBytes > MAX_OUTPUT_BATCH_BYTES)
315
- throw new Error('terminal live output batch is too large');
316
- const payload = new Uint8Array(payloadBytes);
317
- const view = new DataView(payload.buffer);
318
- view.setBigUint64(0, value.geometryGeneration, false);
319
- view.setUint32(8, value.cols, false);
320
- view.setUint32(12, value.rows, false);
321
- view.setUint16(16, value.records.length, false);
322
- let offset = 18;
323
- for (const record of value.records) {
324
- view.setBigUint64(offset, record.sequence, false);
325
- view.setBigUint64(offset + 8, record.timestampMs, false);
326
- view.setUint32(offset + 16, record.data.byteLength, false);
327
- payload.set(record.data, offset + 20);
328
- offset += 20 + record.data.byteLength;
329
- }
330
- return frame(TerminalLiveFrameType.OutputBatch, payload);
331
- };
332
- export const decodeOutputBatch = (value) => {
333
- if (value.type !== TerminalLiveFrameType.OutputBatch)
334
- throw new Error('unexpected terminal live frame type');
335
- if (value.payload.byteLength < 18)
336
- throw new Error('invalid terminal live output payload');
337
- const view = new DataView(value.payload.buffer, value.payload.byteOffset);
338
- const geometryGeneration = view.getBigUint64(0, false);
339
- const cols = view.getUint32(8, false);
340
- const rows = view.getUint32(12, false);
341
- assertPositiveUint64(geometryGeneration, 'geometryGeneration');
279
+ assertPositiveUint64(presentationSequence, 'presentationSequence');
342
280
  assertPositiveUint32(cols, 'cols');
343
281
  assertPositiveUint32(rows, 'rows');
344
- const count = view.getUint16(16, false);
345
- if (count === 0 || count > MAX_OUTPUT_BATCH_CHUNKS)
346
- throw new Error('invalid terminal live output record count');
347
- const records = [];
348
- let offset = 18;
349
- let dataBytes = 0;
350
- for (let index = 0; index < count; index += 1) {
351
- if (value.payload.byteLength - offset < 20)
352
- throw new Error('invalid terminal live output payload');
353
- const size = view.getUint32(offset + 16, false);
354
- if (size === 0 || size > value.payload.byteLength - offset - 20)
355
- throw new Error('invalid terminal live output payload');
356
- dataBytes += size;
357
- if (dataBytes > MAX_OUTPUT_BATCH_BYTES)
358
- throw new Error('terminal live output batch is too large');
359
- const sequence = view.getBigUint64(offset, false);
360
- assertPositiveUint64(sequence, 'sequence');
361
- records.push({
362
- sequence,
363
- timestampMs: view.getBigUint64(offset + 8, false),
364
- data: value.payload.slice(offset + 20, offset + 20 + size),
365
- });
366
- offset += 20 + size;
367
- }
368
- if (offset !== value.payload.byteLength)
369
- throw new Error('invalid terminal live output payload');
370
- return { geometryGeneration, cols, rows, records };
282
+ return { generation, presentationSequence, cols, rows };
371
283
  };
372
284
  export const decodeProtocolError = (value) => {
373
285
  if (value.type !== TerminalLiveFrameType.Error)
@@ -382,5 +294,61 @@ export const decodeProtocolError = (value) => {
382
294
  }
383
295
  return { code, message: decodeUtf8(value.payload.subarray(4)) };
384
296
  };
297
+ export const decodePresentation = (value) => {
298
+ if (value.type !== TerminalLiveFrameType.Presentation)
299
+ throw new Error('unexpected terminal live presentation frame');
300
+ if (value.payload.byteLength === 0 || value.payload.byteLength > MAX_FRAME_PAYLOAD_BYTES)
301
+ throw new Error('invalid terminal live presentation payload');
302
+ const wire = JSON.parse(decoder.decode(value.payload));
303
+ if (wire?.v !== 1 || !Array.isArray(wire.frame?.styles) || !Array.isArray(wire.frame?.rows))
304
+ throw new Error('invalid terminal live presentation wire');
305
+ const styles = wire.frame.styles.map((style) => {
306
+ if (!Array.isArray(style) || style.length !== 5)
307
+ throw new Error('invalid terminal live presentation style');
308
+ return { foreground: style[0], background: style[1], bold: style[2], italic: style[3], underline: style[4] };
309
+ });
310
+ const graphics = decodePresentationGraphics(wire.frame.graphics);
311
+ return {
312
+ sequence: wire.sequence, geometry: wire.geometry, state: wire.state,
313
+ frame: {
314
+ width: wire.frame.width, height: wire.frame.height, bufferKind: wire.frame.bufferKind, cursor: wire.frame.cursor, history: wire.frame.history, graphics,
315
+ rows: wire.frame.rows.map((row) => {
316
+ if (!Array.isArray(row))
317
+ throw new Error('invalid terminal live presentation row');
318
+ return { cells: row.map((cell) => {
319
+ if (!Array.isArray(cell) || cell.length !== 4 || !Number.isInteger(cell[2]) || !styles[cell[2]])
320
+ throw new Error('invalid terminal live presentation cell');
321
+ return { text: cell[0], width: cell[1], style: styles[cell[2]], ...(cell[3] ? { hyperlink: cell[3] } : {}) };
322
+ }) };
323
+ }),
324
+ },
325
+ };
326
+ };
327
+ function decodePresentationGraphics(value) {
328
+ if (typeof value !== 'object' || value === null)
329
+ throw new Error('invalid terminal live presentation graphics');
330
+ const graphics = value;
331
+ if (!Array.isArray(graphics.images) || !Array.isArray(graphics.placements))
332
+ throw new Error('invalid terminal live presentation graphics');
333
+ return {
334
+ generation: graphics.generation,
335
+ images: graphics.images.map((image) => ({ ...image, pixels: decodeBase64Bytes(image?.pixels) })),
336
+ placements: graphics.placements,
337
+ };
338
+ }
339
+ function decodeBase64Bytes(value) {
340
+ if (typeof value !== 'string')
341
+ throw new Error('invalid terminal live presentation graphic pixels');
342
+ try {
343
+ if (typeof globalThis.atob === 'function') {
344
+ const decoded = globalThis.atob(value);
345
+ return Uint8Array.from(decoded, character => character.charCodeAt(0));
346
+ }
347
+ return Uint8Array.from(globalThis.Buffer.from(value, 'base64'));
348
+ }
349
+ catch {
350
+ throw new Error('invalid terminal live presentation graphic pixels');
351
+ }
352
+ }
385
353
  export const decodeUtf8 = (value) => decoder.decode(value);
386
354
  //# sourceMappingURL=codec.js.map