@monoes/monobrowse 1.0.6 → 1.0.8

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.
Files changed (290) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +68 -0
  3. package/dist/src/__tests__/adapters.test.d.ts +2 -0
  4. package/dist/src/__tests__/adapters.test.d.ts.map +1 -0
  5. package/dist/src/__tests__/adapters.test.js +104 -0
  6. package/dist/src/__tests__/adapters.test.js.map +1 -0
  7. package/dist/src/__tests__/batch-eval-parsing.test.d.ts +0 -0
  8. package/dist/src/__tests__/batch-eval-parsing.test.d.ts.map +0 -0
  9. package/dist/src/__tests__/batch-eval-parsing.test.js +0 -0
  10. package/dist/src/__tests__/batch-eval-parsing.test.js.map +0 -0
  11. package/dist/src/__tests__/box-model.test.d.ts +0 -0
  12. package/dist/src/__tests__/box-model.test.d.ts.map +0 -0
  13. package/dist/src/__tests__/box-model.test.js +0 -0
  14. package/dist/src/__tests__/box-model.test.js.map +0 -0
  15. package/dist/src/__tests__/browser-launch.test.d.ts +0 -0
  16. package/dist/src/__tests__/browser-launch.test.d.ts.map +0 -0
  17. package/dist/src/__tests__/browser-launch.test.js +0 -0
  18. package/dist/src/__tests__/browser-launch.test.js.map +0 -0
  19. package/dist/src/__tests__/cdp-client.test.d.ts +2 -0
  20. package/dist/src/__tests__/cdp-client.test.d.ts.map +1 -0
  21. package/dist/src/__tests__/cdp-client.test.js +326 -0
  22. package/dist/src/__tests__/cdp-client.test.js.map +1 -0
  23. package/dist/src/__tests__/close-browser.test.d.ts +2 -0
  24. package/dist/src/__tests__/close-browser.test.d.ts.map +1 -0
  25. package/dist/src/__tests__/close-browser.test.js +188 -0
  26. package/dist/src/__tests__/close-browser.test.js.map +1 -0
  27. package/dist/src/__tests__/console-log.test.d.ts +2 -0
  28. package/dist/src/__tests__/console-log.test.d.ts.map +1 -0
  29. package/dist/src/__tests__/console-log.test.js +195 -0
  30. package/dist/src/__tests__/console-log.test.js.map +1 -0
  31. package/dist/src/__tests__/find.test.d.ts +2 -0
  32. package/dist/src/__tests__/find.test.d.ts.map +1 -0
  33. package/dist/src/__tests__/find.test.js +299 -0
  34. package/dist/src/__tests__/find.test.js.map +1 -0
  35. package/dist/src/__tests__/frame-command.test.d.ts +2 -0
  36. package/dist/src/__tests__/frame-command.test.d.ts.map +1 -0
  37. package/dist/src/__tests__/frame-command.test.js +85 -0
  38. package/dist/src/__tests__/frame-command.test.js.map +1 -0
  39. package/dist/src/__tests__/output.test.d.ts +0 -0
  40. package/dist/src/__tests__/output.test.d.ts.map +0 -0
  41. package/dist/src/__tests__/output.test.js +0 -0
  42. package/dist/src/__tests__/output.test.js.map +0 -0
  43. package/dist/src/__tests__/ref-cache.test.d.ts +0 -0
  44. package/dist/src/__tests__/ref-cache.test.d.ts.map +0 -0
  45. package/dist/src/__tests__/ref-cache.test.js +43 -2
  46. package/dist/src/__tests__/ref-cache.test.js.map +1 -1
  47. package/dist/src/__tests__/session-state.test.d.ts +2 -0
  48. package/dist/src/__tests__/session-state.test.d.ts.map +1 -0
  49. package/dist/src/__tests__/session-state.test.js +203 -0
  50. package/dist/src/__tests__/session-state.test.js.map +1 -0
  51. package/dist/src/__tests__/snapshot.test.d.ts +2 -0
  52. package/dist/src/__tests__/snapshot.test.d.ts.map +1 -0
  53. package/dist/src/__tests__/snapshot.test.js +262 -0
  54. package/dist/src/__tests__/snapshot.test.js.map +1 -0
  55. package/dist/src/__tests__/storage-eval.test.d.ts +2 -0
  56. package/dist/src/__tests__/storage-eval.test.d.ts.map +1 -0
  57. package/dist/src/__tests__/storage-eval.test.js +133 -0
  58. package/dist/src/__tests__/storage-eval.test.js.map +1 -0
  59. package/dist/src/__tests__/tabs.test.d.ts +2 -0
  60. package/dist/src/__tests__/tabs.test.d.ts.map +1 -0
  61. package/dist/src/__tests__/tabs.test.js +161 -0
  62. package/dist/src/__tests__/tabs.test.js.map +1 -0
  63. package/dist/src/browser/action-builder/analyzer.d.ts +0 -0
  64. package/dist/src/browser/action-builder/analyzer.d.ts.map +0 -0
  65. package/dist/src/browser/action-builder/analyzer.js +0 -0
  66. package/dist/src/browser/action-builder/analyzer.js.map +0 -0
  67. package/dist/src/browser/action-builder/types.d.ts +0 -0
  68. package/dist/src/browser/action-builder/types.d.ts.map +0 -0
  69. package/dist/src/browser/action-builder/types.js +0 -0
  70. package/dist/src/browser/action-builder/types.js.map +0 -0
  71. package/dist/src/browser/actions.d.ts +0 -0
  72. package/dist/src/browser/actions.d.ts.map +0 -0
  73. package/dist/src/browser/actions.js +0 -0
  74. package/dist/src/browser/actions.js.map +0 -0
  75. package/dist/src/browser/adapters/gemini.d.ts +0 -0
  76. package/dist/src/browser/adapters/gemini.d.ts.map +0 -0
  77. package/dist/src/browser/adapters/gemini.js +0 -0
  78. package/dist/src/browser/adapters/gemini.js.map +0 -0
  79. package/dist/src/browser/adapters/google.d.ts +0 -0
  80. package/dist/src/browser/adapters/google.d.ts.map +0 -0
  81. package/dist/src/browser/adapters/google.js +0 -0
  82. package/dist/src/browser/adapters/google.js.map +0 -0
  83. package/dist/src/browser/adapters/index.d.ts +0 -0
  84. package/dist/src/browser/adapters/index.d.ts.map +0 -0
  85. package/dist/src/browser/adapters/index.js +0 -0
  86. package/dist/src/browser/adapters/index.js.map +0 -0
  87. package/dist/src/browser/adapters/instagram.d.ts +0 -0
  88. package/dist/src/browser/adapters/instagram.d.ts.map +0 -0
  89. package/dist/src/browser/adapters/instagram.js +0 -0
  90. package/dist/src/browser/adapters/instagram.js.map +0 -0
  91. package/dist/src/browser/adapters/linkedin.d.ts +0 -0
  92. package/dist/src/browser/adapters/linkedin.d.ts.map +0 -0
  93. package/dist/src/browser/adapters/linkedin.js +0 -0
  94. package/dist/src/browser/adapters/linkedin.js.map +0 -0
  95. package/dist/src/browser/adapters/microsoft.d.ts +0 -0
  96. package/dist/src/browser/adapters/microsoft.d.ts.map +0 -0
  97. package/dist/src/browser/adapters/microsoft.js +0 -0
  98. package/dist/src/browser/adapters/microsoft.js.map +0 -0
  99. package/dist/src/browser/adapters/x.d.ts +0 -0
  100. package/dist/src/browser/adapters/x.d.ts.map +0 -0
  101. package/dist/src/browser/adapters/x.js +0 -0
  102. package/dist/src/browser/adapters/x.js.map +0 -0
  103. package/dist/src/browser/batch.d.ts +0 -0
  104. package/dist/src/browser/batch.d.ts.map +0 -0
  105. package/dist/src/browser/batch.js +0 -0
  106. package/dist/src/browser/batch.js.map +0 -0
  107. package/dist/src/browser/browser.d.ts +13 -0
  108. package/dist/src/browser/browser.d.ts.map +1 -1
  109. package/dist/src/browser/browser.js +99 -16
  110. package/dist/src/browser/browser.js.map +1 -1
  111. package/dist/src/browser/cdp.d.ts +4 -1
  112. package/dist/src/browser/cdp.d.ts.map +1 -1
  113. package/dist/src/browser/cdp.js +45 -16
  114. package/dist/src/browser/cdp.js.map +1 -1
  115. package/dist/src/browser/console-log.d.ts +0 -0
  116. package/dist/src/browser/console-log.d.ts.map +0 -0
  117. package/dist/src/browser/console-log.js +0 -0
  118. package/dist/src/browser/console-log.js.map +0 -0
  119. package/dist/src/browser/dashboard/api-types.d.ts +0 -0
  120. package/dist/src/browser/dashboard/api-types.d.ts.map +0 -0
  121. package/dist/src/browser/dashboard/api-types.js +0 -0
  122. package/dist/src/browser/dashboard/api-types.js.map +0 -0
  123. package/dist/src/browser/dashboard/server.d.ts +0 -0
  124. package/dist/src/browser/dashboard/server.d.ts.map +0 -0
  125. package/dist/src/browser/dashboard/server.js +0 -0
  126. package/dist/src/browser/dashboard/server.js.map +0 -0
  127. package/dist/src/browser/dashboard/ui.html +0 -0
  128. package/dist/src/browser/dialog.d.ts +0 -0
  129. package/dist/src/browser/dialog.d.ts.map +0 -0
  130. package/dist/src/browser/dialog.js +0 -0
  131. package/dist/src/browser/dialog.js.map +0 -0
  132. package/dist/src/browser/emulation.d.ts +0 -0
  133. package/dist/src/browser/emulation.d.ts.map +0 -0
  134. package/dist/src/browser/emulation.js +0 -0
  135. package/dist/src/browser/emulation.js.map +0 -0
  136. package/dist/src/browser/find.d.ts +0 -0
  137. package/dist/src/browser/find.d.ts.map +0 -0
  138. package/dist/src/browser/find.js +0 -0
  139. package/dist/src/browser/find.js.map +0 -0
  140. package/dist/src/browser/har.d.ts +0 -0
  141. package/dist/src/browser/har.d.ts.map +0 -0
  142. package/dist/src/browser/har.js +0 -0
  143. package/dist/src/browser/har.js.map +0 -0
  144. package/dist/src/browser/index.d.ts +0 -0
  145. package/dist/src/browser/index.d.ts.map +0 -0
  146. package/dist/src/browser/index.js +0 -0
  147. package/dist/src/browser/index.js.map +0 -0
  148. package/dist/src/browser/network.d.ts +0 -0
  149. package/dist/src/browser/network.d.ts.map +0 -0
  150. package/dist/src/browser/network.js +0 -0
  151. package/dist/src/browser/network.js.map +0 -0
  152. package/dist/src/browser/pdf.d.ts +0 -0
  153. package/dist/src/browser/pdf.d.ts.map +0 -0
  154. package/dist/src/browser/pdf.js +0 -0
  155. package/dist/src/browser/pdf.js.map +0 -0
  156. package/dist/src/browser/profiler.d.ts +0 -0
  157. package/dist/src/browser/profiler.d.ts.map +0 -0
  158. package/dist/src/browser/profiler.js +0 -0
  159. package/dist/src/browser/profiler.js.map +0 -0
  160. package/dist/src/browser/record.d.ts +0 -0
  161. package/dist/src/browser/record.d.ts.map +0 -0
  162. package/dist/src/browser/record.js +0 -0
  163. package/dist/src/browser/record.js.map +0 -0
  164. package/dist/src/browser/ref-cache.d.ts +6 -1
  165. package/dist/src/browser/ref-cache.d.ts.map +1 -1
  166. package/dist/src/browser/ref-cache.js +21 -3
  167. package/dist/src/browser/ref-cache.js.map +1 -1
  168. package/dist/src/browser/screenshot.d.ts +0 -0
  169. package/dist/src/browser/screenshot.d.ts.map +0 -0
  170. package/dist/src/browser/screenshot.js +0 -0
  171. package/dist/src/browser/screenshot.js.map +0 -0
  172. package/dist/src/browser/session.d.ts +0 -0
  173. package/dist/src/browser/session.d.ts.map +0 -0
  174. package/dist/src/browser/session.js +0 -0
  175. package/dist/src/browser/session.js.map +0 -0
  176. package/dist/src/browser/snapshot.d.ts +0 -0
  177. package/dist/src/browser/snapshot.d.ts.map +0 -0
  178. package/dist/src/browser/snapshot.js +0 -0
  179. package/dist/src/browser/snapshot.js.map +0 -0
  180. package/dist/src/browser/storage.d.ts +0 -0
  181. package/dist/src/browser/storage.d.ts.map +0 -0
  182. package/dist/src/browser/storage.js +0 -0
  183. package/dist/src/browser/storage.js.map +0 -0
  184. package/dist/src/browser/tabs.d.ts +5 -1
  185. package/dist/src/browser/tabs.d.ts.map +1 -1
  186. package/dist/src/browser/tabs.js +4 -3
  187. package/dist/src/browser/tabs.js.map +1 -1
  188. package/dist/src/browser/trace.d.ts +0 -0
  189. package/dist/src/browser/trace.d.ts.map +0 -0
  190. package/dist/src/browser/trace.js +0 -0
  191. package/dist/src/browser/trace.js.map +0 -0
  192. package/dist/src/browser/types.d.ts +4 -0
  193. package/dist/src/browser/types.d.ts.map +1 -1
  194. package/dist/src/browser/types.js +0 -0
  195. package/dist/src/browser/types.js.map +1 -1
  196. package/dist/src/browser/vitals.d.ts +0 -0
  197. package/dist/src/browser/vitals.d.ts.map +0 -0
  198. package/dist/src/browser/vitals.js +0 -0
  199. package/dist/src/browser/vitals.js.map +0 -0
  200. package/dist/src/browser/wait.d.ts +0 -0
  201. package/dist/src/browser/wait.d.ts.map +0 -0
  202. package/dist/src/browser/wait.js +0 -0
  203. package/dist/src/browser/wait.js.map +0 -0
  204. package/dist/src/cli/action.d.ts +0 -0
  205. package/dist/src/cli/action.d.ts.map +0 -0
  206. package/dist/src/cli/action.js +0 -0
  207. package/dist/src/cli/action.js.map +0 -0
  208. package/dist/src/cli/commands.d.ts +0 -0
  209. package/dist/src/cli/commands.d.ts.map +1 -1
  210. package/dist/src/cli/commands.js +96 -4
  211. package/dist/src/cli/commands.js.map +1 -1
  212. package/dist/src/cli/output.d.ts +0 -0
  213. package/dist/src/cli/output.d.ts.map +0 -0
  214. package/dist/src/cli/output.js +0 -0
  215. package/dist/src/cli/output.js.map +0 -0
  216. package/dist/src/cli/platform.d.ts +0 -0
  217. package/dist/src/cli/platform.d.ts.map +0 -0
  218. package/dist/src/cli/platform.js +0 -0
  219. package/dist/src/cli/platform.js.map +0 -0
  220. package/dist/src/cli/types.d.ts +0 -0
  221. package/dist/src/cli/types.d.ts.map +0 -0
  222. package/dist/src/cli/types.js +0 -0
  223. package/dist/src/cli/types.js.map +0 -0
  224. package/dist/src/cli.d.ts +0 -0
  225. package/dist/src/cli.d.ts.map +0 -0
  226. package/dist/src/cli.js.map +0 -0
  227. package/dist/src/index.d.ts +0 -0
  228. package/dist/src/index.d.ts.map +0 -0
  229. package/dist/src/index.js +0 -0
  230. package/dist/src/index.js.map +0 -0
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/package.json +11 -8
  233. package/src/__tests__/adapters.test.ts +125 -0
  234. package/src/__tests__/batch-eval-parsing.test.ts +0 -0
  235. package/src/__tests__/box-model.test.ts +0 -0
  236. package/src/__tests__/browser-launch.test.ts +0 -0
  237. package/src/__tests__/cdp-client.test.ts +375 -0
  238. package/src/__tests__/close-browser.test.ts +205 -0
  239. package/src/__tests__/console-log.test.ts +250 -0
  240. package/src/__tests__/find.test.ts +354 -0
  241. package/src/__tests__/frame-command.test.ts +98 -0
  242. package/src/__tests__/output.test.ts +0 -0
  243. package/src/__tests__/ref-cache.test.ts +47 -2
  244. package/src/__tests__/session-state.test.ts +251 -0
  245. package/src/__tests__/snapshot.test.ts +331 -0
  246. package/src/__tests__/storage-eval.test.ts +171 -0
  247. package/src/__tests__/tabs.test.ts +183 -0
  248. package/src/browser/action-builder/analyzer.ts +0 -0
  249. package/src/browser/action-builder/types.ts +0 -0
  250. package/src/browser/actions.ts +0 -0
  251. package/src/browser/adapters/gemini.ts +0 -0
  252. package/src/browser/adapters/google.ts +0 -0
  253. package/src/browser/adapters/index.ts +0 -0
  254. package/src/browser/adapters/instagram.ts +0 -0
  255. package/src/browser/adapters/linkedin.ts +0 -0
  256. package/src/browser/adapters/microsoft.ts +0 -0
  257. package/src/browser/adapters/x.ts +0 -0
  258. package/src/browser/batch.ts +0 -0
  259. package/src/browser/browser.ts +101 -16
  260. package/src/browser/cdp.ts +52 -15
  261. package/src/browser/console-log.ts +0 -0
  262. package/src/browser/dashboard/api-types.ts +0 -0
  263. package/src/browser/dashboard/server.ts +0 -0
  264. package/src/browser/dashboard/ui.html +0 -0
  265. package/src/browser/dialog.ts +0 -0
  266. package/src/browser/emulation.ts +0 -0
  267. package/src/browser/find.ts +0 -0
  268. package/src/browser/har.ts +0 -0
  269. package/src/browser/index.ts +0 -0
  270. package/src/browser/network.ts +0 -0
  271. package/src/browser/pdf.ts +0 -0
  272. package/src/browser/profiler.ts +0 -0
  273. package/src/browser/record.ts +0 -0
  274. package/src/browser/ref-cache.ts +29 -6
  275. package/src/browser/screenshot.ts +0 -0
  276. package/src/browser/session.ts +0 -0
  277. package/src/browser/snapshot.ts +0 -0
  278. package/src/browser/storage.ts +0 -0
  279. package/src/browser/tabs.ts +12 -4
  280. package/src/browser/trace.ts +0 -0
  281. package/src/browser/types.ts +4 -0
  282. package/src/browser/vitals.ts +0 -0
  283. package/src/browser/wait.ts +0 -0
  284. package/src/cli/action.ts +0 -0
  285. package/src/cli/commands.ts +90 -4
  286. package/src/cli/output.ts +0 -0
  287. package/src/cli/platform.ts +0 -0
  288. package/src/cli/types.ts +0 -0
  289. package/src/cli.ts +0 -0
  290. package/src/index.ts +0 -0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -27,15 +27,20 @@ export declare function clearRefCache(): Promise<void>;
