@melra/browser-runtime 0.3.0-alpha.14 → 0.3.0-alpha.16

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 CHANGED
@@ -37,7 +37,12 @@ leaves the browser, so treat them as sensitive artifacts.
37
37
 
38
38
  `unhinged: true` disables every check above except URL syntax. That includes the
39
39
  cloud-metadata block, which is the check most likely to matter on a hosted
40
- machine.
40
+ machine. A `reserved` callback, which the MELRA server always passes, still
41
+ refuses uploading a path it names or loading one through a `file:` URL, in
42
+ every mode. The server's callback names MELRA's data directory, the policy
43
+ file, the profile, the HAR files and credential files, but leaves its
44
+ artifacts (screenshots and downloads) readable, so the browser can use them
45
+ again.
41
46
 
42
47
  Requires Node.js 22 or newer, and a Chromium that Playwright can launch. Full
43
48
  documentation: [github.com/XAGI-Lab/melra](https://github.com/XAGI-Lab/melra)
package/dist/index.d.ts CHANGED
@@ -34,6 +34,12 @@ export interface BrowserRuntimeOptions extends NetworkPolicy {
34
34
  * caller looks at next. `"allow"` keeps it as an addressable tab.
35
35
  */
36
36
  popups?: "allow" | "block";
37
+ /**
38
+ * Whether a path is one the browser may not upload or load, in any mode:
39
+ * the data MELRA itself holds. The runtime passes the file runtime's
40
+ * reading check, so its artifacts may be uploaded and loaded again.
41
+ */
42
+ reserved?: (path: string) => Promise<boolean>;
37
43
  }
38
44
  /**
39
45
  * Name any human-verification widget embedded in the page.
@@ -67,9 +73,13 @@ export declare function inputSent(error: unknown): boolean;
67
73
  * a message. Exported for unit testing.
68
74
  */
69
75
  export declare function pageAddress(url: string): string;
76
+ /**
77
+ * The `<meta>` name of a page only an operator may act on: `melra console`
78
+ * serves its approval page with it, and its CSP lets no script take it off.
79
+ */
80
+ export declare const APPROVAL_SURFACE = "melra-approval-surface";
70
81
  export declare class BrowserRuntime {
71
82
  private readonly options;
72
- private browser;
73
83
  private context;
74
84
  private activePage;
75
85
  private connection;
@@ -97,8 +107,66 @@ export declare class BrowserRuntime {
97
107
  private popups;
98
108
  /** Pending closes of blocked popups, awaited before the action reports. */
99
109
  private closing;
100
- /** True only while `tab_new` is opening the tab the caller asked for. */
101
- private openingTab;
110
+ /**
111
+ * The `newPage` call in flight while `openPage` opens a tab MELRA asked for:
112
+ * the page it resolves to is that tab, not a window a site opened.
113
+ */
114
+ private opening;
115
+ /** In a launched browser, pages handed over while `openPage`'s `newPage` is in flight, held until it settles. */
116
+ private openingPagesQueue;
117
+ /**
118
+ * The windows this runtime owns, by CDP target id: tabs it opened, and every
119
+ * window one it owns or the tab it is driving opened. Decided when Chromium
120
+ * creates the window, from the opener it names then: Playwright's `opener()`
121
+ * comes later, and is null by then if the opener has closed. In a browser
122
+ * this runtime is attached to, the rest belong to someone else, the
123
+ * operator above all.
124
+ *
125
+ * ponytail: a tab a link opens with a modifier or middle click has no
126
+ * opener at all, so between actions it counts as the operator's whichever
127
+ * page clicked it, and while an action runs as the action's. A page's request for one (`Page.frameRequestedNavigation`)
128
+ * cannot be tied to the tab that follows: a refused request leaves nothing
129
+ * to match, and claiming the next opener-less tab would let a page have the
130
+ * operator's tabs, a console's among them, closed. Closing that gap needs a
131
+ * signal Chromium does not give.
132
+ */
133
+ private ownTargets;
134
+ /**
135
+ * The active page's target id once this runtime has driven it, navigated it
136
+ * or sent it input, since it became active. Until then it may be a tab of
137
+ * the operator's the runtime only picked up, and what it opens is theirs.
138
+ */
139
+ private drivenTarget;
140
+ /** Target ids already looked up; a page keeps its id across navigations. */
141
+ private targetIds;
142
+ /**
143
+ * Windows Chromium created while an action was running, with that action's
144
+ * number: its popups, whenever Playwright gets round to handing them over.
145
+ */
146
+ private createdActing;
147
+ /**
148
+ * The page targets of this context Chromium has announced and not yet
149
+ * destroyed, the operator's among them, so an opener can be known for a tab
150
+ * rather than, say, a frame of one.
151
+ */
152
+ private pageTargets;
153
+ /** The running action: what its page opens is the action's if it navigates the page or sends it input. */
154
+ private action;
155
+ /**
156
+ * The target id of the page an action that navigates it or sends it input
157
+ * acts on, in a browser this runtime is attached to, once looked up: what
158
+ * it opens while the action runs is the action's, even if the runtime has
159
+ * not driven it yet. A read leaves it out: like between actions, what a tab
160
+ * the runtime only landed on opens while the runtime reads it is the
161
+ * operator's, though the read's own calls into the page give it activation.
162
+ */
163
+ private actingTarget;
164
+ /** Counts actions, so a popup reported by a later one says so. */
165
+ private actions;
166
+ /** The page the running action acts on, once it has one. */
167
+ private actingOn;
168
+ /** Whether the running action has sent its step back or forward. */
169
+ private stepped;
102
170
  /**
103
171
  * Browser-level session that hears about a new window the moment Chromium
104
172
  * creates it, which is what lets an action wait for a popup it knows exists
@@ -106,10 +174,30 @@ export declare class BrowserRuntime {
106
174
  * not grant one; popups are then reported on Playwright's timing alone.
107
175
  */
108
176
  private targets;
109
- /** Windows Chromium has created since tracking began, by browser context. */
110
- private windowsCreated;
111
- /** Windows Playwright has handed to the `page` handler, popup or not. */
112
- private windowsAdopted;
177
+ /**
178
+ * The windows an action's wait is owed, by CDP target id, with their browser
179
+ * context: every page Chromium creates once tracking began, bar one that is
180
+ * the operator's in a browser this runtime is attached to. A window leaves
181
+ * when Playwright has handed it over and its id is looked up (`targetOf`),
182
+ * or when it is destroyed, which for a blocked popup is the runtime's own
183
+ * close. Those still owed when an action's wait ends, however it ends, or
184
+ * when the action fails before it waits, are given up on: kept, one whose
185
+ * first response never comes would hold every later action to its whole
186
+ * timeout (#226). One handed over later stands in for no other window
187
+ * (#234), and is reported by the action running then (`giveUpOwed`).
188
+ * `popup`: whether it has an opener, as a page's window does and the
189
+ * runtime's own tab does not.
190
+ *
191
+ * ponytail: a window a page opens between actions is owed to the next
192
+ * action, so one that never loads still holds that action up once.
193
+ */
194
+ private owed;
195
+ /** Popups given up on in block mode, by target id, with the timer that closes them (`giveUpOwed`). */
196
+ private lapsing;
197
+ /** Popups those timers closed, until their targets are destroyed. */
198
+ private lapsedIds;
199
+ /** Pages handed over closed and blank while one of those was closing: those popups. */
200
+ private lapsedPages;
113
201
  /** This context's id in CDP, resolved on first use and then fixed. */
114
202
  private contextId;
115
203
  /**
@@ -118,12 +206,23 @@ export declare class BrowserRuntime {
118
206
  */
119
207
  private signal;
120
208
  private callMs;
209
+ /** A wait's absolute deadline, applied to every bounded call it makes. */
210
+ private waitDeadline;
121
211
  /**
122
212
  * Set once the running action's effect call has returned. From then on the
123
213
  * page may have acted on it, so a failure is no longer evidence that nothing
124
214
  * happened — see `execute`.
125
215
  */
126
216
  private dispatched;
217
+ /** Set when the route refused reserved data during the running action. */
218
+ private refusedReserved;
219
+ /**
220
+ * The workspace root with its links resolved, once, as the file runtime
221
+ * resolves it: a root link re-pointed later does not move uploads to a
222
+ * different directory than file operations. An upload awaits it and fails
223
+ * if it did.
224
+ */
225
+ private readonly root;
127
226
  constructor(options: BrowserRuntimeOptions);
128
227
  /**
129
228
  * Bound a Playwright call that takes no timeout of its own by the running
@@ -137,26 +236,100 @@ export declare class BrowserRuntime {
137
236
  */
138
237
  private call;
139
238
  private uploadPaths;
239
+ /**
240
+ * `assertSafeUrl`, and a file: URL naming reserved data is refused too. Only
241
+ * unhinged mode lets a file: URL through the first, and the reserved data
242
+ * stays out of reach there as it does for the file and terminal adapters.
243
+ */
244
+ private assertAllowed;
140
245
  private ensureContext;
141
246
  /**
142
- * Hold the action's result until Playwright has handed over every window
143
- * Chromium created, so the action that opened a window is the one that
144
- * reports it.
247
+ * Hold the action's result while this context's windows are still owed
248
+ * (`owed`), so the action that opened a window is the one that reports it.
249
+ * A window stops being owed once it is handed over and looked up, or once it
250
+ * is destroyed: in a launched browser a blocked popup when the runtime's
251
+ * close lands and an allowed one when its lookup returns; in one this
252
+ * runtime is attached to, every window once it is looked up to be judged;
253
+ * and one destroyed before it is handed over, at once.
145
254
  *
146
255
  * Costs one round trip when nothing was opened. Waits only while a window is
147
- * known to exist and is still unreported, bounded by the action's own
148
- * timeout: the window is part of what the action did. A window still pending
149
- * after that is reported by the action running when Playwright delivers it.
256
+ * owed, bounded by the action's own timeout: the window is part of what the
257
+ * action did. One still owed after that is given up on, so no later action
258
+ * waits for it, and is reported by the action running when Playwright
259
+ * delivers it, if it ever does.
150
260
  */
151
261
  private awaitOpenedWindows;
262
+ /**
263
+ * Gives up on the windows still owed (`owed`). In block mode a popup among
264
+ * them, which Playwright has not handed over to be closed, is closed by its
265
+ * id once it has had as long again to load (#240). One that loads in that
266
+ * time is handed over, reported with its address, and closed as any popup
267
+ * is; one that never does is handed over closed, with no address, and
268
+ * reported between actions (`adopt`). In a launched browser every window is
269
+ * this runtime's; in one it is attached to, only a window of this context is
270
+ * closed, checked when the timer fires. The context is known by then even
271
+ * when the action giving up failed before its wait: any page looked up
272
+ * tells it (`targetOf`), and an action that drives a page looks it up first.
273
+ *
274
+ * ponytail: "as long again" is the giving-up action's own `grace`
275
+ * (its `timeoutMs`), not a setting; a window that loads later is closed
276
+ * before it can be seen.
277
+ */
278
+ private giveUpOwed;
279
+ private forgetLapsing;
280
+ /**
281
+ * This context's id in CDP, looked up once: what owed windows are kept
282
+ * under. False when there is no page yet to ask.
283
+ */
284
+ private learnContextId;
285
+ /** A window handed over is owed by no wait once its id is known (`owed`). */
286
+ private release;
287
+ /**
288
+ * Reports a window a page opened and, in block mode, closes it. `during`:
289
+ * whether it came while an action ran.
290
+ */
291
+ private adopt;
152
292
  /**
153
293
  * Opens a page MELRA asked for, not one the site opened by itself.
154
294
  *
155
295
  * The popup handler cannot tell the two apart — both arrive as a `page`
156
- * event — so this flag is the difference, and it is held across exactly the
157
- * await that emits the event.
296
+ * event — so `opening` holds the `newPage` call that emits the event, and a
297
+ * browser this runtime is attached to compares the page with what it
298
+ * resolves to. A launched browser looks no window up as it is handed over,
299
+ * so the handler queues every page it is handed then (#233), and they are
300
+ * sorted here once `newPage` has said which one is the tab.
158
301
  */
159
302
  private openPage;
303
+ /**
304
+ * A page's CDP target id. Bounded on its own, not by the action's budget or
305
+ * cancel: between actions those belong to an action that has finished.
306
+ */
307
+ private targetOf;
308
+ /**
309
+ * Whether to treat a new window as this runtime's, in a browser it is
310
+ * attached to: one created while an action ran, which then counts as the
311
+ * runtime's for the windows it opens, or one of `ownTargets`. `during`
312
+ * says whether the action reporting it is the one it came in; any other
313
+ * reports it as between actions. Asked twice before giving up. One that
314
+ * closed before it could be asked is reported, as everywhere else; that
315
+ * one, and one still open that cannot be asked, count by when Playwright
316
+ * handed it over.
317
+ */
318
+ private adoptable;
319
+ /**
320
+ * Makes `page` the one actions land on. It is not driven yet: it may be a
321
+ * tab of the operator's the runtime only picked up, and what it opens stays
322
+ * theirs until the runtime navigates it or sends it input (`drive`). The
323
+ * page already active stays driven if it was.
324
+ */
325
+ private activate;
326
+ /**
327
+ * The runtime is navigating the active page or has sent it input, so from
328
+ * here what that page opens is the runtime's, until another page is made
329
+ * active. Not before: an action refused, or one whose target was never
330
+ * found, leaves an operator's tab theirs.
331
+ */
332
+ private drive;
160
333
  private page;
161
334
  /**
162
335
  * The tab list, with the index each entry can be addressed by.
@@ -164,8 +337,37 @@ export declare class BrowserRuntime {
164
337
  * Returned by every tab action rather than only by `tabs`, because opening,
165
338
  * switching, and closing all renumber the list — a caller that had to issue a
166
339
  * separate `tabs` call after each one would be acting on a stale index.
340
+ *
341
+ * Never throws: it follows the effect of every tab action but `tabs`, and a
342
+ * listing that failed made a tab opened or closed read as nothing done. A
343
+ * tab that does not answer within a second, or the action's timeout if
344
+ * shorter, or before a cancel, is listed with `title: null`;
345
+ * one closed meanwhile is left out, and the indices are the ones after it.
346
+ * `pages` is the list they index, for an action to report its own tab's.
167
347
  */
168
348
  private describeTabs;
349
+ /**
350
+ * Whether any frame of the page holds a filled secret field, and the frames
351
+ * it read: a targeted read searches only those, so it never looks in a frame
352
+ * this did not vouch for. Every frame, not the bounded set a snapshot reads:
353
+ * a selector can enter any of them, including one that attached while the
354
+ * others were being asked, so the list is read again until it stops growing.
355
+ * "unknown" when some frame could not answer, which a read must not take for
356
+ * "clear". The whole check takes at most `ms`.
357
+ */
358
+ private secretFieldFilled;
359
+ /** The frames a targeted read may search, or its refusal while a secret field is filled. */
360
+ private clearOfSecrets;
361
+ /**
362
+ * A frame mid-navigation is asked again once its next document has loaded;
363
+ * a detached one holds nothing. A frame with no document yet (a lazy or
364
+ * still-loading iframe) that does not answer is "unread": it does not make
365
+ * the page unknown, and a targeted read does not search it. A cancelled task
366
+ * is not "unknown": it stops. Each frame is given at most `ms` in all, and
367
+ * one that gets its document while being asked is asked again with what is
368
+ * left, which is not one of its retries.
369
+ */
370
+ private frameHoldsSecret;
169
371
  /**
170
372
  * The frames a target may live in, main frame first.
171
373
  *
@@ -183,6 +385,9 @@ export declare class BrowserRuntime {
183
385
  * Every way the caller gave us to find the element, in the order we trust
184
386
  * them. Split out from `locator` because waiting and acting need the same
185
387
  * list but disagree about what to do when nothing matches yet.
388
+ *
389
+ * `within` starts a checked read only in the frames its check read; where a
390
+ * match may end up is `readFirst`'s to judge.
186
391
  */
187
392
  private candidates;
188
393
  /**
@@ -200,8 +405,18 @@ export declare class BrowserRuntime {
200
405
  * Resolution only reads the page and always runs before an action's effect,
201
406
  * so a `count` that times out here fails a click or a fill cleanly: nothing
202
407
  * was sent, and `execute` does not report it as an unknown outcome.
408
+ *
203
409
  */
204
410
  private locator;
411
+ /**
412
+ * A candidate's first match, if its own document is one a secret check
413
+ * read. A selector or role can lead from the frame it starts in to another,
414
+ * so a checked read judges the element it would use, not the route to it:
415
+ * a match anywhere else counts as none, and what it is makes no difference.
416
+ */
417
+ private readFirst;
418
+ /** `locator` for a checked read: the element itself, from the read frames. */
419
+ private readTarget;
205
420
  /**
206
421
  * Wait for a target to reach a state, re-resolving it on every poll.
207
422
  *
@@ -230,6 +445,51 @@ export declare class BrowserRuntime {
230
445
  * reliably no matter what is in it.
231
446
  */
232
447
  private typeInto;
448
+ /**
449
+ * An input action on its target's element, held to the documents it was
450
+ * checked on: the page's, and the one the target was first found in, which
451
+ * for a target inside a frame is that frame's. The input goes through the
452
+ * element, which a navigation takes away, so a page or frame that navigates
453
+ * itself while the action waits (for the element to show, say) fails the
454
+ * action rather than having the target found, and acted on, in the new
455
+ * document. The target is found again only in the document it was found
456
+ * in, and only before any input reached it.
457
+ *
458
+ * The element is first waited for as the action would wait (`ready`: the
459
+ * states named, which sends the page nothing), so the check after that is
460
+ * the last thing before the input, the address it named included. Once the
461
+ * action has sent input (an earlier field of a form, say), only its
462
+ * document is held: a page may rewrite its own path in answer, as it may
463
+ * while it is typed into. A target found again after a re-render is not
464
+ * waited for twice, so one re-rendered faster than that can still be hit.
465
+ * Whatever runs out is reported as the action's `timeout` running out
466
+ * (`ranOut`).
467
+ *
468
+ * ponytail: Playwright's own hit-target check and dispatch come after this,
469
+ * so a navigation that commits in that instant can still receive the one
470
+ * click or key; closing it needs input that names its document, which CDP
471
+ * lacks.
472
+ */
473
+ private actOn;
474
+ /**
475
+ * The target found again after it went away, searched for in slices that
476
+ * each end by asking whether the page, or the document it was first found
477
+ * in (a frame's), has left: a page that takes the target away and then
478
+ * navigates to a document without it would otherwise be waited on until
479
+ * the timeout. A slice cut short, by a frame detaching as the page around
480
+ * it leaves, is asked about the same way.
481
+ */
482
+ private refind;
483
+ /** `call` for a handle: one that arrives after the bound or a cancel is released, not left in the page. */
484
+ private handle;
485
+ /**
486
+ * Whether the page has left the document an input action was checked on,
487
+ * or, with `address`, the address it named. A navigation destroys the old
488
+ * document's context, so asking its handle fails. A call that timed out or
489
+ * was cancelled is no answer either way and is passed on, and a closed page
490
+ * has not moved anywhere: the action's own error says what happened.
491
+ */
492
+ private moved;
233
493
  /**
234
494
  * An attached CDP browser has no pinning proxy, and Chromium follows a
235
495
  * redirect without showing the hop to the route guard, so an allowed page
@@ -260,6 +520,7 @@ export declare class BrowserRuntime {
260
520
  execute(operation: BrowserOperation, signal?: AbortSignal): Promise<Record<string, unknown>>;
261
521
  private executeOne;
262
522
  private run;
523
+ private act;
263
524
  close(): Promise<void>;
264
525
  }
265
526
  export { assertSafeDestination, assertSafeUrl, isPrivateAddress, type NetworkPolicy, type SafeDestination, } from "@melra/policy-core";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}