@replohq/sandbox-runtime 1.6.4 → 1.6.6

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.
@@ -0,0 +1,86 @@
1
+ export declare const VIEWPORT_SNAPSHOT_REQUEST = "replo:viewport-snapshot:request";
2
+ export declare const VIEWPORT_SNAPSHOT_RESPONSE = "replo:viewport-snapshot:response";
3
+ /**
4
+ * Levels of iframe nesting a capture request fans out to below the requester.
5
+ * 2 covers the deepest product surface: agent-ui → miniapp → builder preview.
6
+ */
7
+ export declare const VIEWPORT_SNAPSHOT_MAX_DEPTH = 2;
8
+ export interface ViewportSnapshotRequestMessage {
9
+ type: typeof VIEWPORT_SNAPSHOT_REQUEST;
10
+ requestId: string;
11
+ frameIndex: number;
12
+ remainingDepth: number;
13
+ }
14
+ export interface ViewportFrameRect {
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ }
20
+ /** One frame's serialized DOM plus its own captured child frames, recursively. */
21
+ export interface ViewportFrameCapture {
22
+ snapshot: unknown;
23
+ childFrames: ViewportChildFrame[];
24
+ }
25
+ export interface ViewportChildFrame {
26
+ frameIndex: number;
27
+ rect: ViewportFrameRect;
28
+ capture: ViewportFrameCapture;
29
+ }
30
+ export interface ViewportSnapshotResponseMessage {
31
+ type: typeof VIEWPORT_SNAPSHOT_RESPONSE;
32
+ requestId: string;
33
+ frameIndex: number;
34
+ capture: ViewportFrameCapture | null;
35
+ }
36
+ interface RelayMessageListener {
37
+ (event: {
38
+ data: unknown;
39
+ source: unknown;
40
+ origin?: string;
41
+ }): void;
42
+ }
43
+ interface RelayWindow {
44
+ readonly parent: unknown;
45
+ readonly frames: ArrayLike<{
46
+ postMessage: (message: unknown, targetOrigin: string) => void;
47
+ }>;
48
+ addEventListener(type: "message", listener: RelayMessageListener): void;
49
+ removeEventListener(type: "message", listener: RelayMessageListener): void;
50
+ setTimeout(listener: () => void, timeout: number): number;
51
+ clearTimeout(timeoutId: number): void;
52
+ }
53
+ /**
54
+ * Default trust check for who may request this frame's DOM: Replo app origins
55
+ * plus local dev hosts. Runtimes embedded in arbitrary third-party pages
56
+ * (published sites) silently ignore requests from anything else.
57
+ */
58
+ export declare function isTrustedViewportSnapshotRequester(origin: string): boolean;
59
+ /**
60
+ * Ask every direct child frame for its capture (each child cascades to its own
61
+ * children while `remainingDepth` allows) and collect the responses. Resolves
62
+ * at the timeout with whatever arrived — a frame running an older runtime
63
+ * simply never answers and is omitted.
64
+ */
65
+ export declare function requestChildViewportSnapshots({ targetWindow, requestId, timeoutMs, remainingDepth, }: {
66
+ targetWindow: RelayWindow;
67
+ requestId: string;
68
+ timeoutMs: number;
69
+ remainingDepth?: number;
70
+ }): Promise<{
71
+ frameIndex: number;
72
+ capture: ViewportFrameCapture;
73
+ }[]>;
74
+ /**
75
+ * Child-side responder: on a trusted parent request, serialize this frame's
76
+ * DOM, cascade the request to this frame's own children while depth allows,
77
+ * and post the combined capture back to the requesting origin only.
78
+ */
79
+ export declare function startViewportSnapshotResponder({ targetWindow, takeSnapshot, measureFrameRect, isTrustedRequester, cascadeTimeoutMs, }: {
80
+ targetWindow: RelayWindow;
81
+ takeSnapshot: () => unknown;
82
+ measureFrameRect: (frameIndex: number) => ViewportFrameRect | null;
83
+ isTrustedRequester?: (origin: string) => boolean;
84
+ cascadeTimeoutMs?: number;
85
+ }): () => void;
86
+ export {};
@@ -0,0 +1 @@
1
+ export { VIEWPORT_SNAPSHOT_MAX_DEPTH, VIEWPORT_SNAPSHOT_REQUEST, VIEWPORT_SNAPSHOT_RESPONSE, isTrustedViewportSnapshotRequester, requestChildViewportSnapshots, startViewportSnapshotResponder } from '../../../chunk-RXYLMSNM.mjs';
@@ -0,0 +1,9 @@
1
+ import type { ViewportFrameRect } from "../lib/viewportSnapshot";
2
+ /** Relay frameIndex → on-screen rect; window.frames order is iframe document order. */
3
+ export declare function measureViewportFrameRect(frameIndex: number): ViewportFrameRect | null;
4
+ /**
5
+ * Answers a trusted parent frame's turn-end viewport-capture requests with an
6
+ * rrweb serialization of this frame's DOM, cascading into this frame's own
7
+ * iframes. Passive until asked; see docs/agent-session-viewport-filmstrip-prd.md.
8
+ */
9
+ export declare function useViewportSnapshotResponder(): void;