sliccy 5.59.2 → 5.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/assets/__vite-browser-external-DZX1xHt-.js +1 -0
- package/dist/ui/assets/account-store-BddNCTSm.js +98 -0
- package/dist/ui/assets/account-store-dvAfa3y8.js +38 -0
- package/dist/ui/assets/adobe-C0iTCwW2.js +1 -0
- package/dist/ui/assets/adobe-DC5UT0ZJ.js +2 -0
- package/dist/ui/assets/adobe-oauth-state-Csa5ciQS.js +1 -0
- package/dist/ui/assets/{adobe-oauth-state-BeQ7T3Vk.js → adobe-oauth-state-Vbbfo7gR.js} +1 -1
- package/dist/ui/assets/agent-message-to-chat-QyCEPmi8.js +7 -0
- package/dist/ui/assets/{anthropic-messages-BP_xL8Mh.js → anthropic-messages-CIsUSIzG.js} +3 -3
- package/dist/ui/assets/{anthropic-messages-BwBPoNP0.js → anthropic-messages-_fPAePlR.js} +3 -3
- package/dist/ui/assets/{apps-9o4o-h1Z.js → apps-ztx90XZQ.js} +1 -1
- package/dist/ui/assets/attachments-CByeG2Ru.js +1 -0
- package/dist/ui/assets/{azure-openai-BifOYnRZ.js → azure-openai-BKnOwPkT.js} +1 -1
- package/dist/ui/assets/{azure-openai-BvAdt1td.js → azure-openai-Y9U14npX.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-BXDkTtSH.js → azure-openai-responses-DhzbC_tL.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-De9pJjBR.js → azure-openai-responses-bHfWNMbx.js} +1 -1
- package/dist/ui/assets/base64-DpPqYZJF.js +1 -0
- package/dist/ui/assets/bedrock-camp-BEi8MYUS.js +1 -0
- package/dist/ui/assets/bedrock-camp-CvxD6hHk.js +1 -0
- package/dist/ui/assets/bridge-launch-params-jegYRGJ6.js +1 -0
- package/dist/ui/assets/{browser-2wdq8OwU.js → browser-COVn7LPD.js} +6 -6
- package/dist/ui/assets/{cdp-Bwq6NLAx.js → cdp-7evcrxxP.js} +1 -1
- package/dist/ui/assets/cerebras-D_u7JsxU.js +1 -0
- package/dist/ui/assets/cerebras-ZAPHCT6L.js +1 -0
- package/dist/ui/assets/client-CpLUc-P8.js +4 -0
- package/dist/ui/assets/clipboard-Bd1Wp2vH.js +1 -0
- package/dist/ui/assets/compat-DyT25qXb.js +2 -0
- package/dist/ui/assets/{completionchunk-B2eUYPOo.js → completionchunk-D8ek1SQ-.js} +1 -1
- package/dist/ui/assets/{composer-speech-CgPswGW1.js → composer-speech-BWsih2Nz.js} +1 -1
- package/dist/ui/assets/{connect-surface-CnYXozQ2.js → connect-surface-YVJhSwyb.js} +1 -1
- package/dist/ui/assets/{context-compaction-LYFtS2_f.js → context-compaction-dcYYajWb.js} +6 -6
- package/dist/ui/assets/cost-command-Cpg2Em0Q.js +1613 -0
- package/dist/ui/assets/db-DjAqlQ2I.js +1 -0
- package/dist/ui/assets/db-ysOO0kLr.js +1 -0
- package/dist/ui/assets/dictation-priming-DGpw1lUV.js +1 -0
- package/dist/ui/assets/dip-BumXS1a9.js +233 -0
- package/dist/ui/assets/discovery-preference-DCtfbqw1.js +1 -0
- package/dist/ui/assets/dist-0FRaZO2z.js +12 -0
- package/dist/ui/assets/{dist-cYpTkQqJ.js → dist-BhEJb2Dl.js} +1 -1
- package/dist/ui/assets/{dist-DD6YY4Ks2.js → dist-Bj10RLrf.js} +1 -1
- package/dist/ui/assets/{dist-BHXb30bf.js → dist-Bq5i9FMJ.js} +4 -4
- package/dist/ui/assets/dist-CJ6ilPeJ.js +18 -0
- package/dist/ui/assets/{dist-D58cmC11.js → dist-Cc2eS9kS.js} +1 -1
- package/dist/ui/assets/{dist-CC_gNVTb.js → dist-DB-MlM2G.js} +1 -1
- package/dist/ui/assets/{dist-Bw2SRiP7.js → dist-DuLHpm2f.js} +1 -1
- package/dist/ui/assets/dist-DvjiIrEx.js +23 -0
- package/dist/ui/assets/{dist-D1pcMg_U.js → dist-d2CXjMIs.js} +3 -3
- package/dist/ui/assets/electron-overlay-route-CjT6k9Df.js +1 -0
- package/dist/ui/assets/ensure-speech-assets-D2Pclall.js +1 -0
- package/dist/ui/assets/es-CP2z28j0.js +53 -0
- package/dist/ui/assets/esp8266-CkAPDkuz.js +1 -0
- package/dist/ui/assets/esptool-operations-C0DUkD34.js +13 -0
- package/dist/ui/assets/esptool-operations-iCYPdIRA.js +12 -0
- package/dist/ui/assets/extension-bridge-transport-DHBo-K6K.js +1 -0
- package/dist/ui/assets/{follower-navigate-watcher-CRVUcrQz.js → follower-navigate-watcher-Cn5RjYxg.js} +1 -1
- package/dist/ui/assets/{fs-CHAFLJ_u.js → fs-BVM9dzPP.js} +1 -1
- package/dist/ui/assets/fs-CMpdIYZs.js +2 -0
- package/dist/ui/assets/git-config-Lj0BT7Oc.js +7 -0
- package/dist/ui/assets/github-CmX1lUH3.js +2 -0
- package/dist/ui/assets/github-copilot-C9loxoyp.js +1 -0
- package/dist/ui/assets/github-copilot-JdvDIR67.js +2 -0
- package/dist/ui/assets/github-ndbvNRbv.js +1 -0
- package/dist/ui/assets/global-db-DvmmimLY.js +1 -0
- package/dist/ui/assets/{google-generative-ai-C58ldv83.js → google-generative-ai-CyS9qbzb.js} +1 -1
- package/dist/ui/assets/{google-generative-ai-Eq6eGS5h.js → google-generative-ai-DkRyuoBH.js} +1 -1
- package/dist/ui/assets/{google-shared-DQbld86Z.js → google-shared-CCJkdw81.js} +2 -2
- package/dist/ui/assets/{google-shared-DwCjfFnw.js → google-shared-p5XdfI6c.js} +3 -3
- package/dist/ui/assets/{google-vertex-C18Xl3dV.js → google-vertex-Cp9ldPyE.js} +1 -1
- package/dist/ui/assets/{google-vertex-CkkAgSFr.js → google-vertex-D7VRnbrL.js} +1 -1
- package/dist/ui/assets/{handoff-link-CLvhqfpd.js → handoff-link-CfgH86mb.js} +1 -1
- package/dist/ui/assets/hear-D7srqY_7.js +1 -0
- package/dist/ui/assets/hear-acxY6mf0.js +1 -0
- package/dist/ui/assets/hid-device-registry-DboUgvzI.js +1 -0
- package/dist/ui/assets/hid-picker-Bhoh8hxy.js +1 -0
- package/dist/ui/assets/installer-D7LGGQGy.js +3 -0
- package/dist/ui/assets/{js-realm-worker-CeYHBMC5.js → js-realm-worker-B4uCLm52.js} +3 -3
- package/dist/ui/assets/{json-parse-B51EftGA.js → json-parse-CpLf0aqK.js} +1 -1
- package/dist/ui/assets/{json-parse-C7d6hyOc.js → json-parse-rb7sUwcH.js} +1 -1
- package/dist/ui/assets/kernel-worker-DMnEeTNU.js +8759 -0
- package/dist/ui/assets/{kokoro-C-DxSDte.js → kokoro-CGDCwNNA.js} +2 -2
- package/dist/ui/assets/{kokoro-BFFlHn4y.js → kokoro-D3TYeL2z.js} +2 -2
- package/dist/ui/assets/{kokoro-engine-uXKuCuNf.js → kokoro-engine-DLKTuHMR.js} +2 -2
- package/dist/ui/assets/legacy-api-aliases-BQSsmFIS.js +1 -0
- package/dist/ui/assets/legacy-api-aliases-DWJHPSiz.js +1 -0
- package/dist/ui/assets/{legacy-styles-kYboUbpI.js → legacy-styles-DcRu2WCJ.js} +1 -1
- package/dist/ui/assets/lick-manager-Ct3WOtut.js +2 -0
- package/dist/ui/assets/lick-ws-bridge-C_bJMGw6.js +1 -0
- package/dist/ui/assets/{lick-ws-bridge-Cbwcxuba.js → lick-ws-bridge-SPFIXhG2.js} +1 -1
- package/dist/ui/assets/llm-session-id-ZObKEXzb.js +1 -0
- package/dist/ui/assets/local-llm-B5vPCdpH.js +2 -0
- package/dist/ui/assets/{local-llm-Bn1XrCIn.js → local-llm-DS8tu43V.js} +1 -1
- package/dist/ui/assets/magick-wasm-B-rybRPb.js +43 -0
- package/dist/ui/assets/main-D8Y-cnmF.js +22 -0
- package/dist/ui/assets/{main-cherry-d-KDlb8k.js → main-cherry-CGm5knH6.js} +1 -1
- package/dist/ui/assets/{mime-types-BqLkKWa7.js → mime-types-D7IV6i7k.js} +1 -1
- package/dist/ui/assets/mistral-conversations-CLDzxp2F.js +8 -0
- package/dist/ui/assets/mistral-conversations-DbKikZnf.js +7 -0
- package/dist/ui/assets/{models-ByRUWfA-.js → models-CzSI8IsT.js} +1 -1
- package/dist/ui/assets/{mount-vMc2lWlc.js → mount-C4XESP9i.js} +1 -1
- package/dist/ui/assets/mount-Hr9QXuwp.js +2 -0
- package/dist/ui/assets/{mount-bridge-client-0Afn2H9Y.js → mount-bridge-client-BVLVI9yX.js} +1 -1
- package/dist/ui/assets/mount-recovery-BHHDw9yC.js +2 -0
- package/dist/ui/assets/mount-table-store-CTrzlrNn.js +1 -0
- package/dist/ui/assets/navigation-watcher-BoJS9hdc.js +1 -0
- package/dist/ui/assets/new-session-u-78FCPG.js +2 -0
- package/dist/ui/assets/oauth-bootstrap-DHKASsxn.js +2 -0
- package/dist/ui/assets/{oauth-service-w5HZt7Xx.js → oauth-service-CmM0tZSO.js} +1 -1
- package/dist/ui/assets/oauth-service-DSuwOpMz.js +1 -0
- package/dist/ui/assets/{openai-BeH6aC_-.js → openai-BxFF4GUL.js} +2 -2
- package/dist/ui/assets/{openai-BvKpRLAG.js → openai-CmTnPr9N.js} +2 -2
- package/dist/ui/assets/openai-codex-Djc_-qM9.js +1 -0
- package/dist/ui/assets/openai-codex-gi-RyKX_.js +1 -0
- package/dist/ui/assets/{openai-codex-responses-BDYh8ojD.js → openai-codex-responses-B_k2rCqO.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-C7QnNmC0.js → openai-codex-responses-RviMslSH.js} +1 -1
- package/dist/ui/assets/{openai-completions-t-glszMQ.js → openai-completions-CGLtJfv2.js} +1 -1
- package/dist/ui/assets/{openai-completions-BnAjXzgN.js → openai-completions-COYKlBqA.js} +1 -1
- package/dist/ui/assets/{openai-responses-o9_kr7GP.js → openai-responses-C4mUX6jK.js} +1 -1
- package/dist/ui/assets/{openai-responses-BofM6cmY.js → openai-responses-D02gU0ey.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-79gch22X.js → openai-responses-shared-CCTyKL6A.js} +2 -2
- package/dist/ui/assets/{openai-responses-shared-DKPwc9Eh.js → openai-responses-shared-bVKJbQt9.js} +2 -2
- package/dist/ui/assets/{openrouter-images-PT0FZmkM.js → openrouter-images-BrQDTa3_.js} +1 -1
- package/dist/ui/assets/{openrouter-images-D0dgD5eX.js → openrouter-images-DtvjLeGK.js} +1 -1
- package/dist/ui/assets/otel-C1NYdIbe.js +3 -0
- package/dist/ui/assets/otel-joHgpnL_.js +3 -0
- package/dist/ui/assets/page-follower-tray-DFeLlotx.js +5 -0
- package/dist/ui/assets/panel-rpc-handlers-CTZqBsvr.js +2 -0
- package/dist/ui/assets/{pdfjs-BdCnB7P8.js → pdfjs-B1saeD0h.js} +5 -5
- package/dist/ui/assets/{port-bridge-client-Btb0CfZS.js → port-bridge-client-CdvMlimf.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-BtsJUDjt.js → port-bridge-client-CsrXhMWo.js} +1 -1
- package/dist/ui/assets/preload-helper-Czpn1I53.js +1 -0
- package/dist/ui/assets/process-manager-B5dz0PkO.js +1 -0
- package/dist/ui/assets/provider-DeZ3vGbS.js +2 -0
- package/dist/ui/assets/provider-POdkeNpc.js +1 -0
- package/dist/ui/assets/provider-settings-3FoUN196.js +1 -0
- package/dist/ui/assets/provider-settings-BraIAAA7.js +2 -0
- package/dist/ui/assets/provider-store-access-B_pR-9Xx.js +2 -0
- package/dist/ui/assets/provider-store-access-BkJ_SWbe.js +1 -0
- package/dist/ui/assets/providers-B26DtTJa.js +1 -0
- package/dist/ui/assets/providers-CvODsjGm.js +2 -0
- package/dist/ui/assets/proxied-fetch-DETjVL-j.js +2 -0
- package/dist/ui/assets/proxied-fetch-sbHa3Tte.js +1 -0
- package/dist/ui/assets/{py-realm-worker-C5_FcpVv.js → py-realm-worker-VuYxvTG9.js} +2 -2
- package/dist/ui/assets/{pyodide-CVuZVKDU.js → pyodide-BahZNzwn.js} +2 -2
- package/dist/ui/assets/{quick-llm-D_B5T-_G.js → quick-llm-DzhE1JW0.js} +1 -1
- package/dist/ui/assets/{readline-D4m_9EmN.js → readline-0OE_8qoR.js} +1 -1
- package/dist/ui/assets/remote-cdp-transport-DOoXIxy3.js +1 -0
- package/dist/ui/assets/{remote-terminal-view-BOSJ_t1v.js → remote-terminal-view-C7x7cM1d.js} +2 -2
- package/dist/ui/assets/runtime-mode-M-qJL9jF.js +1 -0
- package/dist/ui/assets/safe-buffer-C0pSmFaz.js +12 -0
- package/dist/ui/assets/script-catalog-BYXhqRAc.js +2 -0
- package/dist/ui/assets/{secret-env-CGjJCzwN.js → secret-env-1E2r2H5F.js} +1 -1
- package/dist/ui/assets/{secret-topology-_rfIhUjY.js → secret-topology-D2k1IxFk.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-a5aLwwny.js → secrets-bridge-client-CONYX8PU.js} +1 -1
- package/dist/ui/assets/serial-picker-CUd91lje.js +1 -0
- package/dist/ui/assets/session-freezer-CUzeQ9yz.js +21 -0
- package/dist/ui/assets/{setup-sprinkle-exec-P2hO-taT.js → setup-sprinkle-exec-DD6jqggr.js} +1 -1
- package/dist/ui/assets/setup-sudo-cXyK0NGW.js +2 -0
- package/dist/ui/assets/{shared-Cq5Q0noX.js → shared-Dwjvg8S5.js} +1 -1
- package/dist/ui/assets/shared-X5SFnyK-.js +4 -0
- package/dist/ui/assets/skills-otSlGBFl.js +6 -0
- package/dist/ui/assets/{slicc-editor-DKckizoI.js → slicc-editor-BoIEeofq.js} +2 -2
- package/dist/ui/assets/{speak-DG2fJcBd.js → speak-WMi1eHMn.js} +3 -3
- package/dist/ui/assets/{speak-D1O_Xrcr.js → speak-YEgNUk4w.js} +1 -1
- package/dist/ui/assets/{sprinkle-bridge-C0ycYX8f.js → sprinkle-bridge-CmJpELpy.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-DXrwoVHS.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-Bk_e6Kbr.js → sprinkle-renderer-B0y9_9py.js} +2 -2
- package/dist/ui/assets/{wc-shell-BUIX3UPq.js → src-6TqoULh8.js} +94 -211
- package/dist/ui/assets/src-CS5gSDhT.js +1 -0
- package/dist/ui/assets/src-Dk1QVJRd.js +1 -0
- package/dist/ui/assets/store-BfzctFJC.js +1 -0
- package/dist/ui/assets/{sudo-tWv6esvM.js → sudo-LN3PJp6v.js} +1 -1
- package/dist/ui/assets/telemetry-C8rZr13D.js +3 -0
- package/dist/ui/assets/timestamp-preference-DgrTvVNx.js +2 -0
- package/dist/ui/assets/transcript-limits-D0M7bLr9.js +1 -0
- package/dist/ui/assets/{transform-messages-ZX8cvJiJ.js → transform-messages-CVIV-EgO.js} +1 -1
- package/dist/ui/assets/transform-messages-fFaW-DLG.js +1 -0
- package/dist/ui/assets/transformers-env-8w05vuhN.js +1 -0
- package/dist/ui/assets/{transformers-env-w-btTDFl.js → transformers-env-sL29_hFb.js} +1 -1
- package/dist/ui/assets/{transformers.web-C6PlPLR-.js → transformers.web-CrioJkWG.js} +4 -4
- package/dist/ui/assets/{transformers.web-DkJGoARp.js → transformers.web-D6viRW2X.js} +5 -5
- package/dist/ui/assets/tray-follower-status-CyJIKXH4.js +1 -0
- package/dist/ui/assets/tray-join-url-BIvzbiFR.js +1 -0
- package/dist/ui/assets/tray-leader-DcLymd_E.js +1 -0
- package/dist/ui/assets/tray-leave-runtime-lJcLlwtm.js +1 -0
- package/dist/ui/assets/tray-runtime-config-DJIIJaBR.js +1 -0
- package/dist/ui/assets/tray-runtime-config-DlPGhxQs.js +1 -0
- package/dist/ui/assets/tray-sync-protocol-CVdiCvfU.js +1 -0
- package/dist/ui/assets/upgrade-detection-DIIyklC5.js +1 -0
- package/dist/ui/assets/usb-device-registry-BOGfZXgp.js +1 -0
- package/dist/ui/assets/{usb-operations-D-YdmmuG.js → usb-operations-BQbhk96u.js} +1 -1
- package/dist/ui/assets/usb-picker-Cl6Cwuv9.js +1 -0
- package/dist/ui/assets/voice-reply-DHV6R4En.js +1 -0
- package/dist/ui/assets/wc-attach-DU0svqb7.js +13 -0
- package/dist/ui/assets/wc-extension-oy0LEz26.js +2 -0
- package/dist/ui/assets/{wc-float-label-CNeJqRLg.js → wc-float-label-DeQPr3pd.js} +1 -1
- package/dist/ui/assets/wc-follower-DcQtc8YB.js +17 -0
- package/dist/ui/assets/wc-live-D7BaYtR7.js +8 -0
- package/dist/ui/assets/wc-nav-BqxVwvjV.js +2 -0
- package/dist/ui/assets/wc-onboarding-D9lPUOm-.js +2 -0
- package/dist/ui/assets/{wc-permissions-CAEOwurQ.js → wc-permissions-DW60QZxV.js} +3 -3
- package/dist/ui/assets/wc-permissions-providers-DMTDytlu.js +2 -0
- package/dist/ui/assets/wc-placeholder-C0wfdFBG.js +4 -0
- package/dist/ui/assets/wc-scoop-color-CByZNEJo.js +1 -0
- package/dist/ui/assets/wc-settings-qEE2zwaO.js +51 -0
- package/dist/ui/assets/wc-shell-BHZzK20y.js +117 -0
- package/dist/ui/assets/wc-sprinkles-DlE9uQTj.js +2 -0
- package/dist/ui/assets/wc-tray-BdFq9TlZ.js +2 -0
- package/dist/ui/assets/{whisper-engine-BHlrRP_X.js → whisper-engine-C0mT2z02.js} +1 -1
- package/dist/ui/assets/whisper-session-DvjyTCj0.js +2 -0
- package/dist/ui/assets/xai-grok-Bx0idvJc.js +1 -0
- package/dist/ui/assets/xai-grok-CemZ8tZD.js +1 -0
- package/dist/ui/assets/xterm-DX7Hb5S-.js +47 -0
- package/dist/ui/assets/xterm-U4TA8lIC.js +35 -0
- package/dist/ui/index.html +24 -15
- package/dist/ui/packages/webapp/index.html +24 -15
- package/package.json +2 -2
- package/dist/ui/assets/__vite-browser-external-s4_sx6bN.js +0 -1
- package/dist/ui/assets/account-store-B8fkPmC7.js +0 -103
- package/dist/ui/assets/account-store-VWDFUG4w.js +0 -38
- package/dist/ui/assets/adobe-Cq8jcHMI.js +0 -1
- package/dist/ui/assets/adobe-Dd07woZ4.js +0 -2
- package/dist/ui/assets/adobe-oauth-state-UjunBhEy.js +0 -1
- package/dist/ui/assets/agent-message-to-chat-B5QkdBqr.js +0 -7
- package/dist/ui/assets/bedrock-camp-CZFsedRI.js +0 -1
- package/dist/ui/assets/bedrock-camp-Czep_VHL.js +0 -1
- package/dist/ui/assets/cdp-bridge-CUqQUcaF.js +0 -1
- package/dist/ui/assets/cerebras-BvIwtmYU.js +0 -1
- package/dist/ui/assets/cerebras-CtDsI5t_.js +0 -1
- package/dist/ui/assets/clipboard-DYJRGAtu.js +0 -1
- package/dist/ui/assets/compat-FrhC6T45.js +0 -2
- package/dist/ui/assets/dip-C3FVgAp9.js +0 -1
- package/dist/ui/assets/discovery-preference-ChE43Rww.js +0 -1
- package/dist/ui/assets/dist-0c-Ms6jt.js +0 -23
- package/dist/ui/assets/dist-C30gQBcj2.js +0 -12
- package/dist/ui/assets/dist-ClEUNLR-.js +0 -18
- package/dist/ui/assets/ensure-speech-assets-DstqSdfZ.js +0 -1
- package/dist/ui/assets/es-kEo2Tmh4.js +0 -53
- package/dist/ui/assets/esp8266-DhxGJGHR.js +0 -1
- package/dist/ui/assets/esp8266-dt3vHImh.js +0 -1
- package/dist/ui/assets/esptool-operations-BBtDOaij.js +0 -12
- package/dist/ui/assets/esptool-operations-wGO-l9-a.js +0 -13
- package/dist/ui/assets/extension-bridge-transport-Bi9JIuzJ.js +0 -1
- package/dist/ui/assets/fs-Bkm8VZTn.js +0 -2
- package/dist/ui/assets/github-BeBf_tPt.js +0 -1
- package/dist/ui/assets/github-DVGask0m.js +0 -2
- package/dist/ui/assets/github-copilot-C_189pyB.js +0 -2
- package/dist/ui/assets/github-copilot-D_2n36Iv.js +0 -1
- package/dist/ui/assets/hear-B6LfLMgq.js +0 -1
- package/dist/ui/assets/hear-tL55Pr9X.js +0 -1
- package/dist/ui/assets/hid-device-registry-6w-g8ZpF.js +0 -1
- package/dist/ui/assets/hid-picker-Cp7Sp5N-.js +0 -1
- package/dist/ui/assets/kernel-worker-Yib4X2rK.js +0 -10443
- package/dist/ui/assets/lick-ws-bridge-DcIF2ReT.js +0 -1
- package/dist/ui/assets/main-CN--RCWy.js +0 -24
- package/dist/ui/assets/mistral-conversations-DKqvekSA.js +0 -7
- package/dist/ui/assets/mistral-conversations-szVW8BsU.js +0 -8
- package/dist/ui/assets/mount-D4hso6oU.js +0 -2
- package/dist/ui/assets/mount-id-nJcx05eu.js +0 -1
- package/dist/ui/assets/mount-table-store-s20mtVA3.js +0 -1
- package/dist/ui/assets/navigation-watcher-DTSw-td6.js +0 -1
- package/dist/ui/assets/new-session-Xv5Kw8-N.js +0 -2
- package/dist/ui/assets/oauth-bootstrap-C1TvVgVm.js +0 -2
- package/dist/ui/assets/oauth-service-Cf0jA8F5.js +0 -1
- package/dist/ui/assets/openai-codex-CEstk2ir.js +0 -1
- package/dist/ui/assets/openai-codex-wHLeOM3p.js +0 -1
- package/dist/ui/assets/otel-BvlmHUjk.js +0 -3
- package/dist/ui/assets/otel-CCT7TRJr.js +0 -3
- package/dist/ui/assets/page-follower-tray-B6HRGJrV.js +0 -5
- package/dist/ui/assets/panel-rpc-handlers-DKYTrToh.js +0 -2
- package/dist/ui/assets/preload-helper-CZgWQFsJ.js +0 -1
- package/dist/ui/assets/provider-DN6we75z.js +0 -1
- package/dist/ui/assets/provider-settings-CrHdjWRY.js +0 -1
- package/dist/ui/assets/provider-store-access-24wOseEM.js +0 -1
- package/dist/ui/assets/provider-store-access-C92IYCEl.js +0 -1
- package/dist/ui/assets/provider-zLIF1UQc.js +0 -2
- package/dist/ui/assets/providers-CmWab6F3.js +0 -1
- package/dist/ui/assets/providers-D2g-3ix9.js +0 -2
- package/dist/ui/assets/proxied-fetch-CQqrhHlW.js +0 -1
- package/dist/ui/assets/proxied-fetch-D3wsof0i.js +0 -2
- package/dist/ui/assets/remote-cdp-transport-DspFAFy_.js +0 -1
- package/dist/ui/assets/serial-picker-bJGym01W.js +0 -1
- package/dist/ui/assets/session-freezer-DtJb5_ro.js +0 -1
- package/dist/ui/assets/sprinkle-manager-CSCqntix.js +0 -1
- package/dist/ui/assets/src-BQoW5KdD.js +0 -1
- package/dist/ui/assets/src-BvERX0WZ.js +0 -1
- package/dist/ui/assets/store-2nS5H77F.js +0 -1
- package/dist/ui/assets/transform-messages-DwI5R8if.js +0 -1
- package/dist/ui/assets/transformers-env-D9qkXm3g.js +0 -1
- package/dist/ui/assets/tray-leader-CqFDvcNH.js +0 -1
- package/dist/ui/assets/tray-leave-runtime-C4sJoGLD.js +0 -1
- package/dist/ui/assets/upgrade-detection-Ba_0YKaQ.js +0 -1
- package/dist/ui/assets/usb-device-registry-k6vTKonT.js +0 -1
- package/dist/ui/assets/usb-picker-DJjZemi7.js +0 -1
- package/dist/ui/assets/voice-reply-DQhloSOU.js +0 -1
- package/dist/ui/assets/wc-attach-BhQT8ZHR.js +0 -13
- package/dist/ui/assets/wc-extension-C4UUKHE1.js +0 -2
- package/dist/ui/assets/wc-follower-yEiXLTkQ.js +0 -17
- package/dist/ui/assets/wc-live-CVqsJqLB.js +0 -258
- package/dist/ui/assets/wc-nav-CIhQdld0.js +0 -2
- package/dist/ui/assets/wc-onboarding-ByJ2OTEx.js +0 -2
- package/dist/ui/assets/wc-permissions-providers-CbkqRh4J.js +0 -2
- package/dist/ui/assets/wc-placeholder-BzfJm5K3.js +0 -4
- package/dist/ui/assets/wc-settings-CZ9BR9F3.js +0 -51
- package/dist/ui/assets/wc-sprinkles-aeMd0T-B.js +0 -2
- package/dist/ui/assets/wc-tray-D34gP9Uw.js +0 -2
- package/dist/ui/assets/whisper-session-C8cizjJD.js +0 -2
- package/dist/ui/assets/xai-grok-ltyrVlT-.js +0 -1
- package/dist/ui/assets/xai-grok-p0W6Xjk5.js +0 -1
- package/dist/ui/assets/xterm-DMlKjmUi.js +0 -36
- package/dist/ui/assets/xterm-Dwh1I9AE.js +0 -48
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function t(){return{...e}}var n=`slicc.followerTrayStatus`,r=new Set;function i(e){return r.add(e),()=>{r.delete(e)}}function a(){if(r.size!==0)for(let t of[...r])try{t({...e})}catch{}}function o(t){e={...t},a()}function s(t){e={...e,lastPingTime:t},a()}export{i as a,o as i,t as n,s as r,n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,n){if(e.state===`inactive`&&n.state===`inactive`)return{kind:`leader-offer`,label:`Enable multi-browser sync`,caption:`Connect another browser to this session.`};if(e.state===`leader`&&e.session?.joinUrl)return{kind:`leader-copy`,joinUrl:e.session.joinUrl,label:`Enable multi-browser sync`,caption:`Share this URL to connect more browsers.`};if(e.state!==`inactive`){let t=e.state===`connecting`?`Setting up multi-browser sync…`:e.state===`reconnecting`?`Reconnecting…`:`Sync service unreachable.`;return{kind:`leader-pending`,label:`Multi-browser sync`,caption:e.error??t}}return{kind:`follower`,label:`Multi-browser sync`,caption:n.error??n.lastError??t(n.state)??`Mirroring another browser.`}}function t(e){switch(e){case`connected`:return`Connected — mirroring another browser.`;case`connecting`:return`Connecting to the other browser…`;case`reconnecting`:return`Reconnecting…`;case`disconnected`:return`Disconnected from the other browser.`;default:return null}}function n(e){let t=e.trim();if(!t)return`Paste a sync URL to continue.`;let n=null;try{n=new URL(t)}catch{return`That doesn’t look like a URL. Paste the full https://… link from the other browser.`}return n.protocol!==`https:`&&n.protocol!==`http:`?`Sync URLs must start with https://.`:n.pathname.includes(`/join/`)?`That sync URL is malformed. Re-copy it from the other browser and try again.`:`This URL is missing the /join/… capability. Use “Enable multi-browser sync” on the other browser.`}export{n,e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-DDBAeTLF.js";import{d as n,o as r,t as i,u as a}from"./proxied-fetch-DETjVL-j.js";import{n as o}from"./runtime-env-DH4NDw4t.js";import{a as s}from"./tray-runtime-config-DJIIJaBR.js";import{n as c,r as l}from"./db-ysOO0kLr.js";var u=e({IndexedDbLeaderTraySessionStore:()=>T,LEADER_STATUS_STORAGE_KEY:()=>LEADER_STATUS_STORAGE_KEY,LeaderTrayManager:()=>D,TrayProxyFetchError:()=>k,createTrayFetch:()=>M,getLeaderTrayRuntimeStatus:()=>x,parseLeaderTraySession:()=>E,setLeaderTrayRuntimeStatus:()=>w,subscribeToLeaderTrayRuntimeStatus:()=>C}),d=t(`tray-leader`),f=`leader-tray-session`,p=3e4,m=1e4,h=1e3,g=3e4,_=2,v=20,y=1e4,b={state:`inactive`,session:null,error:null};function x(){return{...b,session:b.session?{...b.session}:null}}var S=new Set;function C(e){return S.add(e),()=>{S.delete(e)}}function w(e){if(b={...e,session:e.session?{...e.session}:null},S.size!==0)for(let e of[...S])try{e(x())}catch{}}var T=class{key;constructor(e=f){this.key=e}async load(){return E(await c(this.key))}async save(e){await l(this.key,JSON.stringify(e))}async clear(){await l(this.key,``)}};function E(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.workerBaseUrl!=`string`||typeof t.trayId!=`string`||typeof t.createdAt!=`string`||typeof t.controllerId!=`string`||typeof t.controllerUrl!=`string`||typeof t.joinUrl!=`string`||typeof t.webhookUrl!=`string`||typeof t.runtime!=`string`?null:{workerBaseUrl:t.workerBaseUrl,trayId:t.trayId,createdAt:t.createdAt,controllerId:t.controllerId,controllerUrl:t.controllerUrl,joinUrl:t.joinUrl,webhookUrl:t.webhookUrl,leaderKey:typeof t.leaderKey==`string`?t.leaderKey:void 0,leaderWebSocketUrl:typeof t.leaderWebSocketUrl==`string`?t.leaderWebSocketUrl:null,runtime:t.runtime}}catch{return null}}var D=class{options;store;fetchImpl;webSocketFactory;pingIntervalMs;connectTimeoutMs;reconnectEnabled;reconnectBaseDelayMs;reconnectMaxDelayMs;reconnectBackoffMultiplier;reconnectMaxAttempts;reconnectSleep;socket=null;pingTimer=null;currentSession=null;stopped=!1;reconnecting=!1;reconnectGeneration=0;constructor(e){this.options=e,this.store=e.store??new T,this.fetchImpl=e.fetchImpl??M(),this.webSocketFactory=e.webSocketFactory??(e=>new WebSocket(e)),this.pingIntervalMs=e.pingIntervalMs??p,this.connectTimeoutMs=e.connectTimeoutMs??m;let t=e.reconnect;this.reconnectEnabled=t!==!1;let n=t===!1||!t?{}:t;this.reconnectBaseDelayMs=n.baseDelayMs??h,this.reconnectMaxDelayMs=n.maxDelayMs??g,this.reconnectBackoffMultiplier=n.backoffMultiplier??_,this.reconnectMaxAttempts=n.maxAttempts??v,this.reconnectSleep=n.sleep??(e=>new Promise(t=>setTimeout(t,e)))}async start(){if(this.stopped=!1,this.currentSession&&this.socket)return w({state:`leader`,session:this.currentSession,error:null}),this.currentSession;w({state:`connecting`,session:null,error:null}),this.currentSession=null;try{let e=await this.connectOnce();d.info(`Leader joined tray`,{trayId:e.trayId,controllerId:e.controllerId,runtime:e.runtime});try{this.options.onLeaderReady?.(e)}catch(e){d.warn(`onLeaderReady callback threw`,{error:e instanceof Error?e.message:String(e)})}return e}catch(e){throw w({state:`error`,session:this.currentSession,error:e instanceof Error?e.message:String(e)}),e}}stop(){this.stopped=!0,this.reconnecting=!1,this.reconnectGeneration++,this.tearDownSocket(),this.currentSession=null,w({state:`inactive`,session:null,error:null})}tearDownSocket(){this.pingTimer&&=(clearInterval(this.pingTimer),null);let e=this.socket;if(this.socket=null,e)try{e.close()}catch{}}async connectOnce(){let e=await this.store.load(),t=e?.workerBaseUrl===this.options.workerBaseUrl?e:null,n=await this.attachWithRecovery(t);this.currentSession=n;let r=await this.openLeaderSocket(n.leaderWebSocketUrl);return this.socket=r,this.startPingLoop(r),w({state:`leader`,session:n,error:null}),n}async handleUnexpectedDisconnect(e){if(this.stopped)return;if(!this.reconnectEnabled){d.warn(`Leader WebSocket dropped and auto-reconnect is disabled`,{reason:e}),this.tearDownSocket(),this.currentSession=null,w({state:`error`,session:null,error:`Leader WebSocket dropped: ${e}`});return}if(this.reconnecting)return;this.reconnecting=!0;let t=++this.reconnectGeneration;d.warn(`Leader WebSocket dropped — starting reconnect loop`,{reason:e}),this.tearDownSocket();let n=0,r=this.reconnectBaseDelayMs,i=e;for(;!this.stopped&&t===this.reconnectGeneration&&n<this.reconnectMaxAttempts&&(n++,w({state:`reconnecting`,session:this.currentSession,error:null,reconnectAttempts:n}),this.options.onReconnecting?.(n,i),d.info(`Leader reconnect attempt`,{attempt:n,delay:r}),await this.reconnectSleep(r),!(this.stopped||t!==this.reconnectGeneration));){try{let e=await this.connectOnce();if(this.stopped||t!==this.reconnectGeneration){this.tearDownSocket();break}this.reconnecting=!1,d.info(`Leader reconnect successful`,{attempt:n,trayId:e.trayId}),this.options.onReconnected?.(e);try{this.options.onLeaderReady?.(e)}catch(e){d.warn(`onLeaderReady callback threw`,{error:e instanceof Error?e.message:String(e)})}return}catch(e){i=e instanceof Error?e.message:String(e),d.warn(`Leader reconnect attempt failed`,{attempt:n,error:i}),this.tearDownSocket()}r=Math.min(r*this.reconnectBackoffMultiplier,this.reconnectMaxDelayMs)}!this.stopped&&t===this.reconnectGeneration&&(this.reconnecting=!1,this.currentSession=null,w({state:`error`,session:null,error:`Leader reconnect failed after ${n} attempts: ${i}`,reconnectAttempts:n}),d.warn(`Leader reconnect gave up`,{attempts:n,lastError:i}),this.options.onReconnectGaveUp?.(i,n))}async clearSession(){await this.store.clear()}sendControlMessage(e){if(!this.socket)throw Error(`Tray leader WebSocket is not connected`);this.socket.send(JSON.stringify(e))}async attachWithRecovery(e){try{return await this.claimLeaderSession(e)}catch(t){if(!e||!A(t))throw t;d.warn(`Stored tray session is stale, creating a fresh tray`,{trayId:e.trayId,error:t instanceof Error?t.message:String(t)}),await this.store.clear();let n=await this.claimLeaderSession(null);return this.notifyTraySuperseded(e,n.joinUrl),n}}async notifyTraySuperseded(e,t){try{let n=new URL(e.controllerUrl).pathname.split(`/`).pop();if(!n)return;let r=s(e.workerBaseUrl,`api/tray/${e.trayId}/supersede`);await this.fetchImpl(r,{method:`POST`,headers:{"content-type":`application/json`,authorization:`Bearer ${n}`},body:JSON.stringify({joinUrl:t}),signal:AbortSignal.timeout(y)})}catch(t){d.warn(`Failed to notify old tray of supersession (best-effort)`,{oldTrayId:e.trayId,error:t instanceof Error?t.message:String(t)})}}async claimLeaderSession(e){let t=e??await this.createTraySession(),n=await this.fetchJson(t.controllerUrl,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({controllerId:t.controllerId,leaderKey:t.leaderKey,runtime:this.options.runtime})});if(n.role!==`leader`||!n.leaderKey||!n.websocket?.url)throw Error(`Tray attach did not return leader access for controller ${n.controllerId}`);let r={...t,trayId:n.trayId,controllerId:n.controllerId,leaderKey:n.leaderKey,leaderWebSocketUrl:n.websocket.url,runtime:this.options.runtime};return await this.store.save(r),r}async createTraySession(){let e=this.options.kind?JSON.stringify({kind:this.options.kind}):void 0,t=await this.fetchJson(s(this.options.workerBaseUrl,`tray`),{method:`POST`,...e?{headers:{"content-type":`application/json`}}:{},...e?{body:e}:{}});return{workerBaseUrl:this.options.workerBaseUrl,trayId:t.trayId,createdAt:t.createdAt,controllerId:crypto.randomUUID(),controllerUrl:t.capabilities.controller.url,joinUrl:t.capabilities.join.url,webhookUrl:t.capabilities.webhook.url,runtime:this.options.runtime}}async openLeaderSocket(e){return await new Promise((t,n)=>{let r=this.webSocketFactory(e),i=!1,a=setTimeout(()=>{o(`Tray leader WebSocket timed out after ${this.connectTimeoutMs}ms waiting for leader.connected`);try{r.close(1e3,`leader.connected timeout`)}catch{}},this.connectTimeoutMs),o=e=>{i||(i=!0,clearTimeout(a),n(Error(e)))};r.addEventListener(`message`,e=>{let n=j(e.data);if(n){if(n.type===`leader.connected`){i||(i=!0,clearTimeout(a),t(r));return}if(n.type===`pong`){d.debug(`Tray leader heartbeat acknowledged`,{trayId:this.currentSession?.trayId});return}this.options.onControlMessage?.(n)}}),r.addEventListener(`close`,()=>o(`Tray leader WebSocket closed before leader.connected`)),r.addEventListener(`error`,()=>o(`Tray leader WebSocket failed before leader.connected`))})}startPingLoop(e){this.pingTimer&&clearInterval(this.pingTimer);let t=t=>{this.stopped||this.socket!==e||this.handleUnexpectedDisconnect(t).catch(e=>{d.warn(`Leader reconnect loop crashed`,{error:e instanceof Error?e.message:String(e)})})},n=()=>{try{e.send(JSON.stringify({type:`ping`}))}catch(e){t(`Leader ping send failed: ${e instanceof Error?e.message:String(e)}`)}};n(),this.pingTimer=setInterval(n,this.pingIntervalMs),e.addEventListener(`close`,()=>t(`Leader WebSocket closed`)),e.addEventListener(`error`,()=>t(`Leader WebSocket errored`))}async fetchJson(e,t){let n=await this.fetchImpl(e,t);if(!n.ok)throw await O.fromResponse(n);return await n.json()}},O=class e extends Error{status;code;constructor(e,t,n){super(n),this.status=e,this.code=t,this.name=`LeaderTrayHttpError`}static async fromResponse(t){try{let n=await t.json();return new e(t.status,n.code??null,n.error??`Tray request failed (${t.status})`)}catch{return new e(t.status,null,`Tray request failed (${t.status})`)}}},k=class extends Error{constructor(e){super(e),this.name=`TrayProxyFetchError`}};function A(e){return e instanceof k?!0:e instanceof O?e.status===403||e.status===404||e.status===410||e.status>=500:!1}function j(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function M(e=fetch){return o()?(t,n)=>e(t,n):async(t,o={})=>{let s=typeof t==`string`?t:t.toString();try{if(new URL(s).origin===window.location.origin)return e(s,{...o,cache:`no-store`})}catch{}let c=new Headers(o.headers);c.set(`X-Target-URL`,s);for(let[e,t]of Object.entries(i()))c.set(e,t);let l=await e(r(`/api/fetch-proxy`),{...o,headers:c,cache:`no-store`});if(a(l))throw new k(await n(l));return l}}export{u as a,C as i,x as n,w as r,D as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t}from"./tray-runtime-config-DJIIJaBR.js";async function n(n,a){let o=a.getLeader()?`leader`:a.getFollower()?`follower`:`inactive`,s=a.getLeader();a.setLeader(null);let c=a.getFollower();a.setFollower(null),a.clearLeaderHooks();let{requestId:l}=n;try{s?.stop()}catch(e){a.log.error(`Leader stop threw during tray-leave — resources may have leaked`,{requestId:l,error:e instanceof Error?e.message:String(e)})}try{c?.stop()}catch(e){a.log.error(`Follower stop threw during tray-leave — resources may have leaked`,{requestId:l,error:e instanceof Error?e.message:String(e)})}if(i(()=>a.storage.removeItem(e),a.log,`join-clear`,l),n.workerBaseUrl===null)return i(()=>a.storage.removeItem(t),a.log,`worker-clear`,l),o===`inactive`?{kind:`noop`}:{kind:`left`,previousMode:o};let u=n.workerBaseUrl,d;try{d=a.startLeader(u)}catch(e){throw a.log.error(`startLeader failed during tray-leave — runtime is now dormant`,{workerBaseUrl:u,requestId:l,error:e instanceof Error?e.message:String(e)}),i(()=>a.storage.removeItem(t),a.log,`worker-clear-on-failure`,l),e}a.setLeader(d),a.wireLeaderHooks(d);try{await d.ready}catch(e){throw r(d,a,e,u,l),e}return a.getLeader()===d?(i(()=>a.storage.setItem(t,u),a.log,`worker-set`,l),{kind:`switched`,previousMode:o,workerBaseUrl:u}):(a.log.error(`Leader superseded during connect — skipping storage write`,{workerBaseUrl:u,requestId:l}),{kind:`switched`,previousMode:o,workerBaseUrl:u})}function r(e,n,r,a,o){let s=n.getLeader()===e;try{e.stop()}catch(e){n.log.error(`Leader stop threw during async-failure rollback — resources may have leaked`,{requestId:o,error:e instanceof Error?e.message:String(e)})}s&&(n.setLeader(null),n.clearLeaderHooks(),i(()=>n.storage.removeItem(t),n.log,`worker-clear-on-async-failure`,o)),n.log.error(`Leader ready failed during tray-leave — runtime is now dormant`,{workerBaseUrl:a,requestId:o,error:r instanceof Error?r.message:String(r)})}function i(e,t,n,r){try{e()}catch(e){t.error(`tray-leave storage write failed`,{kind:n,requestId:r,error:e instanceof Error?e.message:String(e)})}}export{n as performTrayLeave};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./src-CS5gSDhT.js";import{o as t,t as n}from"./proxied-fetch-DETjVL-j.js";import"./messages-BD4p8GuF.js";var r=`tray`,i=`trayWorkerUrl`,a=`lead`;function o(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function s(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.toString(),r=t.pathname.split(`/`).filter(Boolean);if(r.length<2||r.at(-2)!==`join`)return null;let[i,a,...s]=decodeURIComponent(r.at(-1)).split(`.`);if(!i||!a||s.length>0)return null;r.splice(-2,2),t.pathname=r.length>0?`/${r.join(`/`)}`:`/`;let c=o(t.toString());return c?{workerBaseUrl:c,trayId:i,joinUrl:n}:null}catch{return null}}function c(e,t){let n=new URL(e);return n.searchParams.delete(i),n.searchParams.delete(a),n.searchParams.set(r,t),n.toString()}var l=`slicc.trayWorkerBaseUrl`,u=`slicc.trayJoinUrl`,d=e;function f(e,t){let n=o(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t.replace(/^\/+/,``);return new URL(r,`${n}/`).toString()}function p(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=null;if(n.length>=2&&n.at(-2)===`tray`)r=decodeURIComponent(n.at(-1)),n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`;else if(n.length>=2&&n.at(-2)===`join`)return s(t.toString());let i=o(t.toString());return i?{workerBaseUrl:i,trayId:r,joinUrl:null}:null}catch{return null}}function m(e){let t=p(e);return t?.joinUrl?t:null}function h(e,t){let n=m(t);return n?(e.setItem(u,n.joinUrl),e.setItem(l,n.workerBaseUrl),n):null}function g(e){return!!m(e?.getItem(`slicc.trayJoinUrl`)??null)}function _(e,t){let n=!1;try{let t=new URL(e),i=t.searchParams.get(r);if(i!==null){n=!0;let e=p(i);if(e?.joinUrl)return e.joinUrl}t.searchParams.get(`slicc`)===`leader`&&(n=!0)}catch{}let i=p(e);return i?.joinUrl?i.joinUrl:(i?.trayId&&(n=!0),n?null:m(t?.getItem(`slicc.trayJoinUrl`)??null)?.joinUrl??null)}function v(e){try{let t=new URL(e);t.searchParams.delete(r);let n=t.pathname.split(`/`).filter(Boolean);return n.length>=2&&n.at(-2)===`join`&&(n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`),t.toString()}catch{return e}}function y(e,t){let n=o(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t?.trim();return r?new URL(`tray/${encodeURIComponent(r)}`,`${n}/`).toString():n}function b(e,t,n){return c(e,y(t,n))}async function x(e){let t=w(e.locationHref);if(t)return e.storage&&(t.joinUrl&&e.storage.setItem(u,t.joinUrl),e.storage.setItem(l,t.workerBaseUrl)),t;let n=m(e.storage?.getItem(`slicc.trayJoinUrl`)??null);if(n)return e.storage&&e.storage.setItem(l,n.workerBaseUrl),n;let r=e.runtimeConfigFetcher?await T(e.runtimeConfigFetcher):null;if(r?.joinConfig)return e.storage&&(e.storage.setItem(u,r.joinConfig.joinUrl),e.storage.setItem(l,r.joinConfig.workerBaseUrl)),r.joinConfig;let i=r?.workerBaseUrl??null,a=o(e.storage?.getItem(`slicc.trayWorkerBaseUrl`)??null),s=o(e.envBaseUrl??null),c=o(e.defaultWorkerBaseUrl??null),d=i??a??s??c;return d?(e.storage&&e.storage.setItem(l,d),{workerBaseUrl:d,trayId:null,joinUrl:null}):null}async function S(e){return(await x(e))?.workerBaseUrl??null}async function C(e=fetch){try{let r=await e(t(`/api/runtime-config`),{cache:`no-store`,headers:n()});return r.ok?await r.json():null}catch{return null}}function w(e){try{let t=new URL(e),n=p(t.searchParams.get(r));if(n)return n;let c=p(t.searchParams.get(a));if(c)return c;let l=o(t.searchParams.get(i));return l?{workerBaseUrl:l,trayId:null,joinUrl:null}:s(e)||null}catch{return null}}async function T(e){let t=await e();if(!t)return null;let n=m(t.trayJoinUrl??null);return{workerBaseUrl:o(t.trayWorkerBaseUrl??null),joinConfig:n}}export{f as a,_ as c,h as d,v as f,b as i,x as l,u as n,C as o,l as r,g as s,d as t,S as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./proxied-fetch-sbHa3Tte.js";import{r as e}from"./src-Dk1QVJRd.js";function t(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function n(e){if(!e)return null;try{let n=new URL(e.trim());n.search=``,n.hash=``;let r=n.toString(),i=n.pathname.split(`/`).filter(Boolean);if(i.length<2||i.at(-2)!==`join`)return null;let[a,o,...s]=decodeURIComponent(i.at(-1)).split(`.`);if(!a||!o||s.length>0)return null;i.splice(-2,2),n.pathname=i.length>0?`/${i.join(`/`)}`:`/`;let c=t(n.toString());return c?{workerBaseUrl:c,trayId:a,joinUrl:r}:null}catch{return null}}const r=`slicc.trayWorkerBaseUrl`,i=`slicc.trayJoinUrl`,a=e;function o(e){if(!e)return null;try{let r=new URL(e.trim());r.search=``,r.hash=``;let i=r.pathname.split(`/`).filter(Boolean),a=null;if(i.length>=2&&i.at(-2)===`tray`)a=decodeURIComponent(i.at(-1)),i.splice(-2,2),r.pathname=i.length>0?`/${i.join(`/`)}`:`/`;else if(i.length>=2&&i.at(-2)===`join`)return n(r.toString());let o=t(r.toString());return o?{workerBaseUrl:o,trayId:a,joinUrl:null}:null}catch{return null}}function s(e){let t=o(e);return t?.joinUrl?t:null}export{t as a,s as i,i as n,r,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-DDBAeTLF.js";import"./src-CS5gSDhT.js";var n=`slicc-cherry`;function r(e){return typeof e==`object`&&!!e&&e.type===`cherry.host_event`}function i(e){return e}var a=e({CDP_CHUNK_THRESHOLD:()=>s,CHERRY_RUNTIME_TAG:()=>n,TRAY_SYNC_PROTOCOL_VERSION:()=>1,TraySyncChannel:()=>m,createFollowerSyncChannel:()=>g,createLeaderSyncChannel:()=>h,reassembleCDPResponse:()=>u,reassembleSnapshot:()=>p,sendCDPResponse:()=>l,sendSnapshot:()=>f}),o=t(`tray-sync`),s=64*1024,c=32*1024;function l(e,t,n,r){if(r||!n)return e.send({type:`cdp.response`,requestId:t,result:n,error:r});let i=JSON.stringify(n);if(i.length<=65536)return e.send({type:`cdp.response`,requestId:t,result:n});let a=Math.ceil(i.length/c),o=!0;for(let n=0;n<a;n++){let r=i.slice(n*c,(n+1)*c);if(!e.send({type:`cdp.response`,requestId:t,chunkData:r,chunkIndex:n,totalChunks:a})){o=!1,e.send({type:`cdp.response`,requestId:t,error:`Failed to send CDP response chunk ${n}/${a} (response was ${i.length} bytes)`});break}}return o}function u(e,t){if(t.chunkIndex===void 0||t.totalChunks===void 0)return{result:t.result,error:t.error};if(t.error)return e.delete(t.requestId),{error:t.error};let n=t.requestId,r=e.get(n);if(r||(r={chunks:Array(t.totalChunks),received:0,totalChunks:t.totalChunks},e.set(n,r)),r.chunks[t.chunkIndex]||(r.chunks[t.chunkIndex]=t.chunkData,r.received++),r.received>=r.totalChunks){e.delete(n);try{return{result:JSON.parse(r.chunks.join(``))}}catch(e){return{error:`Failed to reassemble CDP response: ${e instanceof Error?e.message:String(e)}`}}}return null}var d=32*1024;function f(e,t,n){let r=JSON.stringify({messages:t,scoopJid:n});if(r.length<=65536)return e.send({type:`snapshot`,messages:t,scoopJid:n});let i=Math.ceil(r.length/d),a=!0;for(let t=0;t<i;t++){let s=r.slice(t*d,(t+1)*d);if(!e.send({type:`snapshot_chunk`,chunkData:s,chunkIndex:t,totalChunks:i,scoopJid:n})){a=!1,o.error(`Failed to send snapshot chunk`,{chunkIndex:t,totalChunks:i,totalSize:r.length});break}}return o.debug(`Snapshot sent in chunks`,{totalChunks:i,totalSize:r.length}),a}function p(e,t){if(e||={chunks:Array(t.totalChunks),received:0,totalChunks:t.totalChunks},e.chunks[t.chunkIndex]||(e.chunks[t.chunkIndex]=t.chunkData,e.received++),e.received>=e.totalChunks)try{return{result:JSON.parse(e.chunks.join(``)),buffer:null}}catch(e){return o.error(`Failed to reassemble snapshot`,{error:e instanceof Error?e.message:String(e)}),{result:{messages:[],scoopJid:t.scoopJid},buffer:null}}return{result:null,buffer:e}}var m=class{channel;listeners=[];closed=!1;constructor(e){this.channel=e,this.channel.addEventListener(`message`,e=>{if(!this.closed)try{let t=JSON.parse(e.data);for(let e of this.listeners)e(t)}catch(e){o.warn(`Failed to parse tray sync message`,{error:e instanceof Error?e.message:String(e)})}})}send(e){if(this.closed)return!1;try{return this.channel.send(JSON.stringify(e)),!0}catch(t){return o.error(`Failed to send tray sync message`,{type:e.type,error:t instanceof Error?t.message:String(t)}),!1}}onMessage(e){return this.listeners.push(e),()=>{let t=this.listeners.indexOf(e);t>=0&&this.listeners.splice(t,1)}}close(){this.closed=!0,this.listeners.length=0,this.channel.close()}get isOpen(){return!this.closed&&this.channel.readyState===`open`}};function h(e){return new m(e)}function g(e){return new m(e)}export{l as a,n as c,p as i,r as l,h as n,f as o,u as r,a as s,g as t,i as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e,w as t}from"./db-DjAqlQ2I.js";const n=`slicc:last-seen-version`;function r(){return{version:`5.60.0`,releasedAt:`2026-07-16T09:23:10Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({DeviceHandleRegistry:()=>i,MAX_USB_TRANSFER_BYTES:()=>s,deviceToInfo:()=>c,getNavigatorUsb:()=>n,getSharedUsbRegistry:()=>o});function n(){return globalThis.navigator?.usb??null}function r(e,t){return e===t||e.vendorId===t.vendorId&&e.productId===t.productId&&(e.serialNumber??``)===(t.serialNumber??``)&&!!e.serialNumber}var i=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(r(n,e))return this.byHandle.set(t,e),t;let t=`usb${++this.counter}`;return this.byHandle.set(t,e),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,device:t}))}},a=null;function o(){return a||=new i,a}var s=4*1024*1024;function c(e,t){return{handle:e,vendorId:t.vendorId,productId:t.productId,...t.productName?{productName:t.productName}:{},...t.manufacturerName?{manufacturerName:t.manufacturerName}:{},...t.serialNumber?{serialNumber:t.serialNumber}:{},opened:t.opened}}export{t as a,o as i,c as n,n as r,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,t}from"./hid-device-registry-
|
|
1
|
+
import{i as e,t}from"./hid-device-registry-DboUgvzI.js";import{n,r}from"./serial-port-registry-DsPZvGpT.js";import{n as i,t as a}from"./usb-device-registry-BOGfZXgp.js";function o(e,t){let n=e.get(t);if(!n)throw Error(`unknown serial handle '${t}'`);return n}function s(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function c(e,t,n){if(t.length===0)return-1;outer:for(let r=Math.max(0,n);r+t.length<=e.length;r++){for(let n=0;n<t.length;n++)if(e[r+n]!==t[n])continue outer;return r}return-1}async function l(e,t){return(await t.getPorts()).map(t=>{let n=e.register(t);return r(n,e.get(n))})}async function u(e,t,n){let i=await t.requestPort(n.length?{filters:n}:{}),a=e.register(i);return r(a,e.get(a))}function d(e,t){return r(t,o(e,t))}async function f(e,t,n){let r=o(e,t);await r.port.open(n),r.opened=!0}async function p(e,t){let n=o(e,t);if(n.reader){try{await n.reader.cancel()}catch{}try{n.reader.releaseLock()}catch{}n.reader=void 0}if(n.pendingRead=void 0,n.leftover=void 0,n.writer){try{n.writer.releaseLock()}catch{}n.writer=void 0}await n.port.close(),n.opened=!1}function m(e){if(!e.reader){if(!e.port.readable)throw Error(`serial port is not readable (is it open?)`);e.reader=e.port.readable.getReader()}return e.reader}function h(e){if(!e.writer){if(!e.port.writable)throw Error(`serial port is not writable (is it open?)`);e.writer=e.port.writable.getWriter()}return e.writer}async function g(e,t,r){let i=o(e,t),a=Math.min(r.maxBytes??4194304,n),l=r.until?.length?r.until:void 0,u=r.timeoutMs??1e3,d=Date.now()+Math.max(0,u),f=i.leftover??new Uint8Array;i.leftover=void 0;let p=0,h=()=>{if(l){let e=c(f,l,Math.max(0,p-(l.length-1)));if(e>=0){let t=e+l.length;return i.leftover=f.slice(t),f.slice(0,t)}}return f.length>=a?(i.leftover=f.slice(a),f.slice(0,a)):null},g=h();if(g)return g;let _=m(i);for(;Date.now()<d;){let e=d-Date.now(),t=i.pendingRead??_.read();i.pendingRead=t;let n,r=new Promise(t=>{n=setTimeout(()=>t(`__timeout`),e)}),a;try{a=await Promise.race([t,r])}finally{n&&clearTimeout(n)}if(a===`__timeout`)break;if(i.pendingRead=void 0,a.done){i.reader=void 0;break}if(a.value?.length){p=f.length,f=s(f,a.value);let e=h();if(e)return e}}return f}async function _(e,t,r){if(r.length>4194304)throw Error(`serial write payload exceeds the ${n}-byte (4 MiB) v1 limit`);return await h(o(e,t)).write(r),r.length}async function v(e,t){return o(e,t).port.getSignals()}async function y(e,t,n){await o(e,t).port.setSignals(n)}function b(e,t){let n=e.get(t);if(!n)throw Error(`unknown hid handle '${t}'`);return n}async function x(e){e.opened||await e.open()}function S(e,n){if(e>4194304)throw Error(`${n} exceeds the ${t}-byte (4 MiB) v1 limit`)}function C(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t}async function w(t,n){return(await n.getDevices()).map(n=>e(t.register(n),n))}async function T(t,n,r){let i=await n.requestDevice({filters:r});if(i.length===0)throw Error(`No device selected.`);return i.map(n=>e(t.register(n),n))}function E(t,n){return e(n,b(t,n))}async function D(e,t){await b(e,t).open()}async function O(e,t){await b(e,t).close()}async function k(e,t,n,r){S(r.byteLength,`send report payload`);let i=b(e,t);await x(i),await i.sendReport(n,r)}async function A(e,t,n,r){S(r.byteLength,`send feature report payload`);let i=b(e,t);await x(i),await i.sendFeatureReport(n,r)}async function j(e,t,n){let r=b(e,t);return await x(r),{reportId:n,bytes:C(await r.receiveFeatureReport(n))}}async function M(e,t,n){let r=b(e,t);await x(r);let i=e=>{n({reportId:e.reportId,bytes:C(e.data)})};return r.addEventListener(`inputreport`,i),()=>r.removeEventListener(`inputreport`,i)}function N(e,t){let n=e.get(t);if(!n)throw Error(`unknown usb handle '${t}'`);return n}function P(e,t){if(e>4194304)throw Error(`${t} exceeds the ${a}-byte (4 MiB) v1 limit`)}function F(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function I(e,t){return(await t.getDevices()).map(t=>i(e.register(t),t))}async function L(e,t,n){let r=await t.requestDevice({filters:n});return i(e.register(r),r)}function R(e,t){return i(t,N(e,t))}async function z(e,t){await N(e,t).open()}async function B(e,t){await N(e,t).close()}async function V(e,t,n){await N(e,t).selectConfiguration(n)}async function H(e,t,n){await N(e,t).claimInterface(n)}async function U(e,t,n){await N(e,t).releaseInterface(n)}async function W(e,t,n,r){P(r,`control-in length`);let i=await N(e,t).controlTransferIn(n,r);return{status:i.status??`ok`,bytes:i.data?F(i.data):new ArrayBuffer(0)}}async function G(e,t,n,r){P(r.byteLength,`control-out payload`);let i=await N(e,t).controlTransferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function K(e,t,n,r){P(r,`transfer-in length`);let i=await N(e,t).transferIn(n,r);return{status:i.status??`ok`,bytes:i.data?F(i.data):new ArrayBuffer(0)}}async function q(e,t,n,r){P(r.byteLength,`transfer-out payload`);let i=await N(e,t).transferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function J(e,t){await N(e,t).reset()}export{y as A,p as C,f as D,l as E,g as O,M as S,v as T,D as _,R as a,A as b,U as c,V as d,K as f,w as g,E as h,G as i,_ as j,u as k,L as l,O as m,B as n,I as o,q as p,W as r,z as s,H as t,J as u,j as v,d as w,k as x,T as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./picker-popup-BvzmBsGL.js";var n=6e4;function r(){return t()}function i(t){return new Promise(r=>{let i=!1,a=e=>{i||(i=!0,clearTimeout(o),r(e))},o=setTimeout(()=>a({cancelled:!0}),n);e(`usb-device`,t??[],void 0,{timeoutMs:n}).then(e=>{let t=e;t.cancelled?a({cancelled:!0}):typeof t.error==`string`?a({error:t.error}):t.granted&&t.info?a({granted:!0,info:t.info}):a({error:`usb picker returned an unexpected response`})}).catch(e=>{a({error:e instanceof Error?e.message:`Failed to open USB picker`})})})}export{r as canOpenUsbPickerPopup,i as openUsbPickerPopup};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{i as t,o as n}from"./dictation-priming-DGpw1lUV.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-WMi1eHMn.js";var o=e(`speech:voice-reply`),s=0;function c(){s++}function l(){return s<=0?!1:(s--,!0)}async function u(e,s=i,c=r){let l=t(e);if(l&&!await c(l))return;let u=a(n(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/src-6TqoULh8.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/icons-C5g936Qd.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t,t as n}from"./base64-DpPqYZJF.js";import"./src-CS5gSDhT.js";import{t as r}from"./wc-permissions-registry-Blyunq37.js";var i=8,a=2e3,o=[`/workspace`,`/shared`,`/tmp`],s=8,c=new Set([`node_modules`,`.git`]),l=1e4,u=/\.(png|jpe?g|gif|webp|svg|avif)$/i,d=4*1024*1024,f=256*1024;function p(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function m(e){return{png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,avif:`image/avif`,md:`text/markdown`,json:`application/json`}[e.toLowerCase().split(`.`).pop()??``]??`text/plain`}function h(e,n){let r={id:p(),name:e,size:n.length};if(u.test(e))return n.length>d?{...r,mimeType:m(e),kind:`image`,error:`image too large to inline`}:{...r,mimeType:m(e),kind:`image`,data:t(n)};let i={...r,mimeType:m(e),kind:`file`};return n.length>f?{...i,error:`file too large to inline`}:i}async function g(e){let t=new Uint8Array(await e.arrayBuffer()),n=h(e.name,t);return e.type?{...n,mimeType:e.type}:n}function _(e,t){let n=t.match(/^data:(image\/[^;]+);base64,(.+)$/);return n?{id:p(),name:e,mimeType:n[1],size:Math.floor(n[2].length*3/4),kind:`image`,data:n[2]}:null}var v=`/tmp/upload`,y=1568;async function b(e,t,n){await e.mkdir(v,{recursive:!0}).catch(()=>void 0);let r=`${v}/${Date.now()}-${t.replace(/[^A-Za-z0-9._-]+/g,`_`)}`;return await e.writeFile(r,n),r}async function x(e,t=y){let n=new Image;n.src=e;try{await n.decode()}catch{return e}let r=Math.min(1,t/Math.max(n.naturalWidth,n.naturalHeight,1));if(r>=1)return e;let i=document.createElement(`canvas`);return i.width=Math.round(n.naturalWidth*r),i.height=Math.round(n.naturalHeight*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height),i.toDataURL(`image/jpeg`,.85)}async function S(e,t,r){let i=_(e,t);if(!i)return null;let a;return r&&i.data&&(a=await b(r,e,n(i.data)).catch(()=>void 0)),{..._(e,await x(t).catch(()=>t))??i,name:e,path:a}}async function C(e,t,n){if(!n)return null;let r=new Uint8Array(await t.arrayBuffer()),i=await b(n,e,r).catch(()=>void 0);return i?{id:p(),name:e,mimeType:t.type||`video/webm`,size:r.length,kind:`file`,path:i}:null}async function w(e){let t=[],n=o.map(e=>({dir:e,depth:0}));for(;n.length>0&&t.length<a;){let{dir:r,depth:i}=n.shift(),o;try{o=await e.readDir(r)}catch{continue}for(let e of o){let o=`${r}/${e.name}`;if(e.type===`directory`)i<s&&!c.has(e.name)&&n.push({dir:o,depth:i+1});else if(t.push(o),t.length>=a)break}}return t}function T(e){let t=null;return async n=>{let r=await e.openReader();(!t||Date.now()-t.at>l)&&(t={at:Date.now(),paths:await w(r)});let a=e=>n===``||e.toLowerCase().includes(n),o=t.paths.filter(e=>a(e)).slice(0,i).map(e=>({id:e,label:e.split(`/`).pop()??e,sub:e.slice(0,e.lastIndexOf(`/`))})),s=[];try{s=(await r.readDir(`/workspace/skills`)).filter(e=>e.type===`directory`&&a(e.name)).slice(0,i).map(e=>({id:e.name,label:e.name}))}catch{}let c=(await e.listConversations().catch(()=>[])).filter(e=>a(e.label)).slice(0,i);return[{kind:`file`,label:`Files`,icon:`file`,entries:o},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:s},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:c}]}}var E=`slicc-wc-attach-style`,D=`
|
|
3
|
+
.wcatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0;font-family:var(--ui);}
|
|
4
|
+
.wcatt:empty{display:none;}
|
|
5
|
+
.wcatt__chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink);
|
|
6
|
+
background:var(--ghost);border:1px solid var(--line);border-radius:14px;padding:3px 8px;max-width:220px;}
|
|
7
|
+
.wcatt__thumb{width:28px;height:28px;object-fit:cover;border-radius:8px;cursor:zoom-in;
|
|
8
|
+
border:1px solid var(--line);flex:0 0 auto;}
|
|
9
|
+
.wcatt__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
10
|
+
.wcatt__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
|
|
11
|
+
font:inherit;padding:0;line-height:1;}
|
|
12
|
+
.wcatt__x:hover{color:var(--ink);}
|
|
13
|
+
`,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./src-6TqoULh8.js`).then(e=>e.t);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=e.split(`/`).pop()??e;if(u.test(r)){let i=await(await t()).readFile(e),a=h(r,typeof i==`string`?new TextEncoder().encode(i):i);n.add({...a,error:void 0,path:e});return}let i=0;try{i=(await(await t()).stat(e)).size}catch{}n.add({id:p(),name:r,mimeType:m(r),size:i,kind:`file`,path:e})}function H(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}Use the "${e}" skill: `)}function U(e){return e?.name===`NotAllowedError`}async function W(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await V(e.id,t.openReader,n):e.kind===`skill`&&typeof e.label==`string`?H(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function G(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&W(i,e,r).catch(e=>{U(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});W({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{G as wireWcAttach};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-cXyK0NGW.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{wireWcDetached as t}from"./wc-detached-B3WCbbZT.js";import{attachWcClient as n,createWcLiveCallbacks as r,n as i,prepareWcShell as a}from"./wc-live-D7BaYtR7.js";async function o(o,s,c=!1){let l=a(o,`extension · wc`),u=new i(r(l.wiring));n(l,u,s),t({client:u,isDetachedSelf:c});let{setupSudoExtension:d}=await e(async()=>{let{setupSudoExtension:e}=await import(`./setup-sudo-cXyK0NGW.js`).then(e=>e.n);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2]));await d({log:s}),u.requestState(),s.info(`WC extension shell connected to offscreen engine`)}export{o as mountWcUiExtension};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./proxied-fetch-
|
|
1
|
+
import{o as e,t}from"./proxied-fetch-DETjVL-j.js";var n={"slicc-server":`sliccstart`,"slicc-node-server":`npx`},r=`standalone · live`;async function i(i){let a=i?.fetchFn??fetch,o=i?.timeoutMs??1500;try{let i=new AbortController,s=setTimeout(()=>i.abort(),o),c=await a(e(`/api/status`),{cache:`no-store`,signal:i.signal,headers:t()}).finally(()=>clearTimeout(s));if(!c.ok)return r;let l=await c.json(),u=l.service?n[l.service]:void 0;return u?`${u} · live`:r}catch{return r}}export{r as DEFAULT_STANDALONE_LABEL,i as resolveStandaloneFloatLabel};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-live-D7BaYtR7.js","assets/preload-helper-Czpn1I53.js","assets/account-store-dvAfa3y8.js","assets/rolldown-runtime-aKtaBQYM.js","assets/compat-DyT25qXb.js","assets/models-CzSI8IsT.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/context-compaction-dcYYajWb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-DETjVL-j.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-D2k1IxFk.js","assets/secrets-bridge-client-CONYX8PU.js","assets/port-bridge-client-CdvMlimf.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CvODsjGm.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BEi8MYUS.js","assets/transform-messages-fFaW-DLG.js","assets/tray-runtime-config-DJIIJaBR.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-CyJIKXH4.js","assets/telemetry-C8rZr13D.js","assets/main-D8Y-cnmF.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/electron-overlay-route-CjT6k9Df.js","assets/bridge-launch-params-jegYRGJ6.js","assets/setup-sudo-cXyK0NGW.js","assets/provider-settings-BraIAAA7.js","assets/clipboard-DuHpK59o.js","assets/tray-join-url-BIvzbiFR.js","assets/tray-leader-DcLymd_E.js","assets/db-ysOO0kLr.js","assets/shared-Dwjvg8S5.js","assets/mime-types-ugOWOUZ9.js","assets/dictation-priming-DGpw1lUV.js","assets/dip-BumXS1a9.js","assets/wc-permissions-registry-Blyunq37.js","assets/hid-device-registry-DboUgvzI.js","assets/serial-port-registry-DsPZvGpT.js","assets/usb-operations-BQbhk96u.js","assets/usb-device-registry-BOGfZXgp.js","assets/sprinkle-renderer-B0y9_9py.js","assets/theme-C8b_iQ_9.js","assets/theme-engine-jfuTMXZM.js","assets/sprinkle-bridge-CmJpELpy.js","assets/session-freezer-CUzeQ9yz.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/icons-C5g936Qd.js","assets/wc-shell-BHZzK20y.js","assets/timestamp-preference-DgrTvVNx.js","assets/src-6TqoULh8.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-scoop-color-CByZNEJo.js","assets/wc-shell-WkeczD9x.css","assets/legacy-styles-DcRu2WCJ.js","assets/follower-navigate-watcher-Cn5RjYxg.js","assets/navigation-watcher-BoJS9hdc.js","assets/handoff-link-CfgH86mb.js","assets/discovery-preference-DCtfbqw1.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{c as n}from"./tray-sync-protocol-CVdiCvfU.js";import{c as r,d as i,f as a,n as o,r as s}from"./tray-runtime-config-DJIIJaBR.js";import{t as c}from"./main-D8Y-cnmF.js";import{n as l}from"./theme-engine-jfuTMXZM.js";import{i as u,r as d}from"./dip-BumXS1a9.js";import{wireWcAttach as f}from"./wc-attach-DU0svqb7.js";import{i as p}from"./wc-shell-BHZzK20y.js";import{t as m}from"./wc-scoop-color-CByZNEJo.js";import{prepareWcShell as h,t as g}from"./wc-live-D7BaYtR7.js";import{t as _}from"./page-follower-tray-DFeLlotx.js";import{WcSprinkleZone as v}from"./wc-sprinkles-DlE9uQTj.js";var y=t(`follower-switch-out`);function b(e,t){t.stopFollower();try{t.storage.removeItem(o),e.workerBaseUrl===null?t.storage.removeItem(s):t.storage.setItem(s,e.workerBaseUrl)}catch(e){y.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=a(e);n!==e&&t.replaceHref(n)}catch(e){y.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var x=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function S(e){return x.has(e)}var C=`slicc-signin-redirect-style`,w=`wc-signin-redirect`,T=`
|
|
3
|
+
.${w}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
|
|
4
|
+
border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
|
|
5
|
+
font-family:var(--ui);font-size:13px;line-height:1.4;}
|
|
6
|
+
.${w}__body{flex:1;min-width:0;}
|
|
7
|
+
.${w}__title{font-weight:600;margin-bottom:2px;}
|
|
8
|
+
.${w}__sub{color:var(--txt-2);}
|
|
9
|
+
.${w}__open{appearance:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;
|
|
10
|
+
background:var(--canvas);color:var(--ink);font:inherit;font-weight:600;padding:6px 12px;white-space:nowrap;}
|
|
11
|
+
.${w}__open:hover{background:var(--ghost);}
|
|
12
|
+
.${w}__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
|
|
13
|
+
font:inherit;font-size:16px;line-height:1;padding:0 2px;}
|
|
14
|
+
.${w}__x:hover{color:var(--ink);}
|
|
15
|
+
`;function E(e){if(e.getElementById(C))return;let t=e.createElement(`style`);t.id=C,t.textContent=T,e.head.appendChild(t)}function D(e,t){E(e);let n=e.createElement(`div`);n.className=w,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${w}__body`;let i=e.createElement(`div`);i.className=`${w}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${w}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${w}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${w}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function O(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${w}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=D(n,{title:`Sign in from the SLICC tab`,sub:`The side panel can't complete a provider login — we've switched you to the main SLICC tab. Finish signing in there (Settings › Providers), then come back.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!0});return e.append(i),i.scrollIntoView?.({block:`nearest`}),i}function k(e,t){return D(e,{title:`Set up SLICC in the main tab`,sub:`SLICC needs a model connected before it can help. Open the main SLICC tab to finish setup and sign in, then come back to the side panel.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!1})}var A=t(`wc-follower`),j=`/shared/sprinkles/welcome/`,M={sendMessage:()=>{},onEvent:()=>()=>{},stop:()=>{}};function N(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Could not start follower`;let i=document.createElement(`p`);i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=t,n.append(r,i),e.appendChild(n)}function P(e,t,n,r,i){let a=e=>{let t=document.createElement(`div`);return t.className=`wcui-placeholder`,t.textContent=e,t};i.files?(e.style.display=`none`,e.parentElement?.append(a(`Files live on the leader. A follower mirrors the leader's chat, sprinkles, and browser tabs - not its filesystem.`))):e.closest(`slicc-surface`)?.remove(),i.terminal?t.append(a(`The shell runs on the leader. A follower has no local terminal - drive the session through chat.`)):t.closest(`slicc-surface`)?.remove(),i.memory?n.append(a(`Memory lives on the leader. A follower has no local memory store.`)):n.closest(`slicc-surface`)?.remove(),i.monitor?(r.style.display=`none`,r.parentElement?.append(a(`Monitor reads the leader's kernel state. A follower has no local kernel.`))):r.closest(`slicc-surface`)?.remove()}var F={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,newSprinkle:!0,monitor:!0,showTimestamps:!0};function I(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`],[`newSprinkle`,`new`]])e[n]||t.push(`slicc-dock-item[data-t="${r}"]`);if(e.modelPicker||t.push(`slicc-composer-meta`),e.history||t.push(`slicc-freezer`),e.nav||t.push(`slicc-nav`),!e.terminal&&!e.files&&!e.memory&&!e.browser&&!e.monitor&&t.push(`slicc-dock .div`,`slicc-dock .grow`),t.length||!e.history){let n=document.createElement(`style`),r=t.length?`${t.join(`,
|
|
16
|
+
`)}{display:none!important;}`:``;e.history||(r+=`
|
|
17
|
+
.wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}async function L(t,a,o){let s=o===`cherry`,y=s&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,x=window.location.ancestorOrigins?.[0],C=s&&(x?.startsWith(`chrome-extension://`)??!1),w;try{w=await c({runtimeMode:o,envBaseUrl:null,window,log:a})}catch(e){let n=e instanceof Error?e.message:String(e);A.error(`follower prelude failed`,{runtimeMode:o,error:n}),N(t,n);return}let T=s?w.cherryJoinUrl:r(window.location.href,window.localStorage);if(!T){A.error(`follower mount with no join URL - falling back to live boot`);let{mountWcUiLive:n}=await e(async()=>{let{mountWcUiLive:e}=await import(`./wc-live-D7BaYtR7.js`);return{mountWcUiLive:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]));return n(t,a,`standalone`)}let E=h(t,s?`cherry · follower`:`follower`);s&&w.cherryTransport?.theme&&l(w.cherryTransport.theme);let D=s&&w.cherryTransport?.effortLevel;D?localStorage.setItem(`slicc_locked_effort_level`,D):localStorage.removeItem(`slicc_locked_effort_level`);let L=s&&w.cherryTransport?{...F,...w.cherryTransport.features}:F;P(E.refs.fileTree,E.refs.termSurface,E.refs.memoryHost,E.refs.monitor,L),I(L),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-DgrTvVNx.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([55,3])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{L.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([61,1])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let R=new Map,z=()=>w.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),B=()=>{C&&O(E.refs.thread,{onOpenTab:z})},V=e=>{let t=e.querySelectorAll(`img[src^="${j}"]`);return t.length===0?!1:(t.forEach((t,n)=>{n===0?t.replaceWith(k(e.ownerDocument,{onOpenTab:z})):t.remove()}),!0)},H=(e,t)=>{Y.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),S(e)&&B()},U=new g({thread:E.refs.thread,agent:M,onQueuedChange:e=>{E.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(C&&V(n),R.set(e.id,u(n,H)))},onMessageDisposed:e=>{let t=R.get(e);t&&(d(t),R.delete(e))},readOnlyToolUi:!0});if(E.setController(U),C)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])E.refs.thread.addEventListener(e,()=>B());let W=`Connecting to leader…`,G=(e,t)=>{E.refs.inputCard.setAttribute(`placeholder`,t),e?E.refs.inputCard.removeAttribute(`disabled`):E.refs.inputCard.setAttribute(`disabled`,``)};G(!1,W),y||E.refs.composer.setAttribute(`ptt`,``);let K=f({inputCard:E.refs.inputCard,freezer:E.refs.freezer,composer:E.refs.composer,noCamera:y,log:A});E.refs.inputCard.addEventListener(`submit`,e=>{let t=p(e)??``,n=K.take();(t.trim()||n.length)&&(U.sendUserMessage(t,n),E.refs.inputCard.clear?.())});let q=new v(E.refs).callbacks(),J=null,Y=_({joinUrl:T,runtime:s?n:`slicc-standalone`,uiOnly:y,browserAPI:w.browser,onSnapshot:e=>U.loadMessages(e),onUserMessage:(e,t,n,r)=>U.addUserMessage(e,r),onStatus:e=>U.setProcessing(e===`processing`),setChatAgent:e=>U.setAgent(e),onConnectionChange:e=>{G(e,e?`Ask the leader, or describe a change…`:W),s&&w.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},onGaveUp:e=>{A.error(`follower gave up reaching the leader`,{error:e}),G(!1,`Couldn't reach the leader. Reload to retry.`),s&&w.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...s?{}:{onJoinUrlChanged:e=>{A.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),i(window.localStorage,e)}},addSprinkle:q.addSprinkle,removeSprinkle:q.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):A.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{E.refs.switcher.scoops=e.map(e=>({key:e.jid,type:e.isCone?`cone`:`scoop`,color:m(e),label:e.isCone?`sliccy`:e.name,eyes:`open`})),E.refs.switcher.setAttribute(`active`,J??t)},...s?{onCherrySliccEvent:(e,t)=>w.cherryTransport?.emitSliccEventToHost(e,t)}:{}});E.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(J=t,E.refs.switcher.setAttribute(`active`,t),Y.currentSync?.selectScoop(t))}),s&&w.cherryTransport&&(w.cherryTransport.onHostEvent=(e,t)=>Y.currentSync?.sendCherryHostEvent(e,t));let X=null;if(!s){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-Cn5RjYxg.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([62,9,11,3,1,12,10,13,14,63,64,65]));X=t(w.realCdpTransport,()=>Y.currentSync)}E.refs.avatarMenu.items=[{kind:`separator`},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}],E.refs.avatarMenu.addEventListener(`slicc-avatar-action`,e=>{e.detail?.id===`tray-stop`&&window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}))}),window.addEventListener(`slicc:tray-leave`,e=>{b({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{X?.(),Y.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),A.info(`follower mounted`,{runtimeMode:o,isCherry:s})}export{L as mountWcUiFollower};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-settings-BraIAAA7.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/account-store-dvAfa3y8.js","assets/compat-DyT25qXb.js","assets/models-CzSI8IsT.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/context-compaction-dcYYajWb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-DETjVL-j.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-D2k1IxFk.js","assets/secrets-bridge-client-CONYX8PU.js","assets/port-bridge-client-CdvMlimf.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CvODsjGm.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BEi8MYUS.js","assets/transform-messages-fFaW-DLG.js","assets/tray-runtime-config-DJIIJaBR.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-CyJIKXH4.js","assets/clipboard-DuHpK59o.js","assets/telemetry-C8rZr13D.js","assets/tray-join-url-BIvzbiFR.js","assets/quick-llm-DzhE1JW0.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/new-session-u-78FCPG.js","assets/session-freezer-CUzeQ9yz.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/dictation-priming-DGpw1lUV.js","assets/session-store-DAM8GRJ0.js","assets/remote-vfs-client-Z2qM01yP.js","assets/writable-vfs-client-Cb6FWsgc.js","assets/wc-onboarding-D9lPUOm-.js","assets/welcome-detection-CQY88hjL.js","assets/dip-BumXS1a9.js","assets/wc-permissions-registry-Blyunq37.js","assets/hid-device-registry-DboUgvzI.js","assets/serial-port-registry-DsPZvGpT.js","assets/usb-operations-BQbhk96u.js","assets/usb-device-registry-BOGfZXgp.js","assets/sprinkle-renderer-B0y9_9py.js","assets/theme-C8b_iQ_9.js","assets/theme-engine-jfuTMXZM.js","assets/sprinkle-bridge-CmJpELpy.js","assets/shared-Dwjvg8S5.js","assets/mime-types-ugOWOUZ9.js","assets/legacy-styles-DcRu2WCJ.js","assets/soundscape-TvriK11t.js","assets/soundscape-cues-5_sT5Un6.js","assets/voice-reply-DHV6R4En.js","assets/speak-WMi1eHMn.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-sL29_hFb.js","assets/wc-placeholder-C0wfdFBG.js","assets/wc-attach-DU0svqb7.js","assets/remote-terminal-view-C7x7cM1d.js","assets/picker-approval-CdWaB1mR.js","assets/mount-picker-popup-Bs1o43Z5.js","assets/picker-popup-BvzmBsGL.js","assets/browser-COVn7LPD.js","assets/terminal-session-client-CbAduNfC.js","assets/secret-env-1E2r2H5F.js","assets/wc-permissions-DW60QZxV.js","assets/wc-permissions-providers-DMTDytlu.js","assets/timestamp-preference-DgrTvVNx.js","assets/db-ysOO0kLr.js","assets/mount-table-store-CfQUN_2R.js","assets/remote-sprinkle-vfs-e81pZJKo.js","assets/wc-sprinkles-DlE9uQTj.js","assets/wc-tray-BdFq9TlZ.js","assets/tray-sync-protocol-CVdiCvfU.js","assets/handoff-link-CfgH86mb.js","assets/remote-cdp-transport-DOoXIxy3.js","assets/tray-leader-DcLymd_E.js","assets/synthetic-cdp-transport-DLIt5SkY.js","assets/wc-scoop-color-CByZNEJo.js","assets/page-follower-tray-DFeLlotx.js","assets/wc-nav-BqxVwvjV.js","assets/composer-speech-BWsih2Nz.js","assets/speech-C5U8h4In.js","assets/whisper-session-DvjyTCj0.js","assets/wc-float-label-DeQPr3pd.js","assets/setup-sudo-cXyK0NGW.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{F as t,I as n}from"./account-store-dvAfa3y8.js";import{t as r}from"./logger-DDBAeTLF.js";import{n as i,t as a}from"./base64-DpPqYZJF.js";import"./src-CS5gSDhT.js";import{t as o}from"./tool-ui-DfXu6quJ.js";import{s}from"./tray-runtime-config-DJIIJaBR.js";import{i as c}from"./tray-follower-status-CyJIKXH4.js";import{c as l,l as u,n as d,r as f,s as p}from"./telemetry-C8rZr13D.js";import{i as m,n as h,r as g,t as _}from"./main-D8Y-cnmF.js";import{r as v}from"./tray-leader-DcLymd_E.js";import{n as y}from"./shared-Dwjvg8S5.js";import{a as b,n as x,t as S}from"./dictation-priming-DGpw1lUV.js";import{a as C,i as ee,r as te}from"./dip-BumXS1a9.js";import{a as ne,i as re,s as w,t as T}from"./session-freezer-CUzeQ9yz.js";import{c as ie,d as ae,i as oe,l as se,n as E,o as ce,r as le,s as ue,t as de,u as fe}from"./wc-shell-BHZzK20y.js";import{a as pe,i as me}from"./src-6TqoULh8.js";import{t as D}from"./wc-scoop-color-CByZNEJo.js";var O=`__slicc_binary__`,k=`b64`;function he(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[O]===k&&typeof t.data==`string`}function A(e){if(e instanceof Uint8Array)return{[O]:k,data:i(e)};if(Array.isArray(e))return e.map(A);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=A(r);return t}return e}function j(e){if(he(e))return a(e.data);if(Array.isArray(e))return e.map(j);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=j(r);return t}return e}var ge=r(`panel-transport`);function _e(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function ve(){return{onMessage:e=>{let t=(t,n,r)=>(_e(t)&&e(j(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=A(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{ge.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var M=r(`offscreen-client`),N=class{eventListeners=new Set;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=new Map;transport;_selectedScoopJid=null;get selectedScoopJid(){return this._selectedScoopJid}scoopSelectedListeners=new Set;onScoopSelected(e){return this.scoopSelectedListeners.add(e),()=>{this.scoopSelectedListeners.delete(e)}}setSelectedScoopJid(e){if(this._selectedScoopJid!==e&&(this._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){M.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??ve(),this.setupMessageListener()}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}createAgentHandle(){return{sendMessage:(e,t,n)=>{if(!this.selectedScoopJid){this.emitToUI({type:`error`,error:`No scoop selected`});return}this.send({type:`user-message`,scoopJid:this.selectedScoopJid,text:e,attachments:n,messageId:t??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e){if(!e.isCone)throw Error(`OffscreenClient.registerScoop is cone-only; use scoop_scoop for non-cone scoops`);this.scoops.find(t=>t.name===e.name)||(this.scoops.push(e),this.scoopStatuses.set(e.jid,`initializing`)),this.send({type:`cone-create`,name:e.name})}async unregisterScoop(e){this.send({type:`scoop-drop`,scoopJid:e}),this.scoops=this.scoops.filter(t=>t.jid!==e),this.scoopStatuses.delete(e)}createScoopTab(e){}async getGlobalMemory(){if(!this.localFs)return``;try{let e=await this.localFs.readFile(`/shared/CLAUDE.md`,{encoding:`utf-8`});return typeof e==`string`?e:new TextDecoder().decode(e)}catch{return``}}getScoopContext(e){if(this.localFs)return{getFS:()=>this.localFs}}getSharedFS(){return this.localFs}stopScoop(e){this.send({type:`abort`,scoopJid:e})}async clearQueuedMessages(e){}async deleteQueuedMessage(e,t){this.send({type:`delete-queued-message`,scoopJid:e,messageId:t})}updateModel(){this.send({type:`refresh-model`})}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t,n){this.send({type:`set-thinking-level`,scoopJid:e,level:t,effortOverride:n})}async clearAllMessages(){let e=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingClearAcks.set(e,t)});this.send({type:`clear-chat`,requestId:e}),await Promise.race([t,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(e)}clearFilesystem(){this.send({type:`clear-filesystem`})}requestScoopMessages(e){this.send({type:`request-scoop-messages`,scoopJid:e})}async getScoopTranscript(e){let t=`tr-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingTranscriptRequests.set(t,e)});this.send({type:`request-scoop-transcript`,requestId:t,scoopJid:e});let r=await Promise.race([n,new Promise(e=>setTimeout(()=>e(``),5e3))]);return this.pendingTranscriptRequests.delete(t),r}async getMessagesForScoop(e){let t=`cm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingChatMessagesRequests.set(t,e)});this.send({type:`request-scoop-chat-messages`,requestId:t,scoopJid:e});let r=!1,i=await Promise.race([n,new Promise(e=>setTimeout(()=>{r=!0,e([])},5e3))]);return this.pendingChatMessagesRequests.delete(t),r&&M.warn(`getMessagesForScoop timed out`,{scoopJid:e}),i}async getSessionStats(){let e=`st-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingStatsRequests.set(e,t)});this.send({type:`request-session-stats`,requestId:e});let n=await Promise.race([t,new Promise(e=>setTimeout(()=>e(null),5e3))]);return this.pendingStatsRequests.delete(e),n}requestState(){this.send({type:`request-state`});let e=0;this.stateRetryTimer=setInterval(()=>{if(e++,this.ready||e>20){this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null);return}M.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,originLabel:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}sendWebhookEvent(e,t,n){this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n})}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){switch(e.type){case`offscreen-ready`:this.ready?(M.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):M.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`scoop-created`:this.handleScoopCreated(e);break;case`scoop-list`:this.handleScoopList(e);break;case`state-snapshot`:this.handleStateSnapshot(e);break;case`error`:this.handleError(e);break;case`incoming-message`:this.handleIncomingMessage(e);break;case`message-updated`:this.handleMessageUpdated(e);break;case`scoop-messages-replaced`:{let t=e;this.resyncStreamPointer(t.scoopJid,t.messages),this.callbacks.onScoopMessagesReplaced?.(t.scoopJid,t.messages);break}case`scoop-transcript`:{let t=e,n=this.pendingTranscriptRequests.get(t.requestId);n&&(this.pendingTranscriptRequests.delete(t.requestId),n(t.transcript));break}case`scoop-chat-messages`:{let t=e,n=this.pendingChatMessagesRequests.get(t.requestId);n&&(this.pendingChatMessagesRequests.delete(t.requestId),n(t.messages));break}case`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,fills:t.fills,models:t.models??[],scoops:t.scoops??[]}));break}case`tray-runtime-status`:{let t=e;F(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event);break;case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){M.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}break}}terminalEventListeners=new Set;onTerminalEvent(e){return this.terminalEventListeners.add(e),()=>this.terminalEventListeners.delete(e)}resyncStreamPointer(e,t){let n;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.role===`assistant`&&r.isStreaming){n=r.id;break}}n===void 0?this.currentMessageId.delete(e):this.currentMessageId.set(e,n)}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid);break}if(e.scoopJid===this.selectedScoopJid)switch(e.eventType){case`text_delta`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${P()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${P()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput});break}case`tool_end`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_result`,messageId:t,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError});break}case`tool_ui`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${P()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});break}case`tool_ui_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});break}case`response_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&(this.emitToUI({type:`content_done`,messageId:t}),this.currentMessageId.delete(e.scoopJid));break}case`turn_end`:{let t=this.currentMessageId.get(e.scoopJid)??`done-${e.scoopJid}-${P()}`;this.currentMessageId.delete(e.scoopJid),this.emitToUI({type:`turn_end`,messageId:t});break}}}handleScoopStatus(e){this.scoopStatuses.set(e.scoopJid,e.status),this.callbacks.onStatusChange(e.scoopJid,e.status)}handleScoopCreated(e){let t=this.msgScoopToRegistered(e.scoop);this.scoops=this.scoops.filter(e=>e.name!==t.name||e.jid===t.jid),this.scoops.find(e=>e.jid===t.jid)||this.scoops.push(t),this.scoopStatuses.set(t.jid,e.scoop.status),this.callbacks.onScoopCreated(t)}handleScoopList(e){this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){M.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&F(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){e.scoopJid===this.selectedScoopJid&&this.emitToUI({type:`error`,error:e.error})}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}msgScoopToRegistered(e){return{jid:e.jid,name:e.name,folder:e.folder,isCone:e.isCone,type:e.isCone?`cone`:`scoop`,requiresTrigger:!e.isCone,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}}}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){M.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function P(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function F(e,t){v({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),c({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function I(e){return!e.includes(`\0`)}function ye(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!I(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!I(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!I(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!I(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(I(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function L(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:(t,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function be(e){let t=L(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function xe(e,t){let n=L(e),r=new Map,i=n.onMessage(async e=>{let i=e;if(i?.type){if(i.type===`cdp-cmd`){let r=e;try{let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(i.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(i.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i);return}}});return()=>{i();for(let[e,n]of r)t.off(e,n);r.clear()}}function Se(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function Ce(e){let{worker:t,realCdpTransport:n,callbacks:r}=e,i=e.readyTimeoutMs??3e4,a=e.localStorageSeed??{},o=new MessageChannel,s=new MessageChannel,c=new N(r,be(o.port1));e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=xe(s.port1,n),u=null,d=new Promise((e,t)=>{let n=null,r=null,a=()=>{n!==null&&(clearTimeout(n),n=null)};u=()=>{r!==null&&(o.port1.removeEventListener(`message`,r),r=null),a()},r=t=>{t.data?.type===`kernel-worker-ready`&&(u?.(),e())},o.port1.addEventListener(`message`,r),a(),n=setTimeout(()=>{u?.(),t(Error(`Kernel worker did not signal ready within ${i}ms`))},i)}),f={type:`kernel-worker-init`,kernelPort:o.port2,cdpPort:s.port2,localStorageSeed:a,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null};t.postMessage(f,[o.port2,s.port2]);let p=!1;return{client:c,ready:d,dispose(){if(!p){p=!0,u?.(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),o.port1.close(),s.port1.close()}}}}function we(e){return Ce({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DMnEeTNU.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Se(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId,onWorkerScriptError:e.onWorkerScriptError})}var Te=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;function Ee(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`assistant`&&!n.isStreaming&&!n.queued)return n.content}for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t].content;return null}function De(e){let t=e.writeText??(e=>navigator.clipboard.writeText(e)),n=document.createElement(`div`);n.className=`wc-copy-row`,n.style.cssText=`display:flex;justify-content:flex-start;margin:-8px 0 14px;`;let r=document.createElement(`slicc-press-button`);r.setAttribute(`tooltip`,`Copy last response · hold to copy chat`),r.setAttribute(`label`,`Copy last response — hold to copy entire chat`),r.setAttribute(`disable-double-click`,``),r.style.cssText=`color:var(--txt-3);cursor:pointer;display:inline-flex;`;let i=document.createRange();r.append(i.createContextualFragment(Te));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=Ee(e.getMessages());await t(n??w([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=w([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function R(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Oe(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove(),t.querySelector(`.sprinkle-action-card__meta`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function ke(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function Ae(e){return`
|
|
3
|
+
<div class="sprinkle-action-card">
|
|
4
|
+
<div class="sprinkle-action-card__header">${ke(Oe(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
|
|
5
|
+
<div class="sprinkle-action-card__body">Waiting for approval on the leader…</div>
|
|
6
|
+
</div>
|
|
7
|
+
`}function z(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var B=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g=[];#_=[];#v=new Map;#y=null;#b=null;#x=``;#S=!1;#C=!1;#w=`thinking`;#T=0;#E=null;#D=new Set;#O=new Map;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onMessageRendered,this.#a=e.onMessageDisposed,this.#o=e.onTurnComplete,this.#s=e.resolveTelemetryContext,this.#c=e.onQueuedChange,this.#l=e.onQueuedCancel,this.#u=e.onToolUiAction,this.#d=e.readOnlyToolUi??!1,this.#f=e.agent.onEvent(e=>this.#L(e)),this.#h=e=>this.#X(e),this.#e.addEventListener(`slicc-error-retry`,this.#h)}dispose(){this.#f(),this.#e.removeEventListener(`slicc-error-retry`,this.#h);for(let e of[...this.#O.keys()])this.#Y(e)}get processing(){return this.#C}getMessages(){return this.#g.map(e=>({...e}))}setAgent(e){this.#f(),this.#t=e,this.#f=e.onEvent(e=>this.#L(e))}setOnLocalUserMessage(e){this.#p=e}setOnLocalProcessingChange(e){this.#m=e}addUserMessage(e,t){this.#$({id:R(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#_.map(z)}removeQueuedMessage(e){let t=this.#_.filter(t=>t.id!==e);t.length!==this.#_.length&&(this.#_=t,this.#A())}#k(){if(this.#_.length===0)return;let e=this.#_;this.#_=[];for(let t of e)this.#$(t);this.#A()}#A(){this.#c?.(this.#_.map(z))}addAssistantMessage(e){this.#$({id:R(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e){for(let e of this.#v.keys())this.#a?.(e);for(let e of[...this.#O.keys()])this.#Y(e);if(this.#_.length>0){if(this.#l)for(let e of this.#_)try{this.#l(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#_=[],this.#A()}this.#g=ce(e);let t=[...this.#g].reverse().find(e=>e.isStreaming);this.#y=t?.id??null,t&&(this.#b=t.id),this.#x=``,this.#S=!1,this.#v.clear();let n=[],r=``;for(let e of this.#g){let t=new Date(e.timestamp).toDateString();t!==r&&(n.push(ue(e.timestamp)),r=t);let i=this.#Q(e);this.#v.set(e.id,i),n.push(...i)}let i=this.#e;typeof i.replaceContent==`function`?i.replaceContent(...n):i.replaceChildren(...n),this.#re();for(let e of this.#g)e.isStreaming||this.#i?.(e,this.#v.get(e.id)??[]);this.#I(),this.#ae(),this.#j()}#j(){if(this.#e.getAttribute(`context`)!==`cone`||this.#g.length===0||!h()||this.#C)return;let e=this.#g[this.#g.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#X(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#M(r):r,a={id:R(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#C?(this.#_.push(a),this.#A()):this.#$(a),this.#t.sendMessage(i,a.id,a.attachments),this.#N();try{let e=n?.dictation?b(i):i;this.#p?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#M(e){return S(e,x())}#N(){if(this.#s)try{let e=this.#s();if(!e)return;d(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#g[this.#g.length-1];if(!(i||a?.lickId)&&a&&a.source===`lick`&&a.channel===n){a.lickParts=[...a.lickParts??[a.content],t],a.lickCount=a.lickParts.length,a.content+=`\n\n${t}`,this.#ee(a);return}this.#$({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#C?!0:void 0})}updateLickState(e,t){let n=this.#g.find(t=>t.lickId===e);n&&(n.lickState=t,this.#ee(n))}setProcessing(e){if(this.#C!==e){this.#C=e,e&&(this.#b=null),e&&(this.#T=0,this.#P(`thinking`)),e&&this.#k(),e||this.#I(),this.#n?.(e);try{this.#m?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#F()}}#P(e){this.#w!==e&&(this.#w=e,this.#r?.(e))}#F(){let e=this.#b;if(this.#b=null,!this.#o)return;let t=e?this.#Z(e):null;this.#o(t?{...t}:null)}#I(){let e=this.#g[this.#g.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#E?.remove();return}this.#E??=De({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#E)}#L(e){switch(e.type){case`message_start`:this.#R(e.messageId);break;case`content_delta`:this.#z(e.messageId,e.text);break;case`content_done`:this.#V(e.messageId);break;case`tool_use_start`:this.#H(e.messageId,e.toolName,e.toolInput);break;case`tool_result`:this.#U(e.messageId,e.toolName,e.result,e.isError);break;case`tool_ui`:this.#q(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#J(e.requestId);break;case`turn_end`:this.#W(e.messageId);break;case`error`:this.#G(e.error);break;case`screenshot`:case`terminal_output`:break;default:break}}#R(e){this.setProcessing(!0),this.#y=e,this.#b=e,this.#$({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#z(e,t){this.#Z(e)&&(this.#x+=t,!this.#S&&(this.#S=!0,requestAnimationFrame(()=>this.#B(e))))}#B(e){if(this.#S=!1,!this.#x)return;let t=this.#Z(e);t&&(t.content+=this.#x,this.#x=``,this.#ee(t))}#V(e){let t=this.#Z(e);t&&(this.#x&&this.#y===e&&(t.content+=this.#x),this.#x=``,this.#S=!1,t.isStreaming=!1,this.#ee(t))}#H(e,t,n){let r=this.#Z(e);r&&(r.toolCalls=r.toolCalls??[],r.toolCalls.push({id:R(),name:t,input:n}),this.#T+=1,this.#P(`tool`),this.#ee(r))}#U(e,t,n,r){let i=this.#Z(e),a=[...i?.toolCalls??[]].reverse().find(e=>e.name===t&&e.result===void 0);!i||!a||(a.result=n,a.isError=r,this.#T=Math.max(0,this.#T-1),this.#T===0&&this.#P(`thinking`),this.#ee(i))}#W(e){let t=this.#Z(e);t?.isStreaming&&(t.isStreaming=!1,this.#ee(t)),this.#y=null,this.setProcessing(!1)}#G(e){this.setProcessing(!1),this.#$({id:R(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#K(e)}#K(e){try{if(u(e)||l(e)||p(e))return;f(`error-card`,e)}catch{}}#q(e,t,n){this.#Y(t);let r=document.createElement(`div`);if(r.className=`msg__dip`,r.setAttribute(`data-tool-ui-request`,t),(this.#e.inner??this.#e).append(r),this.#d){let e=C(r,Ae(n),()=>{},!1);this.#O.set(t,{instance:e,container:r});return}let i=C(r,n,(e,n)=>{this.#u?.(t,e,n)},!1);this.#O.set(t,{instance:i,container:r}),this.#u?.(t,o,void 0)}#J(e){this.#Y(e)}#Y(e){let t=this.#O.get(e);if(t){this.#O.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#X(e){if(this.#C)return;let t=e.detail?.messageId??null,n=this.#g.length;if(t){let e=this.#g.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#g[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,R(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#g[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,R(),i.attachments)}#Z(e){return this.#g.find(t=>t.id===e)}#Q(e){try{return ie(e)}catch(t){console.error(`[wc-chat] message render failed — degrading to plain bubble`,t);let n=document.createElement(e.role===`assistant`?`slicc-agent-message`:`slicc-user-message`);return n.setAttribute(`text`,String(e.content??``)),[n]}}#$(e){this.#ne(),this.#g.push(e);let t=this.#Q(e);this.#v.set(e.id,t),this.#e.append(...t),this.#re(),e.isStreaming||this.#i?.(e,t),e.role===`user`?this.#ae():this.#oe()}#ee(e){this.#ne(),this.#a?.(e.id);let t=this.#v.get(e.id)??[],n=this.#Q(e),r=t[0]??null,i=r?.parentNode;if(i){for(let e of n)i.insertBefore(e,r);for(let e of t)e.remove()}else this.#e.append(...n);this.#v.set(e.id,n),this.#re(),e.isStreaming||this.#i?.(e,n),this.#oe()}#te(){return this.#e.inner??this.#e}#ne(){fe(this.#te(),this.#D)}#re(){se(this.#te(),{openClusterAnchors:this.#D,toolCallLookup:(e,t)=>this.#ie(e,t)})}#ie(e,t){return this.#g.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#ae(){this.#e.scrollTop=this.#e.scrollHeight}#oe(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#ae()}};function je(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function Me(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,je(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function Ne(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size===0)return;let n=await V(e.reader);if(n===null||n.length===0)return;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});await e.writer.writeFile(T,JSON.stringify(r,null,2));for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function V(e){let t=await H(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function H(e){let t;try{let n=await e.readFile(T,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?{kind:`missing`}:{kind:`fault`}}try{let e=JSON.parse(t);return Array.isArray(e)?{kind:`ok`,entries:e}:{kind:`corrupt`}}catch{return{kind:`corrupt`}}}async function Pe(e){let t;try{t=(await e.readDir(`/sessions`)).filter(e=>e.type===`file`&&e.name.endsWith(`.md`)).map(e=>e.name)}catch{return[]}let n=[];for(let r of t)try{let t=await e.readFile(`/sessions/${r}`,{encoding:`utf-8`}),i=(typeof t==`string`?t:new TextDecoder().decode(t)).slice(0,2e3),a=/^title:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??r,o=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??new Date(0).toISOString(),s=Number(/^messageCount:\s*(\d+)\s*$/m.exec(i)?.[1]??0);n.push({filename:r,title:a,frozenAt:o,messageCount:s,...r.startsWith(`pending-`)?{pendingEnrichment:!0}:{}})}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function Fe(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(Me))}async function Ie(e,t){let n=await e.readFile(re(t),{encoding:`utf-8`}),r=ne(typeof n==`string`?n:new TextDecoder().decode(n));return{title:r.title||t.title,messages:r.messages}}var Le={".md":`text/markdown`,".txt":`text/plain`,".ts":`text/typescript`,".js":`text/javascript`,".json":`application/json`,".html":`text/html`,".css":`text/css`,".svg":`image/svg+xml`,".png":`image/png`,".jpg":`image/jpeg`,".jpeg":`image/jpeg`,".gif":`image/gif`,".webp":`image/webp`,".mp3":`audio/mpeg`,".wav":`audio/wav`,".ogg":`audio/ogg`,".m4a":`audio/mp4`,".mp4":`video/mp4`,".webm":`video/webm`,".mov":`video/quicktime`};function U(e){return Le[e.slice(e.lastIndexOf(`.`)).toLowerCase()]||`application/octet-stream`}function Re(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}async function W(e,t,n){let r=await e.readFile(t,{encoding:`binary`}),i=typeof r==`string`?r:Uint8Array.from(r);await e.writeFile(n,i)}async function G(e,t){try{return await e.stat(t),!0}catch{return!1}}function ze(e){let{fileTree:t,openFs:n,openWriter:r,insertReference:i,toPreviewUrl:a,log:o}=e;t.addEventListener(`file-preview`,async e=>{let{path:t}=e.detail;try{let e=await n(),r=U(t),i;if(r.startsWith(`text/`)||r===`application/json`)i=await e.readFile(t,{encoding:`utf-8`});else{let n=await e.readFile(t,{encoding:`binary`}),r=new Uint8Array(n.length);r.set(n),i=r.buffer}me.open({path:t,content:i,mimeType:r})}catch(e){o.error(`File preview failed`,e)}}),t.addEventListener(`file-reference`,e=>{let{path:t}=e.detail;i(t)}),t.addEventListener(`file-download`,async e=>{let{path:t}=e.detail;try{let e=await(await n()).readFile(t,{encoding:`binary`}),r=new Uint8Array(e.length);r.set(e);let i=t.split(`/`).pop()||`download`,a=U(t),o=new Blob([r],{type:a}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=i,c.click(),URL.revokeObjectURL(s)}catch(e){o.error(`File download failed`,e)}}),t.addEventListener(`file-overflow`,e=>{let{path:n,anchor:r}=e.detail,i=[{id:`rename`,label:`Rename`},{id:`duplicate`,label:`Duplicate`},{id:`copy-path`,label:`Copy path`},{id:`open-browser`,label:`Open in browser`,visible:Re(n)},{id:`delete`,label:`Delete`,destructive:!0}];pe.show({anchor:r,items:i,context:{path:n},dispatchTarget:t})}),t.addEventListener(`overflow-action`,async e=>{let{action:t,context:n}=e.detail,{path:i}=n;try{switch(t){case`copy-path`:await navigator.clipboard.writeText(i);break;case`open-browser`:window.open(a(i),`_blank`);break;case`duplicate`:{let e=i.lastIndexOf(`.`),t=e>0?`${i.slice(0,e)}_copy${i.slice(e)}`:`${i}_copy`,n=await r();if(await G(n,t)&&!confirm(`${t} already exists. Overwrite?`))break;await W(n,i,t);break}case`delete`:confirm(`Delete ${i}?`)&&await(await r()).rm(i);break;case`rename`:{let e=i.split(`/`).pop()??``,t=prompt(`Rename ${i} to:`,e)?.trim();if(!t||t===e||t.includes(`/`))break;let n=`${i.slice(0,i.length-e.length)}${t}`,a=await r();if(await G(a,n)&&!confirm(`${n} already exists. Overwrite?`))break;await W(a,i,n),await a.rm(i);break}}}catch(e){o.error(`Overflow action "${t}" failed`,e)}})}var Be=`/workspace/CLAUDE.md`,K=64;function q(e){if(e.length<=K)return{title:e,summary:``};let t=e.lastIndexOf(` `,K),n=t>K/2?t:K;return{title:`${e.slice(0,n)}…`,summary:e.slice(n).trim()}}function Ve(e){let t=[],n=null,r=()=>{if(!n)return;let e=n.join(` `).trim();e&&t.push(q(e)),n=null};for(let t of e.split(`
|
|
8
|
+
`)){let e=/^\s*[-*]\s+(.*)$/.exec(t);e?(r(),n=[e[1]]):n&&t.trim()&&!t.startsWith(`#`)?n.push(t.trim()):(t.startsWith(`#`)||!t.trim())&&r()}return r(),t.length===0&&e.trim()&&t.push(q(e.trim())),t}async function He(e){let t=``;try{let n=await e.readFile(Be,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{t=``}return Ve(t).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`title`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`tag`,`project`),t})}async function Ue(e){let t=e.getScoops(),[n,r,i,a,o,s]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>[])]),c=e.getOAuthProviders(),l=Object.entries(a);return[{id:`cost`,label:`Cost`,count:o?.models.length??0,meta:o?`$${o.totalCost.toFixed(2)}`:void 0,rows:o?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`}))??[]},{id:`scoops`,label:`Scoops`,count:t.length,rows:t.map(t=>{let n=t.isCone?`${t.name||`sliccy`} (cone)`:t.name,r=e.isProcessing(t.jid);return{name:n,meta:r?`processing`:`idle`,active:r}})},{id:`processes`,label:`Processes`,count:s.length,rows:s.map(e=>{let t=e.argv.length>40?e.argv.slice(0,37)+`...`:e.argv,n=e.status===`running`;return{name:`${e.pid}`,meta:t,active:n}})},{id:`cron`,label:`Cron Tasks`,count:n.length,rows:n.map(e=>({name:e.name,meta:e.cron,active:e.status===`active`}))},{id:`webhooks`,label:`Webhooks`,count:r.length,rows:r.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`}))},{id:`workflows`,label:`Workflows`,count:0,rows:[]},{id:`mounts`,label:`Mounts`,count:i.length,rows:i.map(e=>({name:e.targetPath,meta:e.descriptor.kind}))},{id:`mcp`,label:`MCP Servers`,count:l.length,rows:l.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`${n} tool${n===1?``:`s`}`}})},{id:`oauth`,label:`OAuth`,count:c.length,rows:c.map(e=>({name:e,meta:``}))}]}var We=[`/workspace`,`/shared`],Ge=3,Ke=200;async function J(e,t,n){let r;try{r=await e.readDir(t)}catch{return[]}let i=r.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)),a=r.filter(e=>e.type===`file`).sort((e,t)=>e.name.localeCompare(t.name)),o=[...i,...a].slice(0,Ke),s=o.filter(e=>e.type===`file`).map(e=>`${t}/${e.name}`),c=await Promise.allSettled(s.map(t=>e.stat(t))),l=new Map;s.forEach((e,t)=>{let n=c[t];n?.status===`fulfilled`&&l.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Ge?await J(e,i,n+1):[]});else{let e=l.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function qe(e){let t=[];for(let n of We)t.push({kind:`dir`,id:n,label:n.slice(1),open:!0,children:await J(e,n,1)});return t}function Je(e){let t=!1,n=null,r=null,i=!1,a=!1,o=()=>{e.openFs().then(async t=>{e.fileTree.items=await qe(t),a||(a=!0,ze({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:y,log:e.log}))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},s=()=>{i=!1,n!=null&&(clearInterval(n),n=null),r!=null&&(clearInterval(r),r=null)};return a=>{if(a===`files`){s(),i=!0,e.onKernelReady(()=>{i&&(i=!1,o(),n=setInterval(o,3e3))});return}if(s(),a===`memory`){e.openFs().then(async t=>{e.memoryHost.replaceChildren(...await He(t))}).catch(t=>e.log.error(`WC memory refresh failed`,t));return}if(a===`monitor`){r!=null&&clearInterval(r);let t=()=>{(async()=>{try{let t=await Ue(e.getMonitorDeps());e.monitor.sections=t}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};e.monitor.addEventListener(`slicc-monitor-refresh`,t),t(),r=setInterval(t,5e3);return}a===`term`&&!t&&(t=!0,e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}))}}var Ye={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Xe={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Ze(e){return e?Ye[e]:void 0}function Qe(e){return e===`max`?`max`:void 0}function $e(e,t){return t===`max`?`max`:(e&&Xe[e])??`off`}function et(e,t){return e!=null&&e!==`cone`||new URL(t.location.href).searchParams.get(`cherry`)===`1`||s(t.localStorage)}function Y(e){return e===`error`?`dead`:e===`initializing`?`none`:`open`}function X(e,t,n){return[...e].sort((e,t)=>Number(t.isCone)-Number(e.isCone)).map(e=>{let r=n?.get(e.jid);return{key:e.jid,type:e.isCone?`cone`:`scoop`,color:D(e),label:e.isCone?`sliccy`:e.name,eyes:Y(t?.get(e.jid)),fill:typeof r==`number`?Math.round(r*100):void 0}})}function Z(e){let t=()=>{let t=e.getClient();t&&(e.refs.switcher.scoops=X(t.getScoops(),e.statuses,e.fills))},n=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),r=()=>{if(e.getSelected()||n())return;let t=e.getClient()?.getScoops()??[],r=e.pendingUrlContext;if(r?.startsWith(`freezer:`))return;if(r?.startsWith(`scoop:`)){let n=r.slice(6),i=t.find(e=>!e.isCone&&e.name===n);if(i){e.pendingUrlContext=null,e.selectScoop(i);return}}let i=t.find(e=>e.isCone);i&&(e.pendingUrlContext=null,e.selectScoop(i))};return{onStatusChange:(n,r)=>{let i=e.statuses.get(n);e.statuses.set(n,r),Y(i)!==Y(r)&&t(),e.getSelected()?.jid===n&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:r=>{t(),!e.getSelected()&&!n()&&!e.pendingUrlContext&&e.selectScoop(r)},onScoopListUpdate:()=>{t(),r()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.jid===t&&n.channel!==`web`&&ae(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onMessageUpdate:(t,n)=>{e.getSelected()?.jid===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onScoopMessagesReplaced:(t,n)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n)},onReady:()=>{t(),r(),e.notifyReady?.()}}}async function tt(t,n){t.thread.setAttribute(`context`,n.isCone?`cone`:`scoop:${n.name}`),t.thread.setAttribute(`accent`,D(n)),E(t,n.isCone?{kind:`cone`}:{kind:`scoop`,accent:D(n)}),t.switcher.setAttribute(`active`,n.jid);let r=localStorage.getItem(`slicc_locked_effort_level`);t.composerMeta.setAttribute(`thinking`,$e(r??n.config?.thinkingLevel,n.config?.effortOverride));try{let{resolveCurrentModel:i,resolveModelById:a}=await e(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),o=n.config?.modelId,s=o?a(o):i();t.composerMeta.setAttribute(`model`,s.name??s.id),t.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!r)}catch{}}function nt(t){let{refs:n,openVfs:r,client:i,getController:a,getSelected:o,selectScoop:s,clearSelection:c,log:l}=t,u=[],d=0,f=!1,p=()=>{let t=++d;r().then(async({reader:r,writer:i})=>{let a=await V(r);if(a===null){if((await H(r)).kind!==`corrupt`||(l.warn(`WC freezer index corrupt — rebuilding from archives`),a=await Pe(r),a.length===0))return;await i.writeFile(T,JSON.stringify(a,null,2))}t===d&&(u=a,Fe(n.freezer,a),!f&&a.some(e=>!e.icon&&!e.pendingEnrichment)&&(f=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DzhE1JW0.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([29,1,4,5,2,6,7,3,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,30,31])).then(({pickLucideIcon:e})=>Ne({reader:r,writer:i,freezer:n.freezer,entries:a,pickIcon:t=>e({subject:t})})).catch(e=>l.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{f=!1})))}).catch(e=>l.error(`WC freezer refresh failed`,e))},m=!1,h=()=>n.freezer.querySelector(`slicc-freezer-new`),g=t=>{m||(m=!0,h()?.setAttribute(`busy`,``),(async()=>{try{let{writer:n}=await r(),{resetNewSessionTmp:o,runNewSessionFreeze:c,runNewSessionFreezeQuick:l}=await e(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-u-78FCPG.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([32,2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,0,23,24,25,26,27,28,30,33,34,35,31,36,37]));t!==`erase`&&(t===`save`?await c({vfs:n,onProgress:e=>{let t=h();t&&(e===null?t.removeAttribute(`progress`):t.setAttribute(`progress`,String(e)))},onBackgroundEnriched:()=>p()}):await l({vfs:n})),await o(n),await i.clearAllMessages(),a()?.loadMessages([]),e(async()=>{let{resetDictationPriming:e}=await import(`./dictation-priming-DGpw1lUV.js`).then(e=>e.r);return{resetDictationPriming:e}},__vite__mapDeps([36,1])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),p();let u=i.getScoops().find(e=>e.isCone);u&&s(u)}catch(e){l.error(`WC new session failed`,e)}finally{m=!1;let e=h();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])n.freezer.addEventListener(`new-chat-${e}`,()=>g(e));let _=async e=>{try{let{reader:t}=await r(),i=u.find(t=>t.filename===e);i||=(await V(t)??[]).find(t=>t.filename===e);let{messages:o}=await Ie(t,i??{filename:e,title:e,frozenAt:``,messageCount:0});n.thread.setAttribute(`context`,`freezer:${i?.filename??e}`),a()?.loadMessages(o),n.thread.setAttribute(`accent`,de),E(n,{kind:`freezer`}),n.inputCard.setAttribute(`disabled`,``),n.switcher.removeAttribute(`active`),c()}catch(e){if(l.error(`WC thaw failed`,e),!o()){let e=i.getScoops().find(e=>e.isCone);e&&s(e)}}};return n.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&_(t)}),{refreshFreezer:p,openFrozen:_}}function Q(e,t){let n=null,r=le(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,onSurfaceActivate:e=>n?.(e),urlState:!0}),i=null,a=null,o=null,s=!1,c=new Set,l=e=>{if(o=e,!a)return;let t=a.selectedScoopJid;if(t&&t!==e.jid){let e=i?.getQueuedMessages()??[];for(let n of e)a.deleteQueuedMessage(t,n.id).catch(()=>void 0)}a.setSelectedScoopJid(e.jid),r.inputCard.removeAttribute(`disabled`),tt(r,e),a.requestScoopMessages(e.jid),i?.setProcessing(a.isProcessing(e.jid)),r.switcher.hasAttribute(`attention`)||r.switcher.setAttribute(`attention`,e.jid)};return{refs:r,wiring:{refs:r,statuses:new Map,fills:new Map,lastActivity:new Map,pendingUrlContext:r.thread.urlContext??null,getController:()=>i,getClient:()=>a,getSelected:()=>o,selectScoop:l,notifyReady:()=>{s=!0;for(let e of c)e()}},setClient:e=>{a=e},selectScoop:l,getSelected:()=>o,clearSelection:()=>{o=null},getController:()=>i,setController:e=>{i=e},setActivateSurface:e=>{n=e;let t=r.workbenchBody.getAttribute(`active`);t&&r.shell.hasAttribute(`open`)&&(s?e(t):c.add(()=>e(t)))},onClientReady:e=>{c.add(e),s&&e()}}}function rt(t){let n=null;return()=>(n??=(async()=>{let[{createRemoteVfsClient:n},{createRemoteWritableVfsClient:r}]=await Promise.all([e(()=>import(`./remote-vfs-client-Z2qM01yP.js`),__vite__mapDeps([38,35])),e(()=>import(`./writable-vfs-client-Cb6FWsgc.js`),__vite__mapDeps([39,35]))]);return{reader:n({transport:t.getTransport()}),writer:r({transport:t.getTransport()})}})(),n)}function it(t,n,r,i,a){t.onClientReady(()=>{i.intercept||e(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-D9lPUOm-.js`);return{wireWcOnboarding:e}},__vite__mapDeps([40,2,23,10,11,1,12,13,14,24,41,9,42,43,44,45,46,47,48,49,50,51,52,53])).then(({wireWcOnboarding:e})=>e({client:n,getController:()=>t.getController(),openVfs:r,log:a})).then(e=>{i.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function at(r,i,a,o,s){let c=new Map;e(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e}},__vite__mapDeps([54,2])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),e(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-C8b_iQ_9.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([49,1,50,9])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),e(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-jfuTMXZM.js`).then(e=>e.p);return{applyThemeOverrides:e}},__vite__mapDeps([50,1,9])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let l=i.createAgentHandle();l.onEvent(t=>{t.type!==`tool_use_start`&&t.type!==`tool_result`||e(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([55,9,56])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0)});let u=new B({thread:r.thread,agent:l,resolveTelemetryContext:()=>{let e=a();if(!e)return null;let r=e.isCone?`cone`:e.name;try{let i=e.config?.modelId;return{scoopName:r,model:(i?n(i):t()).id}}catch{return{scoopName:r,model:``}}},onTurnComplete:t=>{e(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-DHV6R4En.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([57,9,36,1,58,2,13,59,60,11,12,10,14,52,53])).then(async({consumeVoiceSubmission:n,speakReplyMarkdown:r})=>{if(!n())return;let{endVoiceTurn:i,setTtsActive:a}=await e(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([55,9,56]));try{if(t?.content){a(!0);try{await r(t.content)}finally{a(!1)}}}finally{i()}}).catch(()=>void 0)},onProcessingChange:e=>{r.frame.toggleAttribute(`data-processing`,e),r.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,e),e||o?.()},onBusyPhaseChange:e=>{r.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,e)},onMessageDisposed:e=>{let t=c.get(e);t&&(te(t),c.delete(e))},onMessageRendered:(e,t)=>{let n=t[0];n&&c.set(e.id,ee(n,(e,t)=>{let n={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:t}};s?.intercept?.(n)||i.sendSprinkleLick(`inline`,{action:e,data:t})}))},onQueuedChange:e=>{r.queuedStack.setMessages(e)},onToolUiAction:(e,t,n)=>{i.sendToolUiAction(e,t,n)},onQueuedCancel:e=>{let t=i.selectedScoopJid;t&&i.deleteQueuedMessage(t,e).catch(()=>void 0)}});return r.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let t=e.detail?.id;if(!t)return;u.removeQueuedMessage(t);let n=i.selectedScoopJid;n&&i.deleteQueuedMessage(n,t).catch(()=>void 0)}),{controller:u,agentHandle:l}}function ot(t){let{boot:n,client:r,agentHandle:i,openReader:a,log:o}=t,{refs:s}=n;e(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-C0wfdFBG.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([61,2,36,1])).then(({createPlaceholderRefresher:e})=>{t.setRefreshPlaceholder(e({inputCard:s.inputCard,getMessages:()=>n.getController()?.getMessages()??[],defaultPlaceholder:s.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),(async()=>{try{if(et(n.wiring.pendingUrlContext,window))return;let{SessionStore:r}=await e(async()=>{let{SessionStore:e}=await import(`./session-store-DAM8GRJ0.js`);return{SessionStore:e}},[]),i=new r;await i.init();let a=await i.load(`session-cone`);a&&a.messages.length>0&&!n.getSelected()&&(n.getController()?.loadMessages(a.messages),t.triggerPlaceholder())}catch(e){o.warn(`WC session hydration failed`,e)}})();let c=null;return e(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-DU0svqb7.js`);return{wireWcAttach:e}},__vite__mapDeps([62,2,12,10,43,1])).then(({wireWcAttach:n})=>{c=n({inputCard:s.inputCard,freezer:s.freezer,composer:s.composer,openReader:a,openWriter:t.openWriter,listConversations:async()=>{let{readSessionsIndex:t}=await e(async()=>{let{readSessionsIndex:e}=await import(`./session-freezer-CUzeQ9yz.js`).then(e=>e.o);return{readSessionsIndex:e}},__vite__mapDeps([33,1,2,4,5,6,7,34,8,9,35,31,36]));return(await t(await a())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:o})}).catch(e=>o.error(`WC add-menu wiring failed`,e)),s.inputCard.addEventListener(`submit`,t=>{let r=oe(t);if(!r)return;let i=t.detail?.source===`dictation`;i&&(e(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-DHV6R4En.js`);return{markVoiceSubmission:e}},__vite__mapDeps([57,9,36,1,58,2,13,59,60,11,12,10,14,52,53])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),e(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([55,9,56])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),n.getController()?.sendUserMessage(r,c?.take(),{dictation:i}),s.inputCard.clear?.();let a=n.getSelected()?.jid;a&&(s.switcher.setAttribute(`attention`,a),n.wiring.lastActivity.set(a,r.slice(0,600)))}),s.inputCard.addEventListener(`stop`,()=>{n.getController()?.processing&&i.stop()}),e(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:s.thread,inputCard:s.inputCard})).catch(e=>o.error(`WC history nav wiring failed`,e)),s.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let t=e.detail?.thinking,i=Ze(t),a=Qe(t),o=n.getSelected();o&&i&&r.setScoopThinkingLevel(o.jid,i,a)}),{getAttachStage:()=>c}}function st(e,t){let n=()=>{t.getSessionStats?.().then(n=>{if(!n)return;e.refs.floatbar.setAttribute(`spent`,n.totalCost.toFixed(2));let r=e.refs.floatbar;n.models&&(r.costModels=n.models),n.scoops&&(r.costScoops=n.scoops),e.fills.clear();for(let t of n.fills)e.fills.set(t.jid,t.fill);e.refs.switcher.scoops=X(t.getScoops(),e.statuses,e.fills)})};return setInterval(n,15e3),n}function ct(t,n,r){let i=n.standalone;i&&e(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DunWpcR7.js`);return{wireWcBrowser:e}},[]).then(({wireWcBrowser:e})=>e({refs:t.refs,browser:i.browser,log:r})).catch(e=>r.error(`WC browser overlay wiring failed`,e))}function lt(e,t){let{refs:n}=e;n.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.getScoops().find(e=>e.jid===r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)}),dt({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function ut(e){return()=>{e.triggerPlaceholder(),e.refreshStats();let t=e.boot.getSelected()?.jid;if(!t)return;e.boot.refs.switcher.setAttribute(`attention`,t);let n=e.boot.getController()?.getMessages().filter(e=>e.role===`assistant`).at(-1);n&&e.boot.wiring.lastActivity.set(t,String(n.content??``).slice(0,600))}}function dt(t){let n=new Map,r=new Set;t.switcher.addEventListener(`pointerover`,i=>{let a=i.target?.closest?.(`slicc-pill.scoop`);if(!a||!t.switcher.contains(a))return;let o=a.dataset.k??``,s=t.getScoops().find(e=>e.jid===o);if(!s)return;let c=t.lastActivity.get(o)??``,l=n.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=s.isCone?`sliccy`:s.name,!(!c||r.has(o))&&(r.add(o),(async()=>{try{let r=await(t.labelFn??(await e(async()=>{let{quickLabel:e}=await import(`./quick-llm-DzhE1JW0.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([29,1,4,5,2,6,7,3,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,30,31]))).quickLabel)({system:`One line for a hover tooltip: at most 14 words, present tense, no quotes, no trailing period.`,prompt:`Summarize what this agent has been doing.\nAgent: ${s.isCone?`sliccy (the main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});r&&(n.set(o,{activity:c,tip:r}),a.title=r)}finally{r.delete(o)}})())})}async function ft(t,n,r){let{RemoteTerminalView:i}=await e(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-C7x7cM1d.js`);return{RemoteTerminalView:e}},__vite__mapDeps([63,1,2,18,9,43,64,65,66,13,44,67,45,47,68])),{fetchSecretEnvVars:a}=await e(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-1E2r2H5F.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([69,9,11,1,2,12,10,13,14,15,16,17])),o=await a(),s=new i({client:n,cwd:`/`,env:Object.keys(o).length>0?o:void 0});await new Promise(e=>t.onClientReady(e)),await s.mount(r),globalThis.__slicc_terminal_view=s,window.addEventListener(`beforeunload`,()=>s.dispose(),{once:!0})}function pt(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=t.getScoops(),a=r.startsWith(`scoop:`)?i.find(e=>!e.isCone&&e.name===r.slice(6)):i.find(e=>e.isCone);a&&a.jid!==e.getSelected()?.jid&&e.selectScoop(a)};e.refs.thread.addEventListener(`slicc-url-context`,e=>{let t=e.detail?.context;t&&r(t)});let i=e.wiring.pendingUrlContext;i?.startsWith(`freezer:`)&&e.onClientReady(()=>{e.wiring.pendingUrlContext===i&&(e.wiring.pendingUrlContext=null,r(i))})}function mt(t,n,r,i){e(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-DW60QZxV.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([70,2,9,43,1])).then(async({installLeaderPermissionsSurface:i,installMountPendingConsumer:a})=>{let o=r.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await e(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-DMTDytlu.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([71,2,13]));i({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:ht(t,n)})}).catch(e=>i.warn(`WC permissions surface wiring failed`,e))}function ht(t,n){let r=null,i=()=>(r||=(async()=>{await new Promise(e=>t.onClientReady(e));let{TerminalSessionClient:r}=await e(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-CbAduNfC.js`);return{TerminalSessionClient:e}},[]),i=new r({client:n,sid:`mount-drop-${Date.now()}`});return await i.open({cwd:`/workspace`}),i})().catch(e=>{throw r=null,e}),r);return async e=>(await i()).exec(e)}function gt(e,t){return(n,r,i)=>{let a=e.getAttachStage();if(!a){t.warn(`sprinkle attachImage dropped: composer stage not ready yet`);return}let o=n.match(/^data:(image\/[^;]+);base64,([A-Za-z0-9+/=]+)$/),s=o?o[2]:n,c=o?o[1]:i??`image/png`,l=c.split(`/`)[1]?.replace(`jpeg`,`jpg`).replace(`svg+xml`,`svg`)??`png`,u=r??`annotation-${Date.now()}.${l}`;a.add({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:u,mimeType:c,size:Math.floor(s.length*3/4),kind:`image`,data:s})}}function $(t,n,r,i={}){e(async()=>{let{initTimestampPreference:e}=await import(`./timestamp-preference-DgrTvVNx.js`).then(e=>e.a);return{initTimestampPreference:e}},__vite__mapDeps([72,1])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:a}=t;t.setClient(n);let o=null,s=st(t.wiring,n),c=()=>o?.(),l={intercept:null},{controller:u,agentHandle:d}=at(a,n,()=>t.getSelected(),ut({boot:t,triggerPlaceholder:c,refreshStats:s}),l);t.setController(u),t.onClientReady(s);let f=rt(n),p=async()=>(await f()).reader;i.standalone?.runtimeMode!==`cherry`&&i.standalone?.runtimeMode!==`hosted-leader`&&it(t,n,f,l,r);let m=ot({boot:t,client:n,agentHandle:d,setRefreshPlaceholder:e=>{o=e},triggerPlaceholder:c,openReader:p,openWriter:async()=>(await f()).writer,log:r});lt(t,n),ct(t,i,r),mt(t,n,i,r),t.setActivateSurface(Je({fileTree:a.fileTree,termSurface:a.termSurface,memoryHost:a.memoryHost,monitor:a.monitor,openFs:p,openWriter:async()=>(await f()).writer,onKernelReady:e=>t.onClientReady(e),getMonitorDeps:()=>({getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:t}=await e(async()=>{let{getAllCronTasks:e}=await import(`./db-ysOO0kLr.js`).then(e=>e.t);return{getAllCronTasks:e}},__vite__mapDeps([73,1]));return t()},getWebhooks:async()=>{let{getAllWebhooks:t}=await e(async()=>{let{getAllWebhooks:e}=await import(`./db-ysOO0kLr.js`).then(e=>e.t);return{getAllWebhooks:e}},__vite__mapDeps([73,1]));return t()},getMounts:async()=>{let{getAllMountEntries:t}=await e(async()=>{let{getAllMountEntries:e}=await import(`./mount-table-store-CfQUN_2R.js`).then(e=>e.r);return{getAllMountEntries:e}},__vite__mapDeps([74,1]));return t()},getMcpServers:async()=>{try{let e=await(await p()).readFile(`/workspace/.mcp/servers.json`,{encoding:`utf-8`});return JSON.parse(typeof e==`string`?e:new TextDecoder().decode(e)).servers??{}}catch{return{}}},getOAuthProviders:()=>{try{let e=localStorage.getItem(`slicc_accounts`);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=t.map(e=>e.providerId).filter(e=>typeof e==`string`);return[...new Set(n)]}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await p(),t=await e.readDir(`/proc`),n=[];for(let r of t.filter(e=>e.type===`directory`&&/^\d+$/.test(e.name)))try{let t=await e.readFile(`/proc/${r.name}/status`,{encoding:`utf-8`}),i=await e.readFile(`/proc/${r.name}/cmdline`,{encoding:`utf-8`});n.push({pid:parseInt(r.name,10),argv:String(i).trim(),status:String(t).trim()})}catch{}return n}catch{return[]}}}),mountTerminal:e=>ft(t,n,e),insertReference:e=>{let t=a.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:r})),a.floatbar.addEventListener(`click`,()=>{a.shell.hasAttribute(`open`)&&a.workbenchBody.getAttribute(`active`)===`monitor`?(a.shell.removeAttribute(`open`),a.dock.removeAttribute(`active`)):a.dock.selectItem(`monitor`)});let{refreshFreezer:h,openFrozen:g}=nt({refs:a,openVfs:f,client:n,getController:()=>t.getController(),getSelected:()=>t.getSelected(),selectScoop:t.selectScoop,clearSelection:t.clearSelection,log:r});h(),t.onClientReady(h),pt(t,n,g),f().then(async({reader:t})=>{let{installPreviewVfsResponder:n}=await e(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Dhck1Brc.js`);return{installPreviewVfsResponder:e}},[]);n({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>t,logger:r})}).catch(e=>r.warn(`WC page-VFS support wiring failed`,e)),f().then(async({reader:o,writer:s})=>{let{createRemoteSprinkleVfs:c}=await e(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-e81pZJKo.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([75,35])),{wireWcSprinkles:l}=await e(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-DlE9uQTj.js`);return{wireWcSprinkles:e}},__vite__mapDeps([76,2,13])),u=await l({refs:a,client:n,fs:c({reader:o,writer:s}),instanceId:i.instanceId,onAttachImage:gt(m,r),log:r});if(t.onClientReady(()=>void u.resync()),i.standalone&&i.instanceId){let{wireWcTray:o}=await e(async()=>{let{wireWcTray:e}=await import(`./wc-tray-BdFq9TlZ.js`);return{wireWcTray:e}},__vite__mapDeps([77,2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,34,78,23,24,25,0,26,27,28,79,80,67,81,73,82,83,84,52,53,48,49,50])),s=u.zone.callbacks();await o({refs:a,client:n,browser:i.standalone.browser,realCdpTransport:i.standalone.realCdpTransport,instanceId:i.instanceId,runtimeMode:i.standalone.runtimeMode,sprinkleManager:u.manager,addSprinkle:(e,t,n)=>s.addSprinkle(e,t,n),removeSprinkle:e=>s.removeSprinkle(e),getController:()=>t.getController(),getSelectedJid:()=>t.getSelected()?.jid??`cone`,agentHandle:d,openFs:p,baseFloatLabel:i.standalone.baseFloatLabel,window,log:r})}}).catch(e=>r.error(`WC sprinkle/tray wiring failed`,e)),e(async()=>{let{wireWcNav:e}=await import(`./wc-nav-BqxVwvjV.js`);return{wireWcNav:e}},__vite__mapDeps([85,2,13,23,10,11,1,12,14,24,25,26,28,81,9,73])).then(({wireWcNav:e})=>e({refs:a,client:n,log:r})).catch(e=>r.error(`WC nav wiring failed`,e)),e(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-BWsih2Nz.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([86,9,13,43,1,87,59,60,11,2,12,10,14,52,53,88])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=a.composer;t(i.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>r.error(`WC push-to-talk wiring failed`,e)),e(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-WMi1eHMn.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([58,2,9,13,59,60,11,1,12,10,14,52,53])).then(({setSpeakAssetsInstanceId:e})=>e(i.instanceId)).catch(e=>r.error(`WC say warmup wiring failed`,e))}async function _t(t,n,r=`standalone`){let{browser:i,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await _({runtimeMode:r,envBaseUrl:null,window,log:n}),{resolveStandaloneFloatLabel:f,DEFAULT_STANDALONE_LABEL:p}=await e(async()=>{let{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}=await import(`./wc-float-label-DeQPr3pd.js`);return{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}},__vite__mapDeps([89,11,1,2,12,10,13,14])),h=r===`standalone`||r===`electron-overlay`?await f():p,v=Q(t,h);o&&m(o);let y=we({realCdpTransport:a,instanceId:o,callbacks:Z(v.wiring),localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,onWorkerScriptError:()=>{g()}});ye({send:e=>y.client.sendRaw(e)}),d?.(y.client),$(v,y.client,n,{instanceId:o,standalone:{browser:i,realCdpTransport:a,runtimeMode:r,baseFloatLabel:h}});let{setupSudoStandalone:b}=await e(async()=>{let{setupSudoStandalone:e}=await import(`./setup-sudo-cXyK0NGW.js`).then(e=>e.n);return{setupSudoStandalone:e}},__vite__mapDeps([90,1,2]));await b({log:n}),await y.ready,v.wiring.notifyReady?.(),n.info(`WC live shell ready`,{scoops:y.client.getScoops().length});let{consumeAutoPrompt:x}=await e(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),S=x(window.location.search);S&&(v.getController()?.sendUserMessage(S),n.info(`Auto-prompt submitted`,{length:S.length}))}export{$ as attachWcClient,Z as createWcLiveCallbacks,_t as mountWcUiLive,N as n,Q as prepareWcShell,B as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-settings-BraIAAA7.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/account-store-dvAfa3y8.js","assets/compat-DyT25qXb.js","assets/models-CzSI8IsT.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/context-compaction-dcYYajWb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-DETjVL-j.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-D2k1IxFk.js","assets/secrets-bridge-client-CONYX8PU.js","assets/port-bridge-client-CdvMlimf.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CvODsjGm.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BEi8MYUS.js","assets/transform-messages-fFaW-DLG.js","assets/tray-runtime-config-DJIIJaBR.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-CyJIKXH4.js","assets/clipboard-DuHpK59o.js","assets/telemetry-C8rZr13D.js","assets/tray-join-url-BIvzbiFR.js","assets/wc-detached-B3WCbbZT.js","assets/wc-settings-qEE2zwaO.js","assets/theme-engine-jfuTMXZM.js","assets/theme-C8b_iQ_9.js","assets/discovery-preference-DCtfbqw1.js","assets/timestamp-preference-DgrTvVNx.js","assets/legacy-styles-DcRu2WCJ.js","assets/sync-dialog-Ie_5SqoO.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t}from"./runtime-env-DH4NDw4t.js";import{t as n,u as r}from"./tray-runtime-config-DJIIJaBR.js";import{n as i}from"./tray-follower-status-CyJIKXH4.js";import{n as a}from"./clipboard-DuHpK59o.js";import{t as o}from"./tray-join-url-BIvzbiFR.js";import{n as s}from"./tray-leader-DcLymd_E.js";function c(e){let t=e.find(e=>e.userAvatar&&e.userName)??e.find(e=>e.userName);return t?.userName?{name:t.userName,avatarUrl:t.userAvatar,provider:t.providerId}:null}function l(e){return e.flatMap(e=>e.models.map(t=>({name:t.name??t.id,provider:e.providerName,id:`${e.providerId}:${t.id}`})))}function u(e,t){try{let n=t();e.setAttribute(`model`,n.name??n.id)}catch{}}async function d(n){let{refs:r,client:a,log:d}=n,{getAllAvailableModels:b,getAccounts:x,resolveCurrentModel:S}=await e(async()=>{let{getAllAvailableModels:e,getAccounts:t,resolveCurrentModel:n}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{getAllAvailableModels:e,getAccounts:t,resolveCurrentModel:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),C=()=>{r.composerMeta.models=l(b())},w=()=>u(r.composerMeta,S);C();let T=null;await v(r,a,()=>{let e=T;T=null,e!=null&&r.thread?.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:e},bubbles:!0,composed:!0}))});let E=t(),D=()=>{let e=c(x()),t=r.avatarMenu.querySelector(`slicc-avatar`),n=r.inputCard.querySelector(`slicc-send-button`);e?(t?.removeAttribute(`initials`),t?.setAttribute(`name`,e.name),e.avatarUrl&&(t?.setAttribute(`src`,e.avatarUrl),n?.setAttribute(`src`,e.avatarUrl)),r.avatarMenu.user={name:e.name,provider:e.provider}):(t?.removeAttribute(`name`),t?.removeAttribute(`src`),t?.removeAttribute(`initials`),n?.removeAttribute(`src`),r.avatarMenu.user={name:`SLICC`,provider:E?`extension`:`standalone`})};D();let O=()=>{if(E)return[];let e=o(s(),i()),t=[{kind:`separator`}];return e.kind===`leader-offer`?t.push({id:`tray-enable`,label:e.label,icon:`radio`}):e.kind===`leader-copy`?(t.push({id:`tray-copy`,label:`Copy tray join URL`,icon:`link`}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):e.kind===`leader-pending`?(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Stop multi-browser sync`,icon:`square`,danger:!0})):(t.push({kind:`caption`,label:e.caption}),t.push({id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0})),t},k=new URLSearchParams(window.location.search).has(`detached`),A=()=>E&&!k?[{id:`popout`,label:`Pop out into a tab`,icon:`external-link`}]:[],j=()=>{r.avatarMenu.items=[{id:`settings`,label:`Account settings…`,icon:`settings`},{id:`theme`,label:`Theme settings…`,icon:`palette`},...A(),...O()]};j(),r.avatarMenu.addEventListener(`slicc-avatar-menu-toggle`,e=>{e.detail?.open&&j()});let M=f(d,C,D,()=>a.updateModel()),N=p(d);r.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n&&m(n,d)){j();return}if(n===`popout`){e(async()=>{let{requestDetachedPopout:e}=await import(`./wc-detached-B3WCbbZT.js`);return{requestDetachedPopout:e}},__vite__mapDeps([29,24])).then(({requestDetachedPopout:e})=>e()).catch(e=>d.error(`detached popout request failed`,e));return}n===`settings`&&M(),n===`theme`&&N()}),r.composerMeta.addEventListener(`add-ai`,M),h(r,M),g({refs:r,log:d,openSettings:M,setPendingReplayMessageId:e=>{T=e}}),await _({refs:r,log:d,openSettings:M,refreshModels:C,applyIdentity:D,client:a}),y({refreshModels:C,refreshModelPill:w,applyIdentity:D,client:a})}function f(t,n,r,i){return()=>{e(async()=>{let{showWcSettings:e}=await import(`./wc-settings-qEE2zwaO.js`);return{showWcSettings:e}},__vite__mapDeps([30,2,31,1,9,32,33,11,12,10,13,14,34])).then(({showWcSettings:e})=>e(t)).then(()=>{n(),r(),i()}).catch(e=>t.error(`WC settings dialog failed`,e))}}function p(t){return()=>{e(async()=>{let{showThemeSettings:e}=await import(`./wc-settings-qEE2zwaO.js`);return{showThemeSettings:e}},__vite__mapDeps([30,2,31,1,9,32,33,11,12,10,13,14,34])).then(({showThemeSettings:e})=>e(t)).catch(e=>t.error(`Theme settings dialog failed`,e))}}function m(t,i){if(t===`tray-enable`)return r({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,defaultWorkerBaseUrl:n}).then(e=>{if(!e)return i.error(`tray enable: no worker base URL resolvable`);window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:e}}))}),!0;if(t===`tray-copy`){let t=s().session?.joinUrl;return t&&(a(t).catch(()=>void 0),e(async()=>{let{loadLegacyDialogStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadLegacyDialogStyles:e}},__vite__mapDeps([35,2])).then(({loadLegacyDialogStyles:e})=>e()).then(async()=>{let{showSyncEnabledDialog:n}=await e(async()=>{let{showSyncEnabledDialog:e}=await import(`./sync-dialog-Ie_5SqoO.js`);return{showSyncEnabledDialog:e}},__vite__mapDeps([36,26,1]));n({joinUrl:t,copied:!0})}).catch(e=>i.error(`sync dialog failed`,e))),!0}return t===`tray-stop`?(window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}})),!0):!1}function h(e,t){e.thread?.addEventListener(`slicc-error-open-settings`,t),window.addEventListener(`slicc:open-settings-from-panel`,()=>t())}function g(e){let{refs:t,log:n,openSettings:r,setPendingReplayMessageId:i}=e;t.thread?.addEventListener(`slicc-error-change-model`,e=>{i(e.detail?.messageId??null);let a=t.composerMeta,o=a.models;if(Array.isArray(o)&&o.length===0){r();return}try{a.openMenu?.()}catch(e){n.error(`opening composer model picker failed`,e)}})}async function _(t){let{refs:n,log:r,openSettings:i,refreshModels:a,applyIdentity:o,client:s}=t,{getSelectedProvider:c,getProviderConfig:l,reloginOAuthAccount:u}=await e(async()=>{let{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{getSelectedProvider:e,getProviderConfig:t,reloginOAuthAccount:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));n.thread?.addEventListener(`slicc-error-login`,()=>{let e=c(),t=e?l(e):null;if(!t||!t.onOAuthLogin&&!t.onOAuthLoginIntercepted){i();return}u(t,()=>{a(),o(),s.updateModel()}).catch(e=>r.error(`re-login from error card failed`,e))})}async function v(t,n,r){let{resolveModelById:i,resolveCurrentModel:a,setSelectedModelId:o}=await e(async()=>{let{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),s=e=>{let t=e.indexOf(`:`);return t>0?e.slice(t+1):e},c=e=>{try{let n=e?i(s(e)):a();t.composerMeta.toggleAttribute(`no-thinking`,n.reasoning!==!0)}catch{}};c(),t.composerMeta.addEventListener(`model-change`,e=>{let t=e.detail?.id;t&&(o(t),c(t),n.updateModel(),r?.())})}async function y(t){let{refreshModels:n,refreshModelPill:r,applyIdentity:i,client:a}=t,{getAccounts:o,getProviderConfig:s}=await e(async()=>{let{getAccounts:e,getProviderConfig:t}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{getAccounts:e,getProviderConfig:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));window.addEventListener(`slicc:accounts-changed`,()=>{n(),r(),i(),a.updateModel();for(let e of o()){let t=s(e.providerId)?.refreshModels;t&&t().then(()=>{n(),r(),a.updateModel()}).catch(()=>void 0)}})}export{d as wireWcNav};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-orchestrator-cZ36aqC6.js","assets/logger-DDBAeTLF.js","assets/welcome-detection-CQY88hjL.js","assets/rolldown-runtime-aKtaBQYM.js","assets/oauth-service-CmM0tZSO.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-DETjVL-j.js","assets/base64-DpPqYZJF.js","assets/src-CS5gSDhT.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js","assets/provider-settings-BraIAAA7.js","assets/account-store-dvAfa3y8.js","assets/compat-DyT25qXb.js","assets/models-CzSI8IsT.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/context-compaction-dcYYajWb.js","assets/secret-topology-D2k1IxFk.js","assets/secrets-bridge-client-CONYX8PU.js","assets/port-bridge-client-CdvMlimf.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CvODsjGm.js","assets/bedrock-camp-BEi8MYUS.js","assets/transform-messages-fFaW-DLG.js","assets/tray-runtime-config-DJIIJaBR.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-CyJIKXH4.js","assets/clipboard-DuHpK59o.js","assets/telemetry-C8rZr13D.js","assets/tray-join-url-BIvzbiFR.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{s as t}from"./tray-runtime-config-DJIIJaBR.js";import{t as n}from"./welcome-detection-CQY88hjL.js";import{t as r}from"./dip-BumXS1a9.js";function i(e){let{vfs:r,storage:i,firedWelcomeActions:a,persistFiredWelcomeActions:o,getOrchestrator:s,log:c}=e;t(i)||n(r).then(e=>{if(e.isFirstRun){if(a.has(`first-run`)){c.debug(`Suppressing welcome re-fire: first-run already in dedup ledger`);return}a.add(`first-run`),o(a),s().handleFirstRun()}}).catch(e=>c.warn(`Welcome detection failed`,e))}function a(e){for(let t of[`slicc_accounts`,`selected-model`]){let n=localStorage.getItem(t);n!=null&&e.sendRaw({type:`local-storage-set`,key:t,value:n})}}function o(e,t,n,r){let i=n(e).filter(e=>!r(e.id)),a=t.defaultModelId?i.find(e=>e.id===t.defaultModelId):void 0,o=t.defaultModelId?i.find(e=>e.id.toLowerCase().includes(t.defaultModelId.toLowerCase())):void 0,s=a??o??i[0];return s?`${e}:${s.id}`:void 0}function s(e){let t=e.getAvailableProviders().filter(t=>e.providerOffersLlmModels(t)),n=t.map(t=>{let n=e.getProviderConfig(t);return{id:n.id,name:n.name??n.id,description:n.description,requiresApiKey:n.requiresApiKey??!0,requiresBaseUrl:n.requiresBaseUrl??!1,requiresDeployment:!!n.requiresDeployment,requiresApiVersion:!!n.requiresApiVersion,apiKeyPlaceholder:n.apiKeyPlaceholder??void 0,apiKeyEnvVar:n.apiKeyEnvVar??void 0,defaultBaseUrl:n.baseUrlPlaceholder??void 0,baseUrlDescription:n.baseUrlDescription??void 0,deploymentPlaceholder:n.deploymentPlaceholder??void 0,deploymentDescription:n.deploymentDescription??void 0,apiVersionDefault:n.apiVersionDefault??void 0,apiVersionDescription:n.apiVersionDescription??void 0,isOAuth:!!n.isOAuth}}).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),r={};for(let n of t)try{r[n]=e.getProviderModels(n).filter(t=>!e.isModelHiddenFromPicker(t.id)).map(e=>({id:e.id,name:e.name}))}catch{r[n]=[]}return{providers:n,models:r}}async function c(t){let{OnboardingOrchestrator:n}=await e(async()=>{let{OnboardingOrchestrator:e}=await import(`./onboarding-orchestrator-cZ36aqC6.js`);return{OnboardingOrchestrator:e}},__vite__mapDeps([0,1,2,3])),r=null;return{get:()=>r||(r=new n({fs:t.fs,postSystemMessage:t.postSystemMessage,postDipReference:t.postDipReference,getProviderCatalogue:()=>s(t.providers),saveAccount:(e,n,r,i,a)=>t.providers.addAccount(e,n,r,i,a),setSelectedModel:e=>t.providers.setSelectedModelId(e),resolveModelLabel:(e,n)=>{try{return t.providers.getProviderModels(e).find(e=>e.id===n)?.name??null}catch{return null}},broadcastToDip:e=>t.broadcastToDip(e),fireFinalLick:e=>t.onFireFinalLick(e),onAccountsChanged:t.onAccountsChanged?()=>t.onAccountsChanged?.():void 0,launchOAuth:async(e,n)=>await l(e,n??null,t)}),r),peek:()=>r,buildCatalogue:()=>s(t.providers)}}async function l(t,n,r){try{let i=r.providers.getProviderConfig(t);if(!i.isOAuth||!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return{ok:!1,message:`Provider does not support OAuth.`};if(i.requiresBaseUrl&&n&&r.providers.addAccount(t,``,n),i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:t}=await e(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-CmM0tZSO.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([4,5,6,3,7,8,9,10,11,12])),n=await t();if(!n)return{ok:!1,message:`Intercepted OAuth requires the controlled-browser transport — open SLICC in standalone or extension mode.`};await i.onOAuthLoginIntercepted(n,()=>void 0,{presentDeviceCode:r.deviceCode.createSprinkleDeviceCodePrompter({broadcastToDip:e=>r.broadcastToDip(e)})})}else if(i.onOAuthLogin){let{createOAuthLauncher:t}=await e(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-CmM0tZSO.js`);return{createOAuthLauncher:e}},__vite__mapDeps([4,5,6,3,7,8,9,10,11,12])),n=t();await i.onOAuthLogin(n,()=>void 0)}return{ok:!0,model:o(t,i,r.providers.getProviderModels,r.providers.isModelHiddenFromPicker)}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`OAuth login failed.`}}}var u=new Set([`first-run`,`onboarding-complete`,`onboarding-complete-with-provider`,`shortcut-migrate`]),d=`slicc:welcome-flow-fired`;function f(){try{let e=typeof localStorage<`u`?localStorage.getItem(d):null;if(!e)return new Set;let t=JSON.parse(e);return new Set(Array.isArray(t)?t.map(String):[])}catch{return new Set}}function p(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(d,JSON.stringify([...e]))}catch{}}function m(e,t,n,r,i){if(u.has(e)&&t.has(e)){i.debug(`Suppressing duplicate welcome lick (${r})`,{action:e});return}u.has(e)&&(t.add(e),p(t)),n()}var h=new Set([`first-run`,`onboarding-complete`,`connect-ready`,`connect-attempt`,`oauth-attempt`,`device-code-decision`,`shortcut-migrate`]);function g(e){let{firedWelcomeActions:t,getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,contextLabel:l,vfs:d,log:f}=e;return e=>{if(e.type!==`sprinkle`)return!1;let m=e.sprinkleName===`welcome`||e.sprinkleName===`inline`?e.body?.action:void 0;if(m&&u.has(m)){if(t.has(m))return f.debug(`Suppressing duplicate welcome lick (${l})`,{action:m}),!0;t.add(m),p(t)}if(!m||!h.has(m))return!1;let g=e.body;return S(m,g,{getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,vfs:d,log:f})}}function _(e,t){let n=e[t];return typeof n==`string`&&n?n:null}function v(e,t){let n=t.getOnboardingOrchestrator(),r=e?.data??{};return r.mountWorkspace&&t.applyPendingMount&&t.applyPendingMount().catch(e=>t.log.warn(`Failed to mount workspace from onboarding`,e)),n.handleOnboardingComplete(r).catch(e=>t.log.warn(`OnboardingOrchestrator failed`,e)),!0}function y(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleConnectAttempt({provider:String(n.provider??``),apiKey:String(n.apiKey??``),baseUrl:_(n,`baseUrl`),deployment:_(n,`deployment`),apiVersion:_(n,`apiVersion`),model:n.model==null?null:String(n.model)}).catch(e=>t.log.warn(`handleConnectAttempt failed`,e)),!0}function b(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleOAuthAttempt({provider:String(n.provider??``),baseUrl:_(n,`baseUrl`)}).catch(e=>t.log.warn(`handleOAuthAttempt failed`,e)),!0}var x={"device-code-decision":(e,t)=>{let n=e?.data?.decision;return t.resolveDeviceCodeDecision(n===`cancel`?`cancel`:`continue`),!0},"first-run":(e,t)=>(t.getOnboardingOrchestrator().handleFirstRun(),!0),"onboarding-complete":v,"connect-ready":(e,t)=>C(t),"connect-attempt":y,"oauth-attempt":b,"shortcut-migrate":(e,t)=>(t.onShortcutMigrate(),!0)};function S(e,t,n){return x[e]?.(t,n)??!1}function C(e){let t=e.getAccounts();if(t.length===0)return e.getOnboardingOrchestrator().handleConnectReady(),!0;let n=t[0];return e.fastForward.broadcastAlreadyConnected(n.providerId),w(e.vfs,n.providerId,e.fastForward.fire).catch(t=>e.log.warn(`Failed to fire fast-forward final lick`,t)),!0}async function w(t,n,r){let{hasOnboardingFinalLickInHistory:i}=await e(async()=>{let{hasOnboardingFinalLickInHistory:e}=await import(`./welcome-detection-CQY88hjL.js`).then(e=>e.r);return{hasOnboardingFinalLickInHistory:e}},__vite__mapDeps([2,3,1]));if(await i())return;let a=t?await T(t):{},{getSelectedModelId:o,getProviderConfig:s,getProviderModels:c}=await e(async()=>{let{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}=await import(`./provider-settings-BraIAAA7.js`).then(e=>e.t);return{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}},__vite__mapDeps([13,3,5,14,15,16,17,18,19,1,8,6,7,9,10,20,21,22,23,24,11,25,26,27,28,29,30,31,32])),l=(()=>{try{return o()||null}catch{return null}})(),u=(()=>{if(!l)return null;try{return c(n).find(e=>e.id===l)?.name??l}catch{return l}})(),d=null;try{d=s(n).name??null}catch{}r({action:`onboarding-complete-with-provider`,data:{profile:a,provider:n,providerName:d,model:l,modelLabel:u,validation:`preexisting`}})}async function T(e){try{let t=await e.readDir(`/home`),n=null;for(let r of t){if(r.type!==`directory`)continue;let t=`/home/${r.name}/.welcome.json`;try{let r=(await e.stat(t)).mtime??0;if(n&&r<=n.mtime)continue;let i=await e.readFile(t,{encoding:`utf-8`}),a=JSON.parse(typeof i==`string`?i:new TextDecoder().decode(i));a&&typeof a==`object`&&(n={profile:a,mtime:r})}catch{}}return n?.profile??{}}catch{return{}}}function E(e){let{writer:t}=e;return{readFile:t.readFile.bind(t),writeFile:t.writeFile.bind(t),readDir:t.readDir.bind(t),stat:t.stat.bind(t),mkdir:t.mkdir.bind(t),exists:async e=>{try{return await t.stat(e),!0}catch{return!1}}}}async function D(t){let{client:n,getController:o,openVfs:s,log:l}=t,u=await e(()=>import(`./provider-settings-BraIAAA7.js`).then(e=>e.t),__vite__mapDeps([13,3,5,14,15,16,17,18,19,1,8,6,7,9,10,20,21,22,23,24,11,25,26,27,28,29,30,31,32])),{createSprinkleDeviceCodePrompter:d,resolveDeviceCodeDecision:h}=await e(async()=>{let{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}=await import(`./device-code-bridge-CbHxw098.js`);return{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}},[]),_=E(await s()),v=f(),y=e=>{let t=o();t?t.addAssistantMessage(e):l.warn(`WC onboarding: no controller to post welcome line`)},b=await c({fs:_,log:l,providers:u,deviceCode:{createSprinkleDeviceCodePrompter:d},postSystemMessage:y,postDipReference:y,broadcastToDip:e=>r(e),onFireFinalLick:e=>{a(n),m(String(e?.action??``),v,()=>n.sendSprinkleLick(`welcome`,e),`orchestrator-wc`,l)},onAccountsChanged:()=>{try{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`))}catch(e){l.warn(`Failed to dispatch slicc:accounts-changed`,e)}}}),x=g({firedWelcomeActions:v,getAccounts:u.getAccounts,getProviderConfig:u.getProviderConfig,resolveDeviceCodeDecision:h,getOnboardingOrchestrator:()=>b.get(),fastForward:{fire:e=>{m(String(e.action??``),v,()=>n.sendSprinkleLick(`welcome`,e),`fast-forward-wc`,l)},broadcastAlreadyConnected:e=>{let t=(()=>{try{return u.getProviderConfig(e)?.name??null}catch{return null}})();r({type:`slicc-already-connected`,provider:e,note:t?`Already connected to ${t}.`:`Already connected.`})}},onShortcutMigrate:()=>{_.writeFile(`/shared/.welcomed`,`1`).catch(e=>l.warn(`Failed to persist welcome completion marker`,e))},contextLabel:`wc`,vfs:_,log:l});return i({vfs:_,storage:window.localStorage,firedWelcomeActions:v,persistFiredWelcomeActions:p,getOrchestrator:()=>b.get(),log:l}),{interceptWelcomeLick:x}}export{D as wireWcOnboarding};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/remote-terminal-view-
|
|
2
|
-
import{t as e}from"./preload-helper-
|
|
3
|
-
`)){let e=n.trim();if(!e||e===`No active mounts`)continue;let r=e.split(/\s+/)[0];r.startsWith(`/`)&&t.add(r)}return t}function l(e){return e.trim().replace(/[^A-Za-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``)||`folder`}function u(e,t){let n=`/mnt/${e}`,r=2;for(;t.has(n);)n=`/mnt/${e}-${r++}`;return n}function d(e){let t=e.doc??document,n=t;if(n[s])return()=>{};n[s]=!0;let i=Promise.resolve(),a=t=>{let n=t.detail;n?.idbKey&&(i=i.then(()=>f(n,e)).catch(e=>{r.error(`slicc-mount-pending consumer failed`,{error:e instanceof Error?e.message:String(e)})}))};return t.addEventListener(`slicc-mount-pending`,a),()=>{t.removeEventListener(`slicc-mount-pending`,a),n[s]=!1}}async function f(e,t){let n=t.loadHandle??(await p()).loadAndClearPendingHandle,i=t.storeHandle??(await p()).storePendingHandle,a=t.mountKeyFor??await m(),o;try{o=await n(e.idbKey)}catch(t){r.warn(`failed to read pending handle from IDB`,{idbKey:e.idbKey,error:t instanceof Error?t.message:String(t)});return}if(!o){r.warn(`pending mount handle missing or expired`,{idbKey:e.idbKey});return}let s=new Set;try{s=c((await t.runShell(`mount list`)).stdout)}catch(e){r.warn(`mount list probe failed; assuming no existing mounts`,{error:e instanceof Error?e.message:String(e)})}let d=u(l(e.dirName),s);try{await i(a(d),o)}catch(e){r.warn(`failed to stash handle for worker adoption`,{targetPath:d,error:e instanceof Error?e.message:String(e)});return}let f;try{f=await t.runShell(`mount ${d}`)}catch(e){r.error(`mount command threw`,{targetPath:d,error:e instanceof Error?e.message:String(e)});return}if(f.exitCode!==0){r.error(`mount command returned non-zero`,{targetPath:d,stderr:f.stderr.trim()});return}r.info(`mounted dropped folder`,{targetPath:d,dirName:e.dirName})}async function p(){return e(()=>import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4]))}async function m(){let{localMountIdbKey:t}=await e(async()=>{let{localMountIdbKey:e}=await import(`./remote-terminal-view-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/remote-terminal-view-C7x7cM1d.js","assets/preload-helper-Czpn1I53.js","assets/tool-ui-DfXu6quJ.js","assets/wc-permissions-registry-Blyunq37.js","assets/picker-approval-CdWaB1mR.js","assets/hid-device-registry-DboUgvzI.js","assets/browser-COVn7LPD.js","assets/serial-port-registry-DsPZvGpT.js","assets/usb-device-registry-BOGfZXgp.js","assets/terminal-session-client-CbAduNfC.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{n}from"./wc-permissions-registry-Blyunq37.js";var r=t(`wc-permissions`);function i(){return`pendingMount:perm-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function a(e){if(e.runtimeMode===`cherry`)return null;let t=e.host??document.body,r=document.createElement(`slicc-permissions`);r.setAttribute(`data-leader-permissions`,``),e.providers&&(r.providers=e.providers),t.appendChild(r),n(r);let i=e=>{let t=e.detail;t.kind!==`filesystem`||t.source!==`drop`||o(t.handle).then(e=>{document.dispatchEvent(new CustomEvent(`slicc-mount-pending`,{detail:{idbKey:e,dirName:t.handle.name,source:`drop`},bubbles:!0,composed:!0}))})};return r.addEventListener(`slicc-permission-grant`,i),{element:r,dispose(){r.removeEventListener(`slicc-permission-grant`,i),r.remove(),n(null)}}}async function o(t){let n=i();try{let{storePendingHandle:r}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([0,1,2,3,4]));await r(n,t)}catch(e){throw r.warn(`failed to stash dropped handle`,{error:e instanceof Error?e.message:String(e)}),e}return n}var s=`__sliccMountPendingConsumer`;function c(e){let t=new Set;for(let n of e.split(`
|
|
3
|
+
`)){let e=n.trim();if(!e||e===`No active mounts`)continue;let r=e.split(/\s+/)[0];r.startsWith(`/`)&&t.add(r)}return t}function l(e){return e.trim().replace(/[^A-Za-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``)||`folder`}function u(e,t){let n=`/mnt/${e}`,r=2;for(;t.has(n);)n=`/mnt/${e}-${r++}`;return n}function d(e){let t=e.doc??document,n=t;if(n[s])return()=>{};n[s]=!0;let i=Promise.resolve(),a=t=>{let n=t.detail;n?.idbKey&&(i=i.then(()=>f(n,e)).catch(e=>{r.error(`slicc-mount-pending consumer failed`,{error:e instanceof Error?e.message:String(e)})}))};return t.addEventListener(`slicc-mount-pending`,a),()=>{t.removeEventListener(`slicc-mount-pending`,a),n[s]=!1}}async function f(e,t){let n=t.loadHandle??(await p()).loadAndClearPendingHandle,i=t.storeHandle??(await p()).storePendingHandle,a=t.mountKeyFor??await m(),o;try{o=await n(e.idbKey)}catch(t){r.warn(`failed to read pending handle from IDB`,{idbKey:e.idbKey,error:t instanceof Error?t.message:String(t)});return}if(!o){r.warn(`pending mount handle missing or expired`,{idbKey:e.idbKey});return}let s=new Set;try{s=c((await t.runShell(`mount list`)).stdout)}catch(e){r.warn(`mount list probe failed; assuming no existing mounts`,{error:e instanceof Error?e.message:String(e)})}let d=u(l(e.dirName),s);try{await i(a(d),o)}catch(e){r.warn(`failed to stash handle for worker adoption`,{targetPath:d,error:e instanceof Error?e.message:String(e)});return}let f;try{f=await t.runShell(`mount ${d}`)}catch(e){r.error(`mount command threw`,{targetPath:d,error:e instanceof Error?e.message:String(e)});return}if(f.exitCode!==0){r.error(`mount command returned non-zero`,{targetPath:d,stderr:f.stderr.trim()});return}r.info(`mounted dropped folder`,{targetPath:d,dirName:e.dirName})}async function p(){return e(()=>import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4]))}async function m(){let{localMountIdbKey:t}=await e(async()=>{let{localMountIdbKey:e}=await import(`./remote-terminal-view-C7x7cM1d.js`);return{localMountIdbKey:e}},__vite__mapDeps([5,1,6,7,2,8,9,0,3,4,10,11,12,13,14]));return t}export{a as installLeaderPermissionsSurface,d as installMountPendingConsumer};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/usb-picker-Cl6Cwuv9.js","assets/hid-picker-Bhoh8hxy.js","assets/serial-picker-CUd91lje.js","assets/usb-device-registry-BOGfZXgp.js","assets/hid-device-registry-DboUgvzI.js","assets/serial-port-registry-DsPZvGpT.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t}from"./runtime-env-DH4NDw4t.js";function n(){return t()}async function r(t=n()){if(!t)return;let[{openMountPickerPopup:r,storePendingHandle:s,loadAndClearPendingHandle:c},l,u,d]=await Promise.all([e(()=>import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4])),e(()=>import(`./usb-picker-Cl6Cwuv9.js`),__vite__mapDeps([5,3,4])),e(()=>import(`./hid-picker-Bhoh8hxy.js`),__vite__mapDeps([6,3,4])),e(()=>import(`./serial-picker-CUd91lje.js`),__vite__mapDeps([7,3,4]))]);return{filesystem:{async showDirectoryPicker(){let e=await r();if(e.cancelled)throw new DOMException(`mount picker cancelled`,`AbortError`);if(e.error)throw Error(e.error);if(!e.idbKey)throw Error(`mount picker returned no handle key`);let t=await c(e.idbKey);if(!t)throw Error(`mount picker returned no handle`);return await s(e.idbKey,t),t}},usb:{async requestDevice(e){let t=await l.openUsbPickerPopup(e?.filters??[]);if(`cancelled`in t)throw new DOMException(`usb picker cancelled`,`AbortError`);if(`error`in t)throw Error(t.error);let n=await i(t.info);if(!n)throw Error(`granted USB device could not be re-acquired`);return n}},hid:{async requestDevice(e){let t=await u.openHidPickerPopup(e?.filters??[]);if(`cancelled`in t)throw new DOMException(`hid picker cancelled`,`AbortError`);if(`error`in t)throw Error(t.error);let n=await a(t.info);if(n.length===0)throw Error(`granted HID device could not be re-acquired`);return n}},serial:{async requestPort(e){let t=await d.openSerialPickerPopup(e?.filters??[]);if(`cancelled`in t)throw new DOMException(`serial picker cancelled`,`AbortError`);if(`error`in t)throw Error(t.error);let n=await o(t.info);if(!n)throw Error(`granted serial port could not be re-acquired`);return n}}}}async function i(t){let{getNavigatorUsb:n}=await e(async()=>{let{getNavigatorUsb:e}=await import(`./usb-device-registry-BOGfZXgp.js`).then(e=>e.a);return{getNavigatorUsb:e}},__vite__mapDeps([8,1])),r=n();if(!r)throw Error(`WebUSB is unavailable in this browser`);return(await r.getDevices()).find(e=>e.vendorId===t.vendorId&&e.productId===t.productId&&(!t.serialNumber||e.serialNumber===t.serialNumber))??null}async function a(t){let{getNavigatorHid:n}=await e(async()=>{let{getNavigatorHid:e}=await import(`./hid-device-registry-DboUgvzI.js`).then(e=>e.a);return{getNavigatorHid:e}},__vite__mapDeps([9,1])),r=n();if(!r)throw Error(`WebHID is unavailable in this browser`);return(await r.getDevices()).filter(e=>e.vendorId===t.vendorId&&e.productId===t.productId)}async function o(t){let{getNavigatorSerial:n}=await e(async()=>{let{getNavigatorSerial:e}=await import(`./serial-port-registry-DsPZvGpT.js`).then(e=>e.o);return{getNavigatorSerial:e}},__vite__mapDeps([10,1])),r=n();if(!r)throw Error(`Web Serial is unavailable in this browser`);let i=await r.getPorts();return i.filter(e=>{let n=e.getInfo();return!(t.usbVendorId!==void 0&&n.usbVendorId!==t.usbVendorId||t.usbProductId!==void 0&&n.usbProductId!==t.usbProductId)})[0]??i[0]??null}export{r as buildLeaderPermissionProviders,n as isExtensionRuntime};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-DzhE1JW0.js","assets/rolldown-runtime-aKtaBQYM.js","assets/compat-DyT25qXb.js","assets/models-CzSI8IsT.js","assets/preload-helper-Czpn1I53.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-dvAfa3y8.js","assets/context-compaction-dcYYajWb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-DETjVL-j.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-D2k1IxFk.js","assets/secrets-bridge-client-CONYX8PU.js","assets/port-bridge-client-CdvMlimf.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CvODsjGm.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BEi8MYUS.js","assets/transform-messages-fFaW-DLG.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{a as t}from"./dictation-priming-DGpw1lUV.js";var n=400,r=800,i=`You suggest the user's next prompt in a coding-agent chat. Based on the recent conversation, output ONE concrete follow-up the user might type next. Reply with just the prompt text — no quotes, no preamble, no list. Max 80 characters. If nothing useful comes to mind, reply exactly: What shall we build?`;function a(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function o(e){let i=e.filter(e=>!e.isStreaming&&!e.queued&&e.source!==`lick`),o=[...i].reverse().find(e=>e.role===`assistant`),s=i.filter(e=>e.role===`user`).slice(-3);return!o||s.length===0?null:[...s.map(e=>`[user]: ${a(t(e.content),n)}`),`[assistant]: ${a(o.content,r)}`].join(`
|
|
3
|
+
|
|
4
|
+
`)}async function s(t){if(t.currentValue.length>0)return;let n=o(t.messages);if(!n){t.setPlaceholder(t.defaultPlaceholder);return}let r=await(t.quickLabelFn??(await e(async()=>{let{quickLabel:e}=await import(`./quick-llm-DzhE1JW0.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]))).quickLabel)({system:i,prompt:`Recent conversation:\n${n}`,maxTokens:40,signal:t.signal});t.signal?.aborted||t.currentValue.length>0||t.setPlaceholder(r&&r.length>0?r:t.defaultPlaceholder)}function c(e,t,n){t===n?(e.removeAttribute(`suggestion`),e.setAttribute(`placeholder`,t)):e.setAttribute(`suggestion`,t)}function l(e){let t=null;return()=>{e.inputCard.hasAttribute(`disabled`)||(t?.abort(),t=new AbortController,s({messages:e.getMessages(),currentValue:e.inputCard.value??``,setPlaceholder:t=>c(e.inputCard,t,e.defaultPlaceholder),defaultPlaceholder:e.defaultPlaceholder,signal:t.signal}).catch(()=>void 0))}}export{l as createPlaceholderRefresher};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[`#06b6d4`,`#8b5cf6`,`#f59e0b`,`#10b981`,`#3b82f6`,`#ef4444`];function t(t){if(t.isCone)return`#b07823`;let n=0;for(let e of t.name)n=n*31+e.charCodeAt(0)>>>0;return e[n%e.length]}export{t};
|