@tangle-network/sandbox 0.11.1-develop.20260718200351.2f5db96 → 0.11.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.
@@ -40,24 +40,16 @@ interface ReplayOptions {
40
40
  lastEventId?: string;
41
41
  /** Execution ID to replay events for */
42
42
  executionId?: string;
43
- /** Actual runtime session ID used to scope replayed agent events */
43
+ /** Session ID context for replay */
44
44
  sessionId?: string;
45
45
  }
46
- interface SubscriptionDenial {
47
- channel: string;
48
- reason: string;
49
- }
50
- interface SubscriptionAcknowledgement {
51
- channels: string[];
52
- denied?: SubscriptionDenial[];
53
- }
54
46
  /**
55
47
  * Base fields present on all server messages.
56
48
  */
57
49
  interface ServerMessageBase {
58
50
  id?: string;
59
51
  timestamp?: number;
60
- /** Monotonic per-session sequence number for consumers to detect gaps. */
52
+ /** Monotonic sequence number for gap detection (per session) */
61
53
  seq?: number;
62
54
  }
63
55
  /**
@@ -68,11 +60,12 @@ type ServerMessage = (ServerMessageBase & {
68
60
  messageType?: string;
69
61
  data: {
70
62
  sessionId: string;
71
- hydratedCount?: number;
72
63
  };
73
64
  }) | (ServerMessageBase & {
74
65
  type: "subscribed";
75
- data: SubscriptionAcknowledgement;
66
+ data: {
67
+ channels: string[];
68
+ };
76
69
  }) | (ServerMessageBase & {
77
70
  type: "unsubscribed";
78
71
  data: {
@@ -93,19 +86,6 @@ type ServerMessage = (ServerMessageBase & {
93
86
  sandboxId: string;
94
87
  error?: string;
95
88
  };
96
- }) | (ServerMessageBase & {
97
- type: "runtime.reconnecting";
98
- data: {
99
- sandboxId: string;
100
- attempt: number;
101
- delayMs: number;
102
- };
103
- }) | (ServerMessageBase & {
104
- type: "runtime.removed";
105
- data: {
106
- sandboxId: string;
107
- reason: string;
108
- };
109
89
  }) | (ServerMessageBase & {
110
90
  type: "runtime.not_found";
111
91
  data: {
@@ -142,7 +122,7 @@ type ServerMessage = (ServerMessageBase & {
142
122
  }) | (ServerMessageBase & {
143
123
  type: "agent.event";
144
124
  channel: string;
145
- data: unknown; /** @deprecated The server emits `seq`; retained for older deployments. */
125
+ data: unknown;
146
126
  sequenceId?: number;
