@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.
- package/README.md +16 -39
- package/dist/agent/index.d.ts +3 -3
- package/dist/{client-L4c2I5tL.d.ts → client-DBioX_CL.d.ts} +2 -2
- package/dist/{client-yksqE5VH.js → client-D_67csnK.js} +7 -15
- package/dist/collaboration/index.js +1 -1
- package/dist/{collaboration-CeNQA9H_.js → collaboration-DDnuTcZd.js} +1 -1
- package/dist/core.d.ts +4 -4
- package/dist/core.js +3 -3
- package/dist/{errors-hbpL_-S6.js → errors-Cbs78OlF.js} +3 -3
- package/dist/{errors-B-8AMQdY.d.ts → errors-ntvaf0_F.d.ts} +1 -1
- package/dist/{index-XaVF9qK-.d.ts → index-Dj8LzvId.d.ts} +2 -2
- package/dist/index.d.ts +6 -6
- package/dist/index.js +8 -8
- package/dist/intelligence/index.js +1 -1
- package/dist/{runtime-api-r8vQVMe4.js → runtime-api-kukaWPtF.js} +5 -6
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.js +2 -2
- package/dist/{sandbox-C0qo2TZO.d.ts → sandbox-BRoxCvpS.d.ts} +29 -81
- package/dist/{sandbox-C8WoMyT0.js → sandbox-DaLPTCRA.js} +32 -133
- package/dist/session-gateway/index.d.ts +13 -82
- package/dist/session-gateway/index.js +144 -343
- package/dist/tangle/index.d.ts +1 -1
- package/dist/tangle/index.js +1 -1
- package/dist/{tangle-m1lRkQlR.js → tangle-DHOkbr5a.js} +4 -4
- package/dist/{types-DACKEpON.d.ts → types-D2C72ySk.d.ts} +30 -83
- package/package.json +3 -4
|
@@ -40,24 +40,16 @@ interface ReplayOptions {
|
|
|
40
40
|
lastEventId?: string;
|
|
41
41
|
/** Execution ID to replay events for */
|
|
42
42
|
executionId?: string;
|
|
43
|
-
/**
|
|
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
|
|
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:
|
|
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;
|
|
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,
|
|
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
|
-
/**
|
|
273
|
+
/** Session ID to connect to */
|
|
334
274
|
sessionId: string;
|
|
335
275
|
/** Transport mode (default: "websocket") */
|
|
336
276
|
transport?: TransportMode;
|
|
337
|
-
/**
|
|
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):
|
|
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
|
|
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 };
|