sliccy 6.163.3 → 6.164.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.
Files changed (178) hide show
  1. package/README.md +1 -1
  2. package/dist/node-server/_shared/byte-range.d.ts +25 -0
  3. package/dist/node-server/_shared/byte-range.d.ts.map +1 -0
  4. package/dist/node-server/_shared/byte-range.js +47 -0
  5. package/dist/node-server/_shared/byte-range.js.map +1 -0
  6. package/dist/node-server/_shared/index.d.ts +1 -0
  7. package/dist/node-server/_shared/index.d.ts.map +1 -1
  8. package/dist/node-server/_shared/index.js +1 -0
  9. package/dist/node-server/_shared/index.js.map +1 -1
  10. package/dist/node-server/_shared/preview-url.d.ts +15 -4
  11. package/dist/node-server/_shared/preview-url.d.ts.map +1 -1
  12. package/dist/node-server/_shared/preview-url.js +15 -4
  13. package/dist/node-server/_shared/preview-url.js.map +1 -1
  14. package/dist/node-server/_shared/tray-signaling.d.ts +29 -2
  15. package/dist/node-server/_shared/tray-signaling.d.ts.map +1 -1
  16. package/dist/node-server/_shared/tray-signaling.js.map +1 -1
  17. package/dist/node-server/electron-main.js +37 -17
  18. package/dist/node-server/electron-runtime.d.ts +30 -0
  19. package/dist/node-server/electron-runtime.js +35 -0
  20. package/dist/ui/.vite/manifest.json +182 -180
  21. package/dist/ui/assets/{MEMORY-B7gQtHiK.js → MEMORY-Dl8Y_nOo.js} +2 -1
  22. package/dist/ui/assets/SKILL-Bpepfqq0.js +1 -0
  23. package/dist/ui/assets/SKILL-DGelbGt_.js +1 -0
  24. package/dist/ui/assets/{account-store-B2dHpLrU.js → account-store-CScbFg3i.js} +1 -1
  25. package/dist/ui/assets/{account-store-7thV8TDR.js → account-store-DEob4Tob.js} +1 -1
  26. package/dist/ui/assets/{adobe-D2YLfg5f.js → adobe-CgamcTLU.js} +1 -1
  27. package/dist/ui/assets/{adobe-COMxS2BC.js → adobe-CjAD_QGX.js} +1 -1
  28. package/dist/ui/assets/{agent-bridge-B02RINfk.js → agent-bridge-D_5Sd3oe.js} +1 -1
  29. package/dist/ui/assets/{agent-panels-D5Vex9OC.js → agent-panels-XcqgFmF4.js} +1 -1
  30. package/dist/ui/assets/{apply-layout-CzjU7i4B.js → apply-layout-BDanZxtJ.js} +1 -1
  31. package/dist/ui/assets/{apps-CJ2t9C6j.js → apps-CU2dHbHf.js} +1 -1
  32. package/dist/ui/assets/{azure-openai-DX6m5IxW.js → azure-openai-Cl5VKD9d.js} +1 -1
  33. package/dist/ui/assets/{azure-openai-At6hDhXP.js → azure-openai-kjz9Dci1.js} +1 -1
  34. package/dist/ui/assets/{backend-hostfs-CUwTy1tQ.js → backend-hostfs-DU0NS-tW.js} +1 -1
  35. package/dist/ui/assets/{budget-usage-source-DlaHqSaF.js → budget-usage-source-BW8-RCSb.js} +1 -1
  36. package/dist/ui/assets/{cdp-DMMolf49.js → cdp-Cry6h07Z.js} +2 -2
  37. package/dist/ui/assets/{cerebras-uSMjNzkG.js → cerebras-CWXTOiZB.js} +1 -1
  38. package/dist/ui/assets/{cerebras-BdQyqWxn.js → cerebras-DrMQuNWj.js} +1 -1
  39. package/dist/ui/assets/{composer-speech-CQzu8-ey.js → composer-speech-HE7hDylv.js} +1 -1
  40. package/dist/ui/assets/{connect-surface-DvzsNsog.js → connect-surface-DTj_-b2c.js} +1 -1
  41. package/dist/ui/assets/{directed-approval-DrwIiNLn.js → directed-approval-D9smLm9q.js} +1 -1
  42. package/dist/ui/assets/{ensure-speech-assets-CPhTkdw7.js → ensure-speech-assets-Bdq2ASEA.js} +1 -1
  43. package/dist/ui/assets/extension-media-capture-BvLVZFQ0.js +1 -0
  44. package/dist/ui/assets/ffmpeg-wasm-B77gfnB_.js +1 -0
  45. package/dist/ui/assets/{fs-CxDchIfA.js → fs-DZGgOIET.js} +1 -1
  46. package/dist/ui/assets/{fs-cpv9Btce.js → fs-Dlit1SL1.js} +2 -2
  47. package/dist/ui/assets/{github-B_F0Mmvm.js → github-C5AdaH2F.js} +2 -2
  48. package/dist/ui/assets/{github-D_wvfV_Y.js → github-CGPZBKqk.js} +1 -1
  49. package/dist/ui/assets/{github-auth-D47vgVXU.js → github-auth-BEjdODKn.js} +1 -1
  50. package/dist/ui/assets/{github-copilot-D8RFa9PG.js → github-copilot-6b_0-c1B.js} +1 -1
  51. package/dist/ui/assets/{github-copilot-DNqE3AwW.js → github-copilot-D5K0xdpB.js} +1 -1
  52. package/dist/ui/assets/{github-install-D2mMrgbE.js → github-install-DLv9ZHaT.js} +1 -1
  53. package/dist/ui/assets/{github-zip-Ppycbo6U.js → github-zip-pP3IhiBQ.js} +1 -1
  54. package/dist/ui/assets/{hear-BE_L4O0W.js → hear-CybMJQVi.js} +1 -1
  55. package/dist/ui/assets/{help-DMzhBwWZ.js → help-C1nN0w8V.js} +3 -1
  56. package/dist/ui/assets/{installer-CYA7BBB3.js → installer-Chacgw8i.js} +1 -1
  57. package/dist/ui/assets/{js-realm-worker-D4l-hlP5.js → js-realm-worker-AwpbqZPU.js} +4 -4
  58. package/dist/ui/assets/jsh-runtime-extensions-Bcb8_nba.js +1 -0
  59. package/dist/ui/assets/kernel-worker-BAcS3WAP.js +4673 -0
  60. package/dist/ui/assets/{lick-ws-bridge-DVGkdjGt.js → lick-ws-bridge-BMov8z0m.js} +1 -1
  61. package/dist/ui/assets/{local-llm-BKSr7qPn.js → local-llm-B7zAVGSm.js} +1 -1
  62. package/dist/ui/assets/{local-llm-DIURFVX0.js → local-llm-ByCXv2P-.js} +1 -1
  63. package/dist/ui/assets/{main-cherry-Dgkq-tJL.js → main-cherry-BNWE5vJO.js} +1 -1
  64. package/dist/ui/assets/main-yKaIA_zV.js +22 -0
  65. package/dist/ui/assets/memory-curation-seam-BAJK5Abp.js +1 -0
  66. package/dist/ui/assets/mount-CTTWc8xh.js +1 -0
  67. package/dist/ui/assets/{mount-B1DqiOcd.js → mount-DvrzOwsL.js} +3 -3
  68. package/dist/ui/assets/mount-recovery-T6cjQxeX.js +2 -0
  69. package/dist/ui/assets/multipart-form-data-DopbgwRR.js +12 -0
  70. package/dist/ui/assets/{new-session-DNM6sU_b.js → new-session-C4AXW_7S.js} +2 -2
  71. package/dist/ui/assets/{oauth-bootstrap-c8_eyOH6.js → oauth-bootstrap-mNVnQZ_Q.js} +2 -2
  72. package/dist/ui/assets/{onboarding-orchestrator-CIMzD5Jz.js → onboarding-orchestrator-BwCfbdlW.js} +1 -1
  73. package/dist/ui/assets/{openai-codex-dWhUgfR3.js → openai-codex-DRyLvc3I.js} +1 -1
  74. package/dist/ui/assets/{openai-codex-STwlyW3J.js → openai-codex-Subg_Vg8.js} +1 -1
  75. package/dist/ui/assets/{openrouter-aQlUmtXt.js → openrouter-B52vd-zH.js} +1 -1
  76. package/dist/ui/assets/{openrouter-Cdyr209g.js → openrouter-D5mJU1oF.js} +1 -1
  77. package/dist/ui/assets/{openrouter-free-CTj3DA2L.js → openrouter-free-CKmFPQ3y.js} +1 -1
  78. package/dist/ui/assets/{openrouter-free-DrxkMtmg.js → openrouter-free-CYBINFem.js} +1 -1
  79. package/dist/ui/assets/{openrouter-oauth-ooe6Lizo.js → openrouter-oauth-BML-cBKi.js} +1 -1
  80. package/dist/ui/assets/{openrouter-oauth-BghUWVWl.js → openrouter-oauth-BUFYoKT3.js} +1 -1
  81. package/dist/ui/assets/{opfs-mount-BawSrMEG.js → opfs-mount-DmOQi3qJ.js} +1 -1
  82. package/dist/ui/assets/panel-rpc-handlers-BG91KHPa.js +2 -0
  83. package/dist/ui/assets/{panelize-shell-uLL52pK0.js → panelize-shell-CJS6Q9hY.js} +1 -1
  84. package/dist/ui/assets/{pi-edit-execution-CBkImvLL.js → pi-edit-execution-NnXkvjSi.js} +1 -1
  85. package/dist/ui/assets/preview-mint-client-DQJ0n-15.js +1 -0
  86. package/dist/ui/assets/{provider-BShCHojx.js → provider-CbAKIAon.js} +1 -1
  87. package/dist/ui/assets/{provider-MRCxgUrz.js → provider-G-FXP5U3.js} +2 -2
  88. package/dist/ui/assets/provider-settings-BuhBOwFs.js +1 -0
  89. package/dist/ui/assets/provider-store-access-CrH5offR.js +1 -0
  90. package/dist/ui/assets/provider-store-access-DgZnuRxY.js +1 -0
  91. package/dist/ui/assets/providers-BT71Fchh.js +2 -0
  92. package/dist/ui/assets/{providers-CdY7xD1c.js → providers-C1P4Z_in.js} +1 -1
  93. package/dist/ui/assets/{quick-llm-CjQiIJUJ.js → quick-llm-BOu12xbc.js} +1 -1
  94. package/dist/ui/assets/realm-body-handles-DtLxL_rB.js +1 -0
  95. package/dist/ui/assets/realm-inprocess-Bmsz-kPh.js +30 -0
  96. package/dist/ui/assets/{recovery-screen-DI5MNR5W.js → recovery-screen-D_LwQpCA.js} +1 -1
  97. package/dist/ui/assets/{run-Dmi_q7LV.js → run-33hnsiVQ.js} +7 -7
  98. package/dist/ui/assets/{run-DN1Z4KN4.js → run-BFLhWKKw.js} +1 -1
  99. package/dist/ui/assets/{run-D4Vl7wF1.js → run-BGSKahNd.js} +1 -1
  100. package/dist/ui/assets/{run-iJ1NIefU.js → run-MvSXwrUs.js} +4 -4
  101. package/dist/ui/assets/{run-5Q4w0-H-.js → run-_2GCYBFU.js} +2 -2
  102. package/dist/ui/assets/screencapture-media-Dc-3ljgR.js +1 -0
  103. package/dist/ui/assets/screencapture-media-YBE2VnLF.js +1 -0
  104. package/dist/ui/assets/screencapture-media-shared-BDUdmMOP.js +1 -0
  105. package/dist/ui/assets/screencapture-run-CfJW-gGP.js +25 -0
  106. package/dist/ui/assets/{session-jsonl-DRtFd9Vm.js → session-jsonl-MJMdfn6X.js} +1 -1
  107. package/dist/ui/assets/{setup-feature-flags-remote-DgWOEar6.js → setup-feature-flags-remote-KCi8ndrR.js} +1 -1
  108. package/dist/ui/assets/{silent-renew-backoff-xaGyETkD.js → silent-renew-backoff-B06r5ZL-.js} +1 -1
  109. package/dist/ui/assets/{skills-BJHoyFFZ.js → skills-DWkSI8sH.js} +1 -1
  110. package/dist/ui/assets/slicc-version-DAFTorvi.js +1 -0
  111. package/dist/ui/assets/{snapshot-CmBVv38n.js → snapshot-BykuJ4wW.js} +1 -1
  112. package/dist/ui/assets/{snapshot-features-Cnea_U4G.js → snapshot-features-vq3FCiv5.js} +2 -2
  113. package/dist/ui/assets/{soundscape---z4YKxK.js → soundscape-DQGEZGwB.js} +1 -1
  114. package/dist/ui/assets/{speak-CpEXs8qp.js → speak-DivfwK0_.js} +1 -1
  115. package/dist/ui/assets/{sprinkle-manager-Cs6EcWLv.js → sprinkle-manager-rSxSSd0J.js} +1 -1
  116. package/dist/ui/assets/{sprinkle-renderer-DEK40NVq.js → sprinkle-renderer-Ul_GPDpn.js} +3 -3
  117. package/dist/ui/assets/{state-C0-kGr3A.js → state-CGafQVGp.js} +1 -1
  118. package/dist/ui/assets/{store-CNjspZY4.js → store-BbZGuhdS.js} +1 -1
  119. package/dist/ui/assets/{store-DmU_KF4L.js → store-qzvn3yV9.js} +1 -1
  120. package/dist/ui/assets/{sudo-CJZ1rOHw.js → sudo-BLaOJiyv.js} +1 -1
  121. package/dist/ui/assets/{sync-dialog-DrlR7MBv.js → sync-dialog-CfQLao_i.js} +1 -1
  122. package/dist/ui/assets/sync-sab-wire-Cacrunmz.js +252 -0
  123. package/dist/ui/assets/{transformers-env-BN4AE__J.js → transformers-env-7c5cDYNs.js} +1 -1
  124. package/dist/ui/assets/{tray-leader-cK2ve3vE.js → tray-leader-DqDL2jwl.js} +1 -1
  125. package/dist/ui/assets/{tray-leave-runtime-BNnkZmOK.js → tray-leave-runtime-Fs59e1NT.js} +1 -1
  126. package/dist/ui/assets/{tray-sidecar-CMphTtZ6.js → tray-sidecar-DuSizsy1.js} +1 -1
  127. package/dist/ui/assets/{upgrade-detection-DqxtDjqB.js → upgrade-detection-CyCnJlGg.js} +1 -1
  128. package/dist/ui/assets/{upskill-lick-skip-BOoLZO7G.js → upskill-lick-skip-B0aTroa_.js} +1 -1
  129. package/dist/ui/assets/{voice-reply-DVqBfVZh.js → voice-reply-BDW4paEk.js} +1 -1
  130. package/dist/ui/assets/{wc-attach-CqspQ7tq.js → wc-attach-C1JExhF6.js} +2 -2
  131. package/dist/ui/assets/wc-detached-YxBsBh4A.js +1 -0
  132. package/dist/ui/assets/{wc-extension-Dx9K3UI4.js → wc-extension-CVnsFSuW.js} +2 -2
  133. package/dist/ui/assets/wc-follower-CUovZlpa.js +17 -0
  134. package/dist/ui/assets/{wc-follower-oauth-DBB92sM-.js → wc-follower-oauth-Bxhy8p-W.js} +1 -1
  135. package/dist/ui/assets/{wc-gelatiere-BOM7MHpJ.js → wc-gelatiere-CxkjwV-m.js} +1 -1
  136. package/dist/ui/assets/wc-live-br4wUYv7.js +427 -0
  137. package/dist/ui/assets/wc-nav-ChrnrxPa.js +2 -0
  138. package/dist/ui/assets/{wc-onboarding-B-hlkKKo.js → wc-onboarding-D2v396gn.js} +2 -2
  139. package/dist/ui/assets/{wc-placeholder-DptxehXu.js → wc-placeholder-Bw-g85Ke.js} +3 -3
  140. package/dist/ui/assets/{wc-secret-request-j4xga-iu.js → wc-secret-request-BK3k0VlW.js} +1 -1
  141. package/dist/ui/assets/{wc-settings-DPR-b0-_.js → wc-settings-D84UzOS6.js} +3 -3
  142. package/dist/ui/assets/{wc-shell-DjIsuDJP.js → wc-shell-CKhQ3qyn.js} +226 -225
  143. package/dist/ui/assets/{wc-shortcut-config-BNj_AwaI.js → wc-shortcut-config-DFPLI7su.js} +1 -1
  144. package/dist/ui/assets/{wc-sprinkles-EjtaK9Rn.js → wc-sprinkles-Cf6JnkDK.js} +2 -2
  145. package/dist/ui/assets/{wc-transcript-export-CnKiGYWp.js → wc-transcript-export-BbJ1QcHb.js} +2 -2
  146. package/dist/ui/assets/wc-tray-BEzyYj77.js +5 -0
  147. package/dist/ui/assets/welcome-detection-DjgSxU4V.js +1 -0
  148. package/dist/ui/assets/{whisper-session-DZfntPCd.js → whisper-session-Ch3Rub5j.js} +2 -2
  149. package/dist/ui/assets/{xai-grok-pTGFet6X.js → xai-grok-BT_WDAT_.js} +1 -1
  150. package/dist/ui/assets/{xai-grok-UCtSh1bK.js → xai-grok-D4lk5fCR.js} +1 -1
  151. package/dist/ui/index.html +3 -4
  152. package/dist/ui/llm-proxy-sw.js +1 -1
  153. package/dist/ui/packages/webapp/index.html +3 -4
  154. package/dist/ui/preview-sw.js +1 -1
  155. package/package.json +1 -1
  156. package/dist/ui/assets/SKILL-3kU_2nH2.js +0 -1
  157. package/dist/ui/assets/SKILL-D3-Y0muu.js +0 -1
  158. package/dist/ui/assets/extension-media-capture-CRjN0St9.js +0 -1
  159. package/dist/ui/assets/jsh-runtime-extensions-CBxhvxKk.js +0 -1
  160. package/dist/ui/assets/kernel-worker-BdK7Vvjt.js +0 -4967
  161. package/dist/ui/assets/main-BGXojCMP.js +0 -22
  162. package/dist/ui/assets/memory-curation-seam-CdWB-N6e.js +0 -1
  163. package/dist/ui/assets/messages-zAgr7E2T.js +0 -1
  164. package/dist/ui/assets/mount-B_qcnlTQ.js +0 -12
  165. package/dist/ui/assets/mount-recovery-YcyiSd59.js +0 -2
  166. package/dist/ui/assets/panel-rpc-handlers-CVKSTUux.js +0 -2
  167. package/dist/ui/assets/preview-mint-client-Ce8jOeV2.js +0 -1
  168. package/dist/ui/assets/provider-settings-noPwnYsN.js +0 -1
  169. package/dist/ui/assets/provider-store-access-C1-3_CHh.js +0 -1
  170. package/dist/ui/assets/provider-store-access-DIw_avbM.js +0 -1
  171. package/dist/ui/assets/providers-CktiVRQ5.js +0 -2
  172. package/dist/ui/assets/slicc-version-CjTxK7fb.js +0 -1
  173. package/dist/ui/assets/wc-detached-F7FTH1YG.js +0 -1
  174. package/dist/ui/assets/wc-follower-CEaXEeGk.js +0 -17
  175. package/dist/ui/assets/wc-live-DLGEza9v.js +0 -426
  176. package/dist/ui/assets/wc-nav-B-wgeNM6.js +0 -2
  177. package/dist/ui/assets/wc-tray-Bjpxq9pI.js +0 -5
  178. package/dist/ui/assets/welcome-detection-DR3anEG0.js +0 -1