27
27
  */
28
28
  export declare function saveActivePort(port: number, opts?: {
29
29
  launched?: boolean;
30
+ pid?: number;
31
+ userDataDir?: string;
30
32
  }): Promise<void>;
31
33
  /** Forget the persisted active port (session closed) so later invocations
32
34
  * fall back to the default instead of chasing a dead endpoint. */
33
35
  export declare function clearActivePort(): Promise<void>;
34
36
  /** Load the persisted active port, or null if none was ever saved / it's unreadable. */
35
37
  export declare function loadActivePort(): Promise<number | null>;
36
- /** Load the persisted active port with its provenance flag. */
38
+ /** Load the persisted active port with its provenance flag, PID, user-data-dir, and save timestamp. */
37
39
  export declare function loadActivePortInfo(): Promise<{
38
40
  port: number;
39
41
  launched: boolean;
42
+ pid?: number;
43
+ userDataDir?: string;
44
+ savedAt?: number;
40
45
  } | null>;
41
46
  //# sourceMappingURL=ref-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/ref-cache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,QAAS,CAAC;AASzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,0FAA0F;AAC1F,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiBlF;AAED,yGAAyG;AACzG,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/F;AAED;mEACmE;AACnE,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,wFAAwF;AACxF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7D;AAED,+DAA+D;AAC/D,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAW9F"}