147
127
  }) | (ServerMessageBase & {
148
128
  type: "replay.start";
@@ -176,20 +156,6 @@ type ServerMessage = (ServerMessageBase & {
176
156
  totalDropped: number; /** Hint that client should request a replay */
177
157
  suggestReplay: boolean;
178
158
  };
179
- }) | (ServerMessageBase & {
180
- type: "terminal.input.error";
181
- data: {
182
- terminalId: string;
183
- code: string;
184
- message: string;
185
- };
186
- }) | (ServerMessageBase & {
187
- type: `project.${string}`;
188
- channel?: string;
189
- data: unknown;
190
- }) | (ServerMessageBase & {
191
- type: "heartbeat";
192
- data?: unknown;
193
159
  });
194
160
  interface PortEventData {
195
161
  type: "opened" | "closed";
@@ -197,30 +163,6 @@ interface PortEventData {
197
163
  protocol: string;
198
164
  processName?: string;
199
165
  }
200
- /**
201
- * Inbound WebSocket frame before normalization. The server may emit a
202
- * legacy `messageType` discriminant instead of `type`, and may carry a
203
- * top-level `channel` plus arbitrary extra fields. `handleMessage`
204
- * normalizes a `RawWireMessage` into a `ServerMessage` before dispatch:
205
- * `type` and `data` are mutable here because normalization rewrites them.
206
- */
207
- interface RawWireMessage {
208
- type?: string;
209
- messageType?: string;
210
- channel?: string;
211
- data?: unknown;
212
- id?: string;
213
- message?: string;
214
- code?: string;
215
- timestamp?: number;
216
- seq?: number;
217
- sequenceId?: number;
218
- [key: string]: unknown;
219
- }
220
- /** Every inbound frame after legacy names and sequence fields are normalized. */
221
- interface NormalizedServerMessage extends RawWireMessage {
222
- type: string;
223
- }
224
166
  /**
225
167
  * Connection state for the WebSocket client.
226
168
  */
@@ -273,8 +215,6 @@ interface TokenRefreshResult {
273
215
  * Event handlers for session gateway events.
274
216
  */
275
217
  interface SessionGatewayEventHandlers {
276
- /** Called after internal processing for every non-duplicate normalized frame. */
277
- onMessage?: (message: NormalizedServerMessage) => void;
278
218
  onConnect?: (sessionId: string) => void;
279
219
  onDisconnect?: (code: number, reason: string) => void;
280
220
  onReconnect?: () => void;
@@ -297,7 +237,7 @@ interface SessionGatewayEventHandlers {
297
237
  }) => void;
298
238
  onPortOpened?: (port: number, protocol: string, processName?: string) => void;
299
239
  onPortClosed?: (port: number) => void;
300
- onAgentEvent?: (channel: string, data: unknown, seq?: number) => void;
240
+ onAgentEvent?: (channel: string, data: unknown, sequenceId?: number) => void;
301
241
  onError?: (message: string, code?: string) => void;
302
242
  onStateChange?: (state: ConnectionState) => void;
303
243
  onMetricsChange?: (metrics: ConnectionMetrics) => void;
@@ -330,11 +270,11 @@ interface SessionGatewayClientConfig {
330
270
  token: string;
331
271
  /** Callback to refresh the token when it's about to expire */
332
272
  onTokenRefresh?: () => Promise<TokenRefreshResult>;
333
- /** Browser session ID embedded in the session-scoped read token */
273
+ /** Session ID to connect to */
334
274
  sessionId: string;
335
275
  /** Transport mode (default: "websocket") */
336
276
  transport?: TransportMode;
337
- /** Additional channels to subscribe to; server-authorized channels are used by default. */
277
+ /** Channels to subscribe to (default: ["*"]) */
338
278
  channels?: string[];
339
279
  /** Auto-reconnect on disconnect (default: true) */
340
280
  autoReconnect?: boolean;
@@ -362,8 +302,6 @@ interface SessionGatewayClientConfig {
362
302
  replayStorageKeyPrefix?: string;
363
303
  /** Number of latency samples to track for averaging (default: 10) */
364
304
  latencyHistorySize?: number;
365
- /** Maximum wait for `connection.established` (default: 10000 ms) */
366
- connectionEstablishmentTimeoutMs?: number;
367
305
  /** Event handlers */
368
306
  handlers?: SessionGatewayEventHandlers;
369
307
  }
@@ -397,13 +335,11 @@ declare class SessionGatewayClient {
397
335
  private ws;
398
336
  private readonly config;
399
337
  private readonly handlers;
400
- private readonly replayStateStore;
401
- private readonly tokenRefresher;
402
338
  private currentToken;
339
+ private isRefreshingToken;
403
340
  private state;
404
341
  private connectedAt;
405
342
  private hasConnectedBefore;
406
- private connectionEstablishedForSocket;
407
343
  private lastPingAt;
408
344
  private lastPongAt;
409
345
  private lastPingSentAt;
@@ -417,7 +353,6 @@ declare class SessionGatewayClient {
417
353
  private pingInterval;
418
354
  private pongTimeout;
419
355
  private pendingCallbacks;
420
- private readonly connectionWaiters;
421
356
  private messageIdCounter;
422
357
  private processedEventIds;
423
358
  private pingLatencyHistory;
@@ -452,7 +387,7 @@ declare class SessionGatewayClient {
452
387
  /**
453
388
  * Request replay of events since a timestamp.
454
389
  */
455
- replay(since: number): Promise<void>;
390
+ replay(since: number): void;
456
391
  /**
457
392
  * Send terminal input via WebSocket.
458
393
  */
@@ -488,18 +423,14 @@ declare class SessionGatewayClient {
488
423
  getToken(): string;
489
424
  private setState;
490
425
  private handleOpen;
491
- private handleConnectionEstablished;
492
426
  private handleClose;
493
- private handleError;
494
- private closeBeforeEstablishment;
495
427
  private handleMessage;
496
428
  private handlePong;
497
429
  private dispatchMessage;
498
- private deliverMessage;
499
430
  private trackExecutionContext;
431
+ private handleTokenExpiring;
500
432
  private send;
501
433
  private sendWithResponse;
502
- private waitForConnectionEstablished;
503
434
  private restoreSubscriptions;
504
435
  private startPingInterval;
505
436
  private stopPingInterval;
@@ -514,4 +445,4 @@ declare class SessionGatewayClient {
514
445
  private saveReplayState;
515
446
  }
516
447
  //#endregion
517
- export { type ClientMessage, type ConnectionMetrics, type ConnectionQuality, type ConnectionState, INITIAL_METRICS, type NormalizedServerMessage, type PortEventData, type ReplayOptions, type ReplayState, type ReplayStateStorage, type ServerMessage, SessionGatewayClient, type SessionGatewayClientConfig, type SessionGatewayEventHandlers, type SessionGatewayStats, type SubscriptionAcknowledgement, type SubscriptionDenial, type TokenRefreshResult, type TransportMode, calculateConnectionQuality };
448
+ export { type ClientMessage, type ConnectionMetrics, type ConnectionQuality, type ConnectionState, INITIAL_METRICS, type PortEventData, type ReplayOptions, type ReplayState, type ReplayStateStorage, type ServerMessage, SessionGatewayClient, type SessionGatewayClientConfig, type SessionGatewayEventHandlers, type SessionGatewayStats, type TokenRefreshResult, type TransportMode, calculateConnectionQuality };