package/README.md CHANGED
@@ -75,7 +75,7 @@ SLICC is for you if:
75
75
  - **Make targeted file changes with Pi's `edit` tool.** One call can apply multiple unique, non-overlapping replacements while preserving BOMs and line endings; replacement text is always literal, so `$` sequences cannot rewrite themselves through JavaScript replacement expansion.
76
76
  - **See image-producing tool results directly in chat.** Supported `<img:data:image/...;base64,...>` markers from commands such as `open --view` and `screencapture` render as bounded, lazy-loaded inline images in chat tool rows. Each tool body displays at most four images and shows an explicit overflow indication when more are present.
77
77
  - **Serve driveable previews.** `serve --bridge <dir>` mints a URL whose every visitor tab becomes a live, leader-driveable synthetic-CDP target — the agent can navigate/click/evaluate/screenshot and weave in webhook licks. **Security: opt-in only; cross-subdomain cookie risk accepted and documented (host-only cookies isolated per preview; `Domain=.sliccy.now` cookies readable across all previews).**
78
- - **Publish persistent previews.** `serve --ttl 30d <dir>` uploads an immutable snapshot that remains available without the tray leader for up to 30 days; `serve --stop <token>` revokes it early. Previews (live or persistent) are capped at 25 MiB per file and 10 per tray, and persist until stopped or expired — see [`serve` limits](docs/shell-reference.md#limits-and-lifetime).
78
+ - **Publish persistent previews.** `serve --ttl 30d <dir>` uploads an immutable snapshot that remains available without the tray leader for up to 30 days; `serve --stop <token>` revokes it early. Files are capped at 25 MiB; a tray holds up to 10 snapshots (live previews are unlimited and expire once the leader has been gone for 5 minutes) — see [`serve` limits](docs/shell-reference.md#limits-and-lifetime).
79
79
  - **Click a file the agent mentions.** When the agent writes a file name in chat — `bb.jsh`, `check.sh`, `packages/webapp/src/main.ts:42` — SLICC checks it against the workspace in the background and turns the ones that really exist into links. Clicking opens a preview; a mention that does not resolve stays plain text, so there are no dead links. A file with uncommitted changes opens on its diff. Names are read in the context of what the agent has already DONE: after `echo "test" > /home/lars/foo.md`, a later "see foo.md" links to that exact file — even when it lives outside the workspace, and even when three other `foo.md` files exist.
80
80
  - **Preview a pasted base64 payload instead of scrolling past it.** A blob pasted into chat — a screenshot as a `data:` URL, the output of `base64 < report.pdf` — collapses to a chip naming what it is and how big it is (`png · 12 KB`). Clicking opens it in the same previewer a file name does: images render, PDFs and audio play, text and JSON are syntax-highlighted. Only payloads SLICC can actually decode and recognize are collapsed; anything else stays exactly as you typed it, and long strings of every kind now wrap instead of dragging the chat column sideways.
81
81
  - **Read markdown and HTML, or read their source.** A `.md` or `.html` preview opens as the document — formatted prose, a laid-out page — with a **Source** toggle for the syntax-highlighted markup (and **Diff** when the file has uncommitted changes). HTML renders in a sandboxed frame that cannot run scripts or reach the app.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Single-range `Range: bytes=…` parsing shared by every preview path: the
3
+ * local `/preview/*` service worker, the tray leader answering a live
4
+ * `serve` request, and the tray worker (old-leader fallback and `--ttl`
5
+ * snapshots). One parser keeps the three answers to the same header equal.
6
+ */
7
+ /** A resolved byte range, inclusive on both ends, clamped to the entity. */
8
+ export interface ByteRange {
9
+ start: number;
10
+ end: number;
11
+ }
12
+ /**
13
+ * Parse a single-range `Range: bytes=…` header against a known entity size.
14
+ *
15
+ * Returns `null` when the header is absent or is anything we do not serve
16
+ * (multi-range, a non-`bytes` unit) — the caller then answers 200 with the
17
+ * whole entity, which is always a valid response to a Range request.
18
+ * Returns `'unsatisfiable'` for a syntactically valid range that falls outside
19
+ * the entity, which owes a 416.
20
+ *
21
+ * Media elements need this: without a 206 path a `<video>` cannot seek, and
22
+ * Safari in particular refuses to play a source that will not honour ranges.
23
+ */
24
+ export declare function parseByteRange(header: string | null | undefined, size: number): ByteRange | 'unsatisfiable' | null;
25
+ //# sourceMappingURL=byte-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"byte-range.d.ts","sourceRoot":"","sources":["../src/byte-range.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,IAAI,EAAE,MAAM,GACX,SAAS,GAAG,eAAe,GAAG,IAAI,CAsBpC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Single-range `Range: bytes=…` parsing shared by every preview path: the
3
+ * local `/preview/*` service worker, the tray leader answering a live
4
+ * `serve` request, and the tray worker (old-leader fallback and `--ttl`
5
+ * snapshots). One parser keeps the three answers to the same header equal.
6
+ */
7
+ /**
8
+ * Parse a single-range `Range: bytes=…` header against a known entity size.
9
+ *
10
+ * Returns `null` when the header is absent or is anything we do not serve
11
+ * (multi-range, a non-`bytes` unit) — the caller then answers 200 with the
12
+ * whole entity, which is always a valid response to a Range request.
13
+ * Returns `'unsatisfiable'` for a syntactically valid range that falls outside
14
+ * the entity, which owes a 416.
15
+ *
16
+ * Media elements need this: without a 206 path a `<video>` cannot seek, and
17
+ * Safari in particular refuses to play a source that will not honour ranges.
18
+ */
19
+ export function parseByteRange(header, size) {
20
+ if (!header)
21
+ return null;
22
+ const match = /^bytes=(\d*)-(\d*)$/.exec(header.trim());
23
+ if (!match)
24
+ return null;
25
+ const [, rawStart, rawEnd] = match;
26
+ if (rawStart === '' && rawEnd === '')
27
+ return null;
28
+ let start;
29
+ let end;
30
+ if (rawStart === '') {
31
+ // `bytes=-N` — the final N bytes. N greater than the entity means the
32
+ // whole entity, per RFC 9110.
33
+ const suffix = Number(rawEnd);
34
+ if (suffix === 0)
35
+ return 'unsatisfiable';
36
+ start = Math.max(0, size - suffix);
37
+ end = size - 1;
38
+ }
39
+ else {
40
+ start = Number(rawStart);
41
+ end = rawEnd === '' ? size - 1 : Math.min(Number(rawEnd), size - 1);
42
+ }
43
+ if (start >= size || start > end)
44
+ return 'unsatisfiable';
45
+ return { start, end };
46
+ }
47
+ //# sourceMappingURL=byte-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"byte-range.js","sourceRoot":"","sources":["../src/byte-range.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiC,EACjC,IAAY;IAEZ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACnC,IAAI,QAAQ,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAElD,IAAI,KAAa,CAAC;IAClB,IAAI,GAAW,CAAC;IAChB,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,sEAAsE;QACtE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC;QACzC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;QACnC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,eAAe,CAAC;IACzD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from './agent-wire-types.js';
2
2
  export * from './base64.js';
3
3
  export * from './bridge-protocol.js';
4
+ export * from './byte-range.js';
4
5
  export * from './cdp-frame-unmask.js';
5
6
  export * from './cdp-target-info.js';
6
7
  export * from './content-type.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  export * from './agent-wire-types.js';
3
3
  export * from './base64.js';
4
4
  export * from './bridge-protocol.js';
5
+ export * from './byte-range.js';
5
6
  export * from './cdp-frame-unmask.js';
6
7
  export * from './cdp-target-info.js';
7
8
  export * from './content-type.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -6,11 +6,22 @@ export declare function buildPreviewUrl(workerBaseUrl: string, previewToken: str
6
6
  */
7
7
  export declare const PREVIEW_MAX_FILE_BYTES: number;
8
8
  /**
9
- * Previews one tray may hold at once. Live previews, `--ttl` snapshots, and
10
- * snapshots still uploading all count. Mirrors the worker's
11
- * `MAX_PREVIEWS_PER_TRAY`.
9
+ * Largest window one ranged live-preview response carries. The leader clamps
10
+ * each `206` to this many bytes (a server may return less than was asked;
11
+ * media elements simply request the next window), so files above
12
+ * `PREVIEW_MAX_FILE_BYTES` still play and seek through the relay.
12
13
  */
13
- export declare const PREVIEW_MAX_PER_TRAY = 10;
14
+ export declare const PREVIEW_MAX_RANGE_BYTES: number;
15
+ /**
16
+ * `--ttl` snapshots one tray may hold, counting snapshots still uploading.
17
+ * Live previews have no quota. Mirrors the worker's `MAX_SNAPSHOTS_PER_TRAY`.
18
+ */
19
+ export declare const PREVIEW_MAX_SNAPSHOTS_PER_TRAY = 10;
20
+ /**
21
+ * How long a live preview survives a lost leader connection before the worker
22
+ * deletes it. Mirrors the worker's `LIVE_PREVIEW_ORPHAN_MS`.
23
+ */
24
+ export declare const PREVIEW_LIVE_ORPHAN_MINUTES = 5;
14
25
  /**
15
26
  * Recover the capability token (`<trayId>.<secret>`) from a preview URL or
16
27
  * host, so `serve --stop` accepts what `serve` printed. The inverse of
@@ -1 +1 @@
1
- {"version":3,"file":"preview-url.d.ts","sourceRoot":"","sources":["../src/preview-url.ts"],"names":[],"mappings":"AAiCA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAU7D;AAsBD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,IAAI,SAAM,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAIvC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE"}
1
+ {"version":3,"file":"preview-url.d.ts","sourceRoot":"","sources":["../src/preview-url.ts"],"names":[],"mappings":"AAiCA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAU7D;AAsBD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,IAAI,SAAM,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAI7C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE"}
@@ -74,11 +74,22 @@ export function buildPreviewUrl(workerBaseUrl, previewToken, path = '/', userHas
74
74
  */
75
75
  export const PREVIEW_MAX_FILE_BYTES = 25 * 1024 * 1024;
76
76
  /**
77
- * Previews one tray may hold at once. Live previews, `--ttl` snapshots, and
78
- * snapshots still uploading all count. Mirrors the worker's
79
- * `MAX_PREVIEWS_PER_TRAY`.
77
+ * Largest window one ranged live-preview response carries. The leader clamps
78
+ * each `206` to this many bytes (a server may return less than was asked;
79
+ * media elements simply request the next window), so files above
80
+ * `PREVIEW_MAX_FILE_BYTES` still play and seek through the relay.
80
81
  */
81
- export const PREVIEW_MAX_PER_TRAY = 10;
82
+ export const PREVIEW_MAX_RANGE_BYTES = 8 * 1024 * 1024;
83
+ /**
84
+ * `--ttl` snapshots one tray may hold, counting snapshots still uploading.
85
+ * Live previews have no quota. Mirrors the worker's `MAX_SNAPSHOTS_PER_TRAY`.
86
+ */
87
+ export const PREVIEW_MAX_SNAPSHOTS_PER_TRAY = 10;
88
+ /**
89
+ * How long a live preview survives a lost leader connection before the worker
90
+ * deletes it. Mirrors the worker's `LIVE_PREVIEW_ORPHAN_MS`.
91
+ */
92
+ export const PREVIEW_LIVE_ORPHAN_MINUTES = 5;
82
93
  const PREVIEW_LABEL_RE = /^([0-9a-f]{32})--(?:[0-9a-f]{8}-)?([0-9a-f]+)$/i;
83
94
  /**
84
95
  * Recover the capability token (`<trayId>.<secret>`) from a preview URL or
@@ -1 +1 @@
1
- {"version":3,"file":"preview-url.js","sourceRoot":"","sources":["../src/preview-url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-url.js","sourceRoot":"","sources":["../src/preview-url.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,13 @@ export interface WorkerPreviewRequest {
179
179
  servedRoot: string;
180
180
  vfsPath: string;
181
181
  asText: boolean;
182
+ /**
183
+ * The visitor's raw `Range` header, forwarded verbatim because only the
184
+ * leader knows the file size. Absent when the visitor sent none (or sent
185
+ * `If-Range`, which the worker answers with the full body). A leader that
186
+ * predates this field ignores it and the worker slices the full body.
187
+ */
188
+ range?: string;
182
189
  }
183
190
  export interface WorkerPreviewRevoked {
184
191
  type: 'preview.revoked';
@@ -267,14 +274,34 @@ export interface LeaderPreviewResponseOk {
267
274
  /** utf-8 text OR base64-encoded binary, per `encoding`. */
268
275
  content: string;
269
276
  encoding: 'utf-8' | 'base64';
277
+ /**
278
+ * Range metadata, repeated on EVERY chunk so the worker can read it from
279
+ * whichever chunk completes the set. `206` means the chunks carry only the
280
+ * inclusive `range` window (≤ `PREVIEW_MAX_RANGE_BYTES`, always base64);
281
+ * `200` or absent means the whole file. Leaders that predate range support
282
+ * send none of these fields.
283
+ */
284
+ status?: 200 | 206;
285
+ /** Full entity size in bytes (the whole file, not the window). */
286
+ size?: number;
287
+ /** Inclusive byte window carried by a `206`. */
288
+ range?: {
289
+ start: number;
290
+ end: number;
291
+ };
270
292
  }
271
293
  export interface LeaderPreviewResponseError {
272
294
  type: 'preview.response';
273
295
  reqId: string;
274
296
  ok: false;
275
- /** 413: the file exceeds `PREVIEW_MAX_FILE_BYTES`; the leader never sends it. */
276
- status: 404 | 403 | 413 | 500;
297
+ /**
298
+ * 413: an unranged request for a file above `PREVIEW_MAX_FILE_BYTES`; the
299
+ * leader never sends it. 416: the requested range lies outside the file.
300
+ */
301
+ status: 404 | 403 | 413 | 416 | 500;
277
302
  reason?: string;
303
+ /** Full entity size, so a 416 can name it in `Content-Range`. */
304
+ size?: number;
278
305
  }
279
306
  export interface LeaderPreviewPurge {
280
307
  type: 'preview.purge';
@@ -1 +1 @@
1
- {"version":3,"file":"tray-signaling.d.ts","sourceRoot":"","sources":["../src/tray-signaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,sBAAsB,CAAC;CAC/B,GACD;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;CAC7B,GACD;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACrC;AAED,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAClC,WAAW,GACX,UAAU,GACV,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,4BAA4B,GAC5B,sBAAsB,GACtB,4BAA4B,GAC5B,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,sBAAsB,CAAC;CAC/B;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,yBAAyB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,kBAAkB,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,iFAAiF;IACjF,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;oEACoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAC;IACtC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,0BAA0B,CAAC;CACzC;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,cAAc,GACd,2BAA2B,GAC3B,kCAAkC,GAClC,4BAA4B,GAC5B,uBAAuB,GACvB,0BAA0B,GAC1B,kBAAkB,GAClB,wBAAwB,GACxB,sBAAsB,GACtB,iBAAiB,CAAC;AAMtB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,wBAAwB,GAChC,oBAAoB,GACpB,sBAAsB,GACtB,4BAA4B,GAC5B,qBAAqB,CAAC;AAM1B,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CAAC;IACpD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;CAChC,GACD;IACE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,yBAAyB,GAAG,cAAc,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE;;;;OAIG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAC3C,MAAM,GAAG,IAAI,CAgBf"}
1
+ {"version":3,"file":"tray-signaling.d.ts","sourceRoot":"","sources":["../src/tray-signaling.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tray-signaling.js","sourceRoot":"","sources":["../src/tray-signaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AA4gBnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAA4C;IAE5C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,SAAS;QACtD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC/D,IAAI,CAAC;YACH,gEAAgE;YAChE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAa,EAAE,GAAW;IACpD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,IAAI;gBAAE,CAAC,EAAE,CAAC;iBAChB,IAAI,EAAE,KAAK,GAAG;gBAAE,QAAQ,GAAG,KAAK,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,QAAQ,GAAG,IAAI,CAAC;aAC3B,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,GAAG,IAAI,CAAC;aAC/B,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,GAAG,KAAK,CAAC;aAChC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAChF,SAAS,sBAAsB,CAAC,MAAc;IAC5C,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK;YAAE,SAAS;QAChE,MAAM,KAAK,GAAG,KAAK;aAChB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;aACb,IAAI,EAAE;aACN,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9B,iFAAiF;QACjF,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"tray-signaling.js","sourceRoot":"","sources":["../src/tray-signaling.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { resolve } from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
  import { mintBridgeToken } from './bridge-security.js';
7
7
  import { BRIDGE_ROLE_LEADER, buildThinOverlayAppUrl, resolveHostedLeaderOrigin, } from './electron-controller.js';
8
- import { buildElectronOverlayInjectionCall, buildElectronServerSpawnConfig, getElectronOverlayEntryDistPath, getElectronServeOrigin, parseElectronFloatFlags, } from './electron-runtime.js';
8
+ import { buildElectronChildWindowOptions, buildElectronOverlayInjectionCall, buildElectronServerSpawnConfig, ELECTRON_FLOAT_WINDOW_BOX, getElectronOverlayEntryDistPath, getElectronServeOrigin, parseElectronFloatFlags, } from './electron-runtime.js';
9
9
  const Dirname = fileURLToPath(new URL('.', import.meta.url));
10
10
  const PROJECT_ROOT = resolve(Dirname, '..', '..');
11
11
  const FLAGS = parseElectronFloatFlags(process.argv.slice(2));
@@ -92,27 +92,47 @@ function configureElectronSession() {
92
92
  callback({ responseHeaders });
93
93
  });
94
94
  }
95
+ const FLOAT_WEB_PREFERENCES = {
96
+ partition: ELECTRON_PARTITION,
97
+ contextIsolation: true,
98
+ nodeIntegration: false,
99
+ sandbox: true,
100
+ allowRunningInsecureContent: true,
101
+ };
102
+ /**
103
+ * Overlay reinjection plus renderer-opened child windows, applied to every
104
+ * float window and, recursively, to every window it opens.
105
+ *
106
+ * Child windows are ALLOWED, not denied-and-replaced: a `{ action: 'deny' }`
107
+ * handler makes `window.open()` return `null` in the renderer even when the
108
+ * main process spawns a lookalike, so a full-document sprinkle could never get
109
+ * a handle or a sized window (Codex P1 on #3250). With `allow`, Electron
110
+ * creates the child from the parsed `features` string (width/height) and the
111
+ * renderer gets the real `Window` back. The override only adds the float's
112
+ * web preferences and, for featureless `target="_blank"` links, the default
113
+ * float box.
114
+ */
115
+ function wireFloatWindow(window) {
116
+ wireOverlayReinjection(window);
117
+ window.webContents.setWindowOpenHandler(({ features }) => ({
118
+ action: 'allow',
119
+ overrideBrowserWindowOptions: {
120
+ ...buildElectronChildWindowOptions(features),
121
+ webPreferences: FLOAT_WEB_PREFERENCES,
122
+ },
123
+ }));
124
+ window.webContents.on('did-create-window', (child) => {
125
+ wireFloatWindow(child);
126
+ });
127
+ }
95
128
  async function createFloatWindow(targetUrl) {
96
129
  const window = new BrowserWindow({
97
- width: 1440,
98
- height: 960,
99
- minWidth: 1024,
100
- minHeight: 720,
130
+ ...ELECTRON_FLOAT_WINDOW_BOX,
101
131
  autoHideMenuBar: true,
102
132
  title: 'slicc electron float',
103
- webPreferences: {
104
- partition: ELECTRON_PARTITION,
105
- contextIsolation: true,
106
- nodeIntegration: false,
107
- sandbox: true,
108
- allowRunningInsecureContent: true,
109
- },
110
- });
111
- wireOverlayReinjection(window);
112
- window.webContents.setWindowOpenHandler(({ url }) => {
113
- void createFloatWindow(url);
114
- return { action: 'deny' };
133
+ webPreferences: FLOAT_WEB_PREFERENCES,
115
134
  });
135
+ wireFloatWindow(window);
116
136
  try {
117
137
  await window.loadURL(targetUrl);
118
138
  }
@@ -71,6 +71,36 @@ export declare function buildElectronServerSpawnConfig(projectRoot: string, opti
71
71
  cdpPort: number;
72
72
  nodePath?: string;
73
73
  }): ElectronServerSpawnConfig;
74
+ /** Default float window box; also applied to child windows opened without a size. */
75
+ export declare const ELECTRON_FLOAT_WINDOW_BOX: {
76
+ readonly width: 1440;
77
+ readonly height: 960;
78
+ readonly minWidth: 1024;
79
+ readonly minHeight: 720;
80
+ };
81
+ export interface ElectronChildWindowOptions {
82
+ autoHideMenuBar: true;
83
+ width?: number;
84
+ height?: number;
85
+ minWidth?: number;
86
+ minHeight?: number;
87
+ }
88
+ /**
89
+ * Does a `window.open()` features string ask for a window size? Electron parses
90
+ * `width`/`height` (and the `innerWidth`/`innerHeight` aliases) from the
91
+ * comma-separated `key=value` list into `BrowserWindowConstructorOptions`.
92
+ */
93
+ export declare function windowOpenFeaturesRequestSize(features: string): boolean;
94
+ /**
95
+ * Options the Electron float's `setWindowOpenHandler` layers over a
96
+ * renderer-opened child window. Handler options OUTRANK the parsed features
97
+ * string, so this must not name a size when the opener asked for one:
98
+ * `window.open(url, name, 'popup=yes,width=1280,height=800')` (a sprinkle
99
+ * opening a fixed-size capture window) has to come out exactly 1280×800 with
100
+ * no min-size clamp. A featureless `target="_blank"` link keeps the full float
101
+ * box it always had.
102
+ */
103
+ export declare function buildElectronChildWindowOptions(features: string): ElectronChildWindowOptions;
74
104
  export declare function getElectronServeOrigin(servePort: number): string;
75
105
  export declare function getElectronOverlayEntryDistPath(projectRoot: string): string;
76
106
  /** Payload passed to `window.__SLICC_ELECTRON_OVERLAY__.inject()` — mirrors spoon's `InjectSliccLauncherOptions`. */
@@ -227,6 +227,41 @@ export function buildElectronServerSpawnConfig(projectRoot, options) {
227
227
  ],
228
228
  };
229
229
  }
230
+ /** Default float window box; also applied to child windows opened without a size. */
231
+ export const ELECTRON_FLOAT_WINDOW_BOX = {
232
+ width: 1440,
233
+ height: 960,
234
+ minWidth: 1024,
235
+ minHeight: 720,
236
+ };
237
+ const WINDOW_OPEN_SIZE_FEATURES = new Set(['width', 'height', 'innerwidth', 'innerheight']);
238
+ /**
239
+ * Does a `window.open()` features string ask for a window size? Electron parses
240
+ * `width`/`height` (and the `innerWidth`/`innerHeight` aliases) from the
241
+ * comma-separated `key=value` list into `BrowserWindowConstructorOptions`.
242
+ */
243
+ export function windowOpenFeaturesRequestSize(features) {
244
+ for (const entry of features.split(',')) {
245
+ const key = entry.split('=')[0]?.trim().toLowerCase();
246
+ if (key && WINDOW_OPEN_SIZE_FEATURES.has(key))
247
+ return true;
248
+ }
249
+ return false;
250
+ }
251
+ /**
252
+ * Options the Electron float's `setWindowOpenHandler` layers over a
253
+ * renderer-opened child window. Handler options OUTRANK the parsed features
254
+ * string, so this must not name a size when the opener asked for one:
255
+ * `window.open(url, name, 'popup=yes,width=1280,height=800')` (a sprinkle
256
+ * opening a fixed-size capture window) has to come out exactly 1280×800 with
257
+ * no min-size clamp. A featureless `target="_blank"` link keeps the full float
258
+ * box it always had.
259
+ */
260
+ export function buildElectronChildWindowOptions(features) {
261
+ if (windowOpenFeaturesRequestSize(features))
262
+ return { autoHideMenuBar: true };
263
+ return { autoHideMenuBar: true, ...ELECTRON_FLOAT_WINDOW_BOX };
264
+ }
230
265
  export function getElectronServeOrigin(servePort) {
231
266
  return `http://${DEFAULT_ELECTRON_SERVE_HOST}:${servePort}`;
232
267
  }