1
+ {"version":3,"file":"ref-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/ref-cache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,QAAS,CAAC;AASzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,0FAA0F;AAC1F,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiBlF;AAED,yGAAyG;AACzG,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;mEACmE;AACnE,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,wFAAwF;AACxF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7D;AAED,uGAAuG;AACvG,wBAAsB,kBAAkB,IAAI,OAAO,CACjD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACjG,CAiBA"}
@@ -82,7 +82,19 @@ export async function saveActivePort(port, opts) {
82
82
  // (safe to Browser.close later); false = attached to a browser someone
83
83
  // else owns (must never be killed). Absent (old files) reads as launched
84
84
  // — matches pre-flag behavior where every persisted port came from open.
85
- await writeFile(PORT_FILE, JSON.stringify({ port, launched: opts?.launched !== false, savedAt: Date.now() }));
85
+ //
86
+ // `pid`/`userDataDir` are persisted so a LATER, fresh CLI process (each
87
+ // command is its own node process — see module header) can still find
88
+ // and kill the Chrome this one launched. Without this, closeBrowser()'s
89
+ // PID-kill fallback can never fire outside the launching process, since
90
+ // the in-memory launchedPids Map (browser.ts) is empty there.
91
+ await writeFile(PORT_FILE, JSON.stringify({
92
+ port,
93
+ launched: opts?.launched !== false,
94
+ pid: opts?.pid,
95
+ userDataDir: opts?.userDataDir,
96
+ savedAt: Date.now(),
97
+ }));
86
98
  }
