@trusty-squire/mcp 1.1.31 → 1.1.32-rc.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 CHANGED
@@ -14,7 +14,7 @@ Ask your coding agent to:
14
14
 
15
15
  - **Get an API key.** "Sign me up for Pinecone and get an API key." It signs up, verifies the email, creates the key, and stores it in your vault instead of the chat.
16
16
  - **Sign in anywhere.** It uses your Google or GitHub account on any site that offers it.
17
- - **Buy things.** "Order one Glow Serum from whitejade.xyz." You approve the purchase once, and your card number never reaches the agent.
17
+ - **Buy things.** "Order one Glow Serum from whitejade.xyz." You approve the purchase once, and Trusty Squire fills the card fields in its browser.
18
18
  - **Call APIs with stored keys.** The agent uses a saved key without ever seeing it.
19
19
  - **Finish setup.** OAuth apps, dashboards, and verification steps, end to end.
20
20
 
@@ -0,0 +1,242 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Live browser</title>
7
+ <style>
8
+ html,
9
+ body {
10
+ margin: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ background: #111;
14
+ color: white;
15
+ font:
16
+ 14px system-ui,
17
+ sans-serif;
18
+ }
19
+ body {
20
+ display: flex;
21
+ flex-direction: column;
22
+ overflow: hidden;
23
+ }
24
+ #bar {
25
+ padding: 8px 12px;
26
+ background: #222;
27
+ }
28
+ #screen {
29
+ flex: 1;
30
+ min-height: 0;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ overflow: hidden;
35
+ touch-action: none;
36
+ }
37
+ canvas {
38
+ max-width: 100%;
39
+ max-height: 100%;
40
+ object-fit: contain;
41
+ touch-action: none;
42
+ }
43
+ #keyboard {
44
+ position: absolute;
45
+ opacity: 0;
46
+ left: -1000px;
47
+ }
48
+ button {
49
+ margin-left: 12px;
50
+ }
51
+ </style>
52
+ </head>
53
+ <body>
54
+ <div id="bar">
55
+ <span id="state">Connecting…</span><button id="focus" type="button">Show keyboard</button>
56
+ </div>
57
+ <div id="screen">
58
+ <canvas id="canvas" tabindex="0" aria-label="Interactive browser view"></canvas>
59
+ </div>
60
+ <input id="keyboard" type="text" autocomplete="off" autocapitalize="off" spellcheck="false" />
61
+ <script>
62
+ const canvas = document.getElementById("canvas");
63
+ const state = document.getElementById("state");
64
+ const keyboard = document.getElementById("keyboard");
65
+ const context = canvas.getContext("2d");
66
+ const endpoint = new URL("stream", location.href);
67
+ endpoint.protocol = location.protocol === "https:" ? "wss:" : "ws:";
68
+ const socket = new WebSocket(endpoint);
69
+ let drawing = false;
70
+ let nextFrame = null;
71
+ let frameEpoch = 0;
72
+ function send(message) {
73
+ if (socket.readyState === WebSocket.OPEN) socket.send(JSON.stringify(message));
74
+ }
75
+ function sendText(value) {
76
+ for (let offset = 0; offset < value.length; offset += 500)
77
+ send({ type: "text", text: value.slice(offset, offset + 500) });
78
+ }
79
+ function paint(data) {
80
+ nextFrame = data;
81
+ if (drawing) return;
82
+ drawing = true;
83
+ const epoch = frameEpoch;
84
+ const image = new Image();
85
+ image.onload = () => {
86
+ if (epoch !== frameEpoch) {
87
+ drawing = false;
88
+ const queued = nextFrame;
89
+ nextFrame = null;
90
+ if (queued) paint(queued);
91
+ return;
92
+ }
93
+ canvas.width = image.naturalWidth;
94
+ canvas.height = image.naturalHeight;
95
+ context.drawImage(image, 0, 0);
96
+ drawing = false;
97
+ const queued = nextFrame;
98
+ nextFrame = null;
99
+ if (queued && queued !== data) paint(queued);
100
+ };
101
+ image.onerror = () => {
102
+ drawing = false;
103
+ };
104
+ image.src = "data:image/jpeg;base64," + data;
105
+ }
106
+ socket.onmessage = (event) => {
107
+ const message = JSON.parse(event.data);
108
+ if (message.type === "frame") paint(message.data);
109
+ if (message.type === "blank") {
110
+ frameEpoch++;
111
+ nextFrame = null;
112
+ context.clearRect(0, 0, canvas.width, canvas.height);
113
+ }
114
+ if (message.type === "control")
115
+ state.textContent =
116
+ message.state === "human"
117
+ ? "You are controlling the browser"
118
+ : "Watching — touch to take control";
119
+ };
120
+ socket.onclose = () => {
121
+ state.textContent = "Live view ended";
122
+ };
123
+ socket.onerror = () => {
124
+ state.textContent = "Live view connection failed";
125
+ };
126
+ function point(event) {
127
+ const bounds = canvas.getBoundingClientRect();
128
+ const imageRatio = canvas.width / canvas.height;
129
+ const boxRatio = bounds.width / bounds.height;
130
+ const width = boxRatio > imageRatio ? bounds.height * imageRatio : bounds.width;
131
+ const height = boxRatio > imageRatio ? bounds.height : bounds.width / imageRatio;
132
+ const left = bounds.left + (bounds.width - width) / 2;
133
+ const top = bounds.top + (bounds.height - height) / 2;
134
+ return {
135
+ x: Math.max(0, Math.min(1, (event.clientX - left) / width)),
136
+ y: Math.max(0, Math.min(1, (event.clientY - top) / height)),
137
+ };
138
+ }
139
+ canvas.addEventListener("pointerdown", (event) => {
140
+ event.preventDefault();
141
+ canvas.setPointerCapture(event.pointerId);
142
+ canvas.focus();
143
+ send({
144
+ type: event.pointerType === "touch" ? "touch" : "pointer",
145
+ phase: event.pointerType === "touch" ? "start" : "down",
146
+ button: ["left", "middle", "right"][event.button] || "left",
147
+ ...point(event),
148
+ });
149
+ });
150
+ canvas.addEventListener("pointermove", (event) => {
151
+ if (!event.buttons) return;
152
+ send({
153
+ type: event.pointerType === "touch" ? "touch" : "pointer",
154
+ phase: "move",
155
+ ...point(event),
156
+ });
157
+ });
158
+ canvas.addEventListener("pointerup", (event) => {
159
+ send({
160
+ type: event.pointerType === "touch" ? "touch" : "pointer",
161
+ phase: event.pointerType === "touch" ? "end" : "up",
162
+ button: ["left", "middle", "right"][event.button] || "left",
163
+ ...point(event),
164
+ });
165
+ });
166
+ canvas.addEventListener("contextmenu", (event) => event.preventDefault());
167
+ canvas.addEventListener(
168
+ "wheel",
169
+ (event) => {
170
+ event.preventDefault();
171
+ send({ type: "wheel", delta_x: event.deltaX, delta_y: event.deltaY, ...point(event) });
172
+ },
173
+ { passive: false },
174
+ );
175
+ canvas.addEventListener("keydown", (event) => {
176
+ if ((event.ctrlKey || event.metaKey || event.altKey) && /^[a-z]$/i.test(event.key)) {
177
+ event.preventDefault();
178
+ send({
179
+ type: "key",
180
+ key: event.key,
181
+ ctrl: event.ctrlKey,
182
+ meta: event.metaKey,
183
+ alt: event.altKey,
184
+ shift: event.shiftKey,
185
+ });
186
+ return;
187
+ }
188
+ if (
189
+ [
190
+ "Backspace",
191
+ "Tab",
192
+ "Enter",
193
+ "Escape",
194
+ "ArrowLeft",
195
+ "ArrowUp",
196
+ "ArrowRight",
197
+ "ArrowDown",
198
+ "Delete",
199
+ ].includes(event.key)
200
+ ) {
201
+ event.preventDefault();
202
+ send({ type: "key", key: event.key });
203
+ } else if (event.key.length === 1 && !event.ctrlKey && !event.metaKey) {
204
+ event.preventDefault();
205
+ sendText(event.key);
206
+ }
207
+ });
208
+ document.getElementById("focus").onclick = () => keyboard.focus();
209
+ keyboard.addEventListener("input", () => {
210
+ if (keyboard.value) sendText(keyboard.value);
211
+ keyboard.value = "";
212
+ });
213
+ keyboard.addEventListener("keydown", (event) => {
214
+ if (
215
+ [
216
+ "Backspace",
217
+ "Tab",
218
+ "Enter",
219
+ "Escape",
220
+ "ArrowLeft",
221
+ "ArrowUp",
222
+ "ArrowRight",
223
+ "ArrowDown",
224
+ "Delete",
225
+ ].includes(event.key)
226
+ ) {
227
+ event.preventDefault();
228
+ send({ type: "key", key: event.key });
229
+ }
230
+ });
231
+ document.addEventListener("paste", (event) => {
232
+ if (document.activeElement !== canvas) return;
233
+ const text = event.clipboardData?.getData("text/plain");
234
+ if (text) {
235
+ event.preventDefault();
236
+ sendText(text);
237
+ }
238
+ });
239
+ window.addEventListener("pagehide", () => socket.close());
240
+ </script>
241
+ </body>
242
+ </html>
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/operator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAetE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgF3F;;;;qDAIqD;AACrD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,EACD,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAWD;;;yBAGyB;AACzB,qBAAa,cAAe,YAAW,mBAAmB;IAStD,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAG/B;gBAEe,MAAM,EAAE;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB;;uCAE+B;QAC/B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,SAAS,CAAC;KACrD;IAKH;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAsBd;;uBAEmB;IACb,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC;IAQb,qBAAqB,CAAC,CAAC,EAC3B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC;IAgBb;uCACmC;IACnC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAO9D,8DAA8D;IACxD,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,UAAU,CAAC;IAmLtB,2DAA2D;IACrD,OAAO,CACX,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,aAAa,CAAC;IAyCzB,uEAAuE;IACjE,YAAY,CAChB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC;IAuBvB,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAS1F,UAAU,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/operator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAetE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA0F3F;;;;qDAIqD;AACrD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,EACD,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAWD;;;yBAGyB;AACzB,qBAAa,cAAe,YAAW,mBAAmB;IAStD,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAG/B;gBAEe,MAAM,EAAE;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB;;uCAE+B;QAC/B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,SAAS,CAAC;KACrD;IAKH;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAsBd;;uBAEmB;IACb,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC;IAQb,qBAAqB,CAAC,CAAC,EAC3B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC;IAgBb;uCACmC;IACnC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAO9D,8DAA8D;IACxD,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,UAAU,CAAC;IA0LtB,2DAA2D;IACrD,OAAO,CACX,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,aAAa,CAAC;IAyCzB,uEAAuE;IACjE,YAAY,CAChB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC;IAuBvB,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAS1F,UAAU,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
@@ -10,6 +10,7 @@ import { preparePublicOAuthLoginTarget, withPreparedOAuthLoginTarget, } from "..
10
10
  import { BrokerAuthority } from "./authority.js";
11
11
  import { BrokerRefusal } from "./refusal.js";
12
12
  import { provenPreDispatchMutationFailure } from "../mutation-dispatch-evidence.js";
13
+ import { withAgentShareControl } from "../live-share.js";
13
14
  import { attachOperatorRequestAbort, withOperatorRequestContext } from "../request-cancellation.js";
14
15
  class DeliveredPreDispatchFailure {
15
16
  error;
@@ -83,6 +84,15 @@ function remapSession(value, from, to) {
83
84
  function isOperatorCommand(name) {
84
85
  return name.startsWith("operate_") || name === "inject_card";
85
86
  }
87
+ function needsAgentBrowserControl(name) {
88
+ return ![
89
+ "operate_observe",
90
+ "operate_screenshot",
91
+ "operate_network",
92
+ "operate_share",
93
+ "operate_fetch_text",
94
+ ].includes(name);
95
+ }
86
96
  /** Derive the operate_start arguments an `open` request maps to. Exported for
87
97
  * tests: identity adoption is a behavior OF the ceremony open, not a flag of
88
98
  * its own — a ceremony open without an explicit proxy reuses `liveProxyUrl`
@@ -273,7 +283,9 @@ export class OperatorBroker {
273
283
  try {
274
284
  const result = name === "operate_finish"
275
285
  ? await executeOwned()
276
- : await withProvisionSessionCall(internalId, executeOwned, signal);
286
+ : await withProvisionSessionCall(internalId, async () => needsAgentBrowserControl(name)
287
+ ? await withAgentShareControl(session, executeOwned, signal)
288
+ : await executeOwned(), signal);
277
289
  return maskSessionOutput(session, remapSession(result, internalId, id));
278
290
  }
279
291
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../src/bot/broker/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAwB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,KAAK,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,EACd,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAE7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAwB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGpG,MAAM,2BAA2B;IACV;IAArB,YAAqB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;CAC5C;AAED,SAAS,iBAAiB,CACxB,OAA8D,EAC9D,KAAQ;IAER,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAChF,CAAC;AAED,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,+DAA+D;AAC/D,0EAA0E;AAC1E,8CAA8C;AAC9C,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IACjD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY,EAAE,EAAU;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACnF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC7C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACzC,GAAG;YACH,GAAG,KAAK,YAAY,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;SAC1E,CAAC,CACH,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,aAAa,CAAC;AAC/D,CAAC;AAED;;;;qDAIqD;AACrD,MAAM,UAAU,kBAAkB,CAChC,KAKC,EACD,YAAgC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,QAAQ,IAAI,KAAK;QAChB,KAA8B,CAAC,MAAM,KAAK,IAAI,CAChD,CAAC;AACJ,CAAC;AAED;;;yBAGyB;AACzB,MAAM,OAAO,cAAc;IASN;IARV,SAAS,CAAkB;IACnB,IAAI,GAAG,IAAI,GAAG,EAAkC,CAAC;IACjD,KAAK,GAAG,uBAAuB,EAAE,CAAC;IAClC,kBAAkB,GAAG,IAAI,GAAG,EAG1C,CAAC;IACJ,YACmB,MAMhB;QANgB,WAAM,GAAN,MAAM,CAMtB;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,SAA0B,EAAE,OAAkC;QAC3E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/F,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7F,GAAG,GAAG,KAAK,CAAC;gBACV,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,SAAS,CAAC,OAAO;aACjC,CAAC,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD;;uBAEmB;IACnB,KAAK,CAAC,IAAI,CACR,SAA0B,EAC1B,MAAc,EACd,MAA+B,EAC/B,SAAiB,EACjB,aAA2B;QAE3B,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC3F,IAAI,MAAM,KAAK,SAAS;YACtB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,MAAM,IAAI,aAAa,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,SAA0B,EAC1B,SAAiB,EACjB,SAA8C;QAE9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAClC,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAClF,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;uCACmC;IACnC,MAAM,CAAC,SAA0B,EAAE,SAAiB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,IAAI,CACR,SAA0B,EAC1B,MAA+B,EAC/B,SAAiB,EACjB,aAA2B;QAE3B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QAC7E,kEAAkE;QAClE,oEAAoE;QACpE,0DAA0D;QAC1D,uEAAuE;QACvE,mDAAmD;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CACjC,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CACzC,CAAC;QAC7B,IAAI,aAAa,EAAE,OAAO;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,0EAA0E;QAC1E,2EAA2E;QAC3E,+DAA+D;QAC/D,mBAAmB,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;QAChD,IAAI,WAAoB,CAAC;QACzB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACzC,SAAS,EACT,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;YACnB,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAC5E,WAAW,GAAG,MAAM,0BAA0B,CAC5C,MAAM,EACN,KAAK,IAAI,EAAE;YACT,oEAAoE;YACpE,4CAA4C;YAC5C,MAAM,mBAAmB,CACvB,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAChE,KAAK,IAAI,EAAE,CACT,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE;gBAClC,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;aACtD,CAAC,CACL,CACJ,CAAC;YACF,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACnF,UAAU,GAAG,MAAM,CAAE,WAAsC,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBACzC,OAAO;oBACL,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,KAAK,IAAI,EAAE;wBACjB,MAAM,IAAI,aAAa,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;oBACtE,CAAC;oBACD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;oBACvB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;iBAC9B,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAClD,OAAO;gBACL,QAAQ;gBACR,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;oBACnC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;oBAC5B,OAAO,IAAI,KAAK,eAAe;wBAC7B,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ;wBACxC,OAAO,GAAG,KAAK,QAAQ;wBACvB,CAAC,CAAC,MAAM,wBAAwB,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CACpD,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,CAC/C;wBACH,CAAC,CAAC,SAAS,CAAC;gBAChB,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;oBACpF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;wBAChC,MAAM,IAAI,aAAa,CACrB,cAAc,EACd,iDAAiD,CAClD,CAAC;oBACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,OAAO,KAAK,IAAI;wBAClB,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;oBACtE,MAAM,UAAU,GAAG,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;oBAC9D,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;oBACpC,kEAAkE;oBAClE,6DAA6D;oBAC7D,6CAA6C;oBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;oBACjE,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAChC,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE;wBAC5C,MAAM;wBACN,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtC,CAAC,CAAC;oBACL,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CACzB,QAAQ,KAAK,SAAS;wBACpB,CAAC,CAAC,MAAM,cAAc,EAAE;wBACxB,CAAC,CAAC,MAAM,4BAA4B,CAChC,QAAoC,EACpC,cAAc,CACf,CAAC;oBACR,IAAI,iBAAiB,GAAG,KAAK,CAAC;oBAC9B,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE,CAC9B,MAAM,0BAA0B,CAC9B,MAAM,EACN,OAAO,EACP,KAAK,IAAI,EAAE;wBACT,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC,EACD;wBACE,WAAW,EAAE,SAAS;wBACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;qBAC9D,CACF,CAAC;oBACJ,IAAI,CAAC;wBACH,MAAM,MAAM,GACV,IAAI,KAAK,gBAAgB;4BACvB,CAAC,CAAC,MAAM,YAAY,EAAE;4BACtB,CAAC,CAAC,MAAM,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;wBACvE,OAAO,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,WAAW,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;wBAC5D,IAAI,CAAC,iBAAiB,IAAI,WAAW,KAAK,IAAI;4BAC5C,OAAO,IAAI,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAC3D,iEAAiE;wBACjE,gEAAgE;wBAChE,2CAA2C;wBAC3C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;4BAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAS,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BACjE,IAAI,MAAM,KAAK,KAAK,CAAC,OAAO;gCAC1B,MAAM,IAAI,aAAa,CACrB,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,EACvE,MAAM,CACP,CAAC;wBACN,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACtB,IAAI,cAAc,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC7C,MAAM,oBAAoB,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,IAAI,MAAM,KAAK,QAAQ;wBAAE,OAAO,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;oBAC9E,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;oBACxD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,oBAAoB,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aAC1E,CAAC;QACJ,CAAC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE;YACX,MAAM,SAAS,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YACtD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBAC5E,OAAO,KAAK,CAAC;YACf,OAAO,CAAC,MAAM,oBAAoB,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;QACvE,CAAC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE;YACX,MAAM,SAAS,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YACtD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,oBAAoB,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,MAAM,oBAAoB,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,EACD,aAAa,CACd,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjD,OAAO;gBACL,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAA8B;aAC3F,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAA4B,CAAC;QAC3F,OAAO;YACL,SAAS;YACT,WAAW,EAAE;gBACX,GAAG,MAAM;gBACT,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACC;SAC1C,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,OAAO,CACX,SAA0B,EAC1B,MAA+B,EAC/B,SAAiB,EACjB,aAA2B;QAE3B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,EAAE;YACzC,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,YAAY;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBAC/B,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;gBAChC,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAC3E,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS;gBACrC,MAAM,IAAI,aAAa,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CACxC,SAAS,EACT,KAAK,CAAC,SAAS,EACf,SAAS,EACT,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,aAAa,EACb,KAAK,CAAC,OAAO,CACd,CAAC;YACF,IAAI,MAAM,YAAY,2BAA2B;gBAC/C,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC;YACrF,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE;gBACtC,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,YAAY;gBAC5B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,YAAY,CAChB,SAA0B,EAC1B,MAA+B,EAC/B,SAAiB;QAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CACxC,SAAS,EACT,KAAK,CAAC,SAAS,EACf,SAAS,EACT,IAAI,EACJ,KAAK,CAAC,OAAO,CACd,CAAC;QACF,IAAI,MAAM,YAAY,2BAA2B;YAC/C,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE;aACxE,CAAC;QACJ,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,SAA0B,EAAE,MAA+B;QACxE,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1F,OAAO,SAAS,CAAC;QACnB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAA0B,EAAE,QAAQ,GAAG,KAAK;QAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,QAAQ;gBAAE,SAAS;YACzD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACpD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../src/bot/broker/operator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-process-owner.d.ts","sourceRoot":"","sources":["../../src/bot/browser-process-owner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-process-owner.d.ts","sourceRoot":"","sources":["../../src/bot/browser-process-owner.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ import { join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import {} from "node:child_process";
5
5
  import { closeProfileWithProof, currentProfileHolderPid, profileProcessIdentity, profileProcessIdentityState, profileProcessMatches, signalProfileHolderIfOwned, } from "./profile.js";
6
- import { createOperatorBrowserMarker, OPERATOR_BROWSER_MARKER_ENV } from "./browser-launch-marker.js";
6
+ import { createOperatorBrowserMarker, OPERATOR_BROWSER_MARKER_ENV, } from "./browser-launch-marker.js";
7
7
  import { markOwnerBrowserLaunchTerminal, terminateOwnerBrowserLaunch, untrackOwnerBrowserLaunch, } from "./owner-process-reaper.js";
8
8
  import { activeStealthProfileValue, bindOwnerBrowserLaunchBounded, canSelfLaunchWithProxy, captureOwnedChromeProcessTreeProof, closeBrowserContextWithin, detectChromiumChannel, DEVTOOLS_ACTIVE_PORT_FILE, getChromium, launchCancellablePersistentContext, OPERATOR_BROWSER_HEADLESS, ownedChromeProcessTreeState, parseEgressGeo, PERSISTENT_CONTEXT_CANCELLATION_SETTLE_MS, persistentProxyOptions, PROFILE_IDENTITY_POLL_MS, PROFILE_IDENTITY_PROOF_TIMEOUT_MS, quitBrowserGracefully, registerLocalBrowserLaunch, registerSelfManagedChrome, releaseOwnedChromeProcessTree, resolveAttachedProfileChildIdentity, resolveChannelBinary, resolveExplicitProxy, resolvePersistentFallbackIdentity, selfManagedChromes, signalOwnedChromeProcessTree, spawnLocalBrowser, terminateTrackedProfileChild, trackOwnedChromeProcessTree, waitForOwnedDevtoolsEndpoint, } from "./browser-process-runtime.js";
9
9
  import { hostDisplayAcceptsConnections } from "./display-env.js";
10
- import { stopBrowserScope, browserScopeIsEmpty, browserScopeUnit, linuxBrowserUsesScope, linuxBrowserHasSetpriv } from "./browser-scope.js";
10
+ import { stopBrowserScope, browserScopeIsEmpty, browserScopeUnit, linuxBrowserUsesScope, linuxBrowserHasSetpriv, } from "./browser-scope.js";
11
11
  const OPERATOR_BROWSER_WINDOW_SIZE = { width: 1280, height: 1024 };
12
12
  /** Exclusive Chrome custody. Page setup is awaited at the original startup boundary. */
13
13
  export class BrowserProcessOwner {
@@ -223,8 +223,11 @@ export class BrowserProcessOwner {
223
223
  marker: this.operatorBrowserMarker(),
224
224
  });
225
225
  this.childChrome = child;
226
- this.childChromeProcessGroup = process.platform === "darwin" || (process.platform === "linux" && !linuxBrowserUsesScope());
227
- this.childChromeIdentity = linuxBrowserUsesScope() ? null : registerSelfManagedChrome(child, this.profileDir, this.childChromeProcessGroup);
226
+ this.childChromeProcessGroup =
227
+ process.platform === "darwin" || (process.platform === "linux" && !linuxBrowserUsesScope());
228
+ this.childChromeIdentity = linuxBrowserUsesScope()
229
+ ? null
230
+ : registerSelfManagedChrome(child, this.profileDir, this.childChromeProcessGroup);
228
231
  if (this.childChromeIdentity !== null) {
229
232
  this.adoptOwnedChromeProcessTree(this.childChromeIdentity, this.childChromeProcessGroup);
230
233
  }
@@ -334,7 +337,6 @@ export class BrowserProcessOwner {
334
337
  await this.startPromise;
335
338
  }
336
339
  async startOnce() {
337
- const remoteMode = (process.env.BOT_CDP_ENDPOINT ?? "").trim().length > 0;
338
340
  try {
339
341
  await this.startBrowser();
340
342
  if (this.startCancellationRequested) {
@@ -493,7 +495,7 @@ export class BrowserProcessOwner {
493
495
  const cleanupProfileHolder = async () => {
494
496
  if (linuxBrowserUsesScope()) {
495
497
  await stopBrowserScope(this.profileDir);
496
- return await browserScopeIsEmpty(this.profileDir) ? "closed" : "unknown";
498
+ return (await browserScopeIsEmpty(this.profileDir)) ? "closed" : "unknown";
497
499
  }
498
500
  const proof = await this.waitForPersistentFallbackIdentity();
499
501
  if (proof.state === "absent")
@@ -511,7 +513,7 @@ export class BrowserProcessOwner {
511
513
  if (linuxBrowserUsesScope()) {
512
514
  await closeBrowserContextWithin(lateContext, 1_000);
513
515
  await stopBrowserScope(this.profileDir);
514
- return await browserScopeIsEmpty(this.profileDir) ? "closed" : "unknown";
516
+ return (await browserScopeIsEmpty(this.profileDir)) ? "closed" : "unknown";
515
517
  }
516
518
  const proof = await this.waitForPersistentFallbackIdentity().catch(() => ({ state: "unknown" }));
517
519
  if (proof.state !== "owned") {
@@ -547,16 +549,24 @@ export class BrowserProcessOwner {
547
549
  env: {
548
550
  ...browserEnv,
549
551
  [OPERATOR_BROWSER_MARKER_ENV]: this.operatorBrowserMarker(),
550
- ...(process.platform === "linux" ? {
551
- TRUSTY_SQUIRE_CHROME_CONTAINMENT: linuxBrowserUsesScope() ? "scope" : "process_group",
552
- TRUSTY_SQUIRE_CHROME_SET_PRIV: linuxBrowserHasSetpriv() ? "1" : "0",
553
- TRUSTY_SQUIRE_CHROME_SCOPE_UNIT: browserScopeUnit(this.profileDir),
554
- TRUSTY_SQUIRE_CHROME_BINARY: selfLaunchBinary ?? launcher.executablePath(),
555
- } : {}),
552
+ ...(process.platform === "linux"
553
+ ? {
554
+ TRUSTY_SQUIRE_CHROME_CONTAINMENT: linuxBrowserUsesScope()
555
+ ? "scope"
556
+ : "process_group",
557
+ TRUSTY_SQUIRE_CHROME_SET_PRIV: linuxBrowserHasSetpriv() ? "1" : "0",
558
+ TRUSTY_SQUIRE_CHROME_SCOPE_UNIT: browserScopeUnit(this.profileDir),
559
+ TRUSTY_SQUIRE_CHROME_BINARY: selfLaunchBinary ?? launcher.executablePath(),
560
+ }
561
+ : {}),
556
562
  },
557
563
  ...(process.platform === "linux"
558
- ? { executablePath: fileURLToPath(new URL("../../assets/chrome-scope-launcher", import.meta.url)) }
559
- : channel !== null ? { channel } : {}),
564
+ ? {
565
+ executablePath: fileURLToPath(new URL("../../assets/chrome-scope-launcher", import.meta.url)),
566
+ }
567
+ : channel !== null
568
+ ? { channel }
569
+ : {}),
560
570
  ...persistentProxyOptions(proxy),
561
571
  args: [...launchArgs],
562
572
  viewport: null,
@@ -719,7 +729,7 @@ export class BrowserProcessOwner {
719
729
  const ownedScope = this.childChrome !== null || this.launchedContext;
720
730
  await stopBrowserScope(this.profileDir);
721
731
  await this.teardownOwnedDisplay().catch(() => undefined);
722
- return ownedScope && await browserScopeIsEmpty(this.profileDir) ? "closed" : "unknown";
732
+ return ownedScope && (await browserScopeIsEmpty(this.profileDir)) ? "closed" : "unknown";
723
733
  }
724
734
  this.startCancellationRequested = true;
725
735
  this.resolveStartCancellation?.();
@@ -897,6 +907,7 @@ export class BrowserProcessOwner {
897
907
  const page = this.pages.page;
898
908
  const context = this.context;
899
909
  const cdp = this.cdpBrowser;
910
+ const ownsChrome = this.childChromeIdentity !== null;
900
911
  this.pages.page = null;
901
912
  this.pages.primaryPage = null;
902
913
  this.pages.oauthProductPage = null;
@@ -906,13 +917,22 @@ export class BrowserProcessOwner {
906
917
  this.childChrome = null;
907
918
  if (page !== null)
908
919
  await closeBrowserContextWithin(page, 1_000);
909
- if (context !== null)
920
+ if (ownsChrome && cdp !== null) {
921
+ // Let Chrome flush its profile before the scope reaps surviving helpers.
922
+ await closeBrowserContextWithin({
923
+ close: async () => {
924
+ const session = await cdp.newBrowserCDPSession();
925
+ await session.send("Browser.close");
926
+ },
927
+ }, 1_000);
928
+ }
929
+ if (!ownsChrome && context !== null)
910
930
  await closeBrowserContextWithin(context, 1_000);
931
+ await stopBrowserScope(this.profileDir);
911
932
  if (cdp !== null)
912
933
  await closeBrowserContextWithin(cdp, 1_000);
913
- await stopBrowserScope(this.profileDir);
914
934
  await this.teardownOwnedDisplay().catch(() => undefined);
915
- return await browserScopeIsEmpty(this.profileDir) ? "closed" : "unknown";
935
+ return (await browserScopeIsEmpty(this.profileDir)) ? "closed" : "unknown";
916
936
  }
917
937
  const marker = this.operatorBrowserMarker();
918
938
  if (this.ownerLaunchTracked)