87
99
  catch {
88
100
  // Best-effort — persistence failure just means the next process falls
@@ -103,13 +115,19 @@ export async function clearActivePort() {
103
115
  export async function loadActivePort() {
104
116
  return (await loadActivePortInfo())?.port ?? null;
105
117
  }
106
- /** Load the persisted active port with its provenance flag. */
118
+ /** Load the persisted active port with its provenance flag, PID, user-data-dir, and save timestamp. */
107
119
  export async function loadActivePortInfo() {
108
120
  try {
109
121
  const raw = await readFile(PORT_FILE, 'utf8');
110
122
  const data = JSON.parse(raw);
111
123
  if (typeof data.port === 'number' && Number.isInteger(data.port) && data.port >= 1024 && data.port <= 65535) {
112
- return { port: data.port, launched: data.launched !== false };
124
+ return {
125
+ port: data.port,
126
+ launched: data.launched !== false,
127
+ pid: typeof data.pid === 'number' && Number.isInteger(data.pid) && data.pid > 0 ? data.pid : undefined,
128
+ userDataDir: typeof data.userDataDir === 'string' ? data.userDataDir : undefined,
129
+ savedAt: typeof data.savedAt === 'number' ? data.savedAt : undefined,
130
+ };
113
131
  }
114
132
  return null;
115
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ref-cache.js","sourceRoot":"","sources":["../../../src/browser/ref-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref-cache.js","sourceRoot":"","sources":["../../../src/browser/ref-cache.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -4,5 +4,9 @@ export declare function listTabs(port: number): Promise<CdpTarget[]>;
4
4
  export declare function newTab(port: number, url?: string): Promise<CdpTarget>;
5
5
  export declare function closeTab(client: CdpClient, _sessionId: string, targetId: string): Promise<void>;
6
6
  export declare function activateTab(client: CdpClient, oldSessionId: string, targetId: string): Promise<string>;
7
- export declare function switchToFrame(client: CdpClient, sessionId: string, frameSelector: string): Promise<string | null>;
7
+ export interface FrameSwitchResult {
8
+ url: string | null;
9
+ sessionId: string | null;
10
+ }
11
+ export declare function switchToFrame(client: CdpClient, sessionId: string, frameSelector: string): Promise<FrameSwitchResult>;
8
12
  //# sourceMappingURL=tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/browser/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGjE;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAElF;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErG;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5G;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCxB"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/browser/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGjE;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAElF;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErG;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5G;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAsC5B"}
@@ -30,12 +30,13 @@ export async function switchToFrame(client, sessionId, frameSelector) {
30
30
  const { frameTree } = await client.send('Page.getFrameTree', {}, sessionId);
31
31
  const match = frameTree.childFrames?.find((cf) => cf.frame.url === frameSrc || cf.frame.id === frameSelector);
32
32
  if (!match)
33
- return frameSrc;
33
+ return { url: frameSrc, sessionId: null };
34
34
  const targets = await client.send('Target.getTargets', {});
35
35
  const oopif = targets.targetInfos.find((t) => t.type === 'iframe' && t.url === match.frame.url);
36
36
  if (oopif) {
37
- await client.send('Target.attachToTarget', { targetId: oopif.targetId, flatten: true });
37
+ const attached = await client.send('Target.attachToTarget', { targetId: oopif.targetId, flatten: true });
38
+ return { url: frameSrc, sessionId: attached.sessionId };
38
39
  }
39
- return frameSrc;
40
+ return { url: frameSrc, sessionId: null };
40
41
  }
41
42
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/browser/tabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,GAAG,GAAG,aAAa;IAC5D,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAiB,EAAE,UAAkB,EAAE,QAAgB;IACpF,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAiB,EAAE,YAAoB,EAAE,QAAgB;IACzF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAwB,uBAAuB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9G,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiB,EACjB,SAAiB,EACjB,aAAqB;IAErB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAClC,kBAAkB,EAClB;QACE,UAAU,EAAE;4CAC0B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;WAG9D;QACL,aAAa,EAAE,IAAI;KACpB,EACD,SAAS,CACV,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;IAE/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAEpC,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,CACvC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,aAAa,CACnE,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAC/B,mBAAmB,EAAE,EAAE,CACxB,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CACxD,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/browser/tabs.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
@@ -9,6 +9,10 @@ export interface BrowserConfig {
9
9
  executablePath?: string;
10
10
  userDataDir?: string;
11
11
  args?: string[];
12
+ /** Milliseconds to wait for the launched Chrome to open its CDP port
13
+ * before giving up. Default 10000 — raise this for environments where
14
+ * process spawn is consistently slower (e.g. constrained CI runners). */
15
+ launchTimeoutMs?: number;
12
16
  }
13
17
  export interface SessionState {
14
18
  targetId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/browser/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/browser/types.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/browser/types.ts"],"names":[],"mappings":"AA4HA,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO;IACvE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ;IAC1E,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM;IAC1E,cAAc,EAAE,WAAW,EAAE,WAAW;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB;IACjB,8DAA8D;IAC9D,oDAAoD;IACpD,eAAe;IACf,gEAAgE;IAChE,iBAAiB;IACjB,wBAAwB;IACxB,2BAA2B;IAC3B,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,gCAAgC;IAChC,mBAAmB;IACnB,4DAA4D;IAC5D,kEAAkE;IAClE,+DAA+D;IAC/D,mEAAmE;IACnE,6DAA6D;CAC9D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/browser/types.ts"],"names":[],"mappings":"AAgIA,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO;IACvE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ;IAC1E,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM;IAC1E,cAAc,EAAE,WAAW,EAAE,WAAW;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB;IACjB,8DAA8D;IAC9D,oDAAoD;IACpD,eAAe;IACf,gEAAgE;IAChE,iBAAiB;IACjB,wBAAwB;IACxB,2BAA2B;IAC3B,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,gCAAgC;IAChC,mBAAmB;IACnB,4DAA4D;IAC5D,kEAAkE;IAClE,+DAA+D;IAC/D,mEAAmE;IACnE,6DAA6D;CAC9D,CAAC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAm7EzE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACrE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUlG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CA6B5H;AAwcD,QAAA,MAAM,aAAa,EAAE,OAmJpB,CAAC;eAEa,aAAa"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAwgFzE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACrE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUlG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CA6B5H;AAycD,QAAA,MAAM,aAAa,EAAE,OAmJpB,CAAC;eAEa,aAAa"}
@@ -12,9 +12,55 @@ let _sessionId = '';
12
12
  let _targetId = '';
13
13
  let _port = DEFAULT_PORT;
14
14
  let _refs = new Map();
15
+ // Saved parent sessionId when inside an iframe — restored by `frame main`.
16
+ let _parentSessionId = '';
15
17
  async function getBrowser() {
16
18
  return import('../index.js');
17
19
  }
20
+ // Best-effort cleanup on Ctrl-C / kill so a launched Chrome doesn't linger as
21
+ // an orphan process when a command is interrupted mid-flight (e.g. during a
22
+ // long-running wait/eval that CdpClient.send()'s own timeout hasn't tripped
23
+ // yet).
24
+ //
25
+ // This module is imported for EVERY `monomind` CLI invocation (commands/
26
+ // index.ts statically imports browse.ts, which imports this file) — not just
27
+ // browse commands — so the handler is only *registered* once a browser
28
+ // session is actually launched here (see ensureSignalCleanupHandlers(),
29
+ // called from the `open` action below), not at module load. Registering
30
+ // unconditionally at import time would call process.exit() on Ctrl-C for
31
+ // every unrelated monomind command (e.g. a long-running `org run` daemon),
32
+ // pre-empting whatever other SIGINT/SIGTERM handling that process needs.
33
+ const SIGNAL_EXIT_CODES = { SIGINT: 130, SIGTERM: 143 };
34
+ let _signalHandlersRegistered = false;
35
+ function ensureSignalCleanupHandlers() {
36
+ if (_signalHandlersRegistered)
37
+ return;
38
+ _signalHandlersRegistered = true;
39
+ for (const sig of ['SIGINT', 'SIGTERM']) {
40
+ process.on(sig, () => {
41
+ void (async () => {
42
+ try {
43
+ const browser = await getBrowser();
44
+ if (_client) {
45
+ await browser.closeBrowser(_client, _port);
46
+ }
47
+ else {
48
+ const pid = browser.getLaunchedPid(_port);
49
+ if (pid !== undefined) {
50
+ try {
51
+ process.kill(pid, 'SIGKILL');
52
+ }
53
+ catch { /* already exited */ }
54
+ }
55
+ }
56
+ }
57
+ catch {
58
+ // best-effort — never block process exit on cleanup failure
59
+ }
60
+ })().finally(() => process.exit(SIGNAL_EXIT_CODES[sig]));
61
+ });
62
+ }
63
+ }
18
64
  // Each CLI invocation is a fresh process, so this module's `_port` variable
19
65
  // is always freshly initialized to DEFAULT_PORT — a `--port 9333` passed to
20
66
  // an earlier `open` command has no effect on this process's own default.
@@ -57,6 +103,7 @@ async function ensureConnected(port, targetId) {
57
103
  _client = conn.client;
58
104
  _sessionId = conn.sessionId;
59
105
  _targetId = conn.target.id;
106
+ _parentSessionId = '';
60
107
  _refs = new Map();
61
108
  await hydrateRefsFromCache(browser, _targetId, conn.target.url);
62
109
  }
@@ -145,6 +192,7 @@ async function switchToHeaded(url, port) {
145
192
  _client.close();
146
193
  _client = null;
147
194
  _sessionId = '';
195
+ _parentSessionId = '';
148
196
  _targetId = '';
149
197
  }
150
198
  // Launch headed on a neighbouring port to avoid collision
@@ -190,6 +238,7 @@ async function switchToHeaded(url, port) {
190
238
  _client.close();
191
239
  _client = null;
192
240
  _sessionId = '';
241
+ _parentSessionId = '';
193
242
  _targetId = '';
194
243
  // Relaunch headless and restore session
195
244
  _port = await browser.launchBrowser({ port, headless: true });
@@ -272,13 +321,40 @@ const openCommand = {
272
321
  prevClient.close();
273
322
  _client = null;
274
323
  _sessionId = '';
324
+ _parentSessionId = '';
275
325
  _targetId = '';
276
326
  _refs = new Map();
277
327
  }
278
328
  _port = await browser.launchBrowser({ port, headless: !forceHeaded });
279
329
  // Persist the active port so subsequent CLI invocations (each a fresh
280
- // process) default to attaching here instead of hardcoded 9222.
281
- await browser.saveActivePort(_port);
330
+ // process) default to attaching here instead of hardcoded 9222. Also
331
+ // persist the launched PID/userDataDir so a later process's closeBrowser
332
+ // can still kill this Chrome even though launchedPids (browser.ts) is
333
+ // per-process and empty there.
334
+ //
335
+ // launchBrowser() can either LAUNCH a fresh Chrome or ATTACH to one
336
+ // already listening on the requested port (see its own "attach if
337
+ // already Chrome" comment) — it returns only a port number, with no
338
+ // signal telling this caller which happened. getLaunchedPid(_port) is
339
+ // undefined on the attach path (this process never spawned anything).
340
+ // Bug fixed here: unconditionally saving {pid: undefined, ...} on
341
+ // attach used to CLOBBER a real PID a previous `open` had already
342
+ // persisted for this exact port, destroying the only way a later
343
+ // process's closeBrowser() PID-kill fallback could ever find it.
344
+ const freshPid = browser.getLaunchedPid(_port);
345
+ const freshUserDataDir = browser.getLaunchedUserDataDir(_port);
346
+ if (freshPid !== undefined) {
347
+ await browser.saveActivePort(_port, { pid: freshPid, userDataDir: freshUserDataDir });
348
+ }
349
+ else {
350
+ // Attach path: preserve whatever PID/userDataDir was already on file
351
+ // for this port (most likely from the process that originally
352
+ // launched it) instead of overwriting with undefined.
353
+ const existing = await browser.loadActivePortInfo();
354
+ const preserved = existing && existing.port === _port ? existing : undefined;
355
+ await browser.saveActivePort(_port, { pid: preserved?.pid, userDataDir: preserved?.userDataDir });
356
+ }
357
+ ensureSignalCleanupHandlers();
282
358
  const conn = await browser.connectToTarget(_port);
283
359
  _client = conn.client;
284
360
  _sessionId = conn.sessionId;
@@ -1312,6 +1388,7 @@ const closeCommand = {
1312
1388
  client.close();
1313
1389
  _client = null;
1314
1390
  _sessionId = '';
1391
+ _parentSessionId = '';
1315
1392
  _targetId = '';
1316
1393
  _refs = new Map();
1317
1394
  // Session is gone — forget the persisted port and stale refs so later
@@ -1969,11 +2046,24 @@ const frameCommand = {
1969
2046
  if (!target)
1970
2047
  throw new Error('Usage: monomind browse frame <selector>|main');
1971
2048
  if (target === 'main') {
2049
+ if (_parentSessionId) {
2050
+ // Detach from the OOPIF session (best-effort — it may already be gone)
2051
+ await client.send('Target.detachFromTarget', { sessionId: _sessionId }).catch(() => { });
2052
+ _sessionId = _parentSessionId;
2053
+ _parentSessionId = '';
2054
+ }
1972
2055
  output.printSuccess('Switched to main frame');
1973
2056
  }
1974
2057
  else {
1975
- const frameSrc = await browser.switchToFrame(client, sessionId, target);
1976
- output.printSuccess(`Switched to frame: ${frameSrc ?? target}`);
2058
+ const frameResult = await browser.switchToFrame(client, sessionId, target);
2059
+ if (frameResult.sessionId) {
2060
+ // Save the parent session so `frame main` can restore it
2061
+ _parentSessionId = _sessionId;
2062
+ _sessionId = frameResult.sessionId;
2063
+ // Enable CDP domains on the iframe's session so subsequent commands work
2064
+ await browser.enableSessionDomains(client, _sessionId);
2065
+ }
2066
+ output.printSuccess(`Switched to frame: ${frameResult.url ?? target}`);
1977
2067
  }
1978
2068
  return { success: true };
1979
2069
  },
@@ -2034,6 +2124,7 @@ const tabCommand = {
2034
2124
  client.close();
2035
2125
  _client = null;
2036
2126
  _sessionId = '';
2127
+ _parentSessionId = '';
2037
2128
  _targetId = '';
2038
2129
  _refs = new Map();
2039
2130
  }
@@ -2845,6 +2936,7 @@ const connectCommand = {
2845
2936
  prevClient.close();
2846
2937
  _client = null;
2847
2938
  _sessionId = '';
2939
+ _parentSessionId = '';
2848
2940
  _targetId = '';
2849
2941
  _refs = new Map();
2850
2942